{"version":3,"sources":["../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../../../src/ILogger.ts","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../src/Utils.ts","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../lib/util/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/inherits.js","../../../lib/util/constants.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/clearOwnProperties.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/.pnpm/minimal-event-emitter@1.0.0/node_modules/minimal-event-emitter/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/.pnpm/dayjs@1.11.6/node_modules/dayjs/dayjs.min.js","../../../../lib/webrtc/util/index.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/common.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/mat2.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/mat2d.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/mat3.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/mat4.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/vec3.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/vec4.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/quat.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/quat2.js","../node_modules/.pnpm/gl-matrix@3.3.0/node_modules/gl-matrix/esm/vec2.js","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/dom.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/index.js","../../../lib/util/log.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/inherits.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/defaults.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Dynamics.js","../../../lib/util/twilio-video-errors.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/mod.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/esm/utils.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/now.js","../../../lib/webrtc/index.js","../../../lib/util/browserdetection.js","../../../lib/util/timeout.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/clamp.js","../../../lib/vendor/inherits.js","../../../../lib/media/track/es5/index.js","../../lib/statemachine.js","../../../../lib/signaling/v2/mediasignaling.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../src/Loggers.ts","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/geometries/common.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/cmp.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/type.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/noop.js","../../../../lib/webrtc/util/sdp.js","../../lib/eventemitter.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../lib/index.ts","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/pixelRatio.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/hash.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/HammerGestures.js","../../../lib/webaudio/audiocontext.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/.pnpm/@fortawesome+fontawesome@1.1.8/node_modules/@fortawesome/fontawesome/index.es.js","../node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/esm/getFetch.cjs","../node_modules/.pnpm/i18next@21.10.0/node_modules/i18next/dist/esm/i18next.js","../node_modules/.pnpm/@babel+runtime@7.20.1/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/once.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/assets/Static.js","../node_modules/.pnpm/webpack@4.44.2/node_modules/webpack/buildin/global.js","../node_modules/.pnpm/bowser@1.9.4/node_modules/bowser/src/bowser.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/geometries/Level.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/real.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/decimal.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/chain.js","../../../../lib/webrtc/util/eventtarget.js","../../../../lib/media/track/index.js","../../../lib/util/documentvisibilitymonitor.js","../../../lib/util/cancelablepromise.js","../../../../lib/media/track/localtrackpublication.js","../../../../lib/media/track/remotetrackpublication.js","../../../../lib/util/sdp/index.js","../../../lib/signaling/participant.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/stages/WebGl.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/WorkQueue.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/calcRect.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/async.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/cancelize.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/global.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/NetworkError.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/WebGlCube.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/WebGlBase.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/WebGlCommon.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/WebGlFlat.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/WebGlEquirect.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/renderers/registerDefaultRenderers.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/TileSearcher.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/Set.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/LruMap.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/convertFov.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/compose.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/delay.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/TextureStore.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/retry.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/Layer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/extend.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/RenderLoop.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Key.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Drag.js","../node_modules/.pnpm/hammerjs@2.0.4/node_modules/hammerjs/hammer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/util.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Qtvr.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/ScrollZoom.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/PinchZoom.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Controls.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/Scene.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/HotspotContainer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/Hotspot.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/positionAbsolutely.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/registerDefaultControls.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/tween.js","../../../lib/vendor/loglevel.js","../../../lib/util/sid.js","../../../lib/util/twiliowarning.js","../../../lib/webrtc/mediastream.js","../../../../lib/webrtc/rtcsessiondescription/chrome.js","../../../../lib/webrtc/util/latch.js","../../../../lib/webrtc/rtcsessiondescription/firefox.js","../../../../lib/media/track/audiotrack.js","../../../../lib/media/track/mediatrack.js","../../../lib/util/localmediarestartdeferreds.js","../../../../lib/media/track/localmediatrack.js","../../../lib/webaudio/detectsilence.js","../../../lib/util/detectsilentvideo.js","../../../lib/webaudio/workaround180748.js","../../../../lib/media/track/sender.js","../../../../lib/media/track/transceiver.js","../../lib/transceiver.js","../../../../lib/media/track/videotrack.js","../../../lib/data/transceiver.js","../../lib/twilioconnection.js","../node_modules/.pnpm/twilio-video@2.25.0/node_modules/twilio-video/src/ws.js","../../../lib/util/movingaveragedelta.js","../../../lib/util/eventobserver.js","../../../../lib/util/insightspublisher/index.js","../../../lib/util/validate.js","../../../../lib/media/track/trackpublication.js","../../lib/participant.js","../../../../lib/media/track/remotemediatrack.js","../../../lib/stats/statsreport.js","../../../lib/stats/localtrackstats.js","../../../lib/stats/trackstats.js","../../../lib/stats/remotetrackstats.js","../../../lib/util/backoff.js","../../../lib/stats/receiverreport.js","../../../lib/stats/average.js","../../../lib/stats/senderorreceiverreport.js","../../../lib/stats/sum.js","../../../lib/stats/senderreport.js","../../../lib/stats/senderorreceiverreportfactory.js","../../../lib/signaling/recording.js","../../../lib/signaling/room.js","../../../lib/stats/networkqualitymediastats.js","../../../lib/stats/networkqualitysendorrecvstats.js","../../../lib/signaling/track.js","../../lib/createlocaltrack.js","../node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/esm/index.js","../node_modules/.pnpm/i18next-http-backend@1.4.5/node_modules/i18next-http-backend/esm/request.js","../node_modules/.pnpm/i18next-browser-languagedetector@6.1.8/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faSync.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faSignInAlt.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faPlay.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faArrowLeft.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faArrowRight.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faArrowUp.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faArrowDown.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faPlus.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faMinus.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faSpinner.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faPlayCircle.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faCircle.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faLink.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faUnlink.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faPhone.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faPhoneSlash.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faMicrophone.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faMicrophoneSlash.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faExpand.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faInfo.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-regular@5.0.13/node_modules/@fortawesome/fontawesome-free-regular/faCircle.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faArrowAltCircleRight.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faComments.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faTimes.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faCheck.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faShoePrints.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faWalking.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faUserTie.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faEnvelope.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faMap.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-regular@5.0.13/node_modules/@fortawesome/fontawesome-free-regular/faSmile.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faCamera.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faVolumeUp.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faVolumeOff.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faComment.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faCommentSlash.js","../node_modules/@swc/helpers/src/_define_property.mjs","../node_modules/preact/src/constants.js","../node_modules/preact/src/util.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/component.js","../node_modules/preact/src/diff/children.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/diff/index.js","../node_modules/preact/src/render.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/preact/jsx-runtime/src/index.js","../packages/emoji-mart/src/helpers/store.ts","../packages/emoji-mart/src/helpers/native-support.ts","../packages/emoji-mart/src/helpers/frequently-used.ts","../packages/emoji-mart-data/i18n/en.json","../packages/emoji-mart/src/components/Picker/PickerProps.ts","../packages/emoji-mart/src/config.ts","../packages/emoji-mart/src/helpers/search-index.ts","../packages/emoji-mart/src/helpers/index.ts","../packages/emoji-mart/src/utils.ts","../packages/emoji-mart/src/icons.tsx","../packages/emoji-mart/src/components/Emoji/Emoji.tsx","../packages/emoji-mart/src/components/HTMLElement/HTMLElement.ts","../packages/emoji-mart/src/components/HTMLElement/ShadowElement.ts","../packages/emoji-mart/src/components/Emoji/EmojiProps.ts","../packages/emoji-mart/src/components/Emoji/EmojiElement.jsx","../node_modules/preact/hooks/src/index.js","../node_modules/preact/compat/src/util.js","../node_modules/preact/compat/src/PureComponent.js","../node_modules/preact/compat/src/forwardRef.js","../node_modules/preact/compat/src/suspense.js","../node_modules/preact/compat/src/suspense-list.js","../node_modules/preact/compat/src/render.js","../node_modules/preact/compat/src/index.js","../packages/emoji-mart/src/components/Navigation/Navigation.tsx","../packages/emoji-mart/src/components/HOCs/PureInlineComponent.ts","../packages/emoji-mart/src/components/Picker/Picker.tsx","../packages/emoji-mart/src/components/Picker/PickerElement.tsx","../node_modules/@parcel/runtime-js/lib/bundles/runtime-a0989412a1d169e3.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/math.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/enums.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/createPopper.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/within.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/popper.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/.pnpm/@popperjs+core@2.11.6/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../src/constants.ts","../../src/utils.ts","../../src/dom-utils.ts","../../src/bindGlobalEventListeners.ts","../../src/browser.ts","../../src/props.ts","../../src/template.ts","../../src/createTippy.ts","../../src/index.ts","../../src/addons/createSingleton.ts","../../build/base.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/stages/Stage.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/stages/RendererRegistry.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/loaders/HtmlImage.js","../node_modules/.pnpm/webpack@4.44.2/node_modules/webpack/buildin/amd-define.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/ispot.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/shaders/vertexNormal.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/shaders/fragmentNormal.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/shaders/vertexEquirect.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/shaders/fragmentEquirect.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/geometries/Cube.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/geometries/Flat.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/geometries/Equirect.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/views/Rectilinear.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/views/Flat.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/sources/ImageUrl.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/WorkPool.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/sources/SingleAsset.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/assets/Dynamic.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/Map.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/collections/LruSet.js","../node_modules/.pnpm/webpack@4.44.2/node_modules/webpack/buildin/amd-options.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Velocity.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/ElementPress.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/Composer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/Viewer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/Timer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/controls/ControlCursor.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/colorEffects.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/autorotate.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/defer.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/degToRad.js","../node_modules/.pnpm/marzipano@0.10.2/node_modules/marzipano/src/util/radToDeg.js","../node_modules/.pnpm/@fortawesome+fontawesome-free-solid@5.0.13/node_modules/@fortawesome/fontawesome-free-solid/faVolumeDown.js","../../lib/createlocaltracks.ts","../../../../lib/media/track/noisecancellationimpl.ts","../../lib/noisecancellationadapter.ts","../../../lib/util/dynamicimport.js","../../../lib/webrtc/getstats.js","../../../lib/webrtc/getusermedia.js","../../../lib/webrtc/mediastreamtrack.js","../../../lib/webrtc/rtcicecandidate.js","../../../../lib/webrtc/rtcpeerconnection/index.js","../../../../lib/webrtc/rtcpeerconnection/chrome.js","../../../lib/webrtc/rtcrtpsender.js","../../../../lib/webrtc/rtcpeerconnection/firefox.js","../../../../lib/webrtc/rtcpeerconnection/safari.js","../../../../lib/webrtc/rtcsessiondescription/index.js","../../../../lib/media/track/es5/localaudiotrack.js","../../../../lib/media/track/localaudiotrack.js","../../../lib/util/detectsilentaudio.js","../../../../lib/media/track/es5/localvideotrack.js","../../../../lib/media/track/localvideotrack.js","../../../../lib/media/track/videoprocessoreventobserver.js","../../../../lib/media/track/es5/localdatatrack.js","../../../../lib/media/track/localdatatrack.js","../../../lib/data/sender.js","../../../lib/preflight/preflighttest.ts","../../../lib/preflight/timer.ts","../../../lib/preflight/mos.ts","../../../lib/preflight/getCombinedConnectionStats.ts","../../../lib/preflight/getturncredentials.ts","../../../lib/util/networkmonitor.js","../../../lib/util/twilioerror.js","../../../lib/preflight/makestat.ts","../../../lib/preflight/syntheticaudio.ts","../../../lib/preflight/syntheticvideo.ts","../../lib/connect.js","../../lib/cancelableroompromise.js","../../lib/encodingparameters.js","../../lib/localparticipant.js","../../../../lib/media/track/localaudiotrackpublication.js","../../../../lib/media/track/localdatatrackpublication.js","../../../../lib/media/track/localvideotrackpublication.js","../../../../lib/media/track/remoteaudiotrack.js","../../../../lib/media/track/remoteaudiotrackpublication.js","../../../../lib/media/track/remotedatatrack.js","../../../../lib/media/track/remotedatatrackpublication.js","../../../../lib/media/track/remotevideotrack.js","../../../lib/util/nullobserver.js","../../../../lib/media/track/remotevideotrackpublication.js","../../../../lib/util/insightspublisher/null.js","../../lib/networkqualityconfiguration.js","../../lib/room.js","../../lib/remoteparticipant.js","../../../lib/stats/localaudiotrackstats.js","../../../lib/stats/localvideotrackstats.js","../../../lib/stats/remoteaudiotrackstats.js","../../../lib/stats/remotevideotrackstats.js","../../../../lib/signaling/v2/index.js","../../../../lib/signaling/v2/cancelableroomsignalingpromise.js","../../../../lib/signaling/v2/peerconnectionmanager.js","../../../../lib/signaling/v2/peerconnection.js","../../../../lib/util/sdp/simulcast.js","../../../../lib/signaling/v2/icebox.js","../../../lib/util/filter.js","../../../../lib/signaling/v2/iceconnectionmonitor.js","../../../lib/data/receiver.js","../../../lib/data/transport.js","../../../../lib/media/track/receiver.js","../../../../lib/util/sdp/trackmatcher.js","../../../../lib/util/sdp/issue8329.js","../../lib/queueingeventemitter.js","../../../../lib/signaling/v2/room.js","../../../../lib/signaling/v2/dominantspeakersignaling.js","../../../../lib/signaling/v2/networkqualitymonitor.js","../../../lib/stats/peerconnectionreportfactory.js","../../../lib/stats/icereportfactory.js","../../../lib/stats/icereport.js","../../../lib/stats/peerconnectionreport.js","../../../lib/stats/receiverreportfactory.js","../../../lib/stats/senderreportfactory.js","../../../../lib/signaling/v2/networkqualitysignaling.js","../../../lib/util/asyncvar.js","../../../../lib/signaling/v2/recording.js","../../../../lib/signaling/v2/remoteparticipant.js","../../../lib/signaling/remoteparticipant.js","../../../lib/stats/networkqualitystats.js","../../../lib/stats/networkqualityaudiostats.js","../../../lib/stats/networkqualitysendstats.js","../../../lib/stats/networkqualitybandwidthstats.js","../../../lib/stats/networkqualityfractionloststats.js","../../../lib/stats/networkqualitylatencystats.js","../../../lib/stats/networkqualityrecvstats.js","../../../lib/stats/networkqualityvideostats.js","../../../../lib/signaling/v2/remotetrackpublication.js","../../../lib/signaling/remotetrackpublication.js","../../../../lib/signaling/v2/trackprioritysignaling.js","../../../../lib/signaling/v2/trackswitchoffsignaling.js","../../../../lib/signaling/v2/renderhintssignaling.js","../../../../lib/signaling/v2/publisherhintsignaling.js","../../../../lib/signaling/v2/twilioconnectiontransport.js","../../../../lib/signaling/v2/localparticipant.js","../../../lib/signaling/localparticipant.js","../../../../lib/signaling/v2/localtrackpublication.js","../../../lib/signaling/localtrackpublication.js","../../../lib/signaling/index.js","../../../lib/util/support.js","../node_modules/.pnpm/process@0.11.10/node_modules/process/browser.js","../node_modules/.pnpm/dayjs@1.11.6/node_modules/dayjs/locale/pl.js","../node_modules/.pnpm/dayjs@1.11.6/node_modules/dayjs/locale/en.js","../../../src/DefaultReconnectPolicy.ts","../../../src/Errors.ts","../../../src/HttpClient.ts","../../../src/FetchHttpClient.ts","../../../src/XhrHttpClient.ts","../../../src/ITransport.ts","../../../src/DefaultHttpClient.ts","../../../src/HeaderNames.ts","../../../src/AbortController.ts","../../../src/LongPollingTransport.ts","../../../src/ServerSentEventsTransport.ts","../../../src/WebSocketTransport.ts","../../../src/HttpConnection.ts","../../../src/TextMessageFormat.ts","../../../src/HandshakeProtocol.ts","../../../src/IHubProtocol.ts","../../../src/Subject.ts","../../../src/HubConnection.ts","../../../src/JsonHubProtocol.ts","../../../src/HubConnectionBuilder.ts"],"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","LogLevel","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","Arg","match","Platform","window","document","isBrowser","isWebWorker","isReactNative","getDataDetail","data","includeContent","detail","isArrayBuffer","byteLength","view","Uint8Array","str","num","toString","substr","formatArrayBuffer","ArrayBuffer","sendMessage","logger","transportName","httpClient","url","accessTokenFactory","content","options","headers","token","getUserAgentHeader","log","Trace","logMessageContent","responseType","post","timeout","withCredentials","response","statusCode","createLogger","ConsoleLogger","Information","NullLogger","SubjectSubscription","subject","observer","_subject","_observer","index","observers","indexOf","splice","cancelCallback","catch","_","minimumLogLevel","_minLevel","out","console","logLevel","message","msg","Date","toISOString","Critical","Warning","warn","userAgentHeaderName","isNode","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","version","os","runtime","runtimeVersion","userAgent","majorAndMinor","split","process","platform","versions","node","getErrorString","e","stack","getGlobalThis","globalThis","global","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","F","s","n","_e","f","normalCompletion","didErr","step","_e2","constants","require","E","trackPriority","util","TwilioWarning","getUserAgent","navigator","delegateMethod","wrapper","methodName","_i","isNonArrayObject","hidePrivateProperties","getOwnPropertyNames","startsWith","hideProperty","hidePublicProperties","arrayToJSON","array","map","valueToJSON","Set","Map","__spreadArray","entries","reduce","json","_a","_c","assign","createBandwidthProfileVideoPayload","bandwidthProfileVideo","createRSPPayload","prop","payloadProp","transform","createRenderDimensionsPayload","createDimensionsPayload","dimensions","renderDimensions","propConversions","payload","_d","createBandwidthProfilePayload","bandwidthProfile","createMediaSignalingPayload","dominantSpeaker","networkQuality","trackSwitchOff","adaptiveSimulcast","renderHints","transports","active_speaker","network_quality","render_hints","publisher_hints","track_priority","track_switch_off","createMediaWarningsPayload","notifyWarnings","mediaWarnings","recordingMediaLost","twilioWarningName","createRoomConnectEventPayload","connectOptions","boolToString","sessionSID","iceServers","audioTracks","tracks","kind","videoTracks","dataTracks","_b","eventProp","Number","JSON","stringify","networkQualityConfiguration","remote","local","video","videoBPOptions_1","bandwidthProfileOptions","group","level","createSubscribePayload","automaticSubscription","rules","all","revision","asLocalTrack","track","LocalAudioTrack","LocalVideoTrack","LocalDataTrack","MediaStreamTrack","INVALID_TYPE","asLocalTrackPublication","signaling","unpublish","LocalTrackPublication","audio","LocalAudioTrackPublication","LocalVideoTrackPublication","LocalDataTrackPublication","capitalize","word","toUpperCase","deprecateEvents","emitter","events","warningsShown","on","newListener","event","has","deprecated","get","add","size","removeListener","difference","list1","list2","item","filterObject","filterValue","filtered","flatMap","list","mapFn","listArray","from","flattened","mapped","concat","getPlatform","trim","toLowerCase","hidePrivateAndCertainPublicPropertiesInClass","klass","_this","__extends","isDeepEqual","val1","val2","every","val1Keys","sort","val2Keys","inRange","min","max","makeUUID","replace","r","Math","random","c","oncePerTick","nextTick","clearTimeout","setTimeout","promiseFromEvents","operation","eventEmitter","successEvent","failureEvent","onSuccess","onFailure","once","getOrNull","path","output","defer","deferred","promise","delegateMethods","proxyProperties","propertyName","addEventListener","dispatchEvent","proxyProperty","legacyPromise","buildLogLevels","default","media","webrtc","trackClass","trackPublicationClass","publication","withJitter","jitter","rand","floor","isChromeScreenShareTrack","guessBrowser","getSettings","isUserMediaTrack","deviceId","waitForSometime","timeoutMS","waitForEvent","eventTarget","onevent","removeEventListener","_inherits","subClass","superClass","packageInfo","module","SDK_NAME","SDK_VERSION","SDP_FORMAT","hardwareDevicePublisheriPad","hwDeviceManufacturer","hwDeviceModel","hwDeviceType","platformName","hardwareDevicePublisheriPhone","DEFAULT_ENVIRONMENT","DEFAULT_REALM","DEFAULT_REGION","DEFAULT_LOG_LEVEL","DEFAULT_LOGGER_NAME","WS_SERVER","environment","region","encodeURIComponent","PUBLISH_MAX_ATTEMPTS","PUBLISH_BACKOFF_JITTER","PUBLISH_BACKOFF_MS","typeErrors","ILLEGAL_INVOKE","includes","INVALID_VALUE","RangeError","join","REQUIRED_ARGUMENT","DEFAULT_FRAME_RATE","DEFAULT_VIDEO_PROCESSOR_STATS_INTERVAL_MS","DEFAULT_ICE_GATHERING_TIMEOUT_MS","DEFAULT_SESSION_TIMEOUT_SEC","DEFAULT_NQ_LEVEL_LOCAL","DEFAULT_NQ_LEVEL_REMOTE","MAX_NQ_LEVEL","ICE_ACTIVITY_CHECK_PERIOD_MS","ICE_INACTIVITY_THRESHOLD_MS","iceRestartBackoffConfig","factor","reconnectBackoffConfig","subscriptionMode","MODE_COLLABORATION","MODE_GRID","MODE_PRESENTATION","trackSwitchOffMode","MODE_DISABLED","MODE_DETECTED","MODE_PREDICTED","PRIORITY_HIGH","PRIORITY_LOW","PRIORITY_STANDARD","clientTrackSwitchOffControl","MODE_AUTO","MODE_MANUAL","videoContentPreferencesMode","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Reflect","construct","EventEmitter","eventMap","__events","handlerList","emit","var_args","_slicedToArray","arr","arrayWithHoles","_s","_arr","_n","unsupportedIterableToArray","nonIterableRest","_assertThisInitialized","ReferenceError","t","u","a","h","d","l","$","y","M","weekdays","months","ordinal","m","String","v","z","utcOffset","abs","date","year","month","clone","ceil","p","w","D","ms","Q","g","S","O","locale","$L","utc","$u","x","$x","$offset","parse","$d","NaN","test","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","$locale","weekStart","$set","daysInMonth","round","subtract","format","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toUTCString","T","extend","$i","isDayjs","en","Ls","isProperty","propDesc","guessBrowserVersion","prefix","chrome","firefox","safari","regex","RegExp","major","minor","isIOSChrome","interceptEvent","currentListener","support","mediaDevices","getUserMedia","RTCPeerConnection","_defineProperty","EPSILON","ARRAY_TYPE","Float32Array","RANDOM","setMatrixArrayType","degree","PI","toRadian","equals","b","glMatrix","copy","identity","fromValues","m00","m01","m10","m11","transpose","a1","invert","a0","a2","a3","det","adjoint","determinant","multiply","b0","b1","b2","b3","rotate","rad","sin","cos","scale","v0","v1","fromRotation","fromScaling","frob","hypot","LDU","L","U","exactEquals","multiplyScalar","multiplyScalarAndAdd","sqrt","mul","sub","tx","ty","aa","ab","ac","ad","atx","aty","a4","a5","b4","b5","translate","fromTranslation","fromMat4","m02","m12","m20","m21","m22","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","b00","b02","b10","b12","b20","b22","fromMat2d","fromQuat","q","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","width","height","a6","a7","a8","b6","b7","b8","m03","m13","m23","m30","m31","m32","m33","axis","len","rotateX","rotateY","rotateZ","fromXRotation","fromYRotation","fromZRotation","fromRotationTranslation","xy","xz","yz","fromQuat2","translation","bx","by","bz","bw","ax","ay","az","aw","magnitude","getTranslation","mat","getScaling","getRotation","scaling","is1","is2","is3","sm11","sm12","sm13","sm21","sm22","sm23","sm31","sm32","sm33","trace","fromRotationTranslationScale","sx","sy","sz","fromRotationTranslationScaleOrigin","ox","oy","oz","out0","out1","out2","out4","out5","out6","out8","out9","out10","frustum","left","right","bottom","top","near","far","rl","tb","nf","perspective","fovy","aspect","tan","Infinity","perspectiveFromFieldOfView","fov","upTan","upDegrees","downTan","downDegrees","leftTan","leftDegrees","rightTan","rightDegrees","xScale","yScale","ortho","lr","bt","lookAt","eye","center","up","x0","x1","y0","y1","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","targetTo","a9","a14","a15","b9","b13","b14","b15","divide","scaleAndAdd","distance","squaredDistance","squaredLength","negate","inverse","normalize","dot","cross","lerp","hermite","factorTimes2","factor1","factor2","factor3","factor4","bezier","inverseFactor","inverseFactorTimesTwo","zScale","transformMat4","transformMat3","transformQuat","qx","qy","qz","qw","uvx","uvy","uvz","uuvx","uuvy","uuvz","w2","angle","mag","cosine","acos","zero","div","dist","sqrDist","sqrLen","vec","stride","offset","count","B","C","G","I","J","v2","v3","v4","s1","s2","ix","iy","iz","iw","setAxisAngle","getAxisAngle","out_axis","getAngle","dotproduct","calculateW","exp","et","ln","atan2","pow","slerp","omega","cosom","sinom","scale0","scale1","u1","u2","u3","sqrt1MinusU1","sqrtU1","invDot","conjugate","fromMat3","fRoot","fTrace","j","k","fromEuler","halfToRad","cx","cy","cz","vec4","rotationTo","tmpvec3","vec3","xUnitVec3","yUnitVec3","sqlerp","temp1","temp2","setAxes","matr","mat3","dq","w1","fromRotationTranslationValues","outer","quat","mat4","getReal","getDual","setReal","setDual","ax1","ay1","az1","aw1","bx1","by1","bz1","ax2","ay2","az2","aw2","rotateByQuatAppend","rotateByQuatPrepend","rotateAroundAxis","axisLength","ax0","ay0","az0","aw0","bw1","bx0","by0","bz0","bw0","mt","sqlen","a_dot_b","transformMat2","transformMat2d","p0","p1","sinC","cosC","ReflectOwnKeys","R","ReflectApply","receiver","Function","NumberIsNaN","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","existing","warning","unshift","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","bind","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","listeners","addListener","prependListener","prependOnceListener","position","originalListener","shift","spliceOne","off","removeAllListeners","rawListeners","eventNames","prefixProperty","property","style","documentElement","prefixList","prefixedProperty","setWithVendorPrefix","element","setTransform","setTransformOrigin","getWithVendorPrefix","setNullTransform","setNullTransformOrigin","setAbsolute","setPixelPosition","setPixelSize","setNullSize","setFullSize","setOverflowHidden","overflow","setOverflowVisible","setNoPointerEvents","pointerEvents","_getPrototypeOf","WebGlStage","WebGlCubeRenderer","WebGlFlatRenderer","WebGlEquirectRenderer","registerDefaultRenderers","CubeGeometry","FlatGeometry","EquirectGeometry","RectilinearView","FlatView","ImageUrlSource","SingleAssetSource","StaticAsset","DynamicAsset","TextureStore","Layer","RenderLoop","KeyControlMethod","DragControlMethod","QtvrControlMethod","ScrollZoomControlMethod","PinchZoomControlMethod","VelocityControlMethod","ElementPressControlMethod","Controls","Dynamics","Viewer","Scene","Hotspot","HotspotContainer","colorEffects","registerDefaultControls","autorotate","cancelize","chain","clamp","clearOwnProperties","cmp","compose","convertFov","decimal","defaults","degToRad","delay","dom","hash","inherits","mod","noop","now","pixelRatio","radToDeg","real","retry","tween","dependencies","bowser","hammerjs","deprecationWarningsByComponentConstructor","defaultGetLogger","getLogger","moduleName","component","logLevels","loggerName","validateLogLevels","_component","_logLevels","_warnings","_loggerName","_logLevelsEqual","_logger","setDefaultLevel","Log","getLevelByName","validateLogLevel","parseInt","lastIndexOf","levels","messages","_levels","LOG_LEVEL_VALUES","DEBUG","deprecationWarning","deprecationWarnings","componentConstructor","getDeprecationWarnings","INFO","WARN","ERROR","customMessage","OFF","LOG_LEVELS_SET","LOG_LEVEL_NAMES","Parent","Class","isNativeReflectConstruct","_cache","Wrapper","superCtor","super_","TempCtor","defaultsObj","_typeof","velocity","friction","d1","d2","other","update","elapsed","offsetFromVelocity","velocityAfter","dec","decreaseAbs","nullVelocityTime","velocityEnd","TwilioError","TwilioErrorByCode","createTwilioError","code","_super","AccessTokenInvalidError","AccessTokenHeaderInvalidError","AccessTokenIssuerInvalidError","AccessTokenExpiredError","AccessTokenNotYetValidError","AccessTokenGrantsInvalidError","AccessTokenSignatureInvalidError","SignalingConnectionError","SignalingConnectionDisconnectedError","SignalingConnectionTimeoutError","SignalingIncomingMessageInvalidError","SignalingOutgoingMessageInvalidError","SignalingServerBusyError","RoomNameInvalidError","RoomNameTooLongError","RoomNameCharsInvalidError","RoomCreateFailedError","RoomConnectFailedError","RoomMaxParticipantsExceededError","RoomNotFoundError","RoomMaxParticipantsOutOfRangeError","RoomTypeInvalidError","RoomTimeoutOutOfRangeError","RoomStatusCallbackMethodInvalidError","RoomStatusCallbackInvalidError","RoomStatusInvalidError","RoomRoomExistsError","RoomInvalidParametersError","RoomMediaRegionInvalidError","RoomMediaRegionUnavailableError","RoomSubscriptionOperationNotSupportedError","RoomCompletedError","RoomAudioOnlyFlagNotSupportedError","RoomTrackKindNotSupportedError","ParticipantIdentityInvalidError","ParticipantIdentityTooLongError","ParticipantIdentityCharsInvalidError","ParticipantMaxTracksExceededError","ParticipantNotFoundError","ParticipantDuplicateIdentityError","TrackInvalidError","TrackNameInvalidError","TrackNameTooLongError","TrackNameCharsInvalidError","TrackNameIsDuplicatedError","TrackServerTrackCapacityReachedError","MediaClientLocalDescFailedError","MediaServerLocalDescFailedError","MediaClientRemoteDescFailedError","MediaServerRemoteDescFailedError","MediaNoSupportedCodecError","MediaConnectionError","MediaDTLSTransportFailedError","ConfigurationAcquireFailedError","ConfigurationAcquireTurnFailedError","_unsupportedIterableToArray","minLen","_toConsumableArray","arrayLikeToArray","iterableToArray","_possibleConstructorReturn","each","hasXMLHttpRequest","XMLHttpRequest","makePromise","maybePromise","isPromise","performance","WebRTC","getStats","MediaStream","RTCIceCandidate","RTCSessionDescription","hasTouchScreen","maxTouchPoints","isIpad","screen","isIphone","isAndroid","isIOS","isMobile","isNonChromiumEdge","browser","mobileWebKitBrowser","find","rebrandedChromeBrowser","matches","string","openParenthesisPositions","substrings","openParenthesisPosition","getParenthesizedSubstrings","nameAndVersion","autoStart","_delay","_fn","_timeout","start","Timeout","isSet","clear","initialState","states","graph","lock","newStates","transformStates","_lock","_reachableStates","newGraph","reachableFrom","_state","_states","_whenDeferreds","isLocked","when","StateMachine","delete","transitionFunction","releaseLock","hasLock","releaseLockCompletely","takeLock","_key","newState","isValidTransition","oldLock","takeLockSync","preemptionKey","transition","depth","nameOrKey","key_1","makeLock","_whenPromise","createUnreachableError","to","here","there","nInstances","getReceiver","channel","_instanceId","_log","createLog","_getReceiver","_receiverPromise","_transport","MediaSignaling","id","_teardown","receiverPromise","toDataTransport","ex","_setPrototypeOf","_logLevel","_message","makeLevelList","levelPropertiesList","LevelClass","level1","level2","makeSelectableLevelList","levelList","_fallbackOnly","typ","isSdpSemanticsSupported","chromeSdpFormat","getChromeSdpFormat","sdpSemantics","checkIfSdpSemanticsIsSupported","pc","addTransceiver","close","getChromeDefaultSdpFormat","getMatches","pattern","lines","results","line","getTrackIds","sdp","getPlanBTrackIds","getUnifiedPlanTrackIds","getPlanBSSRCs","trackId","getMediaSections","direction","mediaSection","kindPattern","directionPattern","getMediaSectionSSRCs","getUnifiedPlanSSRCs","mediaSections","msidAttrRegExp","matchingMediaSections","getTrackIdsToSSRCs","getSSRCs","getPlanBTrackIdsToSSRCs","getUnifiedPlanTrackIdsToSSRCs","updateTrackIdsToSSRCs","trackIdsToSSRCs","newTrackIdsToSSRCs","newSSRCsToOldSSRCs","ssrcs","oldSSRCs","newSSRCs","oldSSRC","newSSRC","replacement","clearChromeCachedSdpFormat","getSdpFormat","RTCRtpTransceiver","updatePlanBTrackIdsToSSRCs","updateUnifiedPlanTrackIdsToSSRCs","_arrayLikeToArray","arr2","internals","connect","createLocalAudioTrack","createLocalVideoTrack","isSupported","Logger","internalOptions","createLocalTracks","runPreflight","devicePixelRatio","deviceXDPI","logicalXDPI","systemXDPI","Hammer","nextId","idProperty","getKeyForElementAndType","HammerGestures","_managers","_refCount","HammerGesturesHandle","hammerGestures","manager","_manager","_element","_type","_hammerGestures","_eventHandlers","_createManager","Manager","Pan","DIRECTION_ALL","threshold","pointers","Pinch","_releaseHandle","destroy","handlerFilteredEvents","pointerType","release","eventHandler","NativeAudioContext","AudioContext","webkitAudioContext","_AudioContext","_audioContext","_holders","AudioContextFactory","holder","_isNativeReflectConstruct","sham","Proxy","Boolean","_arrayWithHoles","_nonIterableRest","_iterableToArray","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER$1","_PERFORMANCE","measure","MutationObserver","_ref$userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","head","createElement","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","PRODUCTION","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","RESERVED_CLASSES","createClass","_extends","toConsumableArray","initial","FontAwesomeConfig","initialKeys","_default","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","keepOriginalSource","measurePerformance","showMissingIcons","config$1","newConfig","params","_params$asNewDefault","asNewDefault","validKeys","ok","configKey","styles","hooks","shims","namespace","functions","loaded","doScroll","readyState","meaninglessTransform","flipX","flipY","insertCss","css","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","insertBefore","_uniqueId","nextUniqueId","toArray","classArray","classList","getAttribute","getIconName","cls","parts","iconName","htmlEscape","joinStyles","acc","styleName","transformIsMeaningful","transformForSvg","_ref","containerWidth","iconWidth","inner","ALL_SPACE","makeInlineSvgAbstract","_params$icons","icons","main","mask","symbol","title","extra","_params$watchable","watchable","found","widthClass","attrClass","classes","children","attributes","tag","_ref2","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","fill","maskInnerGroup","maskOuterGroup","maskId","clipId","defs","maskUnits","maskContentUnits","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","noop$2","preamble","end","perf","initialValue","thisContext","func","bindInternal4","styles$2","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","ligatures","ligature","hasRegular","shim","oldName","styles$1","getCanonicalIcon","rest","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","joinAttributes","noop$1","isWatched","mutators","mutation","newOuterHTML","parentNode","outerHTML","newNode","replaceChild","nest","abstract","forSvg","splitClasses","toSvg","toNode","newInnerHTML","perform","mutations","callback","callbackFunction","requestAnimationFrame","op","mutator","disabled","mo","classParser","existingPrefix","existingIconName","innerText","unicode","byUnicode","charCodeAt","toHex","parseTransformString","transformString","first","parseFloat","parseMeta","_classParser","extraClasses","extraStyles","styleParser","transformParser","symbolParser","extraAttributes","attr","attributesParser","maskParser","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","opacity","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","STYLE_TO_PREFIX","findIcon","generateMutation","nodeMeta","computedFontSize","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","generateLayersText","generateSvgReplacementMutation","remove","removeChild","root","querySelectorAll","pos","fontFamily","getPropertyValue","pseudoElement","nextSibling","textContent","firstChild","appendChild","onTree","htmlClassList","hclAdd","suffix","HTML_CLASS_I2SVG_BASE_CLASS","hclRemove","prefixes","prefixesDomQuery","candidates","onNode","drc","fp","rc","dPatt","rPatt","normalized","addPack","Library","classCallCheck","definitions","_len","additions","_pullDefinitions","definition","_normalized$key","prepIcon","_cssInserted","ensureCss","apiObject","abstractCreator","container","html","findIconDefinition","_params$prefix","library","i2svg","_params$node","_params$callback","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$title","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","api$1","noAuto","disconnect","text","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","layer","assembler","autoReplace","bunker","FontAwesome","treeCallback","nodeCallback","pseudoElementsCallback","objects","mutationRecord","addedNodes","_getCanonicalIcon","observe","getElementsByTagName","childList","characterData","subtree","addShims","_namespace$shims","_objectSpread","consoleLogger","concreteLogger","debug","bool","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","baseLogger","cloned","_cloned","res","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","escape","isIE10","userAgentData","chars","ownKeys$1","_objectSpread$1","deepFind","keySeparator","paths","current","mix","endsWith","joinedPath","ResourceStore","_EventEmitter","ns","defaultNS","ignoreJSONStructure","lng","silent","addNamespaces","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","interpolate","na","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","option","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","one","two","few","many","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","rule","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","number","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","parseFormatStr","formatStr","formatName","formatOptions","optStr","currency","range","opt","_opt$split","_opt$split2","createCachedFormatter","cache","formatter","Formatter","formats","NumberFormat","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","errors","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","initializedStoreOnce","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","opts","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","called","propertyMap","HTMLImageElement","HTMLCanvasElement","ImageBitmap","supported","_widthProp","_heightProp","timestamp","isDynamic","ua","getFirstMatch","getSecondMatch","iosdevice","android","nexusMobile","nexusTablet","chromeos","silk","sailfish","tizen","webos","windowsphone","windows","mac","linux","edgeVersion","versionIdentifier","tablet","mobile","xbox","opera","samsungBrowser","whale","mzbrowser","coast","focus","yandexbrowser","ucbrowser","maxthon","epiphany","puffin","sleipnir","kMeleon","osname","msedge","msie","chromeBook","vivaldi","seamonkey","firefoxos","phantom","slimer","blackberry","touchpad","bada","qupzilla","chromium","googlebot","blink","webkit","gecko","ios","osVersion","getWindowsVersion","osversion","osMajorVersion","compareVersions","getVersionPrecision","precision","chunks","delta","chunk","isUnsupportedBrowser","minVersions","strictMode","_bowser","browserList","browserItem","check","_detect","Level","levelProperties","fallbackOnly","numHorizontalTiles","tileWidth","numVerticalTiles","tileHeight","isFinite","toPrecision","argList","fnList","cfn","_cfn","cancel","EventTarget","_eventEmitter","Track","nPhases","_onVisibilityChange","_emitVisible","visibilityState","DocumentVisibilityMonitor","phaseListeners","isVisible","phase","_emitVisiblePhase","_listenerCount","_start","_stop","onCreate","onCancel","_isCancelable","_isCanceled","_onCancel","reason","CancelablePromise","_promise","finally","TrackPublication","sid","_reemitSignalingEvent","_reemitTrackEvent","isTrackEnabled","_signaling","_unpublish","isEnabled","priority","updatedPriority","trackSid","priorityValues","setPriority","_track","isSubscribed","publishPriority","isSwitchedOff","_setEnabled","_setSwitchedOff","RemoteTrackPublication","setSimulcastInMediaSection","ptToFixedBitrateAudioCodecName","createCodecMapForMediaSection","section","createPtToCodecName","codecMap","pair","pt","codecName","pts","createMidToMediaSectionMap","midsToMediaSections","mid","getMidForMediaSection","getPayloadTypesInMediaSection","ptToCodecName","rtpmapPattern","getFmtpAttributesForPt","fmtpRegex","attrs","nvPair","midMatches","setPayloadTypesInMediaSection","payloadTypes","mLine","otherLines","filterCodecsInMediaSection","peerMidsToMediaSections","codecsToRemove","peerSection","peerPtToCodecs","codecsToPts","peerPt","peerCodec","matchingPts","peerFmtpAttrs","matchingPt","fmtpAttrs","getMatchingPayloadTypes","rtxPts","rtxPt","apt","ptMatches","addOrRewriteTrackIds","midsToTrackIds","msid","trackIdToRewrite","msidRegex","generateFmtpLineFromPtAndAttributes","serializedFmtpAttrs","addOrRewriteNewTrackIds","activeMidsToTrackIds","trackIdsByKind","newMidsToTrackIds","trackIds","disableRtx","rtxSSRCMatches","rtxSSRC","filterRegexes","enableDtxForOpus","mids","session","opusPt","opusFmtpAttrs","origOpusFmtpLine","origOpusFmtpRegex","usedtx","opusFmtpLineWithDtx","filterLocalCodecs","localSdp","remoteSdp","localMediaSections","localSession","remoteMidsToMediaSections","localSection","removeSSRCAttributes","ssrcAttributesToRemove","srcAttribute","revertSimulcast","localSdpWithoutSimulcast","revertForAll","remoteMidToMediaSections","localMidToMediaSectionsWithoutSimulcast","remoteSection","remotePtToCodecs","remotePayloadTypes","isVP8ThePreferredCodec","setCodecPreferences","preferredAudioCodecs","preferredVideoCodecs","preferredCodecs","preferredPayloadTypes","remainingCodecs","remainingPayloadTypes","getReorderedPayloadTypes","newSection","pcmaPayloadTypes","pcmuPayloadTypes","setSimulcast","trackIdsToAttributes","vp8PayloadTypes","some","payloadType","NetworkQualityStats","connecting","connected","reconnecting","disconnected","_identity","_networkQualityLevel","_networkQualityStats","_sid","ParticipantSignaling","preempt","networkQualityLevel","networkQualityLevels","Stage","HtmlImageLoader","ispot","browserQuirks","_generateMipmaps","generateMipmaps","_loader","_domElement","_gl","canvas","alpha","premultipliedAlpha","antialias","preserveDrawingBuffer","gl","getContext","wrapContext","initWebGlContext","_handleContextLoss","_rendererInstances","WebGlTexture","stage","tile","asset","_stage","_texture","_timestamp","_width","_height","refresh","domElement","webGlContext","setSizeForType","ratio","loadImage","rect","maxTextureSize","getParameter","MAX_TEXTURE_SIZE","validateLayer","tileSize","geometry","maxTileSize","createRenderer","Renderer","rendererInstances","renderer","destroyRenderer","_renderers","startFrame","viewport","drawingBufferWidth","drawingBufferHeight","clearColor","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","enable","DEPTH_TEST","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","endFrame","takeSnapshot","quality","render","toDataURL","texture","maxSize","deleteTexture","createTexture","bindTexture","TEXTURE_2D","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","texImage2D","RGBA","UNSIGNED_BYTE","HTMLVideoElement","texSubImage2D","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_LINEAR","generateMipmap","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TextureClass","WorkTask","cb","WorkQueue","_queue","_paused","paused","_currentTask","_lastFinished","task","_cancel","pause","resume","_finish","remaining","totalWidth","totalHeight","spec","absoluteWidth","relativeWidth","absoluteHeight","relativeHeight","absoluteX","relativeX","absoluteY","relativeY","globalObject","NetworkError","WebGlBaseRenderer","WebGlCommon","createConstantBuffers","destroyConstantBuffers","createShaderProgram","destroyShaderProgram","enableAttributes","disableAttributes","setViewport","setupPixelEffectUniforms","setDepth","setTexture","vertexSrc","fragmentSrc","vertexIndices","vertexPositions","textureCoords","attribList","uniformList","projMatrix","viewportMatrix","translateVector","scaleVector","constantBuffers","shaderProgram","startLayer","useProgram","uniformMatrix4fv","uViewportMatrix","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","aVertexPosition","FLOAT","FALSE","aTextureCoord","effects","uOpacity","colorOffset","uColorOffset","colorMatrix","uColorMatrix","endLayer","renderTile","layerZ","centerX","centerY","scaleX","scaleY","rotX","rotY","uProjMatrix","ELEMENT_ARRAY_BUFFER","drawElements","TRIANGLES","UNSIGNED_SHORT","createShader","src","shader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","createConstantBuffer","usage","buffer","createBuffer","bufferData","defaultColorOffset","defaultColorMatrix","vertexShader","VERTEX_SHADER","fragmentShader","FRAGMENT_SHADER","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","attrib","getAttribLocation","uniform","getUniformLocation","shaderList","getAttachedShaders","detachShader","deleteShader","deleteProgram","STATIC_DRAW","Uint16Array","deleteBuffer","numAttrs","ACTIVE_ATTRIBUTES","enableVertexAttribArray","disableVertexAttribArray","activeTexture","TEXTURE0","uniform1i","uSampler","tileZ","uniform1f","uDepth","offsetX","clampedOffsetX","leftExcess","maxClampedWidth","clampedWidth","rightExcess","offsetY","clampedOffsetY","bottomExcess","maxClampedHeight","clampedHeight","topExcess","uniforms","uniform4fv","invProjMatrix","uInvProjMatrix","textureCrop","textureX","textureY","textureWidth","textureHeight","uTextureX","uTextureY","uTextureWidth","uTextureHeight","WebGlCube","WebGlFlat","WebGlEquirect","registerRenderer","TileSearcher","_stack","_visited","_vertices","search","startingTile","visited","vertices","_clear","intersects","neighbors","capacity","_capacity","_buckets","_size","bucket","existingElement","LruMap","_keys","_values","_index","existingKey","del","evictedKey","existingValue","convert","fromDimension","toDimension","atan","htov","htod","vtoh","vtod","dtoh","dtov","initialArg","timer","LruSet","MARZIPANODEBUG","textureStore","State","defaultOptions","previouslyVisibleCacheSize","CancelError","TextureStoreItem","_id","_store","_tile","_asset","_changeHandler","loadAsset","_source","_delimCount","_itemMap","_visible","_previouslyVisible","_pinMap","_newVisible","_noLongerVisible","_visibleAgain","_evicted","_unloadTile","clearNotPinned","markTile","_update","otherTile","_loadTile","tmp","pin","unpin","query","pinCount","visible","previouslyVisible","hasAsset","hasTexture","pinned","canceled","_geometry","_view","_textureStore","_effects","_fixedLevelIndex","_viewChangeHandler","_textureStoreChangeHandler","setEffects","mergeEffects","fixedLevel","setFixedLevel","levelIndex","_selectLevel","selectLevel","selectableLevelList","visibleTiles","pinLevel","tiles","levelTiles","unpinLevel","pinFirstLevel","unpinFirstLevel","sourceObj","_running","_rendering","_requestHandle","_boundLoop","_loop","_renderInvalidHandler","renderOnNextFrame","cancelAnimationFrame","keyCode","parameter","_keyCode","_parameter","_velocity","_friction","_keydownHandler","_handlePress","_keyupHandler","_handleRelease","_blurHandler","_handleBlur","_dynamics","_pressing","maxFriction","maxFrictionTime","hammerEvent","controls","_opts","_startEvent","_lastEvent","_active","_hammer","_handleHammerEvent","_handleStart","_handleMove","_handleEnd","isFirst","isFinal","preventDefault","_updateDynamicsMove","_updateDynamicsRelease","deltaX","deltaY","eventToSubtract","elementRect","tmpReleaseFriction","velocityX","velocityY","exportName","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","setTimeoutContext","bindFn","invokeArrayArg","dest","merge","inherit","base","properties","childP","baseP","boolOrFn","ifUndefined","addEventListeners","types","splitStr","removeEventListeners","hasParent","parent","inStr","inArray","findByKey","uniqueArray","prefixed","camelProp","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","DIRECTION_VERTICAL","DIRECTION_UP","PROPS_XY","PROPS_CLIENT_XY","Input","inputTarget","domHandler","ev","inputHandler","eventType","input","pointersLen","changedPointersLen","changedPointers","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getDistance","offsetDelta","prevDelta","prevInput","computeDeltaXY","offsetDirection","getDirection","rotation","last","lastInterval","getVelocity","computeIntervalInputData","srcEvent","computeInputData","recognize","clientX","clientY","p2","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","allow","pressed","button","which","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","DIRECTION_LEFT","preventSrc","STATE_CANCELLED","STATE_FAILED","Recognizer","simultaneous","requireFail","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","preset","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","stateStr","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","toggleCssProps","force","stopped","curRecognizer","gestureEvent","createEvent","initEvent","gesture","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","Tap","Swipe","Rotate","Press","changeVectorNorm","theta","speed","_updateDynamics","maxDim","frictionTime","zoomDelta","_eventList","withSmoothing","withoutSmoothing","_wheelListener","wheelEventDelta","multiplier","deltaMode","currentTime","_handleEvent","Composer","_methods","_methodGroups","_composer","_enabled","enabled","_activeCount","updatedViews_","_attachedRenderLoop","detach","methods","registerMethod","active","activeHandler","_handleActive","inactiveHandler","_handleInactive","enableMethod","unregisterMethod","disableMethod","_incrementActiveCount","_listen","_updateComposer","_decrementActiveCount","_unlisten","addMethodGroup","groupId","methodIds","removeMethodGroup","methodGroups","enableMethodGroup","methodId","disableMethodGroup","disable","attach","renderLoop","_beforeRenderHandler","_updateViewsWithControls","attached","_checkActiveCount","composer","controlData","offsets","changing","layers","listLayers","updateWithControlParameters","viewer","_viewer","_layers","_hotspotContainer","_controlContainer","_movement","_movementStartTime","_movementStep","_movementParams","_movementCallback","_updateMovementHandler","_updateMovement","_updateHotspotContainerHandler","_updateHotspotContainer","stopMovement","destroyAllLayers","hotspotContainer","scene","createLayer","textureStoreOpts","layerOpts","destroyLayer","switchTo","switchScene","lookTo","ease","controlsInterrupt","duration","transitionDuration","shortest","initialParams","parameters","finalParams","normalizeToClosest","reenableControls","startMovement","finalUpdate","param","movement","setParameters","show","hide","calcRect","positionAbsolutely","setPointerEvents","parentDomElement","_parentDomElement","_renderLoop","_hotspots","_rect","_visibilityOrRectChanged","_stageWidth","_stageHeight","_tmpRect","_hotspotContainerWrapper","_updateHandler","destroyHotspot","setRect","createHotspot","coords","hotspot","hasHotspot","listHotspots","tmpRect","display","extraTransforms","_coords","_perspective","setPosition","setPerspective","_position","radius","_setEmbeddedPosition","coordinatesToScreen","_setPosition","coordinatesToPerspectiveTransform","mouseViewMode","dragMode","controlMethods","mouseViewDrag","mouseViewQtvr","leftArrowKey","rightArrowKey","upArrowKey","downArrowKey","plusKey","minusKey","wKey","aKey","sKey","dKey","qKey","eKey","enabledControls","scrollZoom","controlMethodGroups","arrowKeys","plusMinusKeys","wasdKeys","qeKeys","pinch","touchView","methodGroup","cancelled","startTime","runUpdate","tweenVal","undefinedType","isIE","logMethods","bindMethod","traceForIE","realMethod","replaceLoggingMethods","methodFactory","enableLoggingWhenConsoleArrives","defaultMethodFactory","defaultLevel","factory","currentLevel","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","location","getLevel","setLevel","persist","SILENT","levelNum","levelName","persistLevelIfPossible","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","noConflict","getLoggers","SID_CHARS","createSID","ChromeRTCSessionDescription","descriptionInitDict","description","_description","high","low","Latch","whenDeferreds","createUnreachableStateError","lower","raise","mediaTrackTransceiver","AudioTrack","localMediaRestartDeferreds","playPausedElementsIfNotBackgrounded","isStarted","_attachments","_dummyEl","_elShims","WeakMap","_isStarted","_playPausedElementsIfNotBackgrounded","_shouldShimAttachedElements","workaroundWebKitBug212780","_unprocessedTrack","_MediaStream","mediaStreamTrack","processedTrack","_initialize","MediaTrack","oncanplay","_createElement","onended","_end","muted","_attach","srcObject","el","_selectElement","onUnintentionallyPaused","race","whenResolved","play","origPause","origPlay","pausedIntentionally","onPause","unShim","shimMediaElement","mediaStream","getTracks","removeTrack","addTrack","autoplay","playsInline","selector","querySelector","_getAllAttachedElements","els","_detachElements","elements","_detachElement","_audio","_video","LocalMediaRestartDeferreds","detectSilentAudio","detectSilentVideo","documentVisibilityMonitor","gUMSilentTrackWorkaround","MediaTrackSender","restartWhenInadvertentlyStopped","localMediaTrack","detectSilence","trackChangeInProgress","shouldReacquireTrack","isStopped","isInadvertentlyStopped","_workaroundWebKitBug1208516Cleanup","isSilent","maybeRestart","shouldReacquire","_restart","removeMediaStreamTrackListeners","addMediaStreamTrackListeners","resolveDeferred","onMute","startDeferred","onVisibilityChange","offVisibilityChange","AudioOrVideoTrack","workaroundWebKitBug1208516","isCreatedByCreateLocalTracks","mediaTrackSender","_constraints","_getUserMedia","_gUMSilentTrackWorkaround","_workaroundWebKitBug1208516","_didCallEnd","_isCreatedByCreateLocalTracks","_trackSender","LocalMediaTrack","constraints","gUMConstraints","_reacquireTrack","newMediaStreamTrack","_setMediaStreamTrack","setMediaStreamTrack","audioContext","stream","createMediaStreamSource","analyser","createAnalyser","fftSize","samples","timeoutDidFire","doDetectSilence","getByteTimeDomainData","sample","samplesLeft","doCheckSilence","drawImage","frameDataWithoutAlpha","getImageData","checkSilence","getOrCreate","doWorkaround","_clones","_senders","_senderToPublisherHintCallbacks","isPublishing","clones","senders","_replaceTrack","sender","publisherHintCallback","encodings","replaceTrack","setPublisherHint","replaceTrackResult","MediaTrackTransceiver","TrackTransceiver","VideoProcessorEventObserver","_captureTimeoutId","_isCapturing","_inputFrame","_outputFrame","_processorEventObserver","_unmuteHandler","VideoTrack","canCaptureFrames","_checkIfCanCaptureFrames","processFramePeriodMs","captureFrame","frameRate","checkResult","processFrame","requestFrame","onloadedmetadata","dimensionsChanged","videoWidth","videoHeight","onresize","DIMENSIONS_CHANGED","removeProcessor","addProcessor","dummyEl","OffscreenCanvas","_restartProcessor","captureStream","captureHeight","captureWidth","inputFrameRate","isRemoteVideoTrack","_updateElementsMediaStreamTrack","_captureFrames","clearRect","maxPacketLifeTime","maxRetransmits","ordered","DataTrackTransceiver","NetworkMonitor","closed","early","open","waiting","WS_CLOSE_WELCOME_TIMEOUT","WS_CLOSE_HEARTBEATS_MISSED","WS_CLOSE_HELLO_FAILED","WS_CLOSE_SEND_FAILED","WS_CLOSE_BUSY_WAIT","WS_CLOSE_SERVER_BUSY","toplevel","WebSocket","CloseReason","BUSY","FAILED","LOCAL","REMOTE","TIMEOUT","wsCloseCodesToCloseReasons","serverUrl","helloBody","maxConsecutiveFailedHellos","maxConsecutiveMissedHeartbeats","requestedHeartbeatTimeout","openTimeout","welcomeTimeout","networkMonitor","_close","_busyWaitTimeout","_consecutiveHeartbeatsMissed","_cookie","_eventObserver","eventObserver","_heartbeatTimeout","_hellosLeft","_messageQueue","_networkMonitor","_options","_openTimeout","_sendHeartbeatTimeout","_serverUrl","_welcomeTimeout","_ws","eventsToLevels","_connect","TwilioConnection","CLOSING","CLOSED","ws","_startHandshake","_handleBad","_handleBusy","_handleMessage","_handleHeartbeat","_handleWelcome","keepAlive","retryAfter","body","negotiatedTimeout","heartbeatTimeout","outgoingHeartbeatTimeout","_handleHeartbeatTimeout","_send","_sendHeartbeat","OPEN","hello","sendOrEnqueue","_sendHello","_handleWelcomeTimeout","_sendOrEnqueue","_samples","denominator","numerator","MovingAverageDelta","denominatorDelta","VALID_GROUPS","VALID_LEVELS","publisher","connectTimestamp","eventListener","elapsedTime","publisherPayload","publish","EventObserver","browserdetection","sdkName","sdkVersion","realm","gateway","createGateway","maxReconnectAttempts","reconnectIntervalMs","_connectTimestamp","_eventQueue","_readyToConnect","_reconnectAttemptsLeft","_WebSocket","roomSid","participantSid","maybeReconnect","_session","connectInterval","timeToWait","reconnect","InsightsPublisher","groupName","eventName","_publish","handleConnectResponse","connectRequest","validateObject","propChecks","validateBandwidthProfile","validateRenderDimensions","validateLocalTrack","trackName","RemoteAudioTrack","RemoteAudioTrackPublication","RemoteDataTrack","RemoteDataTrackPublication","RemoteVideoTrack","RemoteVideoTrackPublication","indexed","indexedTracks","indexedAudioTracks","indexedVideoTracks","indexedDataTracks","indexTracksById","_RemoteAudioTrack","_RemoteAudioTrackPublication","_RemoteDataTrack","_RemoteDataTrackPublication","_RemoteVideoTrack","_RemoteVideoTrackPublication","_audioTracks","_dataTracks","_clientTrackSwitchOffControl","_contentPreferencesMode","contentPreferencesMode","_tracks","_trackEventReemitters","_trackPublicationEventReemitters","_trackSignalingUpdatedEventCallbacks","_videoTracks","networkQualityStats","reemitTrackEvents","participant","stateChanged","reemitters","reemitter","trackSignaling","reemitSignalingStateChangedEvents","Participant","publicationEventReemitters","_getTrackPublicationEvents","publicationEvent","participantEvent","reemitTrackPublicationEvents","participantSignaling","trackSignalingAdded","trackSignalingRemoved","_addTrackPublication","trackSignalingSubscribed","_removeTrack","trackSignalingUnsubscribed","setTrackTransceiver","updated","_removeTrackPublication","trackTransceiver","RemoteTrack","newPriority","updateSubscriberTrackPriority","renderHint","updateTrackRenderHint","_addTrack","trackEventReemitters","_getTrackEvents","trackEvent","eventPair","mediaTrackReceiver","setRenderHint","_isEnabled","_isSwitchedOff","_priority","_setPriority","_setRenderHint","_workaroundWebKitBug212780","_workaroundWebKitBug212780Cleanup","RemoteMediaTrack","remoteMediaTrack","onVisibilityChanged","playIfPausedWhileInBackground","LocalAudioTrackStats","LocalVideoTrackStats","RemoteAudioTrackStats","RemoteVideoTrackStats","peerConnectionId","statsResponse","prepareForInsights","localAudioTrackStats","report","localVideoTrackStats","remoteAudioTrackStats","remoteVideoTrackStats","StatsReport","statsReport","bytesSent","packetsSent","roundTripTime","LocalTrackStats","ssrc","packetsLost","codec","TrackStats","bytesReceived","packetsReceived","RemoteTrackStats","_min","_max","_jitter","_factor","_attempts","_duration","deviation","_timeoutID","Backoff","average","SenderOrReceiverReport","sum","bitrate","deltaPacketsLost","deltaPacketsReceived","fractionLost","phonyFractionLost","ReceiverReport","olderStats","newerStats","secondsElapsed","deltaBytesReceived","reports","summaries","summarize","xs","rtt","SenderReport","newerRemoteStats","deltaBytesSent","initialStats","lastStats","SenderOrReceiverReportFactory","RecordingSignaling","DefaultRecordingSignaling","DefaultTimeout","localParticipant","sessionTimeout","_disconnect","_reconnectingError","_mediaConnectionIsReconnecting","_sessionTimeout","dominantSpeakerSid","participants","recording","connectionState","iceConnectionState","RoomSignaling","maybeUpdateState","roomSignaling","signalingConnectionState","NetworkQualitySendStats","NetworkQualityRecvStats","recv","sendStats","recvStats","NetworkQualityMediaStats","NetworkQualityBandwidthStats","NetworkQualityFractionLostStats","NetworkQualityLatencyStats","bandwidth","latency","NetworkQualitySendOrRecvStats","_error","_trackTransceiver","TrackSignaling","createLocalTrack","createOptions","getDefaults","loadPath","addPath","allowMultiLoading","parsePayload","request","reloadInterval","customHeaders","queryStringParams","crossDomain","overrideMimeType","requestOptions","mode","credentials","Backend","allOptions","setInterval","_readAny","loadUrlLanguages","loadUrlNamespaces","resolvedLoadPath","loadUrl","status","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetch","ActiveXObject","fetchNode","addQueryString","queryString","paramName","fetchIt","fetchOptions","statusText","omitFetchOptions","reqOptions","requestWithFetch","setRequestHeader","onreadystatechange","responseText","requestWithXmlHttpRequest","fieldContentRegExp","serializeCookie","maxAge","domain","expires","httpOnly","secure","sameSite","minutes","cookieOptions","setTime","nameEQ","ca","cookie$1","lookupCookie","cookieMinutes","cookieDomain","querystring","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","testKey","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","pathname","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","hostname","Browser","detectors","i18nOptions","order","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","vnodeId","rerenderQueue","prevDebounce","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","ref","normalizedProps","defaultProps","createVNode","original","vnode","__","__b","__e","__d","__h","Fragment","Component","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","debounceRendering","commitQueue","oldVNode","oldDom","parentDom","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","reorderChildren","placeChild","unmount","applyRef","toChildArray","nextDom","sibDom","setStyle","setProperty","oldValue","useCapture","cssText","eventProxyCapture","eventProxy","removeAttribute","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","newType","contextType","doRender","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","oldHtml","newHtml","nodeType","localName","createTextNode","createElementNS","is","dangerouslySetInnerHTML","hydrate","diffProps","checked","diffElementNodes","diffed","parentVNode","skipRemove","componentWillUnmount","replaceNode","handled","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","__source","__self","$f72b75cf796873c7$export$2e2bcd8739ae039","$c84d045dcc34faf5$var$CACHE","$c84d045dcc34faf5$var$VERSIONS","emoji","$c84d045dcc34faf5$var$isSupported","$c84d045dcc34faf5$var$isEmojiSupported","ctx","willReadFrequently","CANVAS_WIDTH","textSize","CANVAS_HEIGHT","font","textBaseline","fillStyle","fillText","measureText","$c84d045dcc34faf5$export$2e2bcd8739ae039","$b22cfd0a55410b4f$var$DEFAULTS","$b22cfd0a55410b4f$var$Index","$b22cfd0a55410b4f$export$2e2bcd8739ae039","emojiId","$b22cfd0a55410b4f$var$get","maxFrequentRows","perLine","emojiIds","emojiId1","aScore","bScore","localeCompare","removedIds","removedId","$8d50d93417ef682a$exports","autoFocus","emojiButtonColors","emojiButtonRadius","emojiButtonSize","emojiSize","emojiVersion","choices","navPosition","noCountryFlags","noResultsEmoji","previewEmoji","previewPosition","searchPosition","skin","skinTonePosition","theme","categories","categoryIcons","custom","i18n","getImageURL","getSpritesheetURL","onAddCustomEmoji","onClickOutside","onEmojiSelect","stickySearch","$7adb23b0109cc36a$export$dbe3113d60765c1a","$7adb23b0109cc36a$export$2d0294657ab35f1b","$7adb23b0109cc36a$var$fetchCache","$7adb23b0109cc36a$var$fetchJSON","$7adb23b0109cc36a$var$promise","$7adb23b0109cc36a$var$initCallback","$7adb23b0109cc36a$var$initialized","$7adb23b0109cc36a$export$2cd8252107eb640b","caller","$7adb23b0109cc36a$var$_init","emoticons","natives","emojis","aliases","alias","originalCategories","category","prevCategory","emoji1","c1","c2","latestVersionSupport","latestVersion","categoryIndex","resetSearchIndex","category1","emojiIndex","emoji2","keywords","strings","flat","emoticon","skinIndex","skins","native","skinShortcodes","shortcodes","$7adb23b0109cc36a$export$75fe5f91d452f94b","_props","$7adb23b0109cc36a$export$88c9ddb45cea7241","propName","$c4d155af13ad4d4b$var$Pool","maxResults","words","pool","value1","scores","score","$c4d155af13ad4d4b$export$2e2bcd8739ae039","$c4d155af13ad4d4b$var$search","$e6eae5155b87f591$export$bcb25aa587e9cb13","$693b183b0a78708f$export$e772c8ff12451969","frames","$693b183b0a78708f$export$d10ac59fbe52a745","emojiData","unified","$fcccfb36ed0cde68$export$2e2bcd8739ae039","activity","outline","xmlns","viewBox","solid","foods","frequent","nature","people","places","loupe","SHORTCODES_REGEX","fallback","emojiSkin","imageSrc","spritesheet","spritesheetSrc","maxWidth","maxHeight","alt","backgroundImage","backgroundSize","sheet","cols","rows","backgroundPosition","$6f57cc9cd54c5aaa$export$2e2bcd8739ae039","attributeChangedCallback","Props","unregister","HTMLElement","$26f27c338a96b1a6$export$2e2bcd8739ae039","setShadow","injectStyles","attachShadow","shadowRoot","$3d90f6e46fb2dd47$export$2e2bcd8739ae039","$331b4160623139bf$export$2e2bcd8739ae039","customElements","currentComponent","prevRaf","afterPaintEffects","oldBeforeDiff","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","flushAfterPaintEffects","invokeCleanup","invokeEffect","raf","HAS_RAF","hasErrored","hook","comp","cleanup","shallowDiffers","PureComponent","isPureReactComponent","oldDiffHook","for","Forwarded","oldCatchError","oldUnmount","Suspense","_suspenders","suspended","SuspenseList","_map","suspendingVNode","suspendingComponent","onResolved","onSuspensionComplete","suspendedVNode","removeOriginal","detachedParent","originalParent","wasHydrating","detachedComponent","detachedClone","effect","revealOrder","delegated","unsuspend","wrappedUnsuspend","REACT_ELEMENT_TYPE","CAMEL_PROPS","onChangeInputType","isReactComponent","oldEventHook","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","nativeEvent","classNameDescriptor","oldVNodeHook","nonCustomElement","multiple","selected","className","$$typeof","$ec8c39fdad15601a$var$THEME_ICONS","light","dark","$ec8c39fdad15601a$export$2e2bcd8739ae039","categoryId","svg","__html","selectedCategoryIndex","unfocused","onMouseDown","onClick","renderIcon","$e0d4dda61265ff1e$export$2e2bcd8739ae039","nextProps","$89bd6bb200cc8fef$var$Performance","$89bd6bb200cc8fef$export$2e2bcd8739ae039","showSkins","closeSkins","closest","stopImmediatePropagation","getEmojiByPos","searchInput","searchResults","afterRender","scroll","scrollTop","selectionStart","grid","setsize","row","__categoryId","__index","ignoreMouse","currentTarget","navigate","down","handleEmojiClick","clearSearch","unfocusSearch","handleSearchInput","scrollTo","menu","skinToneRadio","handleBaseClick","handleBaseKeydown","visibleRows","getInitialState","initTheme","dir","rtl","navigation","skinToneButton","initGrid","register","nextState","nextStateTimer","requiresGridReset","unobserve","observeCategories","observeRows","handleClickOutside","navKey","addRow","rowIndex","rowRef","posinset","darkMedia","matchMedia","visibleCategories","observerOptions","IntersectionObserver","dataset","intersectionRatio","ratios","id1","isIntersecting","rootMargin","blur","repeat","increment","row1","keyboard","scrollRect","rowTop","rowBot","mouseIsIgnored","ignoreMouseTimer","tempSkin","handleCategoryClick","noSearchResults","search_no_results_1","search_no_results_2","pick","renderSkinToneButton","tabindex","onMouseEnter","handleEmojiOver","onMouseLeave","lineHeight","borderRadius","backgroundColor","renderSkinTone","placeholder","handleSearchClick","onInput","onKeyDown","handleSearchKeyDown","autoComplete","ii","renderEmojiButton","add_custom","hidden","visibility","targetRow","choose","openSkins","skinToneButtonRect","baseRect","role","defaultChecked","onChange","handleSkinMouseOver","handleSkinClick","renderPreview","renderNav","renderSearch","renderSearchResults","renderCategories","renderSkins","renderLiveRegion","$efa000751917694d$export$2e2bcd8739ae039","$ec698219c781274f$exports","getWindow","isElement","Element","isHTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","offsetWidth","offsetHeight","visualViewport","addVisualOffsets","offsetLeft","offsetTop","getWindowScroll","win","scrollLeft","pageXOffset","pageYOffset","getNodeName","nodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","host","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","contain","willChange","getContainingBlock","auto","basePlacements","popper","variationPlacements","placement","placements","modifierPhases","modifiers","modifier","requires","requiresIfExists","dep","depModifier","debounce","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","reference","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","orderModifiers","merged","mergeByName","_ref3","_ref3$options","cleanupFn","noopFn","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","roundOffsetsByDPR","initialStyles","margin","arrow","attribute","getOppositePlacement","getOppositeVariationPlacement","contains","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","clientWidth","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","within","mathMax","mathMin","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","capture","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","normalizeToArray","pushIfUnique","arrayFrom","removeUndefinedProps","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","isNodeList","setTransitionDuration","setVisibilityState","getOwnerDocument","elementOrElements","updateTransitionEndListener","box","action","actualContains","_target$getRootNode","currentInput","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","activeElement","isIE11","msCrypto","pluginProps","animateFill","followCursor","inlinePositioning","sticky","appendTo","aria","expanded","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveBorder","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","plugins","popperOptions","showOnCreate","trigger","triggerTarget","allowHTML","animation","inertia","zIndex","defaultKeys","getExtendedPassedProps","passedProps","plugin","evaluateProps","valueAsString","getDataAttributeProps","createArrowElement","setContent","getChildren","firstElementChild","boxChildren","backdrop","onUpdate","prevProps","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","popperInstance","isMounted","isShown","clearDelayTimeouts","setProps","partialProps","invokeHook","removeListeners","addListeners","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","hasAttribute","getIsDefaultRenderFn","addDocumentPress","getDefaultTemplateChildren","handleAriaContentAttribute","onTransitionEnd","onTransitionedIn","mount","isAlreadyHidden","removeDocumentPress","onTransitionedOut","hideWithInteractivity","getDocument","destroyPopperInstance","pluginsHooks","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","fromHide","shouldInvokePropsHook","pluginHooks","currentValue","nextValue","onDocumentPress","actualTarget","composedPath","onTouchMove","onTouchStart","onBlurOrFocusOut","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","_instance$popperInsta","popperState","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","relatedTarget","computedReference","tippyModifier","touchValue","touchDelay","tippy","targets","optionalProps","instances","setDefaultProps","RendererRegistry","forwardTileCmp","t1","t2","reverseTileCmp","_progressive","progressive","_tilesToLoad","_tilesToRender","_tmpVisible","_tmpChildren","_tmpSize","_createTextureWorkQueue","_emitRenderInvalid","_rendererRegistry","removeAllLayers","geometryType","viewType","setSize","hasLayer","addLayer","rendererClass","moveLayer","removeLayer","removedLayer","stableLayer","tilesToLoad","tilesToRender","stableStage","_collectTiles","tmpVisible","isStable","needsFallback","_collectTileToLoad","_collectTileToRender","_collectChildren","_collectParents","tmpChildren","needsLoading","_collectTileIntoList","tileList","useCreateImageBitmap","createImageBitmap","createImageBitmapOpts","imageOrientation","premultiplyAlpha","img","Image","crossOrigin","onload","_handleLoad","onerror","_handleError","naturalWidth","naturalHeight","bitmap","faceList","faceRotation","origin","rotateVector","faceVectors","face","adjacentFace","neighborOffsets","CubeTile","_level","CubeLevel","_tileSize","_validateWithParentLevel","_tileSearcher","_neighborsCache","_vec","_viewSize","rot","makeVertex","parentLevel","childLevel","nHoriz","nVert","tileX","tileY","cachedResult","numX","numY","newX","newY","newZ","newFace","xCoord","yCoord","numHorizontal","numVertical","parentWidth","parentHeight","parentTileWidth","parentTileHeight","parentNumHorizontal","parentNumVertical","maxX","maxY","_closestTile","ray","inverseProjection","minAngle","closestFace","vector","viewSize","tileSearcher","Tile","vec2","FlatTile","FlatLevel","_tileWidth","_tileHeight","levelWidth","levelHeight","common","EquirectTile","EquirectLevel","defaultFov","fovLimitEpsilon","limiter","_yaw","yaw","_pitch","pitch","_roll","roll","_fov","_projectionCenterX","projectionCenterX","_projectionCenterY","projectionCenterY","_limiter","_projMatrix","_invProjMatrix","_frustum","_projectionChanged","_params","_fovs","_tmpVec","setYaw","_resetParams","setPitch","setRoll","setFov","setProjectionCenterX","setProjectionCenterY","offsetYaw","yawOffset","offsetPitch","pitchOffset","offsetRoll","rollOffset","offsetFov","fovOffset","setLimiter","oldYaw","oldPitch","oldRoll","oldFov","oldProjectionCenterX","oldProjectionCenterY","oldWidth","oldHeight","newYaw","_normalize","newPitch","newRoll","newFov","newWidth","newHeight","newProjectionCenterX","newProjectionCenterY","_normalizeCoordinates","hfovPi","maxFov","viewYaw","viewPitch","coordYaw","coordPitch","prevYaw","nextYaw","prevPitch","nextPitch","vfov","hfov","axisScaledX","axisScaledY","zoom","_updateProjection","offsetAngleX","offsetAngleY","fovs","_matrixToFrustum","rectangle","vertex","plane","inside","corner","requiredPixels","coverFactor","screenToCoordinates","vecx","vecy","limit","vmin","vmax","resolution","minFov","traditional","maxResolution","maxVFov","maxHFov","planeAxes","planeCmp","mediaAspectRatio","_x","_y","_zoom","_mediaAspectRatio","setX","setY","setZoom","xOffset","yOffset","offsetZoom","zoomOffset","setMediaAspectRatio","oldX","oldY","oldZoom","oldMediaAspectRatio","newZoom","newMediaAspectRatio","_zoomX","_zoomY","zoomX","zoomY","zoomFactor","minZoom","visibleX","maxZoom","minX","visibleY","minY","letterbox","viewportAspectRatio","fullHeightZoom","WorkPool","templateProperties","sourceFromTile","_loadPool","concurrency","_retryDelay","retryDelay","_retryMap","_sourceFromTile","propertyRegExp","delayAmount","retryMap","tileSource","lastTime","delayFn","fromString","faceOrder","cubeMapPreviewFaceOrder","cubeMapPreviewUrl","cubeMapUrl","withoutPreview","tileUrl","templateProperty","regExp","valueFromTile","_concurrency","_pool","markDirty","_keyBuckets","_valBuckets","keyBucket","valBucket","_elements","evictedElement","__webpack_amd_options__","setVelocity","setFriction","_pressHandler","_releaseHandler","ControlComposer","_parameters","_now","nowForTesting","_composedOffsets","_composeReturn","dynamics","parameterDynamicsHandler","_indexOfInstance","storedDynamics","parameterDynamics","newTime","_resetComposedOffsets","methodDynamics","currentVelocity","Timer","ControlCursor","updateSize","_updateSizeListener","_controls","_controlMethods","_hammerManagerTouch","_hammerManagerMouse","_dragCursor","cursors","drag","_scenes","_currentScene","_replacedScene","_cancelCurrentTween","_layerChangeHandler","_updateSceneLayers","_idleTimer","_resetIdleTimerHandler","_resetIdleTimer","_triggerIdleTimerHandler","_triggerIdleTimer","_stopMovementHandler","_idleMovement","_removeSceneEventListeners","destroyScene","createScene","createEmptyScene","currentScene","replacedScene","oldLayers","newLayers","_removeLayerFromStage","_addLayerToStage","_addSceneEventListeners","destroyAllScenes","hasScene","listScenes","setIdleMovement","setDuration","breakIdleMovement","idleMovement","defaultTransitionUpdate","newScene","oldScene","oldSceneLayers","newSceneLayers","stageLayers","transitionUpdate","_startTime","_handle","_check","_setup","defaultOpts","inactive","_attached","_setActiveCursor","_setCursor","_setInactiveCursor","_setDisabledCursor","_setOriginalCursor","cursor","_updateAttachmentHandler","_updateAttachment","_detachFromControlMethod","_attachToControlMethod","controlMethod","applyToPixel","pixel","vec4TransformMat4Transposed","tmpPixel","resultArg","applyToImageData","imageData","defaultAccel","yawSpeed","pitchSpeed","fovSpeed","yawAccel","pitchAccel","fovAccel","targetPitch","targetFov","timeDelta","yawDelta","pitchDelta","fovDelta","lastYawSpeed","lastPitchSpeed","lastFovSpeed","currentYawSpeed","currentPitchSpeed","currentFovSpeed","pitchThresh","fovThresh","deg","workaround180748","createLocalTrackCalls","fullOptions","isAudioVideoAbsent","logComponentName","localTrackOptions","extraLocalTrackOptions","defaultDeviceCaptureMode","noiseCancellationOptions","mediaStreamConstraints","workaroundWebKitBug180748","mediaStreamTracks","getAudioTracks","getVideoTracks","noisecancellationimpl_1","cleanTrack","noiseCancellation","error_1","originalTrack","_processor","_sourceTrack","_disabledPermanent","NoiseCancellationImpl","vendor","reacquire","processorWasEnabled","noisecancellationadapter_1","ex_1","dynamicImport","PLUGIN_CONFIG","krisp","supportedVersion","pluginFile","rnnoise","audioProcessors","audioProcessor","pluginConfig","rootDir","sdkAssetsPath","sdkFilePath","dynamicModule","plugin_1","getVersion","pluginVersion","supportedVersions","pluginVersions","tempContext","ensureVersionSupported","isConnected","setLogging","sourceTrack","er_1","scope","URL","api","__twilioVideoImportedModules","guess","guessVersion","isChrome","isSafari","chromeMajorVersion","standardizeChromeOrSafariActiveIceCandidatePairStats","stats","activeCandidatePairStats","stat","nominated","activeLocalCandidateStats","localCandidateId","activeRemoteCandidateStats","remoteCandidateId","standardizedCandidateStatsKeys","standardizedLocalCandidateStatsKeys","standatdizedLocalCandidateStatsReport","keyInfo","standardizedRemoteCandidateStatsReport","fixup","localCandidate","remoteCandidate","standardizeFirefoxActiveIceCandidatePairStats","ffKeys","candidateTypes","peerreflexive","relayed","serverreflexive","peerConnection","localOrRemote","getSendersOrReceivers","senderOrReceiver","chromeOrSafariGetTrackStats","standardizeChromeLegacyStats","inbound","outbound","remoteInbound","remoteOutbound","localMedia","isRemote","remoteSource","standardizedStats","statSources","getStatValue","sourceFound","statSource","mimeType","frameWidth","frameWidthReceived","frameWidthSent","frameWidthInput","frameHeight","frameHeightReceived","frameHeightSent","frameHeightInput","framesPerSecond","audioLevel","audioOutputLevel","audioInputLevel","totalPacketSendDalay","totalPacketSendDelay","totalEncodeTime","framesEncoded","estimatedPlayoutTimestamp","totalDecodeTime","framesDecoded","jitterBufferDelay","jitterBufferEmittedCount","standardizeChromeOrSafariStats","ssrcReport","names","frameRateInput","frameRateSent","frameRateReceived","standardizeFirefoxStats","remoteId","second","localAudioTracks","localVideoTracks","remoteAudioTracks","remoteVideoTracks","activeIceCandidatePair","trackStatsPromises","triple","statsArrayName","testForChrome","testForFirefox","firefoxGetTrackStats","testForSafari","getTrackStats","trackStatsArray","trackStats","getActiveIceCandidatePairStats","activeIceCandidatePairStatsReport","_getStats","RTCRtpSenderShim","sdpUtils","isUnifiedPlan","ChromeRTCPeerConnection","configuration","newConfiguration","iceTransportPolicy","iceTransports","sdpFormat","_appliedTracksToSSRCs","_localStream","_peerConnection","_pendingLocalOffer","_pendingRemoteOffer","_rolledBackTracksToSSRCs","_sdpFormat","_signalingStateLatch","_tracksToSSRCs","localDescription","remoteDescription","signalingState","shimDataChannel","ontrack","addStream","setDescription","offer","pendingLocalOffer","pendingRemoteOffer","intermediateState","setLocalDescription","answer","setRemoteDescription","setRemoteAnswer","previousSignalingState","Event","hasReceiversForTracksOfKind","getTransceivers","transceiver","needsMaxPacketLifeTimeShim","RTCDataChannel","dataChannel","maxRetransmitTime","tracksToSSRCs","removeStream","getSenders","addIceCandidate","candidate","createAnswer","createOffer","offerToReceiveVideo","_audioTransceiver","offerToReceiveAudio","_videoTransceiver","createDataChannel","label","dataChannelDict","shimDataChannelInit","FirefoxRTCSessionDescription","updateTracksToSSRCs","FirefoxRTCPeerConnection","_initiallyNegotiatedDtlsRole","_isClosed","_rollingBack","iceGatheringState","overwriteWithInitiallyNegotiatedDtlsRole","dispatchEventToSelf","rollback","onceRolledBack","saveInitiallyNegotiatedDtlsRole","dtlsRole","idp","SafariRTCPeerConnection","LocalAudioTrackClass","defaultDeviceLabel","defaultDeviceId","defaultGroupId","_currentDefaultDeviceInfo","_defaultDeviceCaptureMode","enumerateDevices","_onDeviceChange","defaultDeviceInfo","deviceInfos","_restartDefaultDevice","_restartOnDefaultDeviceChangeCleanup","_maybeRestartOnDefaultDeviceChange","isNotEqualToCapturedDeviceIdOrEqualToDefault","requestedDeviceId","isCapturingFromDefaultDevice","checkIfCapturingFromDefaultDevice","deviceIdConstraint","exact","ideal","reacquireTrack","restartConstraints","restart","mixinLocalMediaTrack","attemptsLeft","LocalVideoTrackClass","workaroundSilentLocalVideo","_workaroundSilentLocalVideo","_workaroundSilentLocalVideoCleanup","useProcessed","unprocessedTrack","_setSenderMediaStreamTrack","localVideoTrack","onUnmute","_lastStatsSaveTime","_lastStatsPublishTime","_processorInfo","_stats","_reemitEvent","_getEventData","_maybeEmitStats","_name","benchmark","_benchmark","outputFrameRate","getRate","getAverageDelay","averages","toFixed","LocalDataTrackClass","DefaultDataTrackSender","dataTrackSender","DataTrackSender","reliable","maxRetransmtis","_dataChannels","_addClone","removeClone","PreflightProgress","notEmpty","timer_1","wsServer","constants_1","_testDuration","_testTiming","_runPreflightTest","PreflightTest","_stopped","collectedStats","testTiming","getTimeMeasurement","networkTiming","dtls","_dtlsTiming","ice","_iceTiming","_peerConnectionTiming","_connectTiming","_mediaTiming","makestat_1","packetLoss","selectedIceCandidatePairStats","iceCandidateStats","progressEvents","_progressEvents","mos","stepName","timeoutError","MAX_STEP_DURATION","stepPromise","timeoutPromise","_resolve","dtlsTransport","_updateProgress","transport","eventPublisher","undefinedValue","reportToInsights","jitterStats","rttStats","packetLossStats","mosStats","candidateTypeToProtocols","candidateStats","candidateType","protocol","protocols","fromEntries","insightsReport","preflightSID","dtlsTiming","iceTiming","peerConnectionTiming","connectTiming","mediaTiming","selectedLocalCandidate","selectedRemoteCandidate","localTracks","pcs","_setupInsights","elements_1","_executePreflightStep","syntheticaudio_1","syntheticvideo_1","senderPC_1","bundlePolicy","receiverPC_1","remoteTracksPromise","remoteTracks","updatedOffer","_collectNetworkTimings","remoteTracks_1","_collectRTCStatsForDuration","outgoingBitrate","incomingBitrate","collectedStats_1","_generatePreflightReport","preflightReport","senderPC","receiverPC","getCombinedConnectionStats_1","subscriber","combinedStats","packets","hasLastData","_sentBytesMovingAverage","putSample","_receivedBytesMovingAverage","_packetLossMovingAverage","fractionPacketLost","percentPacketsLost","mos_1","STAT_INTERVAL","index_1","_collectRTCStats","remainingDuration","r0","effectiveLatency","rFactor","mosValue","getStatValues","statName","reportTypes","makeStandardCandidateStats","altKeys","keysToLookFor","publisherStats","subscriberStats","timestamps","trackRoundTripTime","currentRoundTripTime","selectedCandidatePairId","candidatePairs","activeCandidatePairStatsFound","extractSelectedActiveCandidatePair","events_1","twilioConnection","edge","preflight","ICE_VERSION","messageData","ice_servers","onNetworkChanged","nav","connection","_listener","networkChanged","isOnline","_target","onLine","total","audioContextFactory","oscillator","createOscillator","dst","createMediaStreamDestination","originalStop","fillRect","animate","createCancelableRoomPromise","EncodingParametersImpl","LocalParticipant","NullInsightsPublisher","NetworkQualityConfigurationImpl","Room","SignalingV2","DefaultLog","safariVersion","connectCalls","didPrintSafariWarning","isSafariWithoutVP8Support","safariMajorVersion","safariMinorVersion","deprecatedConnectOptionsProps","didWarn","shouldDelete","newName","deprecatedBandwidthProfileOptions","deprecateOptions","deprecationTable","createLocalParticipant","encodingParameters","localParticipantSignaling","createLocalParticipantSignaling","createRoom","room","createRoomSignaling","getLocalTracks","handleLocalTracks","shouldStopLocalTracks","normalizeCodecSettings","nameOrSettings","settings","dtx","simulcast","maxVideoBitrate","eventPublisherOptions","enableDscp","insights","maxAudioBitrate","wsServerInsights","Signaling","cancelableRoomPromise","cancelableRoomSignalingPromise","cancellationError","isCanceled","getCancelableRoomSignalingPromise","shouldEmitChanged","maxKindBitrate","tracksToStop","_LocalAudioTrack","_LocalDataTrack","_LocalVideoTrack","_MediaStreamTrack","_LocalAudioTrackPublication","_LocalDataTrackPublication","_LocalVideoTrackPublication","_tracksToStop","signalingRegion","_handleTrackSignalingEvents","addedTrack","_addLocalTrack","removedTrack","localTrackDisabled","localTrack","getPublication","localTrackEnabled","localTrackStopped","_getOrCreateLocalTrackPublication","localTrackPublication","getTrackPublication","warningHandler","warningsClearedHandler","unpublishTrack","localTrackOrMediaStreamTrack","trackPublication","allowedAudioProcessors","disablePermanently","addedLocalTrack","publishTrack","setNetworkQualityConfiguration","getParameters","publishFailed","unpublishedTracks","unpublishedTrack","trackPublications","mixinRemoteMediaTrack","dataTrackReceiver","RemoteMediaVideoTrack","enableDocumentVisibilityTurnOff","NullObserver","ResizeObserver","_enableDocumentVisibilityTurnOff","_documentVisibilityTurnOffCleanup","_invisibleElements","WeakSet","_elToPipCallbacks","_elToPipWindows","_turnOffTimer","_resizeObserver","maybeUpdateDimensionHint","_intersectionObserver","shouldSetRenderHint","maybeUpdateEnabledHint","contentPreferences","pipCallbacks","onEnterPip","onLeavePip","_onEnterPip","_onLeavePip","onResizePip","_onResizePip","videoEl","pipWindow","pictureInPictureWindow","removeVideoTrack","setupDocumentVisibilityTurnOff","_observePip","_unObservePip","remoteVideoTrack","visibleElements","pipElements","totalElements","el1","el2","_callback","visibleEntry","_makeFakeEntry","invisibleEntry","videoElement","NullResizeObserver","NullIntersectionObserver","_connected","RemoteParticipant","_participants","isRecording","mediaRegion","handleLocalParticipantEvents","connectParticipant","_unsubscribeTracks","handleSignalingEvents","verifyNoiseCancellation","responses","rewriteLocalTrackIds","trackStat","trackSender","getSender","eventListeners","eventOrPair","reemit","remoteTrack","_subscribed","addedPublication","_unsubscribe","unsubscribedTrack","clearTrackHint","removedPublication","captureDimensions","captureFrameRate","defaultCreateCancelableRoomSignalingPromise","LocalParticipantV2","createCancelableRoomSignalingPromise","_createCancelableRoomSignalingPromise","_wsServer","DefaultPeerConnectionManager","DefaultRoomV2","DefaultTransport","PeerConnectionManager","RoomV2","Transport","peerConnectionManager","trackSenders","trackV2","setTrackSenders","cancelablePromise","transportOptions","onIced","setConfiguration","createAndOffer","dequeue","connectEventPayload","PeerConnectionV2","QueueingEventEmitter","offerOptions","_audioContextFactory","_closedPeerConnectionIds","_configuration","_configurationDeferred","_connectionState","_dummyAudioTrackSender","createDummyAudioMediaStreamTrack","_encodingParameters","_iceConnectionState","_dataTrackSenders","_lastConnectionState","_lastIceConnectionState","_mediaTrackSenders","_offerOptions","_peerConnections","_preferredCodecs","_PeerConnectionV2","effectiveAdaptiveSimulcast","setEffectiveAdaptiveSimulcast","cs","peerConnectionStates","peerConnectionIds","PeerConnectionV2_1","dummyAudioMediaStreamTrack","removeDataTrackSender","removeMediaTrackSender","updateConnectionState","updateIceConnectionState","addDataTrackSender","addMediaTrackSender","_getConfiguration","_getOrCreate","getTrackReceivers","peerConnectionState","getState","period","setIceReconnectTimeout","dataTrackSenders","mediaTrackSenders","changes","getDataTrackSenderChanges","getMediaTrackSenderChanges","getTrackSenderChanges","isApplicationSectionNegotiated","applyTrackSenderChanges","synced","_closeAbsentPeerConnections","peerConnections","fromRank","toRank","new","checking","completed","failed","summarizeIceOrPeerConnectionStates","state1","state2","pcm","DefaultBackoff","DefaultRTCIceCandidate","DefaultRTCPeerConnection","DefaultRTCSessionDescription","getStatistics","IceBox","DefaultIceConnectionMonitor","DataTrackReceiver","MediaTrackReceiver","TrackMatcher","workaroundIssue8329","updating","getConfiguration","IceConnectionMonitor","chromeSpecificConstraints","optional","googDscp","_appliedTrackIdsToAttributes","_dataTrackReceivers","_descriptionRevision","_didGenerateLocalCandidates","_enableDscp","_isChromeScreenShareTrack","_iceGatheringFailed","_iceGatheringTimeout","_handleIceGatheringTimeout","_iceRestartBackoff","_isIceConnectionInactive","_isIceLite","_isIceRestartBackoffInProgress","_isRestartingIce","_lastStableDescriptionRevision","_localCandidates","_localCodecs","_localCandidatesRevision","_localDescriptionWithoutSimulcast","_localDescription","_localUfrag","_remoteCodecMaps","_rtpSenders","_rtpNewSenders","_iceConnectionMonitor","_mediaTrackReceivers","_needsAnswer","_negotiationRole","_onEncodingParametersChanged","updateEncodingParameters","_preferredAudioCodecs","_preferredVideoCodecs","_shouldApplyDtx","_queuedDescription","_iceReconnectTimeout","_recycledTransceivers","_replaceTrackPromises","_remoteCandidates","_setCodecPreferences","_setSimulcast","_revertSimulcast","_RTCIceCandidate","_RTCPeerConnection","_RTCSessionDescription","_shouldOffer","_shouldRestartIce","_trackIdsToAttributes","_trackMatcher","_mediaTrackSenderToPublisherHints","_handleConnectionStateChange","_handleDataChannelEvent","_handleIceCandidateEvent","_handleIceConnectionStateChange","_handleIceGatheringStateChange","_handleSignalingStateChange","_handleTrackEvent","adaptiveSimulcastEntry","trackReplaced","_isAdaptiveSimulcastEnabled","_updateEncodings","screenShareActiveLayerConfig_1","scaleResolutionDownBy","encoding","activeLayerConfig","trackPixels_1","activeLayersInfo","pixels","maxActiveLayers","activeLayers_1","_addIceCandidate","pcv2","recycledTransceivers","localCodec","remoteCodecMap","takeRecycledTransceiver","oldTrackId","ufrag","getUfrag","setUfrag","_addIceCandidates","_setRemoteDescription","updatedSdp","_shouldApplySimulcast","sdpWithoutSimulcast","_setLocalDescription","_checkIceBox","_updateDescription","_maybeReoffer","errorToThrow","_publishMediaWarning","_answer","didReoffer","_offer","isIceConnectedOrComplete","_initiateIceRestartBackoff","signaledTrackId","trackReceiver","backoff","_initiateIceRestart","shouldReoffer","senders_1","shouldOffer","sendersOfKind","isSenderOfKind","hasDataTrack","hasApplicationMediaSection","iceRestart","activeTransceivers","assignedTransceivers","_getMediaTrackSenderId","sdp1","unassignedTransceivers","newTrackIdsByKind","sdp2","publishWarning","_addOrRewriteLocalTrackIds","negotiationCompleted","sdpWithoutSimulcastForNonVP8MediaSections","_rollbackAndApplyOffer","_handleGlare","iceState","addDataChannel","_setPublisherHint","layerIndex","_maybeUpdateEncodings","_addOrUpdateTransceiver","addSender","localDescriptionRevision","bracket","tryTransition","removeDataChannel","removeSender","setDelay","updates","_updateIce","rewriteLocalTrackId","rewriteTrackId","rtcpMuxPolicy","shouldRecycleTransceiver","updateRecycledTransceivers","updateLocalCodecs","updateRemoteCodecMaps","_handleQueuedPublisherHints","maxBitrates","promises","maxBitrate","removeMaxBitrate","setMaxBitrate","networkPriority","createSSRC","streamId","cName","isSimulcastEnabled","primarySSRCs","rtxPairs","TrackAttributes","simulcastSSRCs","primarySSRC","isSimSSRC","excludeRtx","simSSRCs","attrLines","rtxPairLines","rtxPair","simGroupLines","createTrackIdsToAttributes","getSimulcastSSRCs","getSSRCRtxPairs","ssrcAttrTuples","createSSRCAttributeTuples","tuple","trackAttributes","getSSRCAttribute","addSSRC","newTrackIdsToAttributes","newTrackIds","trackIdsToAdd","trackIdsToIgnore","addSimulcastSSRCs","relevantTrackIds","relevantTrackAttributes","relevantSdpLines","toSdpLines","sectionLines","xGoogleFlagConference","Filter","_filter","getKey","isLessThanOrEqualTo","_ufrag","toMap","oldIceState","oldCandidates","getValue","_getKey","_getValue","_isLessThanOrEqualTo","activityCheckPeriodMs","inactivityThresholdMs","_activityCheckPeriodMs","_inactivityThresholdMs","_lastActivity","_onIceConnectionStateChanged","_getActivePairStat","onIceConnectionInactive","_getIceConnectionStats","iceStats","_scheduleInactivityCallback","clearInterval","DataTransport","_dataChannel","binaryType","_midsToTrackIds","sections","trackIdMatches","mediaSectionWorkaround","rtpmapRegex","rtpmap","fmtpmapRegex","deleteDuplicateRtxPts","codecNameToPts","createCodecNameToPts","invalidRtxPts","rtxPtToAssociatedPt","fmtpPattern","createRtxPtToAssociatedPt","associatedPtToRtxPt","associatedPtToRtxPts","createAssociatedPtToRtxPt","unassociatedRtxPts","unassociatedPts","addFmtpAttributeForRtxPt","deleteFmtpAttributesForRtxPt","deleteRtpmapAttributesForRtxPt","descriptionInit","sdpWorkaround","_queuedEvents","queuedEvent","DominantSpeakerSignaling","NetworkQualityMonitor","NetworkQualitySignaling","RecordingV2","RemoteParticipantV2","TrackPrioritySignaling","TrackSwitchOffSignaling","RenderHintsSignaling","PublisherHintsSignaling","session_timeout","statsPublishIntervalMs","setBandwidthProfile","setSignalingRegion","setAudioProcessors","getTrackReceiver","_getTrackReceiver","_disconnectedParticipantRevisions","_NetworkQualityMonitor","_lastBandwidthProfileRevision","bandwidthProfileRevision","_mediaStatesWarningsRevision","_networkQualityMonitor","_networkQualityConfiguration","_peerConnectionManager","_published","_publishedRevision","_RemoteParticipantV2","_subscribedRevision","_subscriptionFailures","_dominantSpeakerSignaling","_networkQualitySignaling","_renderHintsSignaling","_publisherHintsSignaling","_trackPrioritySignaling","_trackSwitchOffSignaling","_pendingSwitchOffStates","_trackReceiverDeferreds","media_region","_initTrackSwitchOffSignaling","_initDominantSpeakerSignaling","_initNetworkQualityMonitorSignaling","_initPublisherHintSignaling","roomV2","localParticipantUpdated","_publishNewLocalParticipantState","renegotiate","_publishPeerConnectionState","_addTrackReceiver","setNetworkQualityLevel","handlePeerConnectionEvents","handleTransportEvents","intervalMs","movingAverageDeltas","oddPublishCount","publishEvent","audioTrackStats","videoTrackStats","availableIncomingBitrate","availableOutgoingBitrate","consentRequestsSent","lastPacketReceivedTimestamp","lastPacketSentTimestamp","readable","requestsReceived","requestsSent","responsesReceived","responsesSent","retransmissionsReceived","retransmissionsSent","totalRoundTripTime","transportId","deleted","ip","port","replaceNullsWithDefaults","onStateChanged","periodicallyPublishStats","isSetup","_getOrCreateTrackReceiverDeferred","didDisconnect","_teardownNetworkQualityMonitor","_deleteTrackReceiverDeferred","initiallySwitchedOff","trackSidsToTrackSignalings","participantState","_getInitialTrackSwitchOffState","sendTrackPriorityUpdate","hint","setTrackHint","bandwidth_profile","_maybeAddBandwidthProfile","_getState","peer_connections","roomState","subscribed","trackState","subscribedTrackSids_1","participantsToKeep","disconnectedParticipantRevision","_getOrCreateRemoteParticipant","_getTrackSidsToTrackSignalings","subscribeFailed","handleSubscriptions","published","mediaSignaling","media_signaling","setup","updateMediaStates","hints","sendHintResponse","hintResponses","handleReplaced","sendTrackReplaced","tracksOff","tracksOn","trackUpdates_1","isOn","setSwitchedOff","setDominantSpeaker","loudestParticipantSid","networkQualityMonitor","remoteLevels","filterAndAddLocalTrackSids","filterAndAddRemoteTrackSids","filterAndAddTrackSids","idToSid","localTrackStats","remoteTrackStats","addAVSyncMetricsToLocalTrackStats","trackResponse","augmentedTrackStats","trackMovingAverageDeltas","trackAvgEncodeDelayMovingAverageDelta","avgEncodeDelay","trackAvgPacketSendDelayMovingAverageDelta","avgPacketSendDelay","addAVSyncMetricsToRemoteTrackStats","trackAvgDecodeDelayMovingAverageDelta","avgDecodeDelay","trackAvgJitterBufferDelayMovingAverageDelta","avgJitterBufferDelay","_loudestParticipantSid","_setLoudestParticipantSid","PeerConnectionReportFactory","_factories","monitor","reportsOrNullPromises","put","IceReportFactory","PeerConnectionReport","ReceiverReportFactory","SenderReportFactory","lastReport","updatePromise","currentDirection","receivers","getSenderOrReceiverReports","senderReports","receiverReports","pcReport","senderReportFactoriesByMediaType","getSenderReportFactoriesByMediaType","senderReportFactoryIdsToDeleteByMediaType","getSenderReportFactoryIdsByMediaType","deleteSenderOrReceiverReportFactories","receiverReportFactoriesByMediaType","getReceiverReportFactoriesByMediaType","receiverReportFactoryIdsToDeleteByMediaType","getReceiverReportFactoryIdsByMediaType","updateIceReport","updateFirefox","updateSenderReports","updateReceiverReports","audioSenderReportFactories","videoSenderReportFactories","audioReceiverReportFactories","videoReceiverReportFactories","sendersOrReceivers","pairs","getOrCreateSenderOrReceiverReportFactory","sendersOrReceiversByMediaType","mediaType","trackIdentifier","senderOrReceiverFactory","getOrCreateSenderReportFactory","getOrCreateReceiverReportFactory","senderReportFactoryIdsToDelete","senderReportFactory","remoteInboundStats","receiverReportFactoryIdsToDelete","receiverReportFactory","senderOrReceiverReportFactoriesByMediaType","senderOrReceiverReportFactoryIdsByMediaType","senderOrReceiverReportFactories","senderOrReceiverReportFactoryId","selectedCandidatePair","IceReport","of","availableSend","AsyncVar","_remoteLevels","_networkQualityInputs","_resendTimer","_sendNetworkQualityInputs","_networkQualityReportLevels","reportLevel","remoteReportLevel","_handleNetworkQualityMessage","remotes","take","networkQualityInputs","networkQualityReportLevels","createNetworkQualityInputsMessage","_deferreds","_hasValue","_value","_revision","is_recording","RemoteParticipantSignaling","RemoteTrackPublicationV2","getInitialTrackSwitchOffState","_RemoteTrackPublicationV2","tracksToKeep","_getOrCreateTrack","NetworkQualityAudioStats","NetworkQualityVideoStats","mediaLevels","sendOrRecvStats","actual","available","setSid","RemoteTrackPublicationSignaling","_enqueuedPriorityUpdates","subscribe","publishOrSubscribe","_setTrackSwitchOffUpdates","tracksSwitchedOff","tracksSwitchedOn","messageId","_trackSidsToRenderHints","_responseTimer","_sendAllHints","_processHintResults","isDimensionDirty","isEnabledDirty","_sendHints","hintResults","hintResult","mspHint","render_dimensions","payLoad","_processPublisherHints","syncing","accessToken","_accessToken","_automaticSubscription","_bandwidthProfile","_dominantSpeaker","_adaptiveSimulcast","_renderHints","_iceServersStatus","_localParticipant","_networkQuality","_notifyWarnings","_sessionTimer","_sessionTimeoutMS","_reconnectBackoff","_trackPriority","_trackSwitchOff","_twilioConnection","_updatesReceived","_updatesToSend","_userAgent","createOrResetTwilioConnection","handleMessage","_createIceMessage","_createConnectOrSyncOrDisconnectMessage","reconnectTimer","_getReconnectTimer","twilioError","_sendConnectOrSyncOrDisconnectMessage","_setSession","_clearReconnectTimer","reduced","reducePeerConnections","reduceUpdates","setupTransport","TwilioConnectionTransport","getStates","sdk_version","user_agent","media_warnings","peerConnectionsById","LocalParticipantSignaling","LocalTrackPublicationV2","_bandwidthProfileRevision","_removeListeners","_LocalTrackPublicationV2","_signalingRegion","didUpdate","publicationState","localTrackPublicationV2","mediaStates","noiseCancellationVendor","_removeListener","_publicationsToTrackSenders","_trackSendersToPublications","_createLocalTrackPublicationSignaling","LocalTrackPublicationSignaling","_mediaStates","recordings","_noiseCancellationVendor","audio_processor","_updatedPriority","setError","opening","closing","_open","isWebRTCSupported","SUPPORTED_CHROME_BASED_BROWSERS","SUPPORTED_ANDROID_BROWSERS","SUPPORTED_IOS_BROWSERS","SUPPORTED_MOBILE_WEBKIT_BASED_BROWSERS","rebrandedChrome","mobileWebKit","supportedMobileBrowsers","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","env","argv","binding","cwd","chdir","umask","yearStart","relativeTime","future","past","LT","LTS","LL","LLL","LLLL","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","retryContext","previousRetryCount","HttpError","errorMessage","trueProto","TimeoutError","AbortError","UnsupportedTransportError","errorType","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","HttpClient","FetchHttpClient","requireFunc","__non_webpack_require__","_jar","_fetchType","AbortController","_abortControllerType","abortSignal","aborted","abortController","onabort","abort","timeoutId","msTimeout","redirect","signal","deserializeContent","cookies","getCookies","arrayBuffer","HttpTransportType","TransferFormat","XhrHttpClient","xhr","header","ontimeout","DefaultHttpClient","_httpClient","getCookieString","HeaderNames","_isAborted","LongPollingTransport","_accessTokenFactory","_pollAbort","onreceive","onclose","transferFormat","isRequired","isIn","_url","Binary","pollOptions","_getAccessToken","_updateHeaderToken","pollUrl","_closeError","_receiving","_poll","Authorization","pollAborted","_raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","opened","Text","eventSource","EventSource","Cookie","onmessage","onopen","_eventSource","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","webSocket","_event","_webSocket","ErrorEvent","_isCloseEvent","wasClean","HttpConnection","_stopPromiseResolver","features","_negotiateVersion","baseUrl","_resolveUrl","webSocketModule","eventSourceModule","_connectionStarted","Debug","_startInternalPromise","_startInternal","_stopPromise","_sendQueue","TransportSendQueue","_stopInternal","_stopError","_stopConnection","skipNegotiation","WebSockets","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","inherentKeepAlive","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","connectionId","requestedTransport","requestedTransferFormat","connectUrl","_createConnectUrl","_isITransport","transportExceptions","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","ServerSentEvents","LongPolling","actualTransport","transportMatches","transferFormats","aTag","href","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","transportResult","_concatBuffers","arrayBuffers","totalLength","_resolver","_rejecter","TextMessageFormat","RecordSeparator","fromCharCode","RecordSeparatorCode","MessageType","HandshakeProtocol","handshakeRequest","write","remainingData","binaryData","separatorIndex","responseLength","textData","HubConnectionState","Subject","HubConnection","reconnectPolicy","_nextKeepAlive","_freezeEventListener","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","_protocol","_reconnectPolicy","_handshakeProtocol","_processIncomingData","_connectionClosed","_callbacks","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","Disconnected","_cachedPingMessage","writeMessage","Ping","Reconnecting","_startPromise","_startWithStateTransitions","Connecting","Connected","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","_sendMessage","writeHandshakeRequest","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_cleanupPingTimer","startPromise","Disconnecting","_reconnectDelayHandle","_completeClose","promiseQueue","_replaceStreamingParams","streams","streamIds","invocationDescriptor","_createStreamInvocation","cancelInvocation","_createCancelInvocation","invocationId","_sendWithProtocol","invocationEvent","Completion","_launchStreams","sendPromise","_createInvocation","newMethod","removeIdx","_processHandshakeResponse","parseMessages","Invocation","_invokeClientMethod","StreamItem","Close","allowReconnect","responseMessage","parseHandshakeResponse","_timeoutHandle","serverTimeout","_pingServerHandle","nextPing","invocationMessage","_cancelCallbacksWithError","_reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","callbacks","nonblocking","_createCompletionMessage","_createStreamItemMessage","argument","_isObservable","StreamInvocation","CancelInvocation","JsonHubProtocol","hubMessages","parsedMessage","_isInvocationMessage","_isStreamItemMessage","_isCompletionMessage","_assertNotEmptyString","LogLevelNameMapping","information","critical","none","None","HubConnectionBuilder","logging","parseLogLevel","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","retryDelaysOrReconnectPolicy"],"mappings":";wIAAA,8CACe,SAASA,IAEtBA,EAAsB,WACpB,OAAOC,CACT,EACA,IAAIA,EAAU,CAAC,EACbC,EAAKC,OAAOC,UACZC,EAASH,EAAGI,eACZC,EAAiBJ,OAAOI,gBAAkB,SAAUC,EAAKC,EAAKC,GAC5DF,EAAIC,GAAOC,EAAKC,KAClB,EACAC,EAAU,mBAAqBC,OAASA,OAAS,CAAC,EAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAC7C,SAASC,EAAOZ,EAAKC,EAAKE,GACxB,OAAOR,OAAOI,eAAeC,EAAKC,EAAK,CACrCE,MAAOA,EACPU,YAAY,EACZC,cAAc,EACdC,UAAU,IACRf,EAAIC,EACV,CACA,IACEW,EAAO,CAAC,EAAG,GAKb,CAJE,MAAOI,GACPJ,EAAS,SAAgBZ,EAAKC,EAAKE,GACjC,OAAOH,EAAIC,GAAOE,CACpB,CACF,CACA,SAASc,EAAKC,EAASC,EAASC,EAAMC,GACpC,IAAIC,EAAiBH,GAAWA,EAAQvB,qBAAqB2B,EAAYJ,EAAUI,EACjFC,EAAY7B,OAAO8B,OAAOH,EAAe1B,WACzC8B,EAAU,IAAIC,EAAQN,GAAe,IACvC,OAAOtB,EAAeyB,EAAW,UAAW,CAC1CrB,MAAOyB,EAAiBV,EAASE,EAAMM,KACrCF,CACN,CACA,SAASK,EAASC,EAAI9B,EAAK+B,GACzB,IACE,MAAO,CACLC,KAAM,SACND,IAAKD,EAAGG,KAAKjC,EAAK+B,GAOtB,CALE,MAAOf,GACP,MAAO,CACLgB,KAAM,QACND,IAAKf,EAET,CACF,CACAvB,EAAQwB,KAAOA,EACf,IAAIiB,EAAmB,CAAC,EACxB,SAASX,IAAa,CACtB,SAASY,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAIC,EAAoB,CAAC,EACzBzB,EAAOyB,EAAmB/B,GAAgB,WACxC,OAAOgC,IACT,IACA,IAAIC,EAAW5C,OAAO6C,eACpBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MACjED,GAA2BA,IAA4B/C,GAAMG,EAAOoC,KAAKQ,EAAyBnC,KAAoB+B,EAAoBI,GAC1I,IAAIE,EAAKP,EAA2BxC,UAAY2B,EAAU3B,UAAYD,OAAO8B,OAAOY,GACpF,SAASO,EAAsBhD,GAC7B,CAAC,OAAQ,QAAS,UAAUiD,SAAQ,SAAUC,GAC5ClC,EAAOhB,EAAWkD,GAAQ,SAAUf,GAClC,OAAOO,KAAKS,QAAQD,EAAQf,EAC9B,GACF,GACF,CACA,SAASiB,EAAcxB,EAAWyB,GAChC,SAASC,EAAOJ,EAAQf,EAAKoB,EAASC,GACpC,IAAIC,EAASxB,EAASL,EAAUsB,GAAStB,EAAWO,GACpD,GAAI,UAAYsB,EAAOrB,KAAM,CAC3B,IAAIsB,EAASD,EAAOtB,IAClB5B,EAAQmD,EAAOnD,MACjB,OAAOA,GAAS,UAAY,YAAQA,IAAUN,EAAOoC,KAAK9B,EAAO,WAAa8C,EAAYE,QAAQhD,EAAMoD,SAASC,MAAK,SAAUrD,GAC9H+C,EAAO,OAAQ/C,EAAOgD,EAASC,EACjC,IAAG,SAAUpC,GACXkC,EAAO,QAASlC,EAAKmC,EAASC,EAChC,IAAKH,EAAYE,QAAQhD,GAAOqD,MAAK,SAAUC,GAC7CH,EAAOnD,MAAQsD,EAAWN,EAAQG,EACpC,IAAG,SAAUI,GACX,OAAOR,EAAO,QAASQ,EAAOP,EAASC,EACzC,GACF,CACAA,EAAOC,EAAOtB,IAChB,CACA,IAAI4B,EACJ5D,EAAeuC,KAAM,UAAW,CAC9BnC,MAAO,SAAe2C,EAAQf,GAC5B,SAAS6B,IACP,OAAO,IAAIX,GAAY,SAAUE,EAASC,GACxCF,EAAOJ,EAAQf,EAAKoB,EAASC,EAC/B,GACF,CACA,OAAOO,EAAkBA,EAAkBA,EAAgBH,KAAKI,EAA4BA,GAA8BA,GAC5H,GAEJ,CACA,SAAShC,EAAiBV,EAASE,EAAMM,GACvC,IAAImC,EAAQ,iBACZ,OAAO,SAAUf,EAAQf,GACvB,GAAI,cAAgB8B,EAAO,MAAM,IAAIC,MAAM,gCAC3C,GAAI,cAAgBD,EAAO,CACzB,GAAI,UAAYf,EAAQ,MAAMf,EAC9B,OAAOgC,GACT,CACA,IAAKrC,EAAQoB,OAASA,EAAQpB,EAAQK,IAAMA,IAAO,CACjD,IAAIiC,EAAWtC,EAAQsC,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUtC,GACnD,GAAIuC,EAAgB,CAClB,GAAIA,IAAmB/B,EAAkB,SACzC,OAAO+B,CACT,CACF,CACA,GAAI,SAAWvC,EAAQoB,OAAQpB,EAAQyC,KAAOzC,EAAQ0C,MAAQ1C,EAAQK,SAAS,GAAI,UAAYL,EAAQoB,OAAQ,CAC7G,GAAI,mBAAqBe,EAAO,MAAMA,EAAQ,YAAanC,EAAQK,IACnEL,EAAQ2C,kBAAkB3C,EAAQK,IACpC,KAAO,WAAaL,EAAQoB,QAAUpB,EAAQ4C,OAAO,SAAU5C,EAAQK,KACvE8B,EAAQ,YACR,IAAIR,EAASxB,EAASX,EAASE,EAAMM,GACrC,GAAI,WAAa2B,EAAOrB,KAAM,CAC5B,GAAI6B,EAAQnC,EAAQ6C,KAAO,YAAc,iBAAkBlB,EAAOtB,MAAQG,EAAkB,SAC5F,MAAO,CACL/B,MAAOkD,EAAOtB,IACdwC,KAAM7C,EAAQ6C,KAElB,CACA,UAAYlB,EAAOrB,OAAS6B,EAAQ,YAAanC,EAAQoB,OAAS,QAASpB,EAAQK,IAAMsB,EAAOtB,IAClG,CACF,CACF,CACA,SAASmC,EAAoBF,EAAUtC,GACrC,IAAIoB,EAASkB,EAASzD,SAASmB,EAAQoB,QACvC,QAAI0B,IAAc1B,EAAQ,CACxB,GAAIpB,EAAQsC,SAAW,KAAM,UAAYtC,EAAQoB,OAAQ,CACvD,GAAIkB,EAASzD,SAAiB,SAAMmB,EAAQoB,OAAS,SAAUpB,EAAQK,SAAMyC,EAAWN,EAAoBF,EAAUtC,GAAU,UAAYA,EAAQoB,QAAS,OAAOZ,EACpKR,EAAQoB,OAAS,QAASpB,EAAQK,IAAM,IAAI0C,UAAU,iDACxD,CACA,OAAOvC,CACT,CACA,IAAImB,EAASxB,EAASiB,EAAQkB,EAASzD,SAAUmB,EAAQK,KACzD,GAAI,UAAYsB,EAAOrB,KAAM,OAAON,EAAQoB,OAAS,QAASpB,EAAQK,IAAMsB,EAAOtB,IAAKL,EAAQsC,SAAW,KAAM9B,EACjH,IAAIwC,EAAOrB,EAAOtB,IAClB,OAAO2C,EAAOA,EAAKH,MAAQ7C,EAAQsC,EAASW,YAAcD,EAAKvE,MAAOuB,EAAQkD,KAAOZ,EAASa,QAAS,WAAanD,EAAQoB,SAAWpB,EAAQoB,OAAS,OAAQpB,EAAQK,SAAMyC,GAAY9C,EAAQsC,SAAW,KAAM9B,GAAoBwC,GAAQhD,EAAQoB,OAAS,QAASpB,EAAQK,IAAM,IAAI0C,UAAU,oCAAqC/C,EAAQsC,SAAW,KAAM9B,EACrW,CACA,SAAS4C,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,IAEf,KAAKA,IAASC,EAAME,SAAWH,EAAK,IAAK,KAAKA,IAASC,EAAMG,WAAaJ,EAAK,GAAIC,EAAMI,SAAWL,EAAK,IAAKzC,KAAK+C,WAAWC,KAAKN,EACrI,CACA,SAASO,EAAcP,GACrB,IAAI3B,EAAS2B,EAAMQ,YAAc,CAAC,EAClCnC,EAAOrB,KAAO,gBAAiBqB,EAAOtB,IAAKiD,EAAMQ,WAAanC,CAChE,CACA,SAAS1B,EAAQN,GACfiB,KAAK+C,WAAa,CAAC,CACjBJ,OAAQ,SACN5D,EAAYwB,QAAQiC,EAAcxC,MAAOA,KAAKmD,OAAM,EAC1D,CACA,SAAS/C,EAAOgD,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASpF,GAC9B,GAAIqF,EAAgB,OAAOA,EAAe1D,KAAKyD,GAC/C,GAAI,mBAAqBA,EAASd,KAAM,OAAOc,EAC/C,IAAKE,MAAMF,EAASG,QAAS,CAC3B,IAAIC,GAAK,EACPlB,EAAO,SAASA,IACd,OAASkB,EAAIJ,EAASG,QACpB,GAAIhG,EAAOoC,KAAKyD,EAAUI,GAAI,OAAOlB,EAAKzE,MAAQuF,EAASI,GAAIlB,EAAKL,MAAO,EAAIK,EAEjF,OAAOA,EAAKzE,WAAQqE,EAAWI,EAAKL,MAAO,EAAIK,CACjD,EACF,OAAOA,EAAKA,KAAOA,CACrB,CACF,CACA,MAAO,CACLA,KAAMb,EAEV,CACA,SAASA,IACP,MAAO,CACL5D,WAAOqE,EACPD,MAAM,EAEV,CACA,OAAOpC,EAAkBvC,UAAYwC,EAA4BrC,EAAe4C,EAAI,cAAe,CACjGxC,MAAOiC,EACPtB,cAAc,IACZf,EAAeqC,EAA4B,cAAe,CAC5DjC,MAAOgC,EACPrB,cAAc,IACZqB,EAAkB4D,YAAcnF,EAAOwB,EAA4B1B,EAAmB,qBAAsBjB,EAAQuG,oBAAsB,SAAUC,GACtJ,IAAIC,EAAO,mBAAqBD,GAAUA,EAAOE,YACjD,QAASD,IAASA,IAAS/D,GAAqB,uBAAyB+D,EAAKH,aAAeG,EAAKE,MACpG,EAAG3G,EAAQ4G,KAAO,SAAUJ,GAC1B,OAAOtG,OAAO2G,eAAiB3G,OAAO2G,eAAeL,EAAQ7D,IAA+B6D,EAAOM,UAAYnE,EAA4BxB,EAAOqF,EAAQvF,EAAmB,sBAAuBuF,EAAOrG,UAAYD,OAAO8B,OAAOkB,GAAKsD,CAC5O,EAAGxG,EAAQ+G,MAAQ,SAAUzE,GAC3B,MAAO,CACLwB,QAASxB,EAEb,EAAGa,EAAsBI,EAAcpD,WAAYgB,EAAOoC,EAAcpD,UAAWY,GAAqB,WACtG,OAAO8B,IACT,IAAI7C,EAAQuD,cAAgBA,EAAevD,EAAQgH,MAAQ,SAAUvF,EAASC,EAASC,EAAMC,EAAa4B,QACxG,IAAWA,IAAgBA,EAAcyD,SACzC,IAAIC,EAAO,IAAI3D,EAAc/B,EAAKC,EAASC,EAASC,EAAMC,GAAc4B,GACxE,OAAOxD,EAAQuG,oBAAoB7E,GAAWwF,EAAOA,EAAK/B,OAAOpB,MAAK,SAAUF,GAC9E,OAAOA,EAAOiB,KAAOjB,EAAOnD,MAAQwG,EAAK/B,MAC3C,GACF,EAAGhC,EAAsBD,GAAK/B,EAAO+B,EAAIjC,EAAmB,aAAcE,EAAO+B,EAAIrC,GAAgB,WACnG,OAAOgC,IACT,IAAI1B,EAAO+B,EAAI,YAAY,WACzB,MAAO,oBACT,IAAIlD,EAAQmH,KAAO,SAAUC,GAC3B,IAAIC,EAASnH,OAAOkH,GAClBD,EAAO,GACT,IAAK,IAAI3G,KAAO6G,EACdF,EAAKtB,KAAKrF,GAEZ,OAAO2G,EAAKG,UAAW,SAASnC,IAC9B,KAAOgC,EAAKf,QAAS,CACnB,IAAI5F,EAAM2G,EAAKI,MACf,GAAI/G,KAAO6G,EAAQ,OAAOlC,EAAKzE,MAAQF,EAAK2E,EAAKL,MAAO,EAAIK,CAC9D,CACA,OAAOA,EAAKL,MAAO,EAAIK,CACzB,CACF,EAAGnF,EAAQiD,OAASA,EAAQf,EAAQ/B,UAAY,CAC9CuG,YAAaxE,EACb8D,MAAO,SAAewB,GACpB,GAAI3E,KAAK4E,KAAO,EAAG5E,KAAKsC,KAAO,EAAGtC,KAAK6B,KAAO7B,KAAK8B,WAAQI,EAAWlC,KAAKiC,MAAO,EAAIjC,KAAK0B,SAAW,KAAM1B,KAAKQ,OAAS,OAAQR,KAAKP,SAAMyC,EAAWlC,KAAK+C,WAAWxC,QAAQ0C,IAAiB0B,EAAe,IAAK,IAAIb,KAAQ9D,KAC/N,MAAQ8D,EAAKe,OAAO,IAAMtH,EAAOoC,KAAKK,KAAM8D,KAAUR,OAAOQ,EAAKgB,MAAM,MAAQ9E,KAAK8D,QAAQ5B,EAEjG,EACA6C,KAAM,WACJ/E,KAAKiC,MAAO,EACZ,IAAI+C,EAAahF,KAAK+C,WAAW,GAAGG,WACpC,GAAI,UAAY8B,EAAWtF,KAAM,MAAMsF,EAAWvF,IAClD,OAAOO,KAAKiF,IACd,EACAlD,kBAAmB,SAA2BmD,GAC5C,GAAIlF,KAAKiC,KAAM,MAAMiD,EACrB,IAAI9F,EAAUY,KACd,SAASmF,EAAOC,EAAKC,GACnB,OAAOtE,EAAOrB,KAAO,QAASqB,EAAOtB,IAAMyF,EAAW9F,EAAQkD,KAAO8C,EAAKC,IAAWjG,EAAQoB,OAAS,OAAQpB,EAAQK,SAAMyC,KAAcmD,CAC5I,CACA,IAAK,IAAI7B,EAAIxD,KAAK+C,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ1C,KAAK+C,WAAWS,GAC1BzC,EAAS2B,EAAMQ,WACjB,GAAI,SAAWR,EAAMC,OAAQ,OAAOwC,EAAO,OAC3C,GAAIzC,EAAMC,QAAU3C,KAAK4E,KAAM,CAC7B,IAAIU,EAAW/H,EAAOoC,KAAK+C,EAAO,YAChC6C,EAAahI,EAAOoC,KAAK+C,EAAO,cAClC,GAAI4C,GAAYC,EAAY,CAC1B,GAAIvF,KAAK4E,KAAOlC,EAAME,SAAU,OAAOuC,EAAOzC,EAAME,UAAU,GAC9D,GAAI5C,KAAK4E,KAAOlC,EAAMG,WAAY,OAAOsC,EAAOzC,EAAMG,WACxD,MAAO,GAAIyC,GACT,GAAItF,KAAK4E,KAAOlC,EAAME,SAAU,OAAOuC,EAAOzC,EAAME,UAAU,OACzD,CACL,IAAK2C,EAAY,MAAM,IAAI/D,MAAM,0CACjC,GAAIxB,KAAK4E,KAAOlC,EAAMG,WAAY,OAAOsC,EAAOzC,EAAMG,WACxD,CACF,CACF,CACF,EACAb,OAAQ,SAAgBtC,EAAMD,GAC5B,IAAK,IAAI+D,EAAIxD,KAAK+C,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ1C,KAAK+C,WAAWS,GAC5B,GAAId,EAAMC,QAAU3C,KAAK4E,MAAQrH,EAAOoC,KAAK+C,EAAO,eAAiB1C,KAAK4E,KAAOlC,EAAMG,WAAY,CACjG,IAAI2C,EAAe9C,EACnB,KACF,CACF,CACA8C,IAAiB,UAAY9F,GAAQ,aAAeA,IAAS8F,EAAa7C,QAAUlD,GAAOA,GAAO+F,EAAa3C,aAAe2C,EAAe,MAC7I,IAAIzE,EAASyE,EAAeA,EAAatC,WAAa,CAAC,EACvD,OAAOnC,EAAOrB,KAAOA,EAAMqB,EAAOtB,IAAMA,EAAK+F,GAAgBxF,KAAKQ,OAAS,OAAQR,KAAKsC,KAAOkD,EAAa3C,WAAYjD,GAAoBI,KAAKyF,SAAS1E,EAC5J,EACA0E,SAAU,SAAkB1E,EAAQ+B,GAClC,GAAI,UAAY/B,EAAOrB,KAAM,MAAMqB,EAAOtB,IAC1C,MAAO,UAAYsB,EAAOrB,MAAQ,aAAeqB,EAAOrB,KAAOM,KAAKsC,KAAOvB,EAAOtB,IAAM,WAAasB,EAAOrB,MAAQM,KAAKiF,KAAOjF,KAAKP,IAAMsB,EAAOtB,IAAKO,KAAKQ,OAAS,SAAUR,KAAKsC,KAAO,OAAS,WAAavB,EAAOrB,MAAQoD,IAAa9C,KAAKsC,KAAOQ,GAAWlD,CACtQ,EACA8F,OAAQ,SAAgB7C,GACtB,IAAK,IAAIW,EAAIxD,KAAK+C,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ1C,KAAK+C,WAAWS,GAC5B,GAAId,EAAMG,aAAeA,EAAY,OAAO7C,KAAKyF,SAAS/C,EAAMQ,WAAYR,EAAMI,UAAWG,EAAcP,GAAQ9C,CACrH,CACF,EACA,MAAS,SAAgB+C,GACvB,IAAK,IAAIa,EAAIxD,KAAK+C,WAAWQ,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAId,EAAQ1C,KAAK+C,WAAWS,GAC5B,GAAId,EAAMC,SAAWA,EAAQ,CAC3B,IAAI5B,EAAS2B,EAAMQ,WACnB,GAAI,UAAYnC,EAAOrB,KAAM,CAC3B,IAAIiG,EAAS5E,EAAOtB,IACpBwD,EAAcP,EAChB,CACA,OAAOiD,CACT,CACF,CACA,MAAM,IAAInE,MAAM,wBAClB,EACAoE,cAAe,SAAuBxC,EAAUf,EAAYE,GAC1D,OAAOvC,KAAK0B,SAAW,CACrBzD,SAAUmC,EAAOgD,GACjBf,WAAYA,EACZE,QAASA,GACR,SAAWvC,KAAKQ,SAAWR,KAAKP,SAAMyC,GAAYtC,CACvD,GACCzC,CACL,C,+BCjTO,IAAK0I,EARZ,kCAQA,SAAYA,GAERA,qBAEAA,qBAEAA,iCAEAA,yBAEAA,qBAEAA,2BAEAA,kBACH,CAfD,CAAYA,MAAQ,I,+BCRL,SAASC,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAI7D,UAAU,oCAExB,CAJA,iC,+BCAA,SAAS8D,EAAkBC,EAAQC,GACjC,IAAK,IAAI3C,EAAI,EAAGA,EAAI2C,EAAM5C,OAAQC,IAAK,CACrC,IAAI4C,EAAaD,EAAM3C,GACvB4C,EAAW7H,WAAa6H,EAAW7H,aAAc,EACjD6H,EAAW5H,cAAe,EACtB,UAAW4H,IAAYA,EAAW3H,UAAW,GACjDpB,OAAOI,eAAeyI,EAAQE,EAAWzI,IAAKyI,EAChD,CACF,CACe,SAASC,EAAaL,EAAaM,EAAYC,GAM5D,OALID,GAAYL,EAAkBD,EAAY1I,UAAWgJ,GACrDC,GAAaN,EAAkBD,EAAaO,GAChDlJ,OAAOI,eAAeuI,EAAa,YAAa,CAC9CvH,UAAU,IAELuH,CACT,CAhBA,iC,+BCAA,SAASQ,EAAmBC,EAAK5F,EAASC,EAAQ4F,EAAOC,EAAQhJ,EAAK8B,GACpE,IACE,IAAI2C,EAAOqE,EAAI9I,GAAK8B,GAChB5B,EAAQuE,EAAKvE,KAInB,CAHE,MAAOuD,GAEP,YADAN,EAAOM,EAET,CACIgB,EAAKH,KACPpB,EAAQhD,GAERuG,QAAQvD,QAAQhD,GAAOqD,KAAKwF,EAAOC,EAEvC,CACe,SAASC,EAAkBpH,GACxC,OAAO,WACL,IAAIV,EAAOkB,KACT6G,EAAOC,UACT,OAAO,IAAI1C,SAAQ,SAAUvD,EAASC,GACpC,IAAI2F,EAAMjH,EAAGuH,MAAMjI,EAAM+H,GACzB,SAASH,EAAM7I,GACb2I,EAAmBC,EAAK5F,EAASC,EAAQ4F,EAAOC,EAAQ,OAAQ9I,EAClE,CACA,SAAS8I,EAAOjI,GACd8H,EAAmBC,EAAK5F,EAASC,EAAQ4F,EAAOC,EAAQ,QAASjI,EACnE,CACAgI,OAAMxE,EACR,GACF,CACF,CA7BA,iC,0eCea8E,EAAG,4CAiBX,OAjBW,4CACL,SAAkBzC,EAAUT,GAC/B,GAAY,OAARS,QAAwBrC,IAARqC,EAChB,MAAM,IAAI/C,MAAM,QAAD,OAASsC,EAAI,2BAEpC,GAAC,wBACM,SAAkBS,EAAaT,GAClC,IAAKS,GAAOA,EAAI0C,MAAM,SAClB,MAAM,IAAIzF,MAAM,QAAD,OAASsC,EAAI,mCAEpC,GAAC,kBAEM,SAAYS,EAAUnE,EAAa0D,GAEtC,KAAMS,KAAOnE,GACT,MAAM,IAAIoB,MAAM,WAAD,OAAYsC,EAAI,mBAAWS,EAAG,KAErD,KAAC,EAjBW,GAqBH2C,EAAQ,4CAoBhB,OApBgB,yCAEV,WACH,MAAyB,kBAAXC,QAAkD,kBAApBA,OAAOC,QACvD,GAEA,uBACO,WACH,MAAuB,kBAATtI,MAAqB,kBAAmBA,IAC1D,GAEA,yBACA,WACI,MAAyB,kBAAXqI,QAAkD,qBAApBA,OAAOC,QACvD,GAGA,kBACO,WACH,OAAQpH,KAAKqH,YAAcrH,KAAKsH,cAAgBtH,KAAKuH,aACzD,KAAC,EApBgB,GAwBf,SAAUC,EAAcC,EAAWC,GACrC,IAAIC,EAAS,GAYb,OAXIC,EAAcH,IACdE,EAAS,yBAAH,OAA4BF,EAAKI,YACnCH,IACAC,GAAU,eAAJ,OAYZ,SAA4BF,GAC9B,IAAMK,EAAO,IAAIC,WAAWN,GAGxBO,EAAM,GAOV,OANAF,EAAKvH,SAAQ,SAAC0H,GAEVD,GAAO,KAAJ,OADSC,EAAM,GAAK,IAAM,IACd,OAAGA,EAAIC,SAAS,IAAG,IACtC,IAGOF,EAAIG,OAAO,EAAGH,EAAIzE,OAAS,EACtC,CAxBqC6E,CAAkBX,GAAK,OAE7B,kBAATA,IACdE,EAAS,yBAAH,OAA4BF,EAAKlE,QACnCmE,IACAC,GAAU,eAAJ,OAAmBF,EAAI,OAG9BE,CACX,CAmBM,SAAUC,EAAcrD,GAC1B,OAAOA,GAA8B,qBAAhB8D,cAChB9D,aAAe8D,aAEX9D,EAAIV,aAAwC,gBAAzBU,EAAIV,YAAYC,KAChD,CAGO,SAAewE,EAAY,EAAD,4CA6BjC,aAFC,OAED,kCA7BO,WAA2BC,EAAiBC,EAAuBC,EAAwBC,EAAaC,EAC7EC,EAA+BC,GAA+B,+FACrD,GAAnCC,EAAiC,CAAC,GAClCH,EAAoB,CAAF,+BACEA,IAAoB,QAAlCI,EAAQ,EAAH,QAEPD,EAAU,eACL,gBAAe,iBAAaC,KAEpC,OAQ+D,OAR/D,EAGiBC,IAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KAClBiL,EAAQhF,GAAQjG,EAEhB0K,EAAOU,IAAIpD,IAASqD,MAAO,IAAF,OAAMV,EAAa,qCAA6BhB,EAAcoB,EAASC,EAAQM,mBAAmB,MAErHC,EAAexB,EAAcgB,GAAW,cAAgB,OAAM,UAC7CH,EAAWY,KAAKX,EAAK,CACxCE,UACAE,QAAS,2BAAKA,GAAYD,EAAQC,SAClCM,eACAE,QAAST,EAAQS,QACjBC,gBAAiBV,EAAQU,kBAC3B,QANIC,EAAW,EAAH,KAQdjB,EAAOU,IAAIpD,IAASqD,MAAO,IAAF,OAAMV,EAAa,0DAAkDgB,EAASC,WAAU,MAAK,6CACzH,sBAGK,SAAUC,EAAanB,GACzB,YAAerG,IAAXqG,EACO,IAAIoB,EAAc9D,IAAS+D,aAGvB,OAAXrB,EACOsB,IAAW9D,cAGU7D,IAA3BqG,EAAmBU,IACbV,EAGJ,IAAIoB,EAAcpB,EAC7B,CAGO,IAAMuB,EAAmB,WAI5B,WAAYC,EAAqBC,GAA8B,oBAC3DhK,KAAKiK,SAAWF,EAChB/J,KAAKkK,UAAYF,CACrB,CAWC,OAXA,oCAEM,WACH,IAAMG,EAAgBnK,KAAKiK,SAASG,UAAUC,QAAQrK,KAAKkK,WACvDC,GAAS,GACTnK,KAAKiK,SAASG,UAAUE,OAAOH,EAAO,GAGH,IAAnCnK,KAAKiK,SAASG,UAAU7G,QAAgBvD,KAAKiK,SAASM,gBACtDvK,KAAKiK,SAASM,iBAAiBC,OAAM,SAACC,GAAQ,GAEtD,KAAC,EAlB2B,GAsBnBd,EAAa,WAWtB,WAAYe,GAAyB,oBACjC1K,KAAK2K,UAAYD,EACjB1K,KAAK4K,IAAMC,OACf,CAsBC,OAtBA,gCAEM,SAAIC,EAAoBC,GAC3B,GAAID,GAAY9K,KAAK2K,UAAW,CAC5B,IAAMK,EAAM,IAAH,QAAO,IAAIC,MAAOC,cAAa,aAAKrF,IAASiF,GAAS,aAAKC,GACpE,OAAQD,GACJ,KAAKjF,IAASsF,SACd,KAAKtF,IAASrE,MACVxB,KAAK4K,IAAIxJ,MAAM4J,GACf,MACJ,KAAKnF,IAASuF,QACVpL,KAAK4K,IAAIS,KAAKL,GACd,MACJ,KAAKnF,IAAS+D,YACV5J,KAAK4K,IAAIxI,KAAK4I,GACd,MACJ,QAEIhL,KAAK4K,IAAI3B,IAAI+B,G,CAI7B,KAAC,EApCqB,GAwCpB,SAAUhC,IACZ,IAAIsC,EAAsB,uBAI1B,OAHIpE,EAASqE,SACTD,EAAsB,cAEnB,CAAEA,EAAqBE,EA1MH,SA0M+BC,IAAaC,IAAcC,KACzF,CAGM,SAAUH,EAAmBI,EAAiBC,EAAYC,EAAiBC,GAE7E,IAAIC,EAAoB,qBAElBC,EAAgBL,EAAQM,MAAM,KAmBpC,OAlBAF,GAAa,GAAJ,OAAOC,EAAc,GAAE,YAAIA,EAAc,IAClDD,GAAa,KAAJ,OAASJ,EAAO,MAGrBI,GADAH,GAAa,KAAPA,EACO,GAAJ,OAAOA,EAAE,MAEL,eAGjBG,GAAa,GAAJ,OAAOF,GAGZE,GADAD,EACa,KAAJ,OAASA,GAEL,4BAGjBC,GAAa,GAEjB,CAGc,SAASP,IACnB,IAAIvE,EAASqE,OAYT,MAAO,GAXP,OAAQY,EAAQC,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAOD,EAAQC,SAK/B,CAGc,SAAST,IACnB,GAAIzE,EAASqE,OACT,OAAOY,EAAQE,SAASC,IAGhC,CAEA,SAASZ,IACL,OAAIxE,EAASqE,OACF,SAEA,SAEf,CAGM,SAAUgB,EAAeC,GAC3B,OAAIA,EAAEC,MACKD,EAAEC,MACFD,EAAEzB,QACFyB,EAAEzB,QAEN,GAAP,OAAUyB,EACd,CAGM,SAAUE,IAEZ,GAA0B,qBAAfC,WACP,OAAOA,WAEX,GAAoB,qBAAT7N,KACP,OAAOA,KAEX,GAAsB,qBAAXqI,OACP,OAAOA,OAEX,GAAsB,qBAAXyF,EACP,OAAOA,EAEX,MAAM,IAAIpL,MAAM,wBACpB,C,yDCjTA,8CACA,SAASqL,EAAQrI,EAAQsI,GACvB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GACvB,GAAInH,OAAO0P,sBAAuB,CAChC,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAC3CsI,IAAmBE,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UACtD,KAAK+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAC7B,CACA,OAAO1I,CACT,CACe,SAAS8I,EAAelH,GACrC,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CACzC,IAAI6J,EAAS,MAAQvG,UAAUtD,GAAKsD,UAAUtD,GAAK,CAAC,EACpDA,EAAI,EAAIqJ,EAAQxP,OAAOgQ,IAAS,GAAI9M,SAAQ,SAAU5C,GACpD,YAAeuI,EAAQvI,EAAK0P,EAAO1P,GACrC,IAAKN,OAAOiQ,0BAA4BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAWR,EAAQxP,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAC5JN,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAC7E,GACF,CACA,OAAOuI,CACT,C,+BCrBA,8CACe,SAASsH,EAA2BC,EAAGC,GACpD,IAAIC,EAAuB,qBAAX5P,QAA0B0P,EAAE1P,OAAOE,WAAawP,EAAE,cAClE,IAAKE,EAAI,CACP,GAAIC,MAAMC,QAAQJ,KAAOE,EAAK,YAA2BF,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAElK,OAAqB,CAC/GoK,IAAIF,EAAIE,GACZ,IAAInK,EAAI,EACJsK,EAAI,WAAc,EACtB,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAIxK,GAAKiK,EAAElK,OAAe,CACxBtB,MAAM,GAED,CACLA,MAAM,EACNpE,MAAO4P,EAAEjK,KAEb,EACAgJ,EAAG,SAAWyB,GACZ,MAAMA,CACR,EACAC,EAAGJ,EAEP,CACA,MAAM,IAAI3L,UAAU,wIACtB,CACA,IAEEzD,EAFEyP,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACLL,EAAG,WACDJ,EAAKA,EAAGhO,KAAK8N,EACf,EACAO,EAAG,WACD,IAAIK,EAAOV,EAAGrL,OAEd,OADA6L,EAAmBE,EAAKpM,KACjBoM,CACT,EACA7B,EAAG,SAAW8B,GACZF,GAAS,EACT1P,EAAM4P,CACR,EACAJ,EAAG,WACD,IACOC,GAAoC,MAAhBR,EAAW,QAAWA,EAAW,QAG5D,CAFE,QACA,GAAIS,EAAQ,MAAM1P,CACpB,CACF,EAEJ,C,86BCjDM6P,EAAYC,EAAQ,IACNC,EAAqBF,EAAS,WAA3BG,EAAkBH,EAAS,cAC5CI,EAAOH,EAAQ,IACb,EAAeA,EAAQ,KAAQ,WACjCI,EAAgBJ,EAAQ,KAsI9B,SAASK,IACP,MAA4B,qBAAdC,WAA6BA,UAAU9C,UACjD8C,UAAU9C,UACV,SACN,CAmHA,SAAS+C,EAAe1B,EAAQ2B,EAAS9I,EAAQ+I,GAC/C,KAAIA,KAAcD,KAGPC,EAAWhI,MAAM,cAArB,CAKP,IAAIvH,EACJ,IACEA,SAAc2N,EAAO4B,EAGrB,CAFA,MAAO7N,GAEP,CAGW,aAAT1B,IAMJsP,EAAQC,GAAc,W,UAAS,SAAAC,uBAAArI,kBAC7B,OAAO,OAAKX,IAAQ+I,GAAW,eAAIpI,IACrC,E,CACF,CAwDA,SAASsI,EAAiB3K,GACxB,MAAyB,kBAAXA,IAAwBoJ,MAAMC,QAAQrJ,EACtD,CAiHA,SAAS4K,EAAsB5K,GAC7BnH,OAAOgS,oBAAoB7K,GAAQjE,SAAQ,YACrCuD,EAAKwL,WAAW,MAClBC,EAAa/K,EAAQV,EAEzB,GACF,CA2BA,SAASyL,EAAa/K,EAAQV,GAC5B,IAAMsC,EAAa/I,OAAO8P,yBAAyB3I,EAAQV,GAC3DsC,EAAW7H,YAAa,EACxBlB,OAAOI,eAAe+G,EAAQV,EAAMsC,EACtC,CAOA,SAASoJ,EAAqBhL,EAAQ2B,QAAA,QAAAA,MACpCA,EAAM5F,SAAQ,YAERiE,EAAOhH,eAAesG,IACxByL,EAAa/K,EAAQV,EAEzB,GACF,CAQA,SAAS2L,EAAYC,GACnB,OAAOA,EAAMC,IAAIC,EACnB,CAyCA,SAASA,EAAY/R,GACnB,OAAI+P,MAAMC,QAAQhQ,GACT4R,EAAY5R,GACVA,aAAiBgS,IAnCrBJ,EAAW,OAoCC5R,KACRA,aAAiBiS,IA3BrBC,OA4BYlS,EA5BJmS,YAAWC,QAAO,SAACC,EAAMC,G,MAAAC,SAACzS,EAAG,KAAEE,EAAK,KACjD,OAAOR,OAAOgT,SAAM,MAAI1S,GAAMiS,EAAY/R,GAAM,GAAIqS,EACtD,GAAG,IA2BQrS,GAA0B,kBAAVA,GAlBP2G,EAmBE3G,EAlBfR,OAAO2S,QAAQxL,GAAQyL,QAAO,SAACC,EAAMC,G,MAAAC,SAACzS,EAAG,KAAEE,EAAK,KACrD,OAAOR,OAAOgT,SAAM,MAAI1S,GAAMiS,EAAY/R,GAAM,GAAIqS,EACtD,GAAG,KAkBIrS,EArBT,IAAsB2G,CAsBtB,CAqGA,SAAS8L,EAAmCC,GAC1C,OAAOC,EAAiBD,EAAuB,CAC7C,CAAEE,KAAM,0BAA2B/Q,KAAM,SAAUgR,YAAa,2BAChE,CAAED,KAAM,yBAA0B/Q,KAAM,SAAUgR,YAAa,8BAC/D,CAAED,KAAM,YAAa/Q,KAAM,SAAUgR,YAAa,cAClD,CAAED,KAAM,OAAQ/Q,KAAM,UACtB,CAAE+Q,KAAM,mBAAoB/Q,KAAM,SAAUgR,YAAa,oBAAqBC,UAAWC,GACzF,CAAEH,KAAM,qBAAsB/Q,KAAM,SAAUgR,YAAa,qBAE/D,CAmDA,SAASG,EAAwBC,GAC/B,OAAON,EAAiBM,EAAY,CAClC,CAAEL,KAAM,SAAU/Q,KAAM,UACxB,CAAE+Q,KAAM,QAAS/Q,KAAM,WAE3B,CAOA,SAASkR,EAA8BG,GAErC,OAAOP,EAAiBO,EAAkB,CACxC,CAAEN,KAFuD/B,EAAa,cAE/ChP,KAAM,SAAUiR,UAAWE,GAClD,CAAEJ,KAHuD/B,EAAa,aAGhDhP,KAAM,SAAUiR,UAAWE,GACjD,CAAEJ,KAJuD/B,EAAa,kBAI3ChP,KAAM,SAAUiR,UAAWE,IAE1D,CAUA,SAASL,EAAiBhM,EAAQwM,GAChC,OAAOA,EAAgBf,QAAO,SAACgB,EAASd,G,MAAEM,EAAI,OAAE/Q,EAAI,OAAE0Q,gBAAAM,OAAW,MAAGD,EAAI,EAAES,cAAAP,OAAS,MAAG,YAAK,UAAC,EAC1F,cAAcnM,EAAOiM,KAAU/Q,EAC3BrC,OAAOgT,SAAM,MAAIK,GAAcC,EAAUnM,EAAOiM,IAAM,GAAIQ,GAC1DA,CACN,GAAG,GACL,CAgGA9T,EAAQoR,UAAYA,EACpBpR,EAAQgU,8BA3MR,SAAuCC,GACrC,OAAOZ,EAAiBY,EAAkB,CACxC,CAAEX,KAAM,QAAS/Q,KAAM,SAAUiR,UAAWL,IAEhD,EAwMAnT,EAAQkU,4BAxKR,SAAqCC,EAAiBC,EAAgB7C,EAAe8C,EAAgBC,EAAmBC,GACtH,IAAMC,EAAa,CAAEA,WAAY,CAAC,CAAEjS,KAAM,kBAC1C,OAAOrC,OAAOgT,OACZiB,EAEI,CAAEM,eAAgBD,GAClB,GACJJ,EAEI,CAAEM,gBAAiBF,GACnB,GACJD,EAEI,CAAEI,aAAcH,GAChB,GACJF,EAEI,CAAEM,gBAAiBJ,GACnB,GACJjD,EAEI,CAAEsD,eAAgBL,GAClB,GACJH,EAEI,CAAES,iBAAkBN,GACpB,GAER,EA6IAxU,EAAQ+U,2BAlFR,SAAoCC,G,MAC5BC,IAAa,MAChBxD,EAAcyD,oBAAqB,aAAY,GAElD,OAAOF,EACJxC,KAAI,YAAqB,SAAc2C,EAAd,IACzBrF,QAAO,YAAQ,QAAEnJ,CAAF,GACpB,EA4EA3G,EAAQoV,8BAtSR,SAAuCC,GACrC,SAASC,EAAalO,GACpB,OAAOA,EAAM,OAAS,OACxB,CACA,IAAM0M,EAAU,CACdyB,WAAU,EAGVC,YAAaH,EAAeG,YAAc,IAAIpP,OAC9CqP,aAAcJ,EAAeK,QAAU,IAAI5F,QAAO,YAAS,MAAe,UAAf,EAAM6F,IAAN,IAAwBvP,OACnFwP,aAAcP,EAAeK,QAAU,IAAI5F,QAAO,YAAS,MAAe,UAAf,EAAM6F,IAAN,IAAwBvP,OACnFyP,YAAaR,EAAeK,QAAU,IAAI5F,QAAO,YAAS,MAAe,SAAf,EAAM6F,IAAN,IAAuBvP,QAkDnF,GA9CA,CAAC,CAAC,SAAU,CAAC,yBAA0B,CAAC,cAAe,CAAC,iBAAkB,CAAC,aAAc,CAAC,SAAU,CAAC,kBAAmB,0BAA0BhD,SAAQ,SAAC4P,G,IAAA8C,SAACxC,EAAI,KAAEyC,EAAS,KAEzKjC,EADAiC,EAAYA,GAAazC,GACJgC,IAAeD,EAAe/B,GACrD,IAGA,CAAC,CAAC,mBAAoB,CAAC,oBAAoBlQ,SAAQ,SAAC4P,G,IAAA8C,SAACxC,EAAI,KAAEyC,EAAS,KAClEA,EAAYA,GAAazC,EACW,kBAAzB+B,EAAe/B,GACxBQ,EAAQiC,GAAaV,EAAe/B,GAC1BnN,MAAM6P,OAAOX,EAAe/B,OACtCQ,EAAQiC,GAAaC,OAAOX,EAAe/B,IAE/C,IAGA,CAAC,CAAC,sBAAuB,CAAC,UAAW,CAAC,OAAQ,aAAalQ,SAAQ,SAAC4P,G,IAAA8C,SAACxC,EAAI,KAAEyC,EAAS,KAClFA,EAAYA,GAAazC,EACW,kBAAzB+B,EAAe/B,GACxBQ,EAAQiC,GAAaV,EAAe/B,GACK,kBAAzB+B,EAAe/B,IAA+B,SAATA,IACrDQ,EAAQiC,GAAaV,EAAe/B,GAAMvI,WAE9C,IAGA,CAAC,uBAAwB,wBAAwB3H,SAAQ,YACnDkQ,KAAQ+B,IACVvB,EAAQR,GAAQ2C,KAAKC,UAAUb,EAAe/B,IAElD,IAEI,mBAAoB+B,IACtBvB,EAAQqC,4BAA8B,GAClCnE,EAAiBqD,EAAejB,gBAClC,CAAC,QAAS,UAAUhR,SAAQ,YACyB,kBAAxCiS,EAAejB,eAAed,KACvCQ,EAAQqC,4BAA4B7C,GAAQ+B,EAAejB,eAAed,GAE9E,KAEAQ,EAAQqC,4BAA4BC,OAAS,EAC7CtC,EAAQqC,4BAA4BE,MAAQhB,EAAejB,eAAiB,EAAI,IAIhFiB,EAAepB,kBAAoBoB,EAAepB,iBAAiBqC,MAAO,CAC5E,IAAMC,EAAiBlB,EAAepB,iBAAiBqC,OAAS,GAChExC,EAAQ0C,wBAA0B,GAClC,CAAC,OAAQ,YAAa,qBAAsB,0BAA2B,yBAA0B,mBAAoB,yBAA0B,+BAA+BpT,SAAQ,YAChJ,kBAAzBmT,EAAejD,IAAsD,kBAAzBiD,EAAejD,GACpEQ,EAAQ0C,wBAAwBlD,GAAQiD,EAAejD,GACd,mBAAzBiD,EAAejD,GAC/BQ,EAAQ0C,wBAAwBlD,GAAQgC,EAAaiB,EAAejD,IAC3B,kBAAzBiD,EAAejD,KAC/BQ,EAAQ0C,wBAAwBlD,GAAQ2C,KAAKC,UAAUK,EAAejD,IAE1E,G,CAGF,MAAO,CACLmD,MAAO,OACP9P,KAAM,UACN+P,MAAO,OACP5C,QAAO,EAEX,EAsNA9T,EAAQ2W,uBA9FR,SAAgCC,GAC9B,MAAO,CACLC,MAAO,CAAC,CACNtU,KAAMqU,EAAwB,UAAY,UAC1CE,KAAK,IAEPC,SAAU,EAEd,EAuFA/W,EAAQgX,aAn1BR,SAAsBC,EAAOvL,GAC3B,GAAIuL,aAAiBvL,EAAQwL,iBACxBD,aAAiBvL,EAAQyL,iBACzBF,aAAiBvL,EAAQ0L,eAC5B,OAAOH,EAET,GAAIA,aAAiBvL,EAAQ2L,iBAC3B,MAAsB,UAAfJ,EAAMtB,KACT,IAAIjK,EAAQwL,gBAAgBD,EAAOvL,GACnC,IAAIA,EAAQyL,gBAAgBF,EAAOvL,GAGzC,MAAM4F,EAAEgG,aAAa,QAAS,wEAChC,EAu0BAtX,EAAQuX,wBA9zBR,SAAiCN,EAAOO,EAAWC,EAAW/L,GAM5D,OAAO,IAAIgM,EALmB,CAC5BC,MAAOjM,EAAQkM,2BACftB,MAAO5K,EAAQmM,2BACfvN,KAAMoB,EAAQoM,2BACdb,EAAMtB,OACyB6B,EAAWP,EAAOQ,EAAW/L,EAChE,EAwzBA1L,EAAQ+X,WAjzBR,SAAoBC,GAClB,OAAOA,EAAK,GAAGC,cAAgBD,EAAKrQ,MAAM,EAC5C,EAgzBA3H,EAAQkY,gBAvyBR,SAAyBvR,EAAMwR,EAASC,EAAQtM,GAC9C,IAAMuM,EAAgB,IAAI3F,IAC1ByF,EAAQG,GAAG,eAAe,SAASC,EAAYC,GACzCJ,EAAOK,IAAID,KAAWH,EAAcI,IAAID,KAC1C1M,EAAI4M,WAAc/R,EAAI,IAAI6R,EAAK,4EAA2EJ,EAAOO,IAAIH,GACjH,QAAQ7R,EAAI,IAAIyR,EAAOO,IAAIH,GAAM,YACjC,KACJH,EAAcO,IAAIJ,IAEhBH,EAAcQ,MAAQT,EAAOS,MAC/BV,EAAQW,eAAe,cAAeP,EAE1C,GACF,EA2xBAvY,EAAQ+Y,WAnxBR,SAAoBC,EAAOC,GACzBD,EAAQvI,MAAMC,QAAQsI,GAAS,IAAItG,IAAIsG,GAAS,IAAItG,IAAIsG,EAAM/V,UAC9DgW,EAAQxI,MAAMC,QAAQuI,GAAS,IAAIvG,IAAIuG,GAAS,IAAIvG,IAAIuG,EAAMhW,UAE9D,IAAM8V,EAAa,IAAIrG,IAQvB,OANAsG,EAAM5V,SAAQ,YACP6V,EAAMR,IAAIS,IACbH,EAAWH,IAAIM,EAEnB,IAEOH,CACT,EAuwBA/Y,EAAQmZ,aA9vBR,SAAsB9R,EAAQ+R,GAC5B,OAAOlZ,OAAOiH,KAAKE,GAAQyL,QAAO,SAACuG,EAAU7Y,GAI3C,OAHI6G,EAAO7G,KAAS4Y,IAClBC,EAAS7Y,GAAO6G,EAAO7G,IAElB6Y,CACT,GAAG,GACL,EAwvBArZ,EAAQsZ,QAhvBR,SAAiBC,EAAMC,GACrB,IAAMC,EAAYF,aAAgB5G,KAAO4G,aAAgB7G,IACrDjC,MAAMiJ,KAAKH,EAAKtW,UAChBsW,EAMJ,OAJAC,EAAQA,GAAS,SAAeN,GAC9B,OAAOA,CACT,EAEOO,EAAU3G,QAAO,SAAC6G,EAAWT,GAClC,IAAMU,EAASJ,EAAMN,GACrB,OAAOS,EAAUE,OAAOD,EAC1B,GAAG,GACL,EAouBA5Z,EAAQ8Z,YAjtBR,WACE,IAAMjL,EAAY6C,IACToE,EAAH,EAAwBjH,EAAU/E,MAAM,gBAAkB,GAAE,GAAzDgM,GAET,OADM,QADQ,MAAG,UAAS,GACD/G,MAAM,KAAKyD,KAAI,YAAS,SAAMuH,MAAN,IAAa,GAA/C,GACCC,aAClB,EA6sBAha,EAAQ0R,aAAeA,EACvB1R,EAAQiS,sBAAwBA,EAChCjS,EAAQia,6CApZR,SAAsDC,EAAOlR,GAE3D,mBACE,a,IAAY,aAAA+I,uBAAArI,kBAAZ,0BACWA,MAAI,K,OACbuI,EAAsBkI,GACtB9H,EAAqB8H,EAAMnR,G,CAC7B,CACF,OANqBoR,OAMrB,EANA,CAAqBF,EAOvB,EA4YAla,EAAQqa,YA1jBR,SAASA,EAAYC,EAAMC,GACzB,GAAID,IAASC,EACX,OAAO,EAET,UAAWD,WAAgBC,EACzB,OAAO,EAET,GAAa,OAATD,EACF,OAAgB,OAATC,EAET,GAAa,OAATA,EACF,OAAO,EAET,GAAI9J,MAAMC,QAAQ4J,GAChB,OAAO7J,MAAMC,QAAQ6J,IAChBD,EAAKlU,SAAWmU,EAAKnU,QACrBkU,EAAKE,OAAM,SAACpT,EAAKf,GAAM,SAAYe,EAAKmT,EAAKlU,GAAtB,IAE9B,GAAoB,kBAATiU,EAAmB,CAC5B,IAAMG,EAAWva,OAAOiH,KAAKmT,GAAMI,OAC7BC,EAAWza,OAAOiH,KAAKoT,GAAMG,OACnC,OAAQjK,MAAMC,QAAQ6J,IACjBF,EAAYI,EAAUE,IACtBF,EAASD,OAAM,YAAO,SAAYF,EAAK9Z,GAAM+Z,EAAK/Z,GAA5B,G,CAE7B,OAAO,CACT,EAiiBAR,EAAQgS,iBAAmBA,EAC3BhS,EAAQ4a,QArER,SAAiB9P,EAAK+P,EAAKC,GACzB,OAAOD,GAAO/P,GAAOA,GAAOgQ,CAC9B,EAoEA9a,EAAQ+a,SA7sBR,WACE,MAAO,uCAAuCC,QAAQ,SAAS,YAC7D,IAAMC,EAAoB,GAAhBC,KAAKC,SAAgB,EAE/B,OADgB,MAANC,EAAYH,EAAS,EAAJA,EAAU,GAC5BlQ,SAAS,GACpB,GACF,EAwsBA/K,EAAQqb,YAjsBR,SAAqBhZ,GACnB,IAAI8J,EAAU,KAEd,SAASmP,IACPnP,EAAU,KACV9J,GACF,CAEA,OAAO,WACD8J,GACFoP,aAAapP,GAEfA,EAAUqP,WAAWF,EACvB,CACF,EAorBAtb,EAAQyb,kBAlrBR,SAA2BC,EAAWC,EAAcC,EAAcC,GAChE,OAAO,IAAI5U,SAAQ,SAACvD,EAASC,GAC3B,SAASmY,IACP,IAAMpS,EAAO,GAAG/B,MAAMnF,KAAKmH,WACvBkS,GACFF,EAAa7C,eAAe+C,EAAcE,GAE5CrY,EAAO,oBAAIgG,IACb,CACA,SAASqS,IACP,IAAMrS,EAAO,GAAG/B,MAAMnF,KAAKmH,WAC3BgS,EAAa7C,eAAe8C,EAAcE,GAC1CnY,EAAM,oBAAI+F,IACZ,CACAiS,EAAaK,KAAKJ,EAAcE,GAC5BD,GACFF,EAAaK,KAAKH,EAAcE,GAElCL,GACF,GACF,EA+pBA1b,EAAQic,UAtpBR,SAAmB1b,EAAK2b,GACtB,OAAOA,EAAKnN,MAAM,KAAK+D,QAAO,SAACqJ,EAAQjL,GACrC,OAAKiL,EACEA,EAAOjL,GADQ,IAExB,GAAG3Q,EACL,EAkpBAP,EAAQoc,MAroBR,WACE,IAAMC,EAAW,GAKjB,OAJAA,EAASC,QAAU,IAAIrV,SAAQ,SAACvD,EAASC,GACvC0Y,EAAS3Y,QAAUA,EACnB2Y,EAAS1Y,OAASA,CACpB,IACO0Y,CACT,EA+nBArc,EAAQuc,gBA9kBR,SAAyBrM,EAAQ2B,EAAS9I,GACxC,IAAK,IAAM+I,KAAc5B,EACvB0B,EAAe1B,EAAQ2B,EAAS9I,EAAQ+I,EAE5C,EA2kBA9R,EAAQwc,gBAthBR,SAAyBtM,EAAQ2B,EAAS9I,GACxC7I,OAAOgS,oBAAoBhC,GAAQ9M,SAAQ,aAc7C,SAAuB8M,EAAQ2B,EAAS9I,EAAQ0T,GAC9C,GAAIA,KAAgB5K,EAElB,OACK,GAAI4K,EAAa3S,MAAM,cAU5B,OATA5J,OAAOI,eAAeuR,EAAS4K,EAAc,CAC3C/b,MAAO,KACPY,UAAU,SAGZyH,EAAO2T,iBAAiBD,EAAa9U,MAAM,IAAI,W,IAAS,aAAAoK,uBAAArI,kBACtDmI,EAAQ8K,cAAa,MAArB9K,EAAO,OAAkBnI,IAC3B,IAKFxJ,OAAOI,eAAeuR,EAAS4K,EAAc,CAC3Crb,YAAY,EACZuX,IAAG,WACD,OAAO5P,EAAO0T,EAChB,GAEJ,CApCIG,CAAc1M,EAAQ2B,EAAS9I,EAAQ0T,EACzC,GACF,EAmhBAzc,EAAQ6c,cAveR,SAAuBP,EAASR,EAAWC,GACzC,OAAID,EACKQ,EAAQvY,MAAK,YAClB+X,EAAUjY,EACZ,IAAG,YACDkY,EAAU9X,EACZ,IAEKqY,CACT,EA+dAtc,EAAQ8c,eAxdR,SAAwBnP,GACtB,MAAwB,kBAAbA,EACF,CACLoP,QAASpP,EACTqP,MAAOrP,EACP6J,UAAW7J,EACXsP,OAAQtP,GAGLA,CACT,EA+cA3N,EAAQkd,WAvcR,SAAoBjG,EAAOZ,GAEzB,OADAA,EAAQA,EAAQ,QAAU,KACPY,EAAMtB,MAAQ,IAAIqF,QAAQ,SAAS,YAAK,SAAE/C,aAAF,IAAgB,OAC7E,EAqcAjY,EAAQmd,sBA7bR,SAA+BC,EAAa/G,GAE1C,OADAA,EAAQA,EAAQ,QAAU,KACP+G,EAAYzH,MAAQ,IAAIqF,QAAQ,SAAS,YAAK,SAAE/C,aAAF,IAAgB,kBACnF,EA2bAjY,EAAQyS,YAAcA,EACtBzS,EAAQqd,WA/FR,SAAoB3c,EAAO4c,GACzB,IAAMC,EAAOrC,KAAKC,SAClB,OAAOza,EAAQ4c,EAASpC,KAAKsC,MAAM,EAAIF,EAASC,EAAO,GACzD,EA6FAvd,EAAQyd,yBAzER,SAAkCxG,GAGhC,MAA+B,WAAxBzF,EAAKkM,gBAA8C,UAAfzG,EAAMtB,MAAoB,mBAAoBsB,EAAM0G,aACjG,EAsEA3d,EAAQ4d,iBA7DR,SAA0B3G,GAExB,MAA+C,kBAAjCA,EAAM0G,cAAcE,QACpC,EA2DA7d,EAAQ8d,gBApDR,SAAyBC,GACvB,YADuB,QAAAA,MAChB,IAAI9W,SAAQ,YAAW,kBAAWvD,EAASqa,EAApB,GAChC,EAmDA/d,EAAQge,aA7CR,SAAsBC,EAAazF,GACjC,OAAO,IAAIvR,SAAQ,YACjBgX,EAAYvB,iBAAiBlE,GAAO,SAAS0F,EAAQ7O,GACnD4O,EAAYE,oBAAoB3F,EAAO0F,GACvCxa,EAAQ2L,EACV,GACF,GACF,C,+BC31BA,8CACe,SAAS+O,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAItZ,UAAU,sDAEtBqZ,EAASle,UAAYD,OAAO8B,OAAOsc,GAAcA,EAAWne,UAAW,CACrEuG,YAAa,CACXhG,MAAO2d,EACP/c,UAAU,EACVD,cAAc,KAGlBnB,OAAOI,eAAe+d,EAAU,YAAa,CAC3C/c,UAAU,IAERgd,GAAY,YAAeD,EAAUC,EAC3C,C,+BCdA,IAAMC,EAAclN,EAAQ,KAC5BmN,EAAOxe,QAAQye,SAAcF,EAAY5X,KAAI,MAC7C6X,EAAOxe,QAAQ0e,YAAcH,EAAY9P,QACzC+P,EAAOxe,QAAQ2e,WAAa,UAC5BH,EAAOxe,QAAQ4e,4BAA8B,CAC3CC,qBAAsB,QACtBC,cAAe,OACfC,aAAc,SACdC,aAAc,OAGhBR,EAAOxe,QAAQif,8BAAgC,CAC7CJ,qBAAsB,QACtBC,cAAe,SACfC,aAAc,SACdC,aAAc,OAGhBR,EAAOxe,QAAQkf,oBAAsB,OACrCV,EAAOxe,QAAQmf,cAAgB,MAC/BX,EAAOxe,QAAQof,eAAiB,MAChCZ,EAAOxe,QAAQqf,kBAAoB,OACnCb,EAAOxe,QAAQsf,oBAAsB,eACrCd,EAAOxe,QAAQuf,UAAY,SAACC,EAAaC,GAEvC,OADAA,EAAoB,QAAXA,EAAmB,SAAWC,mBAAmBD,GACnC,SAAhBD,EACH,SAASC,EAAM,4BACf,SAASA,EAAM,QAAQD,EAAW,uBACxC,EACAhB,EAAOxe,QAAQ2f,qBAAuB,EACtCnB,EAAOxe,QAAQ4f,uBAAyB,GACxCpB,EAAOxe,QAAQ6f,mBAAqB,GAcpCrB,EAAOxe,QAAQ8f,WAAa,CAC1BC,eAAc,SAACpZ,EAAM1E,GACnB,OAAO,IAAI+C,UAAU,mBAAmB2B,EAAI,KAAK1E,EACnD,EACAqV,aAAY,SAAC3Q,EAAMpE,GACjB,OAAO,IAAIyC,UAAa2B,EAAI,cARvB,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKqZ,SAQiBzd,EARHyX,cAAc,IAAM,KAAO,KAQnB,KAAIzX,EAC3D,EACA0d,cAAa,SAACtZ,EAAM1D,GAClB,OAAO,IAAIid,WAAcvZ,EAAI,mBAAmB1D,EAAOkd,KAAK,MAC9D,EACAC,kBAAiB,SAACzZ,GAChB,OAAO,IAAI3B,UAAa2B,EAAI,qBAC9B,GAGF6X,EAAOxe,QAAQqgB,mBAAqB,GACpC7B,EAAOxe,QAAQsgB,0CAA4C,IAE3D9B,EAAOxe,QAAQugB,iCAAmC,KAClD/B,EAAOxe,QAAQwgB,4BAA8B,GAE7ChC,EAAOxe,QAAQygB,uBAAyB,EACxCjC,EAAOxe,QAAQ0gB,wBAA0B,EACzClC,EAAOxe,QAAQ2gB,aAAe,EAE9BnC,EAAOxe,QAAQ4gB,6BAA+B,IAC9CpC,EAAOxe,QAAQ6gB,4BAA8B,IAE7CrC,EAAOxe,QAAQ8gB,wBAA0B,CACvCC,OAAQ,IACRlG,IAAK,EACLC,IAAkD,IAA7C0D,EAAOxe,QAAQwgB,4BACpBlD,OAAQ,GAGVkB,EAAOxe,QAAQghB,uBAAyB,CACtCD,OAAQ,IACRlG,IAAK,GACLyC,OAAQ,GAGVkB,EAAOxe,QAAQihB,iBAAmB,CAChCC,mBAAoB,gBACpBC,UAAW,OACXC,kBAAmB,gBAGrB5C,EAAOxe,QAAQqhB,mBAAqB,CAClCC,cAAe,WACfC,cAAe,WACfC,eAAgB,aAGlBhD,EAAOxe,QAAQuR,cAAgB,CAC7BkQ,cAAe,OACfC,aAAc,MACdC,kBAAmB,YAGrBnD,EAAOxe,QAAQ4hB,4BAA8B,CAC3CC,UAAW,OACXC,YAAa,UAGftD,EAAOxe,QAAQ+hB,4BAA8B,CAC3CF,UAAW,OACXC,YAAa,S,+BCrFftD,EAAOxe,QARP,SAA4BO,GAC1B,IAAK,IAAI+S,KAAQ/S,EACXA,EAAIF,eAAeiT,KACrB/S,EAAI+S,QAAQvO,EAGlB,C,+BC1BA,8DAGe,SAASid,EAAaC,GACnC,IAAIC,EAA4B,cAChC,OAAO,WACL,IACEre,EADEse,EAAQ,YAAeF,GAE3B,GAAIC,EAA2B,CAC7B,IAAIE,EAAY,YAAevf,MAAM6D,YACrC7C,EAASwe,QAAQC,UAAUH,EAAOxY,UAAWyY,EAC/C,MACEve,EAASse,EAAMvY,MAAM/G,KAAM8G,WAE7B,OAAO,YAA0B9G,KAAMgB,EACzC,CACF,C,+BCVA,SAAS0e,IAAgB,CASzBA,EAAapiB,UAAUuc,iBAAmB,SAAS/V,EAAMtE,GACvD,IAAImgB,EAAW3f,KAAK4f,SAAW5f,KAAK4f,UAAY,CAAC,EAC7CC,EAAcF,EAAS7b,GAAQ6b,EAAS7b,IAAS,GACjD+b,EAAYxV,QAAQ7K,GAAM,GAC5BqgB,EAAY7c,KAAKxD,EAErB,EASAkgB,EAAapiB,UAAUge,oBAAsB,SAASxX,EAAMtE,GAC1D,IACIqgB,GADW7f,KAAK4f,SAAW5f,KAAK4f,UAAY,CAAC,GACtB9b,GAC3B,GAAI+b,EAAa,CACf,IAAI1V,EAAQ0V,EAAYxV,QAAQ7K,GAC5B2K,GAAS,GACX0V,EAAYvV,OAAOH,EAAO,EAE9B,CACF,EASAuV,EAAapiB,UAAUwiB,KAAO,SAAShc,EAAMic,GAC3C,IAAIJ,EAAW3f,KAAK4f,SAAW5f,KAAK4f,UAAY,CAAC,EAC7CC,EAAcF,EAAS7b,GACvB+C,EAAO+G,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GACjD,GAAI+Y,EACF,IAAK,IAAIrc,EAAI,EAAGA,EAAIqc,EAAYtc,OAAQC,IAAK,CAC3C,IAAIhE,EAAKqgB,EAAYrc,GACrBhE,EAAGuH,MAAM/G,KAAM6G,EACjB,CAEJ,EAeA8U,EAAOxe,QARP,SAAsByG,GACpB,IAAK,IAAI6M,KAAQiP,EAAapiB,UACxBoiB,EAAapiB,UAAUE,eAAeiT,KACxC7M,EAAKtG,UAAUmT,GAAQiP,EAAapiB,UAAUmT,GAGpD,C,iGCnEe,SAASuP,EAAeC,EAAKzc,GAC1C,OAAO,OAAA0c,EAAA,GAAeD,ICLT,SAA+BA,EAAKzc,GACjD,IAAI0L,EAAY,MAAP+Q,EAAc,KAAyB,qBAAXliB,QAA0BkiB,EAAIliB,OAAOE,WAAagiB,EAAI,cAC3F,GAAU,MAAN/Q,EAAJ,CACA,IAGIiR,EAAIlS,EAHJmS,EAAO,GACPC,GAAK,EACLnP,GAAK,EAET,IACE,IAAKhC,EAAKA,EAAGvP,KAAKsgB,KAAQI,GAAMF,EAAKjR,EAAG5M,QAAQL,QAC9Cme,EAAKpd,KAAKmd,EAAGtiB,QACT2F,GAAK4c,EAAK7c,SAAWC,GAF4B6c,GAAK,GAa9D,CATE,MAAO3hB,GACPwS,GAAK,EACLjD,EAAKvP,CACP,CAAE,QACA,IACO2hB,GAAsB,MAAhBnR,EAAW,QAAWA,EAAW,QAG9C,CAFE,QACA,GAAIgC,EAAI,MAAMjD,CAChB,CACF,CACA,OAAOmS,CApBe,CAqBxB,CDlBgC,CAAqBH,EAAKzc,IAAM,OAAA8c,EAAA,GAA2BL,EAAKzc,IAAM,OAAA+c,EAAA,IACtG,C,+BENe,SAASC,EAAuB1hB,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI2hB,eAAe,6DAE3B,OAAO3hB,CACT,CALA,iC,kBCAoE6c,EAAOxe,QAAmI,WAAW,aAAa,IAAIujB,EAAE,IAAIlU,EAAE,IAAIwB,EAAE,KAAKoK,EAAE,cAAc5U,EAAE,SAASuK,EAAE,SAAS4S,EAAE,OAAOC,EAAE,MAAMnT,EAAE,OAAOS,EAAE,QAAQ2S,EAAE,UAAUtI,EAAE,OAAOuI,EAAE,OAAOC,EAAE,eAAeC,EAAE,6FAA6FC,EAAE,sFAAsFC,EAAE,CAACpd,KAAK,KAAKqd,SAAS,2DAA2DjV,MAAM,KAAKkV,OAAO,wFAAwFlV,MAAM,KAAKmV,QAAQ,SAASX,GAAG,IAAIlU,EAAE,CAAC,KAAK,KAAK,KAAK,MAAMwB,EAAE0S,EAAE,IAAI,MAAM,IAAIA,GAAGlU,GAAGwB,EAAE,IAAI,KAAKxB,EAAEwB,IAAIxB,EAAE,IAAI,GAAG,GAAG8U,EAAE,SAASZ,EAAElU,EAAEwB,GAAG,IAAIoK,EAAEmJ,OAAOb,GAAG,OAAOtI,GAAGA,EAAE7U,QAAQiJ,EAAEkU,EAAE,GAAG9S,MAAMpB,EAAE,EAAE4L,EAAE7U,QAAQ+Z,KAAKtP,GAAG0S,CAAC,EAAEc,EAAE,CAACzT,EAAEuT,EAAEG,EAAE,SAASf,GAAG,IAAIlU,GAAGkU,EAAEgB,YAAY1T,EAAEqK,KAAKsJ,IAAInV,GAAG4L,EAAEC,KAAKsC,MAAM3M,EAAE,IAAIxK,EAAEwK,EAAE,GAAG,OAAOxB,GAAG,EAAE,IAAI,KAAK8U,EAAElJ,EAAE,EAAE,KAAK,IAAIkJ,EAAE9d,EAAE,EAAE,IAAI,EAAE8d,EAAE,SAASZ,EAAElU,EAAEwB,GAAG,GAAGxB,EAAEoV,OAAO5T,EAAE4T,OAAO,OAAOlB,EAAE1S,EAAExB,GAAG,IAAI4L,EAAE,IAAIpK,EAAE6T,OAAOrV,EAAEqV,SAAS7T,EAAE8T,QAAQtV,EAAEsV,SAASte,EAAEgJ,EAAEuV,QAAQhM,IAAIqC,EAAElK,GAAGH,EAAEC,EAAExK,EAAE,EAAEmd,EAAEnU,EAAEuV,QAAQhM,IAAIqC,GAAGrK,GAAG,EAAE,GAAGG,GAAG,UAAUkK,GAAGpK,EAAExK,IAAIuK,EAAEvK,EAAEmd,EAAEA,EAAEnd,KAAK,EAAE,EAAEod,EAAE,SAASF,GAAG,OAAOA,EAAE,EAAErI,KAAK2J,KAAKtB,IAAI,EAAErI,KAAKsC,MAAM+F,EAAE,EAAEuB,EAAE,SAASvB,GAAG,MAAM,CAACQ,EAAEhT,EAAE+S,EAAE1I,EAAE2J,EAAEzU,EAAEqT,EAAEF,EAAEuB,EAAErB,EAAED,EAAEF,EAAEW,EAAEvT,EAAEA,EAAEvK,EAAE4e,GAAGhK,EAAEiK,EAAExB,GAAGH,IAAIa,OAAOb,GAAG,IAAIvJ,cAAcgB,QAAQ,KAAK,GAAG,EAAEwI,EAAE,SAASD,GAAG,YAAO,IAASA,CAAC,GAAG4B,EAAE,KAAKH,EAAE,CAAC,EAAEA,EAAEG,GAAGpB,EAAE,IAAIe,EAAE,SAASvB,GAAG,OAAOA,aAAajW,CAAC,EAAE8X,EAAE,SAAS7B,EAAElU,EAAEwB,EAAEoK,GAAG,IAAI5U,EAAE,IAAIgJ,EAAE,OAAO8V,EAAE,GAAG,iBAAiB9V,EAAE,CAAC,IAAIuB,EAAEvB,EAAE2K,cAAcgL,EAAEpU,KAAKvK,EAAEuK,GAAGC,IAAImU,EAAEpU,GAAGC,EAAExK,EAAEuK,GAAG,IAAI4S,EAAEnU,EAAEN,MAAM,KAAK,IAAI1I,GAAGmd,EAAEpd,OAAO,EAAE,OAAOmd,EAAEC,EAAE,GAAG,KAAK,CAAC,IAAIC,EAAEpU,EAAE1I,KAAKqe,EAAEvB,GAAGpU,EAAEhJ,EAAEod,CAAC,CAAC,OAAOxI,GAAG5U,IAAI8e,EAAE9e,GAAGA,IAAI4U,GAAGkK,CAAC,EAAEJ,EAAE,SAASxB,EAAElU,GAAG,GAAGyV,EAAEvB,GAAG,OAAOA,EAAEqB,QAAQ,IAAI/T,EAAE,iBAAiBxB,EAAEA,EAAE,CAAC,EAAE,OAAOwB,EAAE4T,KAAKlB,EAAE1S,EAAEnH,KAAKC,UAAU,IAAI2D,EAAEuD,EAAE,EAAEwU,EAAEhB,EAAEgB,EAAEzB,EAAEwB,EAAEC,EAAEhf,EAAEye,EAAEO,EAAEN,EAAE,SAASxB,EAAElU,GAAG,OAAO0V,EAAExB,EAAE,CAAC+B,OAAOjW,EAAEkW,GAAGC,IAAInW,EAAEoW,GAAGC,EAAErW,EAAEsW,GAAGC,QAAQvW,EAAEuW,SAAS,EAAE,IAAItY,EAAE,WAAW,SAASyW,EAAER,GAAG1gB,KAAK0iB,GAAGH,EAAE7B,EAAE+B,OAAO,MAAK,GAAIziB,KAAKgjB,MAAMtC,EAAE,CAAC,IAAIY,EAAEJ,EAAE5jB,UAAU,OAAOgkB,EAAE0B,MAAM,SAAStC,GAAG1gB,KAAKijB,GAAG,SAASvC,GAAG,IAAIlU,EAAEkU,EAAEkB,KAAK5T,EAAE0S,EAAEiC,IAAI,GAAG,OAAOnW,EAAE,OAAO,IAAIvB,KAAKiY,KAAK,GAAGV,EAAE7B,EAAEnU,GAAG,OAAO,IAAIvB,KAAK,GAAGuB,aAAavB,KAAK,OAAO,IAAIA,KAAKuB,GAAG,GAAG,iBAAiBA,IAAI,MAAM2W,KAAK3W,GAAG,CAAC,IAAI4L,EAAE5L,EAAEvF,MAAM+Z,GAAG,GAAG5I,EAAE,CAAC,IAAI5U,EAAE4U,EAAE,GAAG,GAAG,EAAErK,GAAGqK,EAAE,IAAI,KAAKgL,UAAU,EAAE,GAAG,OAAOpV,EAAE,IAAI/C,KAAKA,KAAKoY,IAAIjL,EAAE,GAAG5U,EAAE4U,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAErK,IAAI,IAAI9C,KAAKmN,EAAE,GAAG5U,EAAE4U,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAErK,EAAE,CAAC,CAAC,OAAO,IAAI9C,KAAKuB,EAAE,CAA3X,CAA6XkU,GAAG1gB,KAAK8iB,GAAGpC,EAAEmC,GAAG,CAAC,EAAE7iB,KAAKsjB,MAAM,EAAEhC,EAAEgC,KAAK,WAAW,IAAI5C,EAAE1gB,KAAKijB,GAAGjjB,KAAKujB,GAAG7C,EAAE8C,cAAcxjB,KAAKyjB,GAAG/C,EAAEgD,WAAW1jB,KAAK2jB,GAAGjD,EAAEkD,UAAU5jB,KAAK6jB,GAAGnD,EAAEoD,SAAS9jB,KAAK+jB,GAAGrD,EAAEsD,WAAWhkB,KAAKikB,GAAGvD,EAAEwD,aAAalkB,KAAKmkB,GAAGzD,EAAE0D,aAAapkB,KAAKqkB,IAAI3D,EAAE4D,iBAAiB,EAAEhD,EAAEiD,OAAO,WAAW,OAAO/B,CAAC,EAAElB,EAAEkD,QAAQ,WAAW,QAAQxkB,KAAKijB,GAAG/a,aAAa6Y,EAAE,EAAEO,EAAEmD,OAAO,SAAS/D,EAAElU,GAAG,IAAIwB,EAAEkU,EAAExB,GAAG,OAAO1gB,KAAK0kB,QAAQlY,IAAIwB,GAAGA,GAAGhO,KAAK2kB,MAAMnY,EAAE,EAAE8U,EAAEsD,QAAQ,SAASlE,EAAElU,GAAG,OAAO0V,EAAExB,GAAG1gB,KAAK0kB,QAAQlY,EAAE,EAAE8U,EAAEuD,SAAS,SAASnE,EAAElU,GAAG,OAAOxM,KAAK2kB,MAAMnY,GAAG0V,EAAExB,EAAE,EAAEY,EAAEwD,GAAG,SAASpE,EAAElU,EAAEwB,GAAG,OAAOwU,EAAE7B,EAAED,GAAG1gB,KAAKwM,GAAGxM,KAAK+kB,IAAI/W,EAAE0S,EAAE,EAAEY,EAAE0D,KAAK,WAAW,OAAO3M,KAAKsC,MAAM3a,KAAKilB,UAAU,IAAI,EAAE3D,EAAE2D,QAAQ,WAAW,OAAOjlB,KAAKijB,GAAGiC,SAAS,EAAE5D,EAAEoD,QAAQ,SAAShE,EAAElU,GAAG,IAAIwB,EAAEhO,KAAKoY,IAAIoK,EAAE7B,EAAEnU,IAAIA,EAAEqU,EAAE2B,EAAEP,EAAEvB,GAAGK,EAAE,SAASL,EAAElU,GAAG,IAAIhJ,EAAEgf,EAAEN,EAAElU,EAAE4U,GAAG3X,KAAKoY,IAAIrV,EAAEuV,GAAG/W,EAAEkU,GAAG,IAAIzV,KAAK+C,EAAEuV,GAAG/W,EAAEkU,GAAG1S,GAAG,OAAOoK,EAAE5U,EAAEA,EAAEmhB,MAAM/D,EAAE,EAAEI,EAAE,SAASN,EAAElU,GAAG,OAAOgW,EAAEN,EAAElU,EAAEmX,SAASzE,GAAG3Z,MAAMiH,EAAEmX,OAAO,MAAM/M,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,MAAMtT,MAAM0H,IAAIwB,EAAE,EAAEiT,EAAEjhB,KAAK6jB,GAAG3C,EAAElhB,KAAKyjB,GAAGnC,EAAEthB,KAAK2jB,GAAGnC,EAAE,OAAOxhB,KAAK4iB,GAAG,MAAM,IAAI,OAAO/B,GAAG,KAAKtI,EAAE,OAAOH,EAAE2I,EAAE,EAAE,GAAGA,EAAE,GAAG,IAAI,KAAK7S,EAAE,OAAOkK,EAAE2I,EAAE,EAAEG,GAAGH,EAAE,EAAEG,EAAE,GAAG,KAAKzT,EAAE,IAAI6U,EAAEtiB,KAAKolB,UAAUC,WAAW,EAAElD,GAAGlB,EAAEqB,EAAErB,EAAE,EAAEA,GAAGqB,EAAE,OAAOvB,EAAE3I,EAAEkJ,EAAEa,EAAEb,GAAG,EAAEa,GAAGjB,GAAG,KAAKN,EAAE,KAAKE,EAAE,OAAOE,EAAEQ,EAAE,QAAQ,GAAG,KAAKb,EAAE,OAAOK,EAAEQ,EAAE,UAAU,GAAG,KAAKzT,EAAE,OAAOiT,EAAEQ,EAAE,UAAU,GAAG,KAAKhe,EAAE,OAAOwd,EAAEQ,EAAE,eAAe,GAAG,QAAQ,OAAOxhB,KAAK+hB,QAAQ,EAAET,EAAEqD,MAAM,SAASjE,GAAG,OAAO1gB,KAAK0kB,QAAQhE,GAAE,EAAG,EAAEY,EAAEgE,KAAK,SAAS5E,EAAElU,GAAG,IAAIwB,EAAEP,EAAE+U,EAAEP,EAAEvB,GAAGG,EAAE,OAAO7gB,KAAK4iB,GAAG,MAAM,IAAI7B,GAAG/S,EAAE,CAAC,EAAEA,EAAE4S,GAAGC,EAAE,OAAO7S,EAAE8S,GAAGD,EAAE,OAAO7S,EAAEE,GAAG2S,EAAE,QAAQ7S,EAAEuK,GAAGsI,EAAE,WAAW7S,EAAE2S,GAAGE,EAAE,QAAQ7S,EAAED,GAAG8S,EAAE,UAAU7S,EAAExK,GAAGqd,EAAE,UAAU7S,EAAEoK,GAAGyI,EAAE,eAAe7S,GAAGP,GAAGuT,EAAEvT,IAAImT,EAAE5gB,KAAK2jB,IAAInX,EAAExM,KAAK6jB,IAAIrX,EAAE,GAAGiB,IAAIS,GAAGT,IAAI8K,EAAE,CAAC,IAAI0I,EAAEjhB,KAAK+hB,QAAQgD,IAAIjE,EAAE,GAAGG,EAAEgC,GAAGlC,GAAGC,GAAGC,EAAEqC,OAAOtjB,KAAKijB,GAAGhC,EAAE8D,IAAIjE,EAAEzI,KAAKL,IAAIhY,KAAK2jB,GAAG1C,EAAEsE,gBAAgBtC,EAAE,MAAMlC,GAAG/gB,KAAKijB,GAAGlC,GAAGC,GAAG,OAAOhhB,KAAKsjB,OAAOtjB,IAAI,EAAEshB,EAAEyD,IAAI,SAASrE,EAAElU,GAAG,OAAOxM,KAAK+hB,QAAQuD,KAAK5E,EAAElU,EAAE,EAAE8U,EAAExL,IAAI,SAAS4K,GAAG,OAAO1gB,KAAKwiB,EAAEP,EAAEvB,KAAK,EAAEY,EAAEvL,IAAI,SAASqC,EAAEyI,GAAG,IAAIC,EAAEC,EAAE/gB,KAAKoY,EAAEjF,OAAOiF,GAAG,IAAI4I,EAAEwB,EAAEP,EAAEpB,GAAGI,EAAE,SAASP,GAAG,IAAIlU,EAAE0V,EAAEnB,GAAG,OAAOyB,EAAEN,EAAE1V,EAAEoV,KAAKpV,EAAEoV,OAAOvJ,KAAKmN,MAAM9E,EAAEtI,IAAI2I,EAAE,EAAE,GAAGC,IAAI9S,EAAE,OAAOlO,KAAK+kB,IAAI7W,EAAElO,KAAKyjB,GAAGrL,GAAG,GAAG4I,IAAIzI,EAAE,OAAOvY,KAAK+kB,IAAIxM,EAAEvY,KAAKujB,GAAGnL,GAAG,GAAG4I,IAAIJ,EAAE,OAAOK,EAAE,GAAG,GAAGD,IAAIvT,EAAE,OAAOwT,EAAE,GAAG,IAAIC,GAAGJ,EAAE,CAAC,EAAEA,EAAE/S,GAAGvB,EAAEsU,EAAEH,GAAG3S,EAAE8S,EAAEtd,GAAGkd,EAAEI,GAAGE,IAAI,EAAEM,EAAEthB,KAAKijB,GAAGiC,UAAU9M,EAAE8I,EAAE,OAAOsB,EAAEN,EAAEZ,EAAEthB,KAAK,EAAEshB,EAAEmE,SAAS,SAAS/E,EAAElU,GAAG,OAAOxM,KAAK+V,KAAK,EAAE2K,EAAElU,EAAE,EAAE8U,EAAEoE,OAAO,SAAShF,GAAG,IAAIlU,EAAExM,KAAKgO,EAAEhO,KAAKolB,UAAU,IAAIplB,KAAKwkB,UAAU,OAAOxW,EAAE2X,aAAa5E,EAAE,IAAI3I,EAAEsI,GAAG,uBAAuBld,EAAEgf,EAAEf,EAAEzhB,MAAM+N,EAAE/N,KAAK+jB,GAAGpD,EAAE3gB,KAAKikB,GAAGrD,EAAE5gB,KAAKyjB,GAAGhW,EAAEO,EAAEmT,SAASjT,EAAEF,EAAEoT,OAAOP,EAAE,SAASH,EAAE1S,EAAExK,EAAEuK,GAAG,OAAO2S,IAAIA,EAAE1S,IAAI0S,EAAElU,EAAE4L,KAAK5U,EAAEwK,GAAGlJ,MAAM,EAAEiJ,EAAE,EAAEwK,EAAE,SAASmI,GAAG,OAAO8B,EAAEzU,EAAEA,EAAE,IAAI,GAAG2S,EAAE,IAAI,EAAEI,EAAE9S,EAAE4X,UAAU,SAASlF,EAAElU,EAAEwB,GAAG,IAAIoK,EAAEsI,EAAE,GAAG,KAAK,KAAK,OAAO1S,EAAEoK,EAAEjB,cAAciB,CAAC,EAAE4I,EAAE,CAAC6E,GAAGtE,OAAOvhB,KAAKujB,IAAIze,OAAO,GAAGghB,KAAK9lB,KAAKujB,GAAGrC,EAAEN,EAAE,EAAEmF,GAAGvD,EAAEzU,EAAE6S,EAAE,EAAE,EAAE,KAAKoF,IAAInF,EAAE7S,EAAEiY,YAAYrF,EAAE1S,EAAE,GAAGgY,KAAKrF,EAAE3S,EAAE0S,GAAGuB,EAAEniB,KAAK2jB,GAAGwC,GAAG3D,EAAEzU,EAAE/N,KAAK2jB,GAAG,EAAE,KAAK7C,EAAES,OAAOvhB,KAAK6jB,IAAIuC,GAAGvF,EAAE7S,EAAEqY,YAAYrmB,KAAK6jB,GAAGpW,EAAE,GAAG6Y,IAAIzF,EAAE7S,EAAEuY,cAAcvmB,KAAK6jB,GAAGpW,EAAE,GAAG+Y,KAAK/Y,EAAEzN,KAAK6jB,IAAI4C,EAAElF,OAAOxT,GAAG2Y,GAAGlE,EAAEzU,EAAEA,EAAE,EAAE,KAAK8S,EAAEtI,EAAE,GAAGoO,GAAGpO,EAAE,GAAGqI,EAAEE,EAAE/S,EAAE4S,GAAE,GAAIiG,EAAE9F,EAAE/S,EAAE4S,GAAE,GAAIW,EAAEC,OAAOZ,GAAGkG,GAAGrE,EAAEzU,EAAE4S,EAAE,EAAE,KAAK5S,EAAEwT,OAAOvhB,KAAKmkB,IAAI2C,GAAGtE,EAAEzU,EAAE/N,KAAKmkB,GAAG,EAAE,KAAK4C,IAAIvE,EAAEzU,EAAE/N,KAAKqkB,IAAI,EAAE,KAAK2C,EAAExjB,GAAG,OAAO4U,EAAED,QAAQ8I,GAAG,SAASP,EAAElU,GAAG,OAAOA,GAAGwU,EAAEN,IAAIld,EAAE2U,QAAQ,IAAI,GAAG,GAAG,EAAEmJ,EAAEI,UAAU,WAAW,OAAO,IAAIrJ,KAAKmN,MAAMxlB,KAAKijB,GAAGgE,oBAAoB,GAAG,EAAE3F,EAAE4F,KAAK,SAAS9O,EAAE0I,EAAEC,GAAG,IAAIC,EAAEC,EAAEuB,EAAEP,EAAEnB,GAAGI,EAAEgB,EAAE9J,GAAGkJ,GAAGJ,EAAEQ,YAAY1hB,KAAK0hB,aAAalV,EAAEgV,EAAExhB,KAAKkhB,EAAEoB,EAAEE,EAAElB,EAAEthB,KAAKkhB,GAAG,OAAOoB,GAAGtB,EAAE,CAAC,EAAEA,EAAEzI,GAAG+J,EAAE,GAAGtB,EAAE9S,GAAGoU,EAAEtB,EAAEH,GAAGyB,EAAE,EAAEtB,EAAEvT,IAAI+T,EAAEF,GAAG,OAAON,EAAEJ,IAAIY,EAAEF,GAAG,MAAMN,EAAEL,GAAGa,EAAExT,EAAEgT,EAAEjT,GAAGyT,EAAEhV,EAAEwU,EAAExd,GAAGge,EAAEd,EAAEM,GAAGC,IAAIO,EAAET,EAAEuB,EAAEE,EAAE5B,EAAE0B,EAAE,EAAEhB,EAAEiE,YAAY,WAAW,OAAOvlB,KAAK2kB,MAAMzW,GAAGyV,EAAE,EAAErC,EAAE8D,QAAQ,WAAW,OAAOjD,EAAEniB,KAAK0iB,GAAG,EAAEpB,EAAEmB,OAAO,SAAS/B,EAAElU,GAAG,IAAIkU,EAAE,OAAO1gB,KAAK0iB,GAAG,IAAI1U,EAAEhO,KAAK+hB,QAAQ3J,EAAEmK,EAAE7B,EAAElU,GAAE,GAAI,OAAO4L,IAAIpK,EAAE0U,GAAGtK,GAAGpK,CAAC,EAAEsT,EAAES,MAAM,WAAW,OAAOS,EAAEN,EAAEliB,KAAKijB,GAAGjjB,KAAK,EAAEshB,EAAE6D,OAAO,WAAW,OAAO,IAAIla,KAAKjL,KAAKilB,UAAU,EAAE3D,EAAE6F,OAAO,WAAW,OAAOnnB,KAAKwkB,UAAUxkB,KAAKkL,cAAc,IAAI,EAAEoW,EAAEpW,YAAY,WAAW,OAAOlL,KAAKijB,GAAG/X,aAAa,EAAEoW,EAAEpZ,SAAS,WAAW,OAAOlI,KAAKijB,GAAGmE,aAAa,EAAElG,CAAC,CAAtwI,GAA0wImG,EAAE5c,EAAEnN,UAAU,OAAO4kB,EAAE5kB,UAAU+pB,EAAE,CAAC,CAAC,MAAMjP,GAAG,CAAC,KAAK5U,GAAG,CAAC,KAAKuK,GAAG,CAAC,KAAK4S,GAAG,CAAC,KAAKC,GAAG,CAAC,KAAK1S,GAAG,CAAC,KAAKqK,GAAG,CAAC,KAAKuI,IAAIvgB,SAAS,SAASmgB,GAAG2G,EAAE3G,EAAE,IAAI,SAASlU,GAAG,OAAOxM,KAAK8kB,GAAGtY,EAAEkU,EAAE,GAAGA,EAAE,GAAG,CAAC,IAAIwB,EAAEoF,OAAO,SAAS5G,EAAElU,GAAG,OAAOkU,EAAE6G,KAAK7G,EAAElU,EAAE/B,EAAEyX,GAAGxB,EAAE6G,IAAG,GAAIrF,CAAC,EAAEA,EAAEO,OAAOF,EAAEL,EAAEsF,QAAQvF,EAAEC,EAAE8C,KAAK,SAAStE,GAAG,OAAOwB,EAAE,IAAIxB,EAAE,EAAEwB,EAAEuF,GAAGtF,EAAEG,GAAGJ,EAAEwF,GAAGvF,EAAED,EAAED,EAAE,CAAC,EAAEC,CAAC,CAAv7M1V,E,+BCyBnF,SAASuC,EAAe1B,EAAQ2B,EAAS9I,EAAQ+I,GAC/C,KAAIA,KAAcD,KAGPC,EAAWhI,MAAM,cAArB,CAMP,IAAI0gB,GAAa,EACjB,IACE,IAAIC,EAAWvqB,OAAO8P,yBAAyBE,EAAQ4B,GACvD0Y,EAAaC,KAAcA,EAAS9R,GAEpC,CADA,MAAO1U,GACP,CASF,IAAIumB,EAAJ,CAIA,IAAIjoB,EACJ,IACEA,SAAc2N,EAAO4B,EAGrB,CAFA,MAAO7N,GAEP,CAGW,aAAT1B,IAMJsP,EAAQC,GAAc,WACpB,OAAO,KAAK/I,GAAQ+I,GAAYlI,MAAM,KAAKb,GAASY,UACtD,E,EACF,CA2DA,SAAS+H,IACP,MAA4B,qBAAdC,WAA4D,kBAAxBA,UAAU9C,UACxD8C,UAAU9C,UACV,IACN,CAOA,SAAS6O,EAAa7O,GAIpB,MAHyB,qBAAdA,IACTA,EAAY6C,KAEV,eAAesU,KAAKnX,GACf,SAEL,gBAAgBmX,KAAKnX,GAChB,UAEL,0BAA0BmX,KAAKnX,GAC1B,SAEF,IACT,CAyKA7O,EAAQoc,MA7TR,WACE,IAAIC,EAAW,GAKf,OAJAA,EAASC,QAAU,IAAIrV,SAAQ,SAASvD,EAASC,GAC/C0Y,EAAS3Y,QAAUA,EACnB2Y,EAAS1Y,OAASA,CACpB,IACO0Y,CACT,EAuTArc,EAAQuc,gBAnPR,SAAyBrM,EAAQ2B,EAAS9I,GACxC,IAAK,IAAI+I,KAAc5B,EACrB0B,EAAe1B,EAAQ2B,EAAS9I,EAAQ+I,EAE5C,EAgPA9R,EAAQ+Y,WAxOR,SAAoBC,EAAOC,GACzBD,EAAQvI,MAAMC,QAAQsI,GAAS,IAAItG,IAAIsG,GAAS,IAAItG,IAAIsG,EAAM/V,UAC9DgW,EAAQxI,MAAMC,QAAQuI,GAAS,IAAIvG,IAAIuG,GAAS,IAAIvG,IAAIuG,EAAMhW,UAE9D,IAAI8V,EAAa,IAAIrG,IAQrB,OANAsG,EAAM5V,SAAQ,SAAS8V,GAChBD,EAAMR,IAAIS,IACbH,EAAWH,IAAIM,EAEnB,IAEOH,CACT,EA4NA/Y,EAAQsZ,QApNR,SAAiBC,EAAMC,GAKrB,OAJgBD,aAAgB5G,KAAO4G,aAAgB7G,IACnDjC,MAAMiJ,KAAKH,EAAKtW,UAChBsW,GAEazG,QAAO,SAAS6G,EAAWT,GAC1C,IAAIU,EAASJ,EAAMN,GACnB,OAAOS,EAAUE,OAAOD,EAC1B,GAAG,GACL,EA4MA5Z,EAAQ0d,aAAeA,EACvB1d,EAAQ0qB,oBAvKR,SAA6B7b,GACF,qBAAdA,IACTA,EAAY6C,KAEd,IAAIiZ,EAAS,CACXC,OAAQ,eACRC,QAAS,gBACTC,OAAQ,WACRpN,EAAa7O,IAEf,IAAK8b,EACH,OAAO,KAET,IAAII,EAAQ,IAAIC,OAAO,IAAML,EAAS,eAClC7gB,GAAS+E,EAAU/E,MAAMihB,IAAU,IAAI,GAE3C,IAAKjhB,EACH,OAAO,KAET,IAAIoF,EAAWpF,EAAMiF,MAAM,KAAKyD,IAAIwD,QACpC,MAAO,CACLiV,MAAO9kB,MAAM+I,EAAS,IAAM,KAAOA,EAAS,GAC5Cgc,MAAO/kB,MAAM+I,EAAS,IAAM,KAAOA,EAAS,GAEhD,EAgJAlP,EAAQmrB,YAzIR,SAAqBtc,GAInB,MAHyB,qBAAdA,IACTA,EAAY6C,KAEN,OAAOsU,KAAKnX,IAAiC,WAAnB6O,KAA+B,mBAAmBsI,KAAKnX,EAC3F,EAqIA7O,EAAQorB,eA7HR,SAAwBriB,EAAQxG,GAC9B,IAAI8oB,EAAkB,KACtBnrB,OAAOI,eAAeyI,EAAQ,KAAOxG,EAAM,CACzCoW,IAAK,WACH,OAAO0S,CACT,EACAzD,IAAK,SAASrP,GACR8S,GACF,KAAKlN,oBAAoB5b,EAAM8oB,GAGN,oBAAhB9S,GACT8S,EAAkB9S,EAClB,KAAKmE,iBAAiBna,EAAM8oB,IAE5BA,EAAkB,IAEtB,GAEJ,EA2GArrB,EAAQ6c,cAjGR,SAAuBP,EAASR,EAAWC,GACzC,OAAID,EACKQ,EAAQvY,MAAK,SAASF,GAC3BiY,EAAUjY,EACZ,IAAG,SAASI,GACV8X,EAAU9X,EACZ,IAEKqY,CACT,EAyFAtc,EAAQ+a,SAnFR,WACE,MAAO,uCAAuCC,QAAQ,SAAS,SAASI,GACtE,IAAIH,EAAoB,GAAhBC,KAAKC,SAAgB,EAE7B,OADc,MAANC,EAAYH,EAAS,EAAJA,EAAU,GAC1BlQ,SAAS,GACpB,GACF,EA8EA/K,EAAQwc,gBApER,SAAyBtM,EAAQ2B,EAAS9I,GACxC7I,OAAOgS,oBAAoBhC,GAAQ9M,SAAQ,SAASqZ,IActD,SAAuBvM,EAAQ2B,EAAS9I,EAAQ0T,GAC9C,GAAIA,KAAgB5K,EAElB,OACK,GAAI4K,EAAa3S,MAAM,cAU5B,OATA5J,OAAOI,eAAeuR,EAAS4K,EAAc,CAC3C/b,MAAO,KACPY,UAAU,SAGZyH,EAAO2T,iBAAiBD,EAAa9U,MAAM,IAAI,WAC7CkK,EAAQ8K,cAAc/S,MAAMiI,EAASlI,UACvC,IAKFzJ,OAAOI,eAAeuR,EAAS4K,EAAc,CAC3Crb,YAAY,EACZuX,IAAK,WACH,OAAO5P,EAAO0T,EAChB,GAEJ,CApCIG,CAAc1M,EAAQ2B,EAAS9I,EAAQ0T,EACzC,GACF,EAiEAzc,EAAQsrB,QAzBR,WACE,MAA4B,kBAAd3Z,WACyB,kBAA3BA,UAAU4Z,cAC8B,oBAAxC5Z,UAAU4Z,aAAaC,cACD,oBAAtBC,iBACd,C,+BC1Te,SAASC,EAAgBnrB,EAAKC,EAAKE,GAWhD,OAVIF,KAAOD,EACTL,OAAOI,eAAeC,EAAKC,EAAK,CAC9BE,MAAOA,EACPU,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZf,EAAIC,GAAOE,EAENH,CACT,CAZA,iC,opdCKO,IAAIorB,EAAU,KACVC,EAAqC,qBAAjBC,aAA+BA,aAAepb,MAClEqb,EAAS5Q,KAAKC,OAOlB,SAAS4Q,EAAmBxpB,GACjCqpB,EAAarpB,CACf,CACA,IAAIypB,EAAS9Q,KAAK+Q,GAAK,IAOhB,SAASC,EAASzI,GACvB,OAAOA,EAAIuI,CACb,CAWO,SAASG,EAAO1I,EAAG2I,GACxB,OAAOlR,KAAKsJ,IAAIf,EAAI2I,IAAMT,EAAUzQ,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIf,GAAIvI,KAAKsJ,IAAI4H,GAC1E,CC3BO,SAASpqB,IACd,IAAIyL,EAAM,IAAI4e,EAAoB,GASlC,OAPIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,GAGXA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAASmX,EAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAKlC,OAJA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CASO,SAAS6e,EAAK7e,EAAKgW,GAKxB,OAJAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAQO,SAAS8e,EAAS9e,GAKvB,OAJAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAWO,SAAS+e,EAAWC,EAAKC,EAAKC,EAAKC,GACxC,IAAInf,EAAM,IAAI4e,EAAoB,GAKlC,OAJA5e,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACFnf,CACT,CAYO,SAASma,EAAIna,EAAKgf,EAAKC,EAAKC,EAAKC,GAKtC,OAJAnf,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACFnf,CACT,CASO,SAASof,EAAUpf,EAAKgW,GAG7B,GAAIhW,IAAQgW,EAAG,CACb,IAAIqJ,EAAKrJ,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKqf,CACX,MACErf,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GAGb,OAAOhW,CACT,CASO,SAASsf,EAAOtf,EAAKgW,GAC1B,IAAIuJ,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GAEP0J,EAAMH,EAAKE,EAAKD,EAAKH,EAEzB,OAAKK,GAILA,EAAM,EAAMA,EACZ1f,EAAI,GAAKyf,EAAKC,EACd1f,EAAI,IAAMqf,EAAKK,EACf1f,EAAI,IAAMwf,EAAKE,EACf1f,EAAI,GAAKuf,EAAKG,EACP1f,GARE,IASX,CASO,SAAS2f,EAAQ3f,EAAKgW,GAE3B,IAAIuJ,EAAKvJ,EAAE,GAKX,OAJAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,GAAKuf,EACFvf,CACT,CAQO,SAAS4f,EAAY5J,GAC1B,OAAOA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,EAChC,CAUO,SAAS6J,EAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GAKX,OAJA3e,EAAI,GAAKuf,EAAKO,EAAKN,EAAKO,EACxB/f,EAAI,GAAKqf,EAAKS,EAAKL,EAAKM,EACxB/f,EAAI,GAAKuf,EAAKS,EAAKR,EAAKS,EACxBjgB,EAAI,GAAKqf,EAAKW,EAAKP,EAAKQ,EACjBjgB,CACT,CAUO,SAASkgB,EAAOlgB,EAAKgW,EAAGmK,GAC7B,IAAIZ,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP7S,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAKjB,OAJAngB,EAAI,GAAKuf,EAAK5R,EAAI6R,EAAKrc,EACvBnD,EAAI,GAAKqf,EAAK1R,EAAI8R,EAAKtc,EACvBnD,EAAI,GAAKuf,GAAMpc,EAAIqc,EAAK7R,EACxB3N,EAAI,GAAKqf,GAAMlc,EAAIsc,EAAK9R,EACjB3N,CACT,CAUO,SAASsgB,EAAMtgB,EAAKgW,EAAGY,GAC5B,IAAI2I,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACPuK,EAAK3J,EAAE,GACP4J,EAAK5J,EAAE,GAKX,OAJA5W,EAAI,GAAKuf,EAAKgB,EACdvgB,EAAI,GAAKqf,EAAKkB,EACdvgB,EAAI,GAAKwf,EAAKgB,EACdxgB,EAAI,GAAKyf,EAAKe,EACPxgB,CACT,CAaO,SAASygB,EAAazgB,EAAKmgB,GAChC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAKjB,OAJAngB,EAAI,GAAK2N,EACT3N,EAAI,GAAKmD,EACTnD,EAAI,IAAMmD,EACVnD,EAAI,GAAK2N,EACF3N,CACT,CAaO,SAAS0gB,EAAY1gB,EAAK4W,GAK/B,OAJA5W,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACJ5W,CACT,CAQO,SAAS5C,EAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACpE,CAQO,SAAS2K,EAAK3K,GACnB,OAAOvI,KAAKmT,MAAM5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACxC,CASO,SAAS6K,EAAIC,EAAGvJ,EAAGwJ,EAAG/K,GAK3B,OAJA8K,EAAE,GAAK9K,EAAE,GAAKA,EAAE,GAChB+K,EAAE,GAAK/K,EAAE,GACT+K,EAAE,GAAK/K,EAAE,GACT+K,EAAE,GAAK/K,EAAE,GAAK8K,EAAE,GAAKC,EAAE,GAChB,CAACD,EAAGvJ,EAAGwJ,EAChB,CAUO,SAAS5V,EAAInL,EAAKgW,EAAG2I,GAK1B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,EAAS7a,EAAKgW,EAAG2I,GAK/B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CASO,SAASghB,EAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EACvE,CASO,SAASD,EAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,GACrV,CAUO,SAASgB,EAAejhB,EAAKgW,EAAG2I,GAKrC,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAASkhB,EAAqBlhB,EAAKgW,EAAG2I,EAAG2B,GAK9C,OAJAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CD3XKyN,KAAKmT,QAAOnT,KAAKmT,MAAQ,WAI5B,IAHA,IAAIvK,EAAI,EACJzd,EAAIsD,UAAUvD,OAEXC,KACLyd,GAAKna,UAAUtD,GAAKsD,UAAUtD,GAGhC,OAAO6U,KAAK0T,KAAK9K,EACnB,GCwXO,IAAI+K,EAAMvB,EAMNwB,EAAMxG,ECrZV,SAAStmB,IACd,IAAIyL,EAAM,IAAI4e,EAAoB,GAWlC,OATIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,GAGXA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAASmX,EAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAOlC,OANA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CASO,SAAS6e,EAAK7e,EAAKgW,GAOxB,OANAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAQO,SAAS8e,EAAS9e,GAOvB,OANAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAaO,SAAS+e,EAAW/I,EAAG2I,EAAGhR,EAAGuI,EAAGoL,EAAIC,GACzC,IAAIvhB,EAAM,IAAI4e,EAAoB,GAOlC,OANA5e,EAAI,GAAKgW,EACThW,EAAI,GAAK2e,EACT3e,EAAI,GAAK2N,EACT3N,EAAI,GAAKkW,EACTlW,EAAI,GAAKshB,EACTthB,EAAI,GAAKuhB,EACFvhB,CACT,CAcO,SAASma,EAAIna,EAAKgW,EAAG2I,EAAGhR,EAAGuI,EAAGoL,EAAIC,GAOvC,OANAvhB,EAAI,GAAKgW,EACThW,EAAI,GAAK2e,EACT3e,EAAI,GAAK2N,EACT3N,EAAI,GAAKkW,EACTlW,EAAI,GAAKshB,EACTthB,EAAI,GAAKuhB,EACFvhB,CACT,CASO,SAASsf,EAAOtf,EAAKgW,GAC1B,IAAIwL,EAAKxL,EAAE,GACPyL,EAAKzL,EAAE,GACP0L,EAAK1L,EAAE,GACP2L,EAAK3L,EAAE,GACP4L,EAAM5L,EAAE,GACR6L,EAAM7L,EAAE,GACR0J,EAAM8B,EAAKG,EAAKF,EAAKC,EAEzB,OAAKhC,GAILA,EAAM,EAAMA,EACZ1f,EAAI,GAAK2hB,EAAKjC,EACd1f,EAAI,IAAMyhB,EAAK/B,EACf1f,EAAI,IAAM0hB,EAAKhC,EACf1f,EAAI,GAAKwhB,EAAK9B,EACd1f,EAAI,IAAM0hB,EAAKG,EAAMF,EAAKC,GAAOlC,EACjC1f,EAAI,IAAMyhB,EAAKG,EAAMJ,EAAKK,GAAOnC,EAC1B1f,GAVE,IAWX,CAQO,SAAS4f,EAAY5J,GAC1B,OAAOA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,EAChC,CAUO,SAAS6J,GAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACPqD,EAAKrD,EAAE,GACPsD,EAAKtD,EAAE,GAOX,OANA3e,EAAI,GAAKuf,EAAKO,EAAKN,EAAKO,EACxB/f,EAAI,GAAKqf,EAAKS,EAAKL,EAAKM,EACxB/f,EAAI,GAAKuf,EAAKS,EAAKR,EAAKS,EACxBjgB,EAAI,GAAKqf,EAAKW,EAAKP,EAAKQ,EACxBjgB,EAAI,GAAKuf,EAAKyC,EAAKxC,EAAKyC,EAAKH,EAC7B9hB,EAAI,GAAKqf,EAAK2C,EAAKvC,EAAKwC,EAAKF,EACtB/hB,CACT,CAUO,SAASkgB,GAAOlgB,EAAKgW,EAAGmK,GAC7B,IAAIZ,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP7S,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAOjB,OANAngB,EAAI,GAAKuf,EAAK5R,EAAI6R,EAAKrc,EACvBnD,EAAI,GAAKqf,EAAK1R,EAAI8R,EAAKtc,EACvBnD,EAAI,GAAKuf,GAAMpc,EAAIqc,EAAK7R,EACxB3N,EAAI,GAAKqf,GAAMlc,EAAIsc,EAAK9R,EACxB3N,EAAI,GAAK8hB,EACT9hB,EAAI,GAAK+hB,EACF/hB,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAGY,GAC5B,IAAI2I,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACPuK,EAAK3J,EAAE,GACP4J,EAAK5J,EAAE,GAOX,OANA5W,EAAI,GAAKuf,EAAKgB,EACdvgB,EAAI,GAAKqf,EAAKkB,EACdvgB,EAAI,GAAKwf,EAAKgB,EACdxgB,EAAI,GAAKyf,EAAKe,EACdxgB,EAAI,GAAK8hB,EACT9hB,EAAI,GAAK+hB,EACF/hB,CACT,CAUO,SAASkiB,GAAUliB,EAAKgW,EAAGY,GAChC,IAAI2I,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACPuK,EAAK3J,EAAE,GACP4J,EAAK5J,EAAE,GAOX,OANA5W,EAAI,GAAKuf,EACTvf,EAAI,GAAKqf,EACTrf,EAAI,GAAKwf,EACTxf,EAAI,GAAKyf,EACTzf,EAAI,GAAKuf,EAAKgB,EAAKf,EAAKgB,EAAKsB,EAC7B9hB,EAAI,GAAKqf,EAAKkB,EAAKd,EAAKe,EAAKuB,EACtB/hB,CACT,CAaO,SAASygB,GAAazgB,EAAKmgB,GAChC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAOjB,OANAngB,EAAI,GAAK2N,EACT3N,EAAI,GAAKmD,EACTnD,EAAI,IAAMmD,EACVnD,EAAI,GAAK2N,EACT3N,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAaO,SAAS0gB,GAAY1gB,EAAK4W,GAO/B,OANA5W,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAaO,SAASmiB,GAAgBniB,EAAK4W,GAOnC,OANA5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK4W,EAAE,GACJ5W,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,SAAWA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACjG,CAQO,SAAS2K,GAAK3K,GACnB,OAAOvI,KAAKmT,MAAM5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,EACxD,CAUO,SAAS7K,GAAInL,EAAKgW,EAAG2I,GAO1B,OANA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAO/B,OANA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAASihB,GAAejhB,EAAKgW,EAAG2I,GAOrC,OANA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAASkhB,GAAqBlhB,EAAKgW,EAAG2I,EAAG2B,GAO9C,OANAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CASO,SAASghB,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EACzG,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACPqD,EAAKrD,EAAE,GACPsD,EAAKtD,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,KAAQxS,KAAKsJ,IAAI+K,EAAKE,IAAOpD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+K,GAAKrU,KAAKsJ,IAAIiL,KAAQvU,KAAKsJ,IAAIgL,EAAKE,IAAOrD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgL,GAAKtU,KAAKsJ,IAAIkL,GAC/f,CAMO,IAAIb,GAAMvB,GAMNwB,GAAMxG,GCzdV,SAAStmB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,GAclC,OAZIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,GAGXA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CASO,SAASoiB,GAASpiB,EAAKgW,GAU5B,OATAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,IACJhW,CACT,CAQO,SAASmX,GAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAUlC,OATA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CASO,SAAS6e,GAAK7e,EAAKgW,GAUxB,OATAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAgBO,SAAS+e,GAAWC,EAAKC,EAAKoD,EAAKnD,EAAKC,EAAKmD,EAAKC,EAAKC,EAAKC,GACjE,IAAIziB,EAAM,IAAI4e,EAAoB,GAUlC,OATA5e,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKqiB,EACTriB,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACTnf,EAAI,GAAKsiB,EACTtiB,EAAI,GAAKuiB,EACTviB,EAAI,GAAKwiB,EACTxiB,EAAI,GAAKyiB,EACFziB,CACT,CAiBO,SAASma,GAAIna,EAAKgf,EAAKC,EAAKoD,EAAKnD,EAAKC,EAAKmD,EAAKC,EAAKC,EAAKC,GAU/D,OATAziB,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKqiB,EACTriB,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACTnf,EAAI,GAAKsiB,EACTtiB,EAAI,GAAKuiB,EACTviB,EAAI,GAAKwiB,EACTxiB,EAAI,GAAKyiB,EACFziB,CACT,CAQO,SAAS8e,GAAS9e,GAUvB,OATAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CASO,SAASof,GAAUpf,EAAKgW,GAE7B,GAAIhW,IAAQgW,EAAG,CACb,IAAI0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4M,EAAM5M,EAAE,GACZhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAK0iB,EACT1iB,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAK2iB,EACT3iB,EAAI,GAAK4iB,CACX,MACE5iB,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GAGb,OAAOhW,CACT,CASO,SAASsf,GAAOtf,EAAKgW,GAC1B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GACRmN,EAAMD,EAAMH,EAAMH,EAAMK,EACxBG,GAAOF,EAAMJ,EAAMF,EAAMI,EACzBK,EAAMJ,EAAMH,EAAMC,EAAMC,EAExBtD,EAAMmD,EAAMM,EAAMT,EAAMU,EAAMT,EAAMU,EAExC,OAAK3D,GAILA,EAAM,EAAMA,EACZ1f,EAAI,GAAKmjB,EAAMzD,EACf1f,EAAI,KAAOkjB,EAAMR,EAAMC,EAAMM,GAAOvD,EACpC1f,EAAI,IAAM4iB,EAAMF,EAAMC,EAAMI,GAAOrD,EACnC1f,EAAI,GAAKojB,EAAM1D,EACf1f,EAAI,IAAMkjB,EAAML,EAAMF,EAAMK,GAAOtD,EACnC1f,EAAI,KAAO4iB,EAAMC,EAAMF,EAAMG,GAAOpD,EACpC1f,EAAI,GAAKqjB,EAAM3D,EACf1f,EAAI,KAAOijB,EAAMJ,EAAMH,EAAMM,GAAOtD,EACpC1f,EAAI,IAAM+iB,EAAMF,EAAMH,EAAMI,GAAOpD,EAC5B1f,GAbE,IAcX,CASO,SAAS2f,GAAQ3f,EAAKgW,GAC3B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GAUZ,OATAhW,EAAI,GAAK+iB,EAAMG,EAAMN,EAAMK,EAC3BjjB,EAAI,GAAK2iB,EAAMM,EAAMP,EAAMQ,EAC3BljB,EAAI,GAAK0iB,EAAME,EAAMD,EAAMI,EAC3B/iB,EAAI,GAAK4iB,EAAMI,EAAMF,EAAMI,EAC3BljB,EAAI,GAAK6iB,EAAMK,EAAMP,EAAMK,EAC3BhjB,EAAI,GAAK2iB,EAAMG,EAAMD,EAAMD,EAC3B5iB,EAAI,GAAK8iB,EAAMG,EAAMF,EAAMC,EAC3BhjB,EAAI,GAAK0iB,EAAMM,EAAMH,EAAMI,EAC3BjjB,EAAI,GAAK6iB,EAAME,EAAML,EAAMI,EACpB9iB,CACT,CAQO,SAAS4f,GAAY5J,GAC1B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GACZ,OAAO6M,GAAOK,EAAMH,EAAMH,EAAMK,GAAOP,IAAQQ,EAAMJ,EAAMF,EAAMI,GAAOL,GAAOM,EAAMH,EAAMC,EAAMC,EACnG,CAUO,SAASnD,GAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIkE,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GACRsN,EAAM3E,EAAE,GACRwE,EAAMxE,EAAE,GACR4E,EAAM5E,EAAE,GACR6E,EAAM7E,EAAE,GACRyE,EAAMzE,EAAE,GACR8E,EAAM9E,EAAE,GACR+E,EAAM/E,EAAE,GACR0E,EAAM1E,EAAE,GACRgF,EAAMhF,EAAE,GAUZ,OATA3e,EAAI,GAAKsjB,EAAMT,EAAMM,EAAML,EAAMS,EAAMP,EACvChjB,EAAI,GAAKsjB,EAAMZ,EAAMS,EAAMJ,EAAMQ,EAAMN,EACvCjjB,EAAI,GAAKsjB,EAAMX,EAAMQ,EAAMP,EAAMW,EAAML,EACvCljB,EAAI,GAAKwjB,EAAMX,EAAMO,EAAMN,EAAMW,EAAMT,EACvChjB,EAAI,GAAKwjB,EAAMd,EAAMU,EAAML,EAAMU,EAAMR,EACvCjjB,EAAI,GAAKwjB,EAAMb,EAAMS,EAAMR,EAAMa,EAAMP,EACvCljB,EAAI,GAAK0jB,EAAMb,EAAMQ,EAAMP,EAAMa,EAAMX,EACvChjB,EAAI,GAAK0jB,EAAMhB,EAAMW,EAAMN,EAAMY,EAAMV,EACvCjjB,EAAI,GAAK0jB,EAAMf,EAAMU,EAAMT,EAAMe,EAAMT,EAChCljB,CACT,CAUO,SAASkiB,GAAUliB,EAAKgW,EAAGY,GAChC,IAAIiM,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GACRiC,EAAIrB,EAAE,GACNP,EAAIO,EAAE,GAUV,OATA5W,EAAI,GAAK6iB,EACT7iB,EAAI,GAAK0iB,EACT1iB,EAAI,GAAK2iB,EACT3iB,EAAI,GAAK8iB,EACT9iB,EAAI,GAAK+iB,EACT/iB,EAAI,GAAK4iB,EACT5iB,EAAI,GAAKiY,EAAI4K,EAAMxM,EAAIyM,EAAME,EAC7BhjB,EAAI,GAAKiY,EAAIyK,EAAMrM,EAAI0M,EAAME,EAC7BjjB,EAAI,GAAKiY,EAAI0K,EAAMtM,EAAIuM,EAAMM,EACtBljB,CACT,CAUO,SAASkgB,GAAOlgB,EAAKgW,EAAGmK,GAC7B,IAAI0C,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,GACR7S,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAUjB,OATAngB,EAAI,GAAK2N,EAAIkV,EAAM1f,EAAI2f,EACvB9iB,EAAI,GAAK2N,EAAI+U,EAAMvf,EAAI4f,EACvB/iB,EAAI,GAAK2N,EAAIgV,EAAMxf,EAAIyf,EACvB5iB,EAAI,GAAK2N,EAAImV,EAAM3f,EAAI0f,EACvB7iB,EAAI,GAAK2N,EAAIoV,EAAM5f,EAAIuf,EACvB1iB,EAAI,GAAK2N,EAAIiV,EAAMzf,EAAIwf,EACvB3iB,EAAI,GAAKgjB,EACThjB,EAAI,GAAKijB,EACTjjB,EAAI,GAAKkjB,EACFljB,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAGY,GAC5B,IAAIqB,EAAIrB,EAAE,GACNP,EAAIO,EAAE,GAUV,OATA5W,EAAI,GAAKiY,EAAIjC,EAAE,GACfhW,EAAI,GAAKiY,EAAIjC,EAAE,GACfhW,EAAI,GAAKiY,EAAIjC,EAAE,GACfhW,EAAI,GAAKqW,EAAIL,EAAE,GACfhW,EAAI,GAAKqW,EAAIL,EAAE,GACfhW,EAAI,GAAKqW,EAAIL,EAAE,GACfhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAaO,SAASmiB,GAAgBniB,EAAK4W,GAUnC,OATA5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACFA,CACT,CAaO,SAASygB,GAAazgB,EAAKmgB,GAChC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAUjB,OATAngB,EAAI,GAAK2N,EACT3N,EAAI,GAAKmD,EACTnD,EAAI,GAAK,EACTA,EAAI,IAAMmD,EACVnD,EAAI,GAAK2N,EACT3N,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAaO,SAAS0gB,GAAY1gB,EAAK4W,GAU/B,OATA5W,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CASO,SAAS4jB,GAAU5jB,EAAKgW,GAU7B,OATAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAK,EACTA,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAK,EACTA,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAK,EACFA,CACT,CAUO,SAAS6jB,GAAS7jB,EAAK8jB,GAC5B,IAAI7L,EAAI6L,EAAE,GACNzN,EAAIyN,EAAE,GACNjN,EAAIiN,EAAE,GACNxM,EAAIwM,EAAE,GACNC,EAAK9L,EAAIA,EACT+L,EAAK3N,EAAIA,EACT4N,EAAKpN,EAAIA,EACTqN,EAAKjM,EAAI8L,EACTI,EAAK9N,EAAI0N,EACTK,EAAK/N,EAAI2N,EACTK,EAAKxN,EAAIkN,EACTO,EAAKzN,EAAImN,EACTO,EAAK1N,EAAIoN,EACTO,EAAKlN,EAAIyM,EACTU,EAAKnN,EAAI0M,EACTU,EAAKpN,EAAI2M,EAUb,OATAjkB,EAAI,GAAK,EAAIokB,EAAKG,EAClBvkB,EAAI,GAAKmkB,EAAKO,EACd1kB,EAAI,GAAKqkB,EAAKI,EACdzkB,EAAI,GAAKmkB,EAAKO,EACd1kB,EAAI,GAAK,EAAIkkB,EAAKK,EAClBvkB,EAAI,GAAKskB,EAAKE,EACdxkB,EAAI,GAAKqkB,EAAKI,EACdzkB,EAAI,GAAKskB,EAAKE,EACdxkB,EAAI,GAAK,EAAIkkB,EAAKE,EACXpkB,CACT,CAUO,SAAS2kB,GAAe3kB,EAAKgW,GAClC,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACRkP,EAAMlP,EAAE,IACRsN,EAAMT,EAAME,EAAML,EAAMI,EACxBK,EAAMN,EAAMD,EAAMD,EAAMG,EACxBS,EAAMV,EAAMgC,EAAMD,EAAM9B,EACxBqC,EAAMzC,EAAME,EAAMD,EAAMI,EACxBqC,EAAM1C,EAAMmC,EAAMD,EAAM7B,EACxBsC,EAAM1C,EAAMkC,EAAMD,EAAMhC,EACxB0C,EAAMtC,EAAMgC,EAAM/B,EAAM8B,EACxBQ,EAAMvC,EAAMiC,EAAM/B,EAAM6B,EACxBS,EAAMxC,EAAMkC,EAAMJ,EAAMC,EACxBU,EAAMxC,EAAMgC,EAAM/B,EAAM8B,EACxBxB,EAAMP,EAAMiC,EAAMJ,EAAME,EACxB5B,EAAMF,EAAMgC,EAAMJ,EAAMG,EAExBvF,EAAM4D,EAAMF,EAAMD,EAAMK,EAAMD,EAAMkC,EAAMN,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,EAE5E,OAAK5F,GAILA,EAAM,EAAMA,EACZ1f,EAAI,IAAM+iB,EAAMK,EAAMR,EAAMY,EAAMqB,EAAMY,GAAO/F,EAC/C1f,EAAI,IAAM4iB,EAAM4C,EAAM1C,EAAMM,EAAMyB,EAAMU,GAAO7F,EAC/C1f,EAAI,IAAM8iB,EAAMU,EAAMT,EAAMyC,EAAMX,EAAMS,GAAO5F,EAC/C1f,EAAI,IAAM2iB,EAAMa,EAAMd,EAAMU,EAAMwB,EAAMa,GAAO/F,EAC/C1f,EAAI,IAAM6iB,EAAMO,EAAMT,EAAM6C,EAAMZ,EAAMW,GAAO7F,EAC/C1f,EAAI,IAAM0iB,EAAM8C,EAAM3C,EAAMW,EAAMoB,EAAMU,GAAO5F,EAC/C1f,EAAI,IAAMglB,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,GAAOzF,EAC/C1f,EAAI,IAAMilB,EAAM1B,EAAMwB,EAAMM,EAAMH,EAAM/B,GAAOzD,EAC/C1f,EAAI,IAAM+kB,EAAMK,EAAMJ,EAAMzB,EAAM2B,EAAM5B,GAAO5D,EACxC1f,GAbE,IAcX,CAUO,SAAS0lB,GAAW1lB,EAAK2lB,EAAOC,GAUrC,OATA5lB,EAAI,GAAK,EAAI2lB,EACb3lB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EAAI4lB,EACd5lB,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GAC1I,CAQO,SAAS2K,GAAK3K,GACnB,OAAOvI,KAAKmT,MAAM5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACtE,CAUO,SAAS7K,GAAInL,EAAKgW,EAAG2I,GAU1B,OATA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAU/B,OATA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAASihB,GAAejhB,EAAKgW,EAAG2I,GAUrC,OATA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAASkhB,GAAqBlhB,EAAKgW,EAAG2I,EAAG2B,GAU9C,OATAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CASO,SAASghB,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EAC5J,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP6P,EAAK7P,EAAE,GACP8P,EAAK9P,EAAE,GACP+P,EAAK/P,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACPqD,EAAKrD,EAAE,GACPsD,EAAKtD,EAAE,GACPqH,EAAKrH,EAAE,GACPsH,EAAKtH,EAAE,GACPuH,EAAKvH,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,KAAQxS,KAAKsJ,IAAI+K,EAAKE,IAAOpD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+K,GAAKrU,KAAKsJ,IAAIiL,KAAQvU,KAAKsJ,IAAIgL,EAAKE,IAAOrD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgL,GAAKtU,KAAKsJ,IAAIkL,KAAQxU,KAAKsJ,IAAI8O,EAAKG,IAAOpH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI8O,GAAKpY,KAAKsJ,IAAIiP,KAAQvY,KAAKsJ,IAAI+O,EAAKG,IAAOrH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+O,GAAKrY,KAAKsJ,IAAIkP,KAAQxY,KAAKsJ,IAAIgP,EAAKG,IAAOtH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgP,GAAKtY,KAAKsJ,IAAImP,GAC9vB,CAMO,IAAI9E,GAAMvB,GAMNwB,GAAMxG,GC7vBV,SAAStmB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,IAqBlC,OAnBIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,GAGZA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAQO,SAASmX,GAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,IAiBlC,OAhBA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACLhW,CACT,CASO,SAAS6e,GAAK7e,EAAKgW,GAiBxB,OAhBAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACLhW,CACT,CAuBO,SAAS+e,GAAWC,EAAKC,EAAKoD,EAAK8D,EAAKjH,EAAKC,EAAKmD,EAAK8D,EAAK7D,EAAKC,EAAKC,EAAK4D,EAAKC,EAAKC,EAAKC,EAAKC,GACpG,IAAIzmB,EAAM,IAAI4e,EAAoB,IAiBlC,OAhBA5e,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKqiB,EACTriB,EAAI,GAAKmmB,EACTnmB,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACTnf,EAAI,GAAKsiB,EACTtiB,EAAI,GAAKomB,EACTpmB,EAAI,GAAKuiB,EACTviB,EAAI,GAAKwiB,EACTxiB,EAAI,IAAMyiB,EACVziB,EAAI,IAAMqmB,EACVrmB,EAAI,IAAMsmB,EACVtmB,EAAI,IAAMumB,EACVvmB,EAAI,IAAMwmB,EACVxmB,EAAI,IAAMymB,EACHzmB,CACT,CAwBO,SAASma,GAAIna,EAAKgf,EAAKC,EAAKoD,EAAK8D,EAAKjH,EAAKC,EAAKmD,EAAK8D,EAAK7D,EAAKC,EAAKC,EAAK4D,EAAKC,EAAKC,EAAKC,EAAKC,GAiBlG,OAhBAzmB,EAAI,GAAKgf,EACThf,EAAI,GAAKif,EACTjf,EAAI,GAAKqiB,EACTriB,EAAI,GAAKmmB,EACTnmB,EAAI,GAAKkf,EACTlf,EAAI,GAAKmf,EACTnf,EAAI,GAAKsiB,EACTtiB,EAAI,GAAKomB,EACTpmB,EAAI,GAAKuiB,EACTviB,EAAI,GAAKwiB,EACTxiB,EAAI,IAAMyiB,EACVziB,EAAI,IAAMqmB,EACVrmB,EAAI,IAAMsmB,EACVtmB,EAAI,IAAMumB,EACVvmB,EAAI,IAAMwmB,EACVxmB,EAAI,IAAMymB,EACHzmB,CACT,CAQO,SAAS8e,GAAS9e,GAiBvB,OAhBAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CASO,SAASof,GAAUpf,EAAKgW,GAE7B,GAAIhW,IAAQgW,EAAG,CACb,IAAI0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACR8O,EAAM9O,EAAE,IACZhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,IACXhW,EAAI,GAAK0iB,EACT1iB,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,IACXhW,EAAI,GAAK2iB,EACT3iB,EAAI,GAAK4iB,EACT5iB,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAM4kB,EACV5kB,EAAI,IAAM6kB,EACV7kB,EAAI,IAAM8kB,CACZ,MACE9kB,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,IACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,IACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IAGd,OAAOhW,CACT,CASO,SAASsf,GAAOtf,EAAKgW,GAC1B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACRkP,EAAMlP,EAAE,IACRsN,EAAMT,EAAME,EAAML,EAAMI,EACxBK,EAAMN,EAAMD,EAAMD,EAAMG,EACxBS,EAAMV,EAAMgC,EAAMD,EAAM9B,EACxBqC,EAAMzC,EAAME,EAAMD,EAAMI,EACxBqC,EAAM1C,EAAMmC,EAAMD,EAAM7B,EACxBsC,EAAM1C,EAAMkC,EAAMD,EAAMhC,EACxB0C,EAAMtC,EAAMgC,EAAM/B,EAAM8B,EACxBQ,EAAMvC,EAAMiC,EAAM/B,EAAM6B,EACxBS,EAAMxC,EAAMkC,EAAMJ,EAAMC,EACxBU,EAAMxC,EAAMgC,EAAM/B,EAAM8B,EACxBxB,EAAMP,EAAMiC,EAAMJ,EAAME,EACxB5B,EAAMF,EAAMgC,EAAMJ,EAAMG,EAExBvF,EAAM4D,EAAMF,EAAMD,EAAMK,EAAMD,EAAMkC,EAAMN,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,EAE5E,OAAK5F,GAILA,EAAM,EAAMA,EACZ1f,EAAI,IAAM+iB,EAAMK,EAAMR,EAAMY,EAAMqB,EAAMY,GAAO/F,EAC/C1f,EAAI,IAAM2iB,EAAMa,EAAMd,EAAMU,EAAMwB,EAAMa,GAAO/F,EAC/C1f,EAAI,IAAMglB,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,GAAOzF,EAC/C1f,EAAI,IAAMkjB,EAAMkC,EAAMnC,EAAMoC,EAAMP,EAAMK,GAAOzF,EAC/C1f,EAAI,IAAM4iB,EAAM4C,EAAM1C,EAAMM,EAAMyB,EAAMU,GAAO7F,EAC/C1f,EAAI,IAAM6iB,EAAMO,EAAMT,EAAM6C,EAAMZ,EAAMW,GAAO7F,EAC/C1f,EAAI,IAAMilB,EAAM1B,EAAMwB,EAAMM,EAAMH,EAAM/B,GAAOzD,EAC/C1f,EAAI,IAAMgjB,EAAMqC,EAAMnC,EAAMK,EAAMuB,EAAM3B,GAAOzD,EAC/C1f,EAAI,IAAM8iB,EAAMU,EAAMT,EAAMyC,EAAMX,EAAMS,GAAO5F,EAC/C1f,EAAI,IAAM0iB,EAAM8C,EAAM3C,EAAMW,EAAMoB,EAAMU,GAAO5F,EAC/C1f,EAAI,KAAO+kB,EAAMK,EAAMJ,EAAMzB,EAAM2B,EAAM5B,GAAO5D,EAChD1f,EAAI,KAAOijB,EAAMM,EAAMP,EAAMoC,EAAMN,EAAMxB,GAAO5D,EAChD1f,EAAI,KAAO+iB,EAAMwC,EAAMzC,EAAM2C,EAAM7C,EAAM0C,GAAO5F,EAChD1f,EAAI,KAAO6iB,EAAM4C,EAAM/C,EAAM6C,EAAM5C,EAAM2C,GAAO5F,EAChD1f,EAAI,KAAOglB,EAAM7B,EAAM4B,EAAMI,EAAMF,EAAM3B,GAAO5D,EAChD1f,EAAI,KAAOgjB,EAAMmC,EAAMlC,EAAME,EAAMD,EAAMI,GAAO5D,EACzC1f,GApBE,IAqBX,CASO,SAAS2f,GAAQ3f,EAAKgW,GAC3B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACRkP,EAAMlP,EAAE,IAiBZ,OAhBAhW,EAAI,GAAK+iB,GAAOG,EAAMgC,EAAMJ,EAAMG,GAAOhC,GAAOL,EAAMsC,EAAML,EAAMI,GAAOD,GAAOpC,EAAMkC,EAAMD,EAAM3B,GAClGljB,EAAI,KAAO0iB,GAAOQ,EAAMgC,EAAMJ,EAAMG,GAAOhC,GAAON,EAAMuC,EAAMN,EAAMK,GAAOD,GAAOrC,EAAMmC,EAAMF,EAAM1B,IACpGljB,EAAI,GAAK0iB,GAAOE,EAAMsC,EAAML,EAAMI,GAAOlC,GAAOJ,EAAMuC,EAAMN,EAAMK,GAAOD,GAAOrC,EAAMkC,EAAMD,EAAMhC,GAClG5iB,EAAI,KAAO0iB,GAAOE,EAAMkC,EAAMD,EAAM3B,GAAOH,GAAOJ,EAAMmC,EAAMF,EAAM1B,GAAOD,GAAON,EAAMkC,EAAMD,EAAMhC,IACpG5iB,EAAI,KAAO8iB,GAAOI,EAAMgC,EAAMJ,EAAMG,GAAOjC,GAAOJ,EAAMsC,EAAML,EAAMI,GAAOF,GAAOnC,EAAMkC,EAAMD,EAAM3B,IACpGljB,EAAI,GAAK6iB,GAAOK,EAAMgC,EAAMJ,EAAMG,GAAOjC,GAAOL,EAAMuC,EAAMN,EAAMK,GAAOF,GAAOpC,EAAMmC,EAAMF,EAAM1B,GAClGljB,EAAI,KAAO6iB,GAAOD,EAAMsC,EAAML,EAAMI,GAAOnC,GAAOH,EAAMuC,EAAMN,EAAMK,GAAOF,GAAOpC,EAAMkC,EAAMD,EAAMhC,IACpG5iB,EAAI,GAAK6iB,GAAOD,EAAMkC,EAAMD,EAAM3B,GAAOJ,GAAOH,EAAMmC,EAAMF,EAAM1B,GAAOF,GAAOL,EAAMkC,EAAMD,EAAMhC,GAClG5iB,EAAI,GAAK8iB,GAAOG,EAAMiC,EAAMJ,EAAME,GAAOhC,GAAOD,EAAMmC,EAAML,EAAMG,GAAOD,GAAOhC,EAAM+B,EAAMD,EAAM5B,GAClGjjB,EAAI,KAAO6iB,GAAOI,EAAMiC,EAAMJ,EAAME,GAAOhC,GAAON,EAAMwC,EAAMN,EAAMI,GAAOD,GAAOrC,EAAMoC,EAAMF,EAAM3B,IACpGjjB,EAAI,IAAM6iB,GAAOE,EAAMmC,EAAML,EAAMG,GAAOlC,GAAOJ,EAAMwC,EAAMN,EAAMI,GAAOD,GAAOrC,EAAMmC,EAAMD,EAAM7B,GACnG/iB,EAAI,MAAQ6iB,GAAOE,EAAM+B,EAAMD,EAAM5B,GAAOH,GAAOJ,EAAMoC,EAAMF,EAAM3B,GAAOD,GAAON,EAAMmC,EAAMD,EAAM7B,IACrG/iB,EAAI,MAAQ8iB,GAAOG,EAAMgC,EAAM/B,EAAM8B,GAAOhC,GAAOD,EAAMkC,EAAMrC,EAAMoC,GAAOD,GAAOhC,EAAMG,EAAMN,EAAMK,IACrGjjB,EAAI,IAAM6iB,GAAOI,EAAMgC,EAAM/B,EAAM8B,GAAOhC,GAAON,EAAMuC,EAAMtC,EAAMqC,GAAOD,GAAOrC,EAAMQ,EAAMP,EAAMM,GACnGjjB,EAAI,MAAQ6iB,GAAOE,EAAMkC,EAAMrC,EAAMoC,GAAOlC,GAAOJ,EAAMuC,EAAMtC,EAAMqC,GAAOD,GAAOrC,EAAME,EAAMD,EAAMI,IACrG/iB,EAAI,IAAM6iB,GAAOE,EAAMG,EAAMN,EAAMK,GAAOH,GAAOJ,EAAMQ,EAAMP,EAAMM,GAAOD,GAAON,EAAME,EAAMD,EAAMI,GAC5F/iB,CACT,CAQO,SAAS4f,GAAY5J,GAC1B,IAAI6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACRkP,EAAMlP,EAAE,IAcZ,OAbU6M,EAAME,EAAML,EAAMI,IAWlBI,EAAMgC,EAAMJ,EAAMG,IAVlBpC,EAAMD,EAAMD,EAAMG,IASlBG,EAAMiC,EAAMJ,EAAME,IARlBnC,EAAMgC,EAAMD,EAAM9B,IAOlBG,EAAMgC,EAAM/B,EAAM8B,IANlBtC,EAAME,EAAMD,EAAMI,IAKlBC,EAAMkC,EAAMJ,EAAMC,IAJlBrC,EAAMmC,EAAMD,EAAM7B,IAGlBC,EAAMiC,EAAM/B,EAAM6B,IAFlBpC,EAAMkC,EAAMD,EAAMhC,IAClBI,EAAMgC,EAAM/B,EAAM8B,EAQ9B,CAUO,SAASlF,GAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIkE,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACRkP,EAAMlP,EAAE,IAER8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GA6BX,OA5BA3e,EAAI,GAAK8f,EAAK+C,EAAM9C,EAAK+C,EAAM9C,EAAKgD,EAAM/C,EAAK8E,EAC/C/kB,EAAI,GAAK8f,EAAK4C,EAAM3C,EAAKgD,EAAM/C,EAAKiD,EAAMhD,EAAK+E,EAC/ChlB,EAAI,GAAK8f,EAAK6C,EAAM5C,EAAK6C,EAAM5C,EAAKkD,EAAMjD,EAAKgF,EAC/CjlB,EAAI,GAAK8f,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAKiF,EAC/CpF,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACP3e,EAAI,GAAK8f,EAAK+C,EAAM9C,EAAK+C,EAAM9C,EAAKgD,EAAM/C,EAAK8E,EAC/C/kB,EAAI,GAAK8f,EAAK4C,EAAM3C,EAAKgD,EAAM/C,EAAKiD,EAAMhD,EAAK+E,EAC/ChlB,EAAI,GAAK8f,EAAK6C,EAAM5C,EAAK6C,EAAM5C,EAAKkD,EAAMjD,EAAKgF,EAC/CjlB,EAAI,GAAK8f,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAKiF,EAC/CpF,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,IACPsB,EAAKtB,EAAE,IACP3e,EAAI,GAAK8f,EAAK+C,EAAM9C,EAAK+C,EAAM9C,EAAKgD,EAAM/C,EAAK8E,EAC/C/kB,EAAI,GAAK8f,EAAK4C,EAAM3C,EAAKgD,EAAM/C,EAAKiD,EAAMhD,EAAK+E,EAC/ChlB,EAAI,IAAM8f,EAAK6C,EAAM5C,EAAK6C,EAAM5C,EAAKkD,EAAMjD,EAAKgF,EAChDjlB,EAAI,IAAM8f,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAKiF,EAChDpF,EAAKnB,EAAE,IACPoB,EAAKpB,EAAE,IACPqB,EAAKrB,EAAE,IACPsB,EAAKtB,EAAE,IACP3e,EAAI,IAAM8f,EAAK+C,EAAM9C,EAAK+C,EAAM9C,EAAKgD,EAAM/C,EAAK8E,EAChD/kB,EAAI,IAAM8f,EAAK4C,EAAM3C,EAAKgD,EAAM/C,EAAKiD,EAAMhD,EAAK+E,EAChDhlB,EAAI,IAAM8f,EAAK6C,EAAM5C,EAAK6C,EAAM5C,EAAKkD,EAAMjD,EAAKgF,EAChDjlB,EAAI,IAAM8f,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAK8E,EAAM7E,EAAKiF,EACzCllB,CACT,CAUO,SAASkiB,GAAUliB,EAAKgW,EAAGY,GAChC,IAGIiM,EAAKH,EAAKC,EAAKiC,EACf9B,EAAKC,EAAKH,EAAKiC,EACf7B,EAAKC,EAAKC,EAAK4B,EALf7M,EAAIrB,EAAE,GACNP,EAAIO,EAAE,GACNC,EAAID,EAAE,GAyCV,OApCIZ,IAAMhW,GACRA,EAAI,IAAMgW,EAAE,GAAKiC,EAAIjC,EAAE,GAAKK,EAAIL,EAAE,GAAKa,EAAIb,EAAE,IAC7ChW,EAAI,IAAMgW,EAAE,GAAKiC,EAAIjC,EAAE,GAAKK,EAAIL,EAAE,GAAKa,EAAIb,EAAE,IAC7ChW,EAAI,IAAMgW,EAAE,GAAKiC,EAAIjC,EAAE,GAAKK,EAAIL,EAAE,IAAMa,EAAIb,EAAE,IAC9ChW,EAAI,IAAMgW,EAAE,GAAKiC,EAAIjC,EAAE,GAAKK,EAAIL,EAAE,IAAMa,EAAIb,EAAE,MAE9C6M,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IACRhW,EAAI,GAAK6iB,EACT7iB,EAAI,GAAK0iB,EACT1iB,EAAI,GAAK2iB,EACT3iB,EAAI,GAAK4kB,EACT5kB,EAAI,GAAK8iB,EACT9iB,EAAI,GAAK+iB,EACT/iB,EAAI,GAAK4iB,EACT5iB,EAAI,GAAK6kB,EACT7kB,EAAI,GAAKgjB,EACThjB,EAAI,GAAKijB,EACTjjB,EAAI,IAAMkjB,EACVljB,EAAI,IAAM8kB,EACV9kB,EAAI,IAAM6iB,EAAM5K,EAAI6K,EAAMzM,EAAI2M,EAAMnM,EAAIb,EAAE,IAC1ChW,EAAI,IAAM0iB,EAAMzK,EAAI8K,EAAM1M,EAAI4M,EAAMpM,EAAIb,EAAE,IAC1ChW,EAAI,IAAM2iB,EAAM1K,EAAI2K,EAAMvM,EAAI6M,EAAMrM,EAAIb,EAAE,IAC1ChW,EAAI,IAAM4kB,EAAM3M,EAAI4M,EAAMxO,EAAIyO,EAAMjO,EAAIb,EAAE,KAGrChW,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAGY,GAC5B,IAAIqB,EAAIrB,EAAE,GACNP,EAAIO,EAAE,GACNC,EAAID,EAAE,GAiBV,OAhBA5W,EAAI,GAAKgW,EAAE,GAAKiC,EAChBjY,EAAI,GAAKgW,EAAE,GAAKiC,EAChBjY,EAAI,GAAKgW,EAAE,GAAKiC,EAChBjY,EAAI,GAAKgW,EAAE,GAAKiC,EAChBjY,EAAI,GAAKgW,EAAE,GAAKK,EAChBrW,EAAI,GAAKgW,EAAE,GAAKK,EAChBrW,EAAI,GAAKgW,EAAE,GAAKK,EAChBrW,EAAI,GAAKgW,EAAE,GAAKK,EAChBrW,EAAI,GAAKgW,EAAE,GAAKa,EAChB7W,EAAI,GAAKgW,EAAE,GAAKa,EAChB7W,EAAI,IAAMgW,EAAE,IAAMa,EAClB7W,EAAI,IAAMgW,EAAE,IAAMa,EAClB7W,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACLhW,CACT,CAWO,SAASkgB,GAAOlgB,EAAKgW,EAAGmK,EAAKuG,GAClC,IAIIvjB,EAAGwK,EAAGmI,EACN+M,EAAKH,EAAKC,EAAKiC,EACf9B,EAAKC,EAAKH,EAAKiC,EACf7B,EAAKC,EAAKC,EAAK4B,EACfxB,EAAKH,EAAKI,EACVC,EAAKJ,EAAKK,EACVC,EAAKL,EAAKM,EAVV1L,EAAIyO,EAAK,GACTrQ,EAAIqQ,EAAK,GACT7P,EAAI6P,EAAK,GACTC,EAAMlZ,KAAKmT,MAAM3I,EAAG5B,EAAGQ,GAS3B,OAAI8P,EAAM/H,EACD,MAIT3G,GADA0O,EAAM,EAAIA,EAEVtQ,GAAKsQ,EACL9P,GAAK8P,EACLxjB,EAAIsK,KAAK2S,IAAID,GAEbrK,EAAI,GADJnI,EAAIF,KAAK4S,IAAIF,IAEb0C,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IAERsN,EAAMrL,EAAIA,EAAInC,EAAInI,EAClBwV,EAAM9M,EAAI4B,EAAInC,EAAIe,EAAI1T,EACtBogB,EAAM1M,EAAIoB,EAAInC,EAAIO,EAAIlT,EACtBqgB,EAAMvL,EAAI5B,EAAIP,EAAIe,EAAI1T,EACtBigB,EAAM/M,EAAIA,EAAIP,EAAInI,EAClB8V,EAAM5M,EAAIR,EAAIP,EAAImC,EAAI9U,EACtBugB,EAAMzL,EAAIpB,EAAIf,EAAIO,EAAIlT,EACtBkgB,EAAMhN,EAAIQ,EAAIf,EAAImC,EAAI9U,EACtBwgB,EAAM9M,EAAIA,EAAIf,EAAInI,EAElB3N,EAAI,GAAK6iB,EAAMS,EAAMR,EAAMK,EAAMH,EAAMO,EACvCvjB,EAAI,GAAK0iB,EAAMY,EAAMP,EAAMI,EAAMF,EAAMM,EACvCvjB,EAAI,GAAK2iB,EAAMW,EAAMV,EAAMO,EAAMD,EAAMK,EACvCvjB,EAAI,GAAK4kB,EAAMtB,EAAMuB,EAAM1B,EAAM2B,EAAMvB,EACvCvjB,EAAI,GAAK6iB,EAAMW,EAAMV,EAAMM,EAAMJ,EAAMS,EACvCzjB,EAAI,GAAK0iB,EAAMc,EAAMT,EAAMK,EAAMH,EAAMQ,EACvCzjB,EAAI,GAAK2iB,EAAMa,EAAMZ,EAAMQ,EAAMF,EAAMO,EACvCzjB,EAAI,GAAK4kB,EAAMpB,EAAMqB,EAAMzB,EAAM0B,EAAMrB,EACvCzjB,EAAI,GAAK6iB,EAAMa,EAAMZ,EAAMO,EAAML,EAAMW,EACvC3jB,EAAI,GAAK0iB,EAAMgB,EAAMX,EAAMM,EAAMJ,EAAMU,EACvC3jB,EAAI,IAAM2iB,EAAMe,EAAMd,EAAMS,EAAMH,EAAMS,EACxC3jB,EAAI,IAAM4kB,EAAMlB,EAAMmB,EAAMxB,EAAMyB,EAAMnB,EAEpC3N,IAAMhW,IAERA,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,KAGPhW,EACT,CAUO,SAAS4mB,GAAQ5mB,EAAKgW,EAAGmK,GAC9B,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GACb2C,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IAuBZ,OArBIA,IAAMhW,IAERA,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,KAIdhW,EAAI,GAAK8iB,EAAMnV,EAAIqV,EAAM7f,EACzBnD,EAAI,GAAK+iB,EAAMpV,EAAIsV,EAAM9f,EACzBnD,EAAI,GAAK4iB,EAAMjV,EAAIuV,EAAM/f,EACzBnD,EAAI,GAAK6kB,EAAMlX,EAAImX,EAAM3hB,EACzBnD,EAAI,GAAKgjB,EAAMrV,EAAImV,EAAM3f,EACzBnD,EAAI,GAAKijB,EAAMtV,EAAIoV,EAAM5f,EACzBnD,EAAI,IAAMkjB,EAAMvV,EAAIiV,EAAMzf,EAC1BnD,EAAI,IAAM8kB,EAAMnX,EAAIkX,EAAM1hB,EACnBnD,CACT,CAUO,SAAS6mB,GAAQ7mB,EAAKgW,EAAGmK,GAC9B,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GACb0C,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACRgN,EAAMhN,EAAE,GACRiN,EAAMjN,EAAE,GACRkN,EAAMlN,EAAE,IACR8O,EAAM9O,EAAE,IAuBZ,OArBIA,IAAMhW,IAERA,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,KAIdhW,EAAI,GAAK6iB,EAAMlV,EAAIqV,EAAM7f,EACzBnD,EAAI,GAAK0iB,EAAM/U,EAAIsV,EAAM9f,EACzBnD,EAAI,GAAK2iB,EAAMhV,EAAIuV,EAAM/f,EACzBnD,EAAI,GAAK4kB,EAAMjX,EAAImX,EAAM3hB,EACzBnD,EAAI,GAAK6iB,EAAM1f,EAAI6f,EAAMrV,EACzB3N,EAAI,GAAK0iB,EAAMvf,EAAI8f,EAAMtV,EACzB3N,EAAI,IAAM2iB,EAAMxf,EAAI+f,EAAMvV,EAC1B3N,EAAI,IAAM4kB,EAAMzhB,EAAI2hB,EAAMnX,EACnB3N,CACT,CAUO,SAAS8mB,GAAQ9mB,EAAKgW,EAAGmK,GAC9B,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GACb0C,EAAM7M,EAAE,GACR0M,EAAM1M,EAAE,GACR2M,EAAM3M,EAAE,GACR4O,EAAM5O,EAAE,GACR8M,EAAM9M,EAAE,GACR+M,EAAM/M,EAAE,GACR4M,EAAM5M,EAAE,GACR6O,EAAM7O,EAAE,GAuBZ,OArBIA,IAAMhW,IAERA,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,IACZhW,EAAI,IAAMgW,EAAE,KAIdhW,EAAI,GAAK6iB,EAAMlV,EAAImV,EAAM3f,EACzBnD,EAAI,GAAK0iB,EAAM/U,EAAIoV,EAAM5f,EACzBnD,EAAI,GAAK2iB,EAAMhV,EAAIiV,EAAMzf,EACzBnD,EAAI,GAAK4kB,EAAMjX,EAAIkX,EAAM1hB,EACzBnD,EAAI,GAAK8iB,EAAMnV,EAAIkV,EAAM1f,EACzBnD,EAAI,GAAK+iB,EAAMpV,EAAI+U,EAAMvf,EACzBnD,EAAI,GAAK4iB,EAAMjV,EAAIgV,EAAMxf,EACzBnD,EAAI,GAAK6kB,EAAMlX,EAAIiX,EAAMzhB,EAClBnD,CACT,CAaO,SAASmiB,GAAgBniB,EAAK4W,GAiBnC,OAhBA5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM,EACHA,CACT,CAaO,SAAS0gB,GAAY1gB,EAAK4W,GAiB/B,OAhBA5W,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK4W,EAAE,GACX5W,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAcO,SAASygB,GAAazgB,EAAKmgB,EAAKuG,GACrC,IAIIvjB,EAAGwK,EAAGmI,EAJNmC,EAAIyO,EAAK,GACTrQ,EAAIqQ,EAAK,GACT7P,EAAI6P,EAAK,GACTC,EAAMlZ,KAAKmT,MAAM3I,EAAG5B,EAAGQ,GAG3B,OAAI8P,EAAM/H,EACD,MAIT3G,GADA0O,EAAM,EAAIA,EAEVtQ,GAAKsQ,EACL9P,GAAK8P,EACLxjB,EAAIsK,KAAK2S,IAAID,GAEbrK,EAAI,GADJnI,EAAIF,KAAK4S,IAAIF,IAGbngB,EAAI,GAAKiY,EAAIA,EAAInC,EAAInI,EACrB3N,EAAI,GAAKqW,EAAI4B,EAAInC,EAAIe,EAAI1T,EACzBnD,EAAI,GAAK6W,EAAIoB,EAAInC,EAAIO,EAAIlT,EACzBnD,EAAI,GAAK,EACTA,EAAI,GAAKiY,EAAI5B,EAAIP,EAAIe,EAAI1T,EACzBnD,EAAI,GAAKqW,EAAIA,EAAIP,EAAInI,EACrB3N,EAAI,GAAK6W,EAAIR,EAAIP,EAAImC,EAAI9U,EACzBnD,EAAI,GAAK,EACTA,EAAI,GAAKiY,EAAIpB,EAAIf,EAAIO,EAAIlT,EACzBnD,EAAI,GAAKqW,EAAIQ,EAAIf,EAAImC,EAAI9U,EACzBnD,EAAI,IAAM6W,EAAIA,EAAIf,EAAInI,EACtB3N,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,EACT,CAaO,SAAS+mB,GAAc/mB,EAAKmgB,GACjC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAkBjB,OAhBAngB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK2N,EACT3N,EAAI,GAAKmD,EACTnD,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAMmD,EACVnD,EAAI,IAAM2N,EACV3N,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAaO,SAASgnB,GAAchnB,EAAKmgB,GACjC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAkBjB,OAhBAngB,EAAI,GAAK2N,EACT3N,EAAI,GAAK,EACTA,EAAI,IAAMmD,EACVnD,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKmD,EACTnD,EAAI,GAAK,EACTA,EAAI,IAAM2N,EACV3N,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAaO,SAASinB,GAAcjnB,EAAKmgB,GACjC,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbxS,EAAIF,KAAK4S,IAAIF,GAkBjB,OAhBAngB,EAAI,GAAK2N,EACT3N,EAAI,GAAKmD,EACTnD,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAMmD,EACVnD,EAAI,GAAK2N,EACT3N,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAiBO,SAASknB,GAAwBlnB,EAAK8jB,EAAGlN,GAE9C,IAAIqB,EAAI6L,EAAE,GACNzN,EAAIyN,EAAE,GACNjN,EAAIiN,EAAE,GACNxM,EAAIwM,EAAE,GACNC,EAAK9L,EAAIA,EACT+L,EAAK3N,EAAIA,EACT4N,EAAKpN,EAAIA,EACTqN,EAAKjM,EAAI8L,EACToD,EAAKlP,EAAI+L,EACToD,EAAKnP,EAAIgM,EACTG,EAAK/N,EAAI2N,EACTqD,EAAKhR,EAAI4N,EACTM,EAAK1N,EAAIoN,EACTO,EAAKlN,EAAIyM,EACTU,EAAKnN,EAAI0M,EACTU,EAAKpN,EAAI2M,EAiBb,OAhBAjkB,EAAI,GAAK,GAAKokB,EAAKG,GACnBvkB,EAAI,GAAKmnB,EAAKzC,EACd1kB,EAAI,GAAKonB,EAAK3C,EACdzkB,EAAI,GAAK,EACTA,EAAI,GAAKmnB,EAAKzC,EACd1kB,EAAI,GAAK,GAAKkkB,EAAKK,GACnBvkB,EAAI,GAAKqnB,EAAK7C,EACdxkB,EAAI,GAAK,EACTA,EAAI,GAAKonB,EAAK3C,EACdzkB,EAAI,GAAKqnB,EAAK7C,EACdxkB,EAAI,IAAM,GAAKkkB,EAAKE,GACpBpkB,EAAI,IAAM,EACVA,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM,EACHA,CACT,CASO,SAASsnB,GAAUtnB,EAAKgW,GAC7B,IAAIuR,EAAc,IAAI3I,EAAoB,GACtC4I,GAAMxR,EAAE,GACRyR,GAAMzR,EAAE,GACR0R,GAAM1R,EAAE,GACR2R,EAAK3R,EAAE,GACP4R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPgS,EAAYR,EAAKA,EAAKC,EAAKA,EAAKC,EAAKA,EAAKC,EAAKA,EAanD,OAXIK,EAAY,GACdT,EAAY,GAA+C,GAAzCK,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,GAAUO,EAC/DT,EAAY,GAA+C,GAAzCM,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,GAAUM,EAC/DT,EAAY,GAA+C,GAAzCO,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,GAAUQ,IAE/DT,EAAY,GAA+C,GAAzCK,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,GACrDF,EAAY,GAA+C,GAAzCM,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,GACrDH,EAAY,GAA+C,GAAzCO,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,IAGvDN,GAAwBlnB,EAAKgW,EAAGuR,GACzBvnB,CACT,CAWO,SAASioB,GAAejoB,EAAKkoB,GAIlC,OAHAloB,EAAI,GAAKkoB,EAAI,IACbloB,EAAI,GAAKkoB,EAAI,IACbloB,EAAI,GAAKkoB,EAAI,IACNloB,CACT,CAYO,SAASmoB,GAAWnoB,EAAKkoB,GAC9B,IAAI/I,EAAM+I,EAAI,GACV5F,EAAM4F,EAAI,GACV9B,EAAM8B,EAAI,GACV1F,EAAM0F,EAAI,GACVzF,EAAMyF,EAAI,GACV7B,EAAM6B,EAAI,GACV3B,EAAM2B,EAAI,GACV1B,EAAM0B,EAAI,GACVzB,EAAMyB,EAAI,IAId,OAHAloB,EAAI,GAAKyN,KAAKmT,MAAMzB,EAAKmD,EAAK8D,GAC9BpmB,EAAI,GAAKyN,KAAKmT,MAAM4B,EAAKC,EAAK4D,GAC9BrmB,EAAI,GAAKyN,KAAKmT,MAAM2F,EAAKC,EAAKC,GACvBzmB,CACT,CAWO,SAASooB,GAAYpoB,EAAKkoB,GAC/B,IAAIG,EAAU,IAAIzJ,EAAoB,GACtCuJ,GAAWE,EAASH,GACpB,IAAII,EAAM,EAAID,EAAQ,GAClBE,EAAM,EAAIF,EAAQ,GAClBG,EAAM,EAAIH,EAAQ,GAClBI,EAAOP,EAAI,GAAKI,EAChBI,EAAOR,EAAI,GAAKK,EAChBI,EAAOT,EAAI,GAAKM,EAChBI,EAAOV,EAAI,GAAKI,EAChBO,EAAOX,EAAI,GAAKK,EAChBO,EAAOZ,EAAI,GAAKM,EAChBO,EAAOb,EAAI,GAAKI,EAChBU,EAAOd,EAAI,GAAKK,EAChBU,EAAOf,EAAI,IAAMM,EACjBU,EAAQT,EAAOI,EAAOI,EACtBtR,EAAI,EA4BR,OA1BIuR,EAAQ,GACVvR,EAA6B,EAAzBlK,KAAK0T,KAAK+H,EAAQ,GACtBlpB,EAAI,GAAK,IAAO2X,EAChB3X,EAAI,IAAM8oB,EAAOE,GAAQrR,EACzB3X,EAAI,IAAM+oB,EAAOJ,GAAQhR,EACzB3X,EAAI,IAAM0oB,EAAOE,GAAQjR,GAChB8Q,EAAOI,GAAQJ,EAAOQ,GAC/BtR,EAA0C,EAAtClK,KAAK0T,KAAK,EAAMsH,EAAOI,EAAOI,GAClCjpB,EAAI,IAAM8oB,EAAOE,GAAQrR,EACzB3X,EAAI,GAAK,IAAO2X,EAChB3X,EAAI,IAAM0oB,EAAOE,GAAQjR,EACzB3X,EAAI,IAAM+oB,EAAOJ,GAAQhR,GAChBkR,EAAOI,GAChBtR,EAA0C,EAAtClK,KAAK0T,KAAK,EAAM0H,EAAOJ,EAAOQ,GAClCjpB,EAAI,IAAM+oB,EAAOJ,GAAQhR,EACzB3X,EAAI,IAAM0oB,EAAOE,GAAQjR,EACzB3X,EAAI,GAAK,IAAO2X,EAChB3X,EAAI,IAAM8oB,EAAOE,GAAQrR,IAEzBA,EAA0C,EAAtClK,KAAK0T,KAAK,EAAM8H,EAAOR,EAAOI,GAClC7oB,EAAI,IAAM0oB,EAAOE,GAAQjR,EACzB3X,EAAI,IAAM+oB,EAAOJ,GAAQhR,EACzB3X,EAAI,IAAM8oB,EAAOE,GAAQrR,EACzB3X,EAAI,GAAK,IAAO2X,GAGX3X,CACT,CAmBO,SAASmpB,GAA6BnpB,EAAK8jB,EAAGlN,EAAGzT,GAEtD,IAAI8U,EAAI6L,EAAE,GACNzN,EAAIyN,EAAE,GACNjN,EAAIiN,EAAE,GACNxM,EAAIwM,EAAE,GACNC,EAAK9L,EAAIA,EACT+L,EAAK3N,EAAIA,EACT4N,EAAKpN,EAAIA,EACTqN,EAAKjM,EAAI8L,EACToD,EAAKlP,EAAI+L,EACToD,EAAKnP,EAAIgM,EACTG,EAAK/N,EAAI2N,EACTqD,EAAKhR,EAAI4N,EACTM,EAAK1N,EAAIoN,EACTO,EAAKlN,EAAIyM,EACTU,EAAKnN,EAAI0M,EACTU,EAAKpN,EAAI2M,EACTmF,EAAKjmB,EAAE,GACPkmB,EAAKlmB,EAAE,GACPmmB,EAAKnmB,EAAE,GAiBX,OAhBAnD,EAAI,IAAM,GAAKokB,EAAKG,IAAO6E,EAC3BppB,EAAI,IAAMmnB,EAAKzC,GAAM0E,EACrBppB,EAAI,IAAMonB,EAAK3C,GAAM2E,EACrBppB,EAAI,GAAK,EACTA,EAAI,IAAMmnB,EAAKzC,GAAM2E,EACrBrpB,EAAI,IAAM,GAAKkkB,EAAKK,IAAO8E,EAC3BrpB,EAAI,IAAMqnB,EAAK7C,GAAM6E,EACrBrpB,EAAI,GAAK,EACTA,EAAI,IAAMonB,EAAK3C,GAAM6E,EACrBtpB,EAAI,IAAMqnB,EAAK7C,GAAM8E,EACrBtpB,EAAI,KAAO,GAAKkkB,EAAKE,IAAOkF,EAC5BtpB,EAAI,IAAM,EACVA,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM4W,EAAE,GACZ5W,EAAI,IAAM,EACHA,CACT,CAsBO,SAASupB,GAAmCvpB,EAAK8jB,EAAGlN,EAAGzT,EAAGN,GAE/D,IAAIoV,EAAI6L,EAAE,GACNzN,EAAIyN,EAAE,GACNjN,EAAIiN,EAAE,GACNxM,EAAIwM,EAAE,GACNC,EAAK9L,EAAIA,EACT+L,EAAK3N,EAAIA,EACT4N,EAAKpN,EAAIA,EACTqN,EAAKjM,EAAI8L,EACToD,EAAKlP,EAAI+L,EACToD,EAAKnP,EAAIgM,EACTG,EAAK/N,EAAI2N,EACTqD,EAAKhR,EAAI4N,EACTM,EAAK1N,EAAIoN,EACTO,EAAKlN,EAAIyM,EACTU,EAAKnN,EAAI0M,EACTU,EAAKpN,EAAI2M,EACTmF,EAAKjmB,EAAE,GACPkmB,EAAKlmB,EAAE,GACPmmB,EAAKnmB,EAAE,GACPqmB,EAAK3mB,EAAE,GACP4mB,EAAK5mB,EAAE,GACP6mB,EAAK7mB,EAAE,GACP8mB,GAAQ,GAAKvF,EAAKG,IAAO6E,EACzBQ,GAAQzC,EAAKzC,GAAM0E,EACnBS,GAAQzC,EAAK3C,GAAM2E,EACnBU,GAAQ3C,EAAKzC,GAAM2E,EACnBU,GAAQ,GAAK7F,EAAKK,IAAO8E,EACzBW,GAAQ3C,EAAK7C,GAAM6E,EACnBY,GAAQ7C,EAAK3C,GAAM6E,EACnBY,GAAQ7C,EAAK7C,GAAM8E,EACnBa,GAAS,GAAKjG,EAAKE,IAAOkF,EAiB9B,OAhBAtpB,EAAI,GAAK2pB,EACT3pB,EAAI,GAAK4pB,EACT5pB,EAAI,GAAK6pB,EACT7pB,EAAI,GAAK,EACTA,EAAI,GAAK8pB,EACT9pB,EAAI,GAAK+pB,EACT/pB,EAAI,GAAKgqB,EACThqB,EAAI,GAAK,EACTA,EAAI,GAAKiqB,EACTjqB,EAAI,GAAKkqB,EACTlqB,EAAI,IAAMmqB,EACVnqB,EAAI,IAAM,EACVA,EAAI,IAAM4W,EAAE,GAAK4S,GAAMG,EAAOH,EAAKM,EAAOL,EAAKQ,EAAOP,GACtD1pB,EAAI,IAAM4W,EAAE,GAAK6S,GAAMG,EAAOJ,EAAKO,EAAON,EAAKS,EAAOR,GACtD1pB,EAAI,IAAM4W,EAAE,GAAK8S,GAAMG,EAAOL,EAAKQ,EAAOP,EAAKU,EAAQT,GACvD1pB,EAAI,IAAM,EACHA,CACT,CAUO,SAAS6jB,GAAS7jB,EAAK8jB,GAC5B,IAAI7L,EAAI6L,EAAE,GACNzN,EAAIyN,EAAE,GACNjN,EAAIiN,EAAE,GACNxM,EAAIwM,EAAE,GACNC,EAAK9L,EAAIA,EACT+L,EAAK3N,EAAIA,EACT4N,EAAKpN,EAAIA,EACTqN,EAAKjM,EAAI8L,EACTI,EAAK9N,EAAI0N,EACTK,EAAK/N,EAAI2N,EACTK,EAAKxN,EAAIkN,EACTO,EAAKzN,EAAImN,EACTO,EAAK1N,EAAIoN,EACTO,EAAKlN,EAAIyM,EACTU,EAAKnN,EAAI0M,EACTU,EAAKpN,EAAI2M,EAiBb,OAhBAjkB,EAAI,GAAK,EAAIokB,EAAKG,EAClBvkB,EAAI,GAAKmkB,EAAKO,EACd1kB,EAAI,GAAKqkB,EAAKI,EACdzkB,EAAI,GAAK,EACTA,EAAI,GAAKmkB,EAAKO,EACd1kB,EAAI,GAAK,EAAIkkB,EAAKK,EAClBvkB,EAAI,GAAKskB,EAAKE,EACdxkB,EAAI,GAAK,EACTA,EAAI,GAAKqkB,EAAKI,EACdzkB,EAAI,GAAKskB,EAAKE,EACdxkB,EAAI,IAAM,EAAIkkB,EAAKE,EACnBpkB,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,CACT,CAcO,SAASoqB,GAAQpqB,EAAKqqB,EAAMC,EAAOC,EAAQC,EAAKC,EAAMC,GAC3D,IAAIC,EAAK,GAAKL,EAAQD,GAClBO,EAAK,GAAKJ,EAAMD,GAChBM,EAAK,GAAKJ,EAAOC,GAiBrB,OAhBA1qB,EAAI,GAAY,EAAPyqB,EAAWE,EACpB3qB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAY,EAAPyqB,EAAWG,EACpB5qB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAMsqB,EAAQD,GAAQM,EAC1B3qB,EAAI,IAAMwqB,EAAMD,GAAUK,EAC1B5qB,EAAI,KAAO0qB,EAAMD,GAAQI,EACzB7qB,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM0qB,EAAMD,EAAO,EAAII,EAC3B7qB,EAAI,IAAM,EACHA,CACT,CAaO,SAAS8qB,GAAY9qB,EAAK+qB,EAAMC,EAAQP,EAAMC,GACnD,IACIG,EADAvnB,EAAI,EAAMmK,KAAKwd,IAAIF,EAAO,GA0B9B,OAxBA/qB,EAAI,GAAKsD,EAAI0nB,EACbhrB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKsD,EACTtD,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EAEC,MAAP0qB,GAAeA,IAAQQ,KACzBL,EAAK,GAAKJ,EAAOC,GACjB1qB,EAAI,KAAO0qB,EAAMD,GAAQI,EACzB7qB,EAAI,IAAM,EAAI0qB,EAAMD,EAAOI,IAE3B7qB,EAAI,KAAO,EACXA,EAAI,KAAO,EAAIyqB,GAGVzqB,CACT,CAaO,SAASmrB,GAA2BnrB,EAAKorB,EAAKX,EAAMC,GACzD,IAAIW,EAAQ5d,KAAKwd,IAAIG,EAAIE,UAAY7d,KAAK+Q,GAAK,KAC3C+M,EAAU9d,KAAKwd,IAAIG,EAAII,YAAc/d,KAAK+Q,GAAK,KAC/CiN,EAAUhe,KAAKwd,IAAIG,EAAIM,YAAcje,KAAK+Q,GAAK,KAC/CmN,EAAWle,KAAKwd,IAAIG,EAAIQ,aAAene,KAAK+Q,GAAK,KACjDqN,EAAS,GAAOJ,EAAUE,GAC1BG,EAAS,GAAOT,EAAQE,GAiB5B,OAhBAvrB,EAAI,GAAK6rB,EACT7rB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK8rB,EACT9rB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,KAAQyrB,EAAUE,GAAYE,EAAS,GAC3C7rB,EAAI,IAAMqrB,EAAQE,GAAWO,EAAS,GACtC9rB,EAAI,IAAM0qB,GAAOD,EAAOC,GACxB1qB,EAAI,KAAO,EACXA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM0qB,EAAMD,GAAQA,EAAOC,GAC/B1qB,EAAI,IAAM,EACHA,CACT,CAcO,SAAS+rB,GAAM/rB,EAAKqqB,EAAMC,EAAOC,EAAQC,EAAKC,EAAMC,GACzD,IAAIsB,EAAK,GAAK3B,EAAOC,GACjB2B,EAAK,GAAK1B,EAASC,GACnBK,EAAK,GAAKJ,EAAOC,GAiBrB,OAhBA1qB,EAAI,IAAM,EAAIgsB,EACdhsB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EAAIisB,EACdjsB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EAAI6qB,EACd7qB,EAAI,IAAM,EACVA,EAAI,KAAOqqB,EAAOC,GAAS0B,EAC3BhsB,EAAI,KAAOwqB,EAAMD,GAAU0B,EAC3BjsB,EAAI,KAAO0qB,EAAMD,GAAQI,EACzB7qB,EAAI,IAAM,EACHA,CACT,CAYO,SAASksB,GAAOlsB,EAAKmsB,EAAKC,EAAQC,GACvC,IAAIC,EAAIC,EAAIxI,EAAIyI,EAAIC,EAAIzI,EAAI0I,EAAIC,EAAI1I,EAAI0C,EACpCiG,EAAOT,EAAI,GACXU,EAAOV,EAAI,GACXW,EAAOX,EAAI,GACXY,EAAMV,EAAG,GACTW,EAAMX,EAAG,GACTY,EAAMZ,EAAG,GACTa,EAAUd,EAAO,GACjBe,EAAUf,EAAO,GACjBgB,EAAUhB,EAAO,GAErB,OAAI3e,KAAKsJ,IAAI6V,EAAOM,GAAWtO,GAAoBnR,KAAKsJ,IAAI8V,EAAOM,GAAWvO,GAAoBnR,KAAKsJ,IAAI+V,EAAOM,GAAWxO,EACpHE,GAAS9e,IAGlB0sB,EAAKE,EAAOM,EACZP,EAAKE,EAAOM,EACZlJ,EAAK6I,EAAOM,EAKZd,EAAKU,GADL/I,GAHA0C,EAAM,EAAIlZ,KAAKmT,MAAM8L,EAAIC,EAAI1I,IAIbgJ,GAFhBN,GAAMhG,GAGN4F,EAAKU,GAJLP,GAAM/F,GAIUoG,EAAM9I,EACtBF,EAAKgJ,EAAMJ,EAAKK,EAAMN,GACtB/F,EAAMlZ,KAAKmT,MAAM0L,EAAIC,EAAIxI,KAQvBuI,GADA3F,EAAM,EAAIA,EAEV4F,GAAM5F,EACN5C,GAAM4C,IAPN2F,EAAK,EACLC,EAAK,EACLxI,EAAK,GAQPyI,EAAKG,EAAK5I,EAAKE,EAAKsI,EACpBE,EAAKxI,EAAKqI,EAAKI,EAAK3I,EACpBC,EAAK0I,EAAKH,EAAKI,EAAKL,GACpB3F,EAAMlZ,KAAKmT,MAAM4L,EAAIC,EAAIzI,KAQvBwI,GADA7F,EAAM,EAAIA,EAEV8F,GAAM9F,EACN3C,GAAM2C,IAPN6F,EAAK,EACLC,EAAK,EACLzI,EAAK,GAQPhkB,EAAI,GAAKssB,EACTtsB,EAAI,GAAKwsB,EACTxsB,EAAI,GAAK0sB,EACT1sB,EAAI,GAAK,EACTA,EAAI,GAAKusB,EACTvsB,EAAI,GAAKysB,EACTzsB,EAAI,GAAK2sB,EACT3sB,EAAI,GAAK,EACTA,EAAI,GAAK+jB,EACT/jB,EAAI,GAAKgkB,EACThkB,EAAI,IAAMikB,EACVjkB,EAAI,IAAM,EACVA,EAAI,MAAQssB,EAAKM,EAAOL,EAAKM,EAAO9I,EAAK+I,GACzC9sB,EAAI,MAAQwsB,EAAKI,EAAOH,EAAKI,EAAO7I,EAAK8I,GACzC9sB,EAAI,MAAQ0sB,EAAKE,EAAOD,EAAKE,EAAO5I,EAAK6I,GACzC9sB,EAAI,IAAM,EACHA,EACT,CAWO,SAASqtB,GAASrtB,EAAKmsB,EAAK7wB,EAAQ+wB,GACzC,IAAIO,EAAOT,EAAI,GACXU,EAAOV,EAAI,GACXW,EAAOX,EAAI,GACXY,EAAMV,EAAG,GACTW,EAAMX,EAAG,GACTY,EAAMZ,EAAG,GACTK,EAAKE,EAAOtxB,EAAO,GACnBqxB,EAAKE,EAAOvxB,EAAO,GACnB2oB,EAAK6I,EAAOxxB,EAAO,GACnBqrB,EAAM+F,EAAKA,EAAKC,EAAKA,EAAK1I,EAAKA,EAE/B0C,EAAM,IAER+F,GADA/F,EAAM,EAAIlZ,KAAK0T,KAAKwF,GAEpBgG,GAAMhG,EACN1C,GAAM0C,GAGR,IAAI2F,EAAKU,EAAM/I,EAAKgJ,EAAMN,EACtBJ,EAAKU,EAAMP,EAAKK,EAAM9I,EACtBF,EAAKgJ,EAAMJ,EAAKK,EAAMN,EA0B1B,OAzBA/F,EAAM2F,EAAKA,EAAKC,EAAKA,EAAKxI,EAAKA,GAErB,IAERuI,GADA3F,EAAM,EAAIlZ,KAAK0T,KAAKwF,GAEpB4F,GAAM5F,EACN5C,GAAM4C,GAGR3mB,EAAI,GAAKssB,EACTtsB,EAAI,GAAKusB,EACTvsB,EAAI,GAAK+jB,EACT/jB,EAAI,GAAK,EACTA,EAAI,GAAK2sB,EAAK5I,EAAKE,EAAKsI,EACxBvsB,EAAI,GAAKikB,EAAKqI,EAAKI,EAAK3I,EACxB/jB,EAAI,GAAK0sB,EAAKH,EAAKI,EAAKL,EACxBtsB,EAAI,GAAK,EACTA,EAAI,GAAK0sB,EACT1sB,EAAI,GAAK2sB,EACT3sB,EAAI,IAAMikB,EACVjkB,EAAI,IAAM,EACVA,EAAI,IAAM4sB,EACV5sB,EAAI,IAAM6sB,EACV7sB,EAAI,IAAM8sB,EACV9sB,EAAI,IAAM,EACHA,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,KAAOA,EAAE,IAAM,GAClP,CAQO,SAAS2K,GAAK3K,GACnB,OAAOvI,KAAKmT,MAAM5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IACrH,CAUO,SAAS7K,GAAInL,EAAKgW,EAAG2I,GAiB1B,OAhBA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACb3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAiB/B,OAhBA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACpB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IACb3e,CACT,CAUO,SAASihB,GAAejhB,EAAKgW,EAAG2I,GAiBrC,OAhBA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EAClB3e,EAAI,IAAMgW,EAAE,IAAM2I,EACX3e,CACT,CAWO,SAASkhB,GAAqBlhB,EAAKgW,EAAG2I,EAAG2B,GAiB9C,OAhBAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EAC1BtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EAC1BtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EAC1BtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EAC1BtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EAC1BtgB,EAAI,IAAMgW,EAAE,IAAM2I,EAAE,IAAM2B,EACnBtgB,CACT,CASO,SAASghB,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,MAAQ2I,EAAE,KAAO3I,EAAE,MAAQ2I,EAAE,KAAO3I,EAAE,MAAQ2I,EAAE,KAAO3I,EAAE,MAAQ2I,EAAE,KAAO3I,EAAE,MAAQ2I,EAAE,KAAO3I,EAAE,MAAQ2I,EAAE,GAC9R,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP6P,EAAK7P,EAAE,GACP8P,EAAK9P,EAAE,GACP+P,EAAK/P,EAAE,GACPsX,EAAKtX,EAAE,GACP8M,EAAM9M,EAAE,IACR+M,EAAM/M,EAAE,IACR4M,EAAM5M,EAAE,IACR6O,EAAM7O,EAAE,IACRuX,EAAMvX,EAAE,IACRwX,EAAMxX,EAAE,IACR8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACPqD,EAAKrD,EAAE,GACPsD,EAAKtD,EAAE,GACPqH,EAAKrH,EAAE,GACPsH,EAAKtH,EAAE,GACPuH,EAAKvH,EAAE,GACP8O,EAAK9O,EAAE,GACP6E,EAAM7E,EAAE,IACRyE,EAAMzE,EAAE,IACR8E,EAAM9E,EAAE,IACR+O,EAAM/O,EAAE,IACRgP,EAAMhP,EAAE,IACRiP,EAAMjP,EAAE,IACZ,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,KAAQxS,KAAKsJ,IAAI+K,EAAKE,IAAOpD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+K,GAAKrU,KAAKsJ,IAAIiL,KAAQvU,KAAKsJ,IAAIgL,EAAKE,IAAOrD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgL,GAAKtU,KAAKsJ,IAAIkL,KAAQxU,KAAKsJ,IAAI8O,EAAKG,IAAOpH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI8O,GAAKpY,KAAKsJ,IAAIiP,KAAQvY,KAAKsJ,IAAI+O,EAAKG,IAAOrH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+O,GAAKrY,KAAKsJ,IAAIkP,KAAQxY,KAAKsJ,IAAIgP,EAAKG,IAAOtH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgP,GAAKtY,KAAKsJ,IAAImP,KAAQzY,KAAKsJ,IAAIuW,EAAKG,IAAO7O,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIuW,GAAK7f,KAAKsJ,IAAI0W,KAAQhgB,KAAKsJ,IAAI+L,EAAMU,IAAQ5E,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+L,GAAMrV,KAAKsJ,IAAIyM,KAAS/V,KAAKsJ,IAAIgM,EAAMK,IAAQxE,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgM,GAAMtV,KAAKsJ,IAAIqM,KAAS3V,KAAKsJ,IAAI6L,EAAMa,IAAQ7E,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI6L,GAAMnV,KAAKsJ,IAAI0M,KAAShW,KAAKsJ,IAAI8N,EAAM6I,IAAQ9O,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI8N,GAAMpX,KAAKsJ,IAAI2W,KAASjgB,KAAKsJ,IAAIwW,EAAMI,IAAQ/O,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwW,GAAM9f,KAAKsJ,IAAI4W,KAASlgB,KAAKsJ,IAAIyW,EAAMI,IAAQhP,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyW,GAAM/f,KAAKsJ,IAAI6W,GACx2C,CAMO,IAAIxM,GAAMvB,GAMNwB,GAAMxG,GCzwDV,SAAStmB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,GAQlC,OANIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,GAGJA,CACT,CAQO,SAASmX,GAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAIlC,OAHA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAQO,SAASrH,GAAOqd,GACrB,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACV,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EAAGQ,EAC1B,CAUO,SAASkI,GAAW9G,EAAG5B,EAAGQ,GAC/B,IAAI7W,EAAM,IAAI4e,EAAoB,GAIlC,OAHA5e,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACTrW,EAAI,GAAK6W,EACF7W,CACT,CASO,SAAS6e,GAAK7e,EAAKgW,GAIxB,OAHAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAWO,SAASma,GAAIna,EAAKiY,EAAG5B,EAAGQ,GAI7B,OAHA7W,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACTrW,EAAI,GAAK6W,EACF7W,CACT,CAUO,SAASmL,GAAInL,EAAKgW,EAAG2I,GAI1B,OAHA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAI/B,OAHA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6f,GAAS7f,EAAKgW,EAAG2I,GAI/B,OAHA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6tB,GAAO7tB,EAAKgW,EAAG2I,GAI7B,OAHA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CASO,SAASoX,GAAKpX,EAAKgW,GAIxB,OAHAhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACdhW,CACT,CASO,SAAS+P,GAAM/P,EAAKgW,GAIzB,OAHAhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACfhW,CACT,CAUO,SAASoN,GAAIpN,EAAKgW,EAAG2I,GAI1B,OAHA3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CAUO,SAASqN,GAAIrN,EAAKgW,EAAG2I,GAI1B,OAHA3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CASO,SAAS4a,GAAM5a,EAAKgW,GAIzB,OAHAhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACfhW,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAG2I,GAI5B,OAHA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAAS8tB,GAAY9tB,EAAKgW,EAAG2I,EAAG2B,GAIrC,OAHAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CASO,SAAS+tB,GAAS/X,EAAG2I,GAC1B,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACba,EAAI8H,EAAE,GAAK3I,EAAE,GACjB,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EAAGQ,EAC1B,CASO,SAASmX,GAAgBhY,EAAG2I,GACjC,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACba,EAAI8H,EAAE,GAAK3I,EAAE,GACjB,OAAOiC,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,CAC7B,CAQO,SAASoX,GAAcjY,GAC5B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACV,OAAOiC,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,CAC7B,CASO,SAASqX,GAAOluB,EAAKgW,GAI1B,OAHAhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACLhW,CACT,CASO,SAASmuB,GAAQnuB,EAAKgW,GAI3B,OAHAhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACVhW,CACT,CASO,SAASouB,GAAUpuB,EAAKgW,GAC7B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACN2Q,EAAM1O,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,EAU9B,OARI8P,EAAM,IAERA,EAAM,EAAIlZ,KAAK0T,KAAKwF,IAGtB3mB,EAAI,GAAKgW,EAAE,GAAK2Q,EAChB3mB,EAAI,GAAKgW,EAAE,GAAK2Q,EAChB3mB,EAAI,GAAKgW,EAAE,GAAK2Q,EACT3mB,CACT,CASO,SAASquB,GAAIrY,EAAG2I,GACrB,OAAO3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,EAC9C,CAUO,SAAS2P,GAAMtuB,EAAKgW,EAAG2I,GAC5B,IAAIiJ,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACPwR,EAAK7I,EAAE,GACP8I,EAAK9I,EAAE,GACP+I,EAAK/I,EAAE,GAIX,OAHA3e,EAAI,GAAK6nB,EAAKH,EAAKI,EAAKL,EACxBznB,EAAI,GAAK8nB,EAAKN,EAAKI,EAAKF,EACxB1nB,EAAI,GAAK4nB,EAAKH,EAAKI,EAAKL,EACjBxnB,CACT,CAWO,SAASuuB,GAAKvuB,EAAKgW,EAAG2I,EAAG7I,GAC9B,IAAI8R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GAIX,OAHAhW,EAAI,GAAK4nB,EAAK9R,GAAK6I,EAAE,GAAKiJ,GAC1B5nB,EAAI,GAAK6nB,EAAK/R,GAAK6I,EAAE,GAAKkJ,GAC1B7nB,EAAI,GAAK8nB,EAAKhS,GAAK6I,EAAE,GAAKmJ,GACnB9nB,CACT,CAaO,SAASwuB,GAAQxuB,EAAKgW,EAAG2I,EAAGhR,EAAGuI,EAAGJ,GACvC,IAAI2Y,EAAe3Y,EAAIA,EACnB4Y,EAAUD,GAAgB,EAAI3Y,EAAI,GAAK,EACvC6Y,EAAUF,GAAgB3Y,EAAI,GAAKA,EACnC8Y,EAAUH,GAAgB3Y,EAAI,GAC9B+Y,EAAUJ,GAAgB,EAAI,EAAI3Y,GAItC,OAHA9V,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EACnE7uB,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EACnE7uB,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EAC5D7uB,CACT,CAaO,SAAS8uB,GAAO9uB,EAAKgW,EAAG2I,EAAGhR,EAAGuI,EAAGJ,GACtC,IAAIiZ,EAAgB,EAAIjZ,EACpBkZ,EAAwBD,EAAgBA,EACxCN,EAAe3Y,EAAIA,EACnB4Y,EAAUM,EAAwBD,EAClCJ,EAAU,EAAI7Y,EAAIkZ,EAClBJ,EAAU,EAAIH,EAAeM,EAC7BF,EAAUJ,EAAe3Y,EAI7B,OAHA9V,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EACnE7uB,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EACnE7uB,EAAI,GAAKgW,EAAE,GAAK0Y,EAAU/P,EAAE,GAAKgQ,EAAUhhB,EAAE,GAAKihB,EAAU1Y,EAAE,GAAK2Y,EAC5D7uB,CACT,CASO,SAAS0N,GAAO1N,EAAKsgB,GAC1BA,EAAQA,GAAS,EACjB,IAAI9S,EAAwB,EAApBoR,IAA0BnR,KAAK+Q,GACnC3H,EAAwB,EAApB+H,IAA0B,EAC9BqQ,EAASxhB,KAAK0T,KAAK,EAAMtK,EAAIA,GAAKyJ,EAItC,OAHAtgB,EAAI,GAAKyN,KAAK4S,IAAI7S,GAAKyhB,EACvBjvB,EAAI,GAAKyN,KAAK2S,IAAI5S,GAAKyhB,EACvBjvB,EAAI,GAAK6W,EAAIyJ,EACNtgB,CACT,CAWO,SAASkvB,GAAclvB,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAIZ,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAAMG,EAAIH,EAAE,IAK5C,OAJAY,EAAIA,GAAK,EACTtX,EAAI,IAAM0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,KAAOY,EACpDtX,EAAI,IAAM0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,KAAOY,EACpDtX,EAAI,IAAM0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAAMG,EAAIH,EAAE,KAAOY,EAC9CtX,CACT,CAUO,SAASmvB,GAAcnvB,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GAIV,OAHAhW,EAAI,GAAKiY,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,GACrC1W,EAAI,GAAKiY,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,GACrC1W,EAAI,GAAKiY,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,GAC9B1W,CACT,CAWO,SAASovB,GAAcpvB,EAAKgW,EAAG8N,GAEpC,IAAIuL,EAAKvL,EAAE,GACPwL,EAAKxL,EAAE,GACPyL,EAAKzL,EAAE,GACP0L,EAAK1L,EAAE,GACP7L,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GAGNyZ,EAAMH,EAAKzY,EAAI0Y,EAAKlZ,EACpBqZ,EAAMH,EAAKtX,EAAIoX,EAAKxY,EACpB8Y,EAAMN,EAAKhZ,EAAIiZ,EAAKrX,EAEpB2X,EAAON,EAAKK,EAAMJ,EAAKG,EACvBG,EAAON,EAAKE,EAAMJ,EAAKM,EACvBG,EAAOT,EAAKK,EAAMJ,EAAKG,EAEvBM,EAAU,EAALP,EAYT,OAXAC,GAAOM,EACPL,GAAOK,EACPJ,GAAOI,EAEPH,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EAER9vB,EAAI,GAAKiY,EAAIwX,EAAMG,EACnB5vB,EAAI,GAAKqW,EAAIqZ,EAAMG,EACnB7vB,EAAI,GAAK6W,EAAI8Y,EAAMG,EACZ9vB,CACT,CAUO,SAAS4mB,GAAQ5mB,EAAKgW,EAAG2I,EAAGwB,GACjC,IAAI9I,EAAI,GACJ7J,EAAI,GAaR,OAXA6J,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAEhBnR,EAAE,GAAK6J,EAAE,GACT7J,EAAE,GAAK6J,EAAE,GAAK5J,KAAK4S,IAAIF,GAAO9I,EAAE,GAAK5J,KAAK2S,IAAID,GAC9C3S,EAAE,GAAK6J,EAAE,GAAK5J,KAAK2S,IAAID,GAAO9I,EAAE,GAAK5J,KAAK4S,IAAIF,GAE9CngB,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GACX3e,CACT,CAUO,SAAS6mB,GAAQ7mB,EAAKgW,EAAG2I,EAAGwB,GACjC,IAAI9I,EAAI,GACJ7J,EAAI,GAaR,OAXA6J,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAEhBnR,EAAE,GAAK6J,EAAE,GAAK5J,KAAK2S,IAAID,GAAO9I,EAAE,GAAK5J,KAAK4S,IAAIF,GAC9C3S,EAAE,GAAK6J,EAAE,GACT7J,EAAE,GAAK6J,EAAE,GAAK5J,KAAK4S,IAAIF,GAAO9I,EAAE,GAAK5J,KAAK2S,IAAID,GAE9CngB,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GACX3e,CACT,CAUO,SAAS8mB,GAAQ9mB,EAAKgW,EAAG2I,EAAGwB,GACjC,IAAI9I,EAAI,GACJ7J,EAAI,GAaR,OAXA6J,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAChBtH,EAAE,GAAKrB,EAAE,GAAK2I,EAAE,GAEhBnR,EAAE,GAAK6J,EAAE,GAAK5J,KAAK4S,IAAIF,GAAO9I,EAAE,GAAK5J,KAAK2S,IAAID,GAC9C3S,EAAE,GAAK6J,EAAE,GAAK5J,KAAK2S,IAAID,GAAO9I,EAAE,GAAK5J,KAAK4S,IAAIF,GAC9C3S,EAAE,GAAK6J,EAAE,GAETrX,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GAClB3e,EAAI,GAAKwN,EAAE,GAAKmR,EAAE,GACX3e,CACT,CAQO,SAASgwB,GAAMha,EAAG2I,GACvB,IAAIiJ,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACPwR,EAAK7I,EAAE,GACP8I,EAAK9I,EAAE,GACP+I,EAAK/I,EAAE,GAGPsR,EAFOxiB,KAAK0T,KAAKyG,EAAKA,EAAKC,EAAKA,EAAKC,EAAKA,GACnCra,KAAK0T,KAAKqG,EAAKA,EAAKC,EAAKA,EAAKC,EAAKA,GAE1CwI,EAASD,GAAO5B,GAAIrY,EAAG2I,GAAKsR,EAChC,OAAOxiB,KAAK0iB,KAAK1iB,KAAKL,IAAIK,KAAKJ,IAAI6iB,GAAS,GAAI,GAClD,CAQO,SAASE,GAAKpwB,GAInB,OAHAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACtD,CASO,SAASgL,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EACtD,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,GAChQ,CAMO,IAAIqB,GAAMxG,GAMNuG,GAAMvB,GAMNwQ,GAAMxC,GAMNyC,GAAOvC,GAMPwC,GAAUvC,GAMVrH,GAAMhuB,GAMN63B,GAASvC,GAcTt4B,GAAU,WACnB,IAAI86B,EAAMl8B,KACV,OAAO,SAAUyhB,EAAG0a,EAAQC,EAAQC,EAAOh8B,EAAIC,GAC7C,IAAI+D,EAAGud,EAgBP,IAdKua,IACHA,EAAS,GAGNC,IACHA,EAAS,GAITxa,EADEya,EACEnjB,KAAKL,IAAIwjB,EAAQF,EAASC,EAAQ3a,EAAErd,QAEpCqd,EAAErd,OAGHC,EAAI+3B,EAAQ/3B,EAAIud,EAAGvd,GAAK83B,EAC3BD,EAAI,GAAKza,EAAEpd,GACX63B,EAAI,GAAKza,EAAEpd,EAAI,GACf63B,EAAI,GAAKza,EAAEpd,EAAI,GACfhE,EAAG67B,EAAKA,EAAK57B,GACbmhB,EAAEpd,GAAK63B,EAAI,GACXza,EAAEpd,EAAI,GAAK63B,EAAI,GACfza,EAAEpd,EAAI,GAAK63B,EAAI,GAGjB,OAAOza,CACT,CACF,CA/BqB,GCvuBd,SAASzhB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,GASlC,OAPIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,GAGJA,CACT,CAQO,SAASmX,GAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAKlC,OAJA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAWO,SAAS+e,GAAW9G,EAAG5B,EAAGQ,EAAGS,GAClC,IAAItX,EAAM,IAAI4e,EAAoB,GAKlC,OAJA5e,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACTrW,EAAI,GAAK6W,EACT7W,EAAI,GAAKsX,EACFtX,CACT,CASO,SAAS6e,GAAK7e,EAAKgW,GAKxB,OAJAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAYO,SAASma,GAAIna,EAAKiY,EAAG5B,EAAGQ,EAAGS,GAKhC,OAJAtX,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACTrW,EAAI,GAAK6W,EACT7W,EAAI,GAAKsX,EACFtX,CACT,CAUO,SAASmL,GAAInL,EAAKgW,EAAG2I,GAK1B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAK/B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6f,GAAS7f,EAAKgW,EAAG2I,GAK/B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6tB,GAAO7tB,EAAKgW,EAAG2I,GAK7B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CASO,SAASoX,GAAKpX,EAAKgW,GAKxB,OAJAhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACdhW,CACT,CASO,SAAS+P,GAAM/P,EAAKgW,GAKzB,OAJAhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACfhW,CACT,CAUO,SAASoN,GAAIpN,EAAKgW,EAAG2I,GAK1B,OAJA3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CAUO,SAASqN,GAAIrN,EAAKgW,EAAG2I,GAK1B,OAJA3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CASO,SAAS4a,GAAM5a,EAAKgW,GAKzB,OAJAhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACfhW,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAG2I,GAK5B,OAJA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAAS8tB,GAAY9tB,EAAKgW,EAAG2I,EAAG2B,GAKrC,OAJAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CASO,SAAS+tB,GAAS/X,EAAG2I,GAC1B,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACba,EAAI8H,EAAE,GAAK3I,EAAE,GACbsB,EAAIqH,EAAE,GAAK3I,EAAE,GACjB,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EAAGQ,EAAGS,EAC7B,CASO,SAAS0W,GAAgBhY,EAAG2I,GACjC,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACba,EAAI8H,EAAE,GAAK3I,EAAE,GACbsB,EAAIqH,EAAE,GAAK3I,EAAE,GACjB,OAAOiC,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,EAAIS,EAAIA,CACrC,CAQO,SAAS3e,GAAOqd,GACrB,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GACV,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EAAGQ,EAAGS,EAC7B,CAQO,SAAS2W,GAAcjY,GAC5B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GACV,OAAOiC,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,EAAIS,EAAIA,CACrC,CASO,SAAS4W,GAAOluB,EAAKgW,GAK1B,OAJAhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACLhW,CACT,CASO,SAASmuB,GAAQnuB,EAAKgW,GAK3B,OAJAhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACVhW,CACT,CASO,SAASouB,GAAUpuB,EAAKgW,GAC7B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GACN2Q,EAAM1O,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,EAAIS,EAAIA,EAUtC,OARIqP,EAAM,IACRA,EAAM,EAAIlZ,KAAK0T,KAAKwF,IAGtB3mB,EAAI,GAAKiY,EAAI0O,EACb3mB,EAAI,GAAKqW,EAAIsQ,EACb3mB,EAAI,GAAK6W,EAAI8P,EACb3mB,EAAI,GAAKsX,EAAIqP,EACN3mB,CACT,CASO,SAASquB,GAAIrY,EAAG2I,GACrB,OAAO3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,EAC5D,CAWO,SAAS2P,GAAMtuB,EAAK+V,EAAGa,EAAGU,GAC/B,IAAI0E,EAAIpF,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3BuZ,EAAIja,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3BwZ,EAAIla,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3BC,EAAIX,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3BzT,EAAI+S,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3BpU,EAAI0T,EAAE,GAAKU,EAAE,GAAKV,EAAE,GAAKU,EAAE,GAC3ByZ,EAAIhb,EAAE,GACN8F,EAAI9F,EAAE,GACNib,EAAIjb,EAAE,GACNkb,EAAIlb,EAAE,GAKV,OAJA/V,EAAI,GAAK6b,EAAI3Y,EAAI8tB,EAAIntB,EAAIotB,EAAI1Z,EAC7BvX,EAAI,IAAO+wB,EAAI7tB,EAAK8tB,EAAIF,EAAIG,EAAIJ,EAChC7wB,EAAI,GAAK+wB,EAAIltB,EAAIgY,EAAIiV,EAAIG,EAAIjV,EAC7Bhc,EAAI,IAAO+wB,EAAIxZ,EAAKsE,EAAIgV,EAAIG,EAAIhV,EACzBhc,CACT,CAWO,SAASuuB,GAAKvuB,EAAKgW,EAAG2I,EAAG7I,GAC9B,IAAI8R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GAKX,OAJAhW,EAAI,GAAK4nB,EAAK9R,GAAK6I,EAAE,GAAKiJ,GAC1B5nB,EAAI,GAAK6nB,EAAK/R,GAAK6I,EAAE,GAAKkJ,GAC1B7nB,EAAI,GAAK8nB,EAAKhS,GAAK6I,EAAE,GAAKmJ,GAC1B9nB,EAAI,GAAK+nB,EAAKjS,GAAK6I,EAAE,GAAKoJ,GACnB/nB,CACT,CASO,SAAS0N,GAAO1N,EAAKsgB,GAK1B,IAAIE,EAAI0Q,EAAIC,EAAIC,EACZC,EAAIC,EALRhR,EAAQA,GAAS,EAOjB,GAGE+Q,GAFA7Q,EAAyB,EAApB5B,IAAwB,GAEnB4B,GADV0Q,EAAyB,EAApBtS,IAAwB,GACTsS,QACbG,GAAM,GAEf,GAGEC,GAFAH,EAAyB,EAApBvS,IAAwB,GAEnBuS,GADVC,EAAyB,EAApBxS,IAAwB,GACTwS,QACbE,GAAM,GAEf,IAAIpb,EAAIzI,KAAK0T,MAAM,EAAIkQ,GAAMC,GAK7B,OAJAtxB,EAAI,GAAKsgB,EAAQE,EACjBxgB,EAAI,GAAKsgB,EAAQ4Q,EACjBlxB,EAAI,GAAKsgB,EAAQ6Q,EAAKjb,EACtBlW,EAAI,GAAKsgB,EAAQ8Q,EAAKlb,EACflW,CACT,CAUO,SAASkvB,GAAclvB,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GAKV,OAJAhW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,IAAMY,EAClDtX,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,IAAMY,EAClDtX,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAAMG,EAAIH,EAAE,IAAMY,EACnDtX,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAAMG,EAAIH,EAAE,IAAMY,EAC5CtX,CACT,CAUO,SAASovB,GAAcpvB,EAAKgW,EAAG8N,GACpC,IAAI7L,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNqZ,EAAKvL,EAAE,GACPwL,EAAKxL,EAAE,GACPyL,EAAKzL,EAAE,GACP0L,EAAK1L,EAAE,GAEPyN,EAAK/B,EAAKvX,EAAIqX,EAAKzY,EAAI0Y,EAAKlZ,EAC5Bmb,EAAKhC,EAAKnZ,EAAIkZ,EAAKtX,EAAIoX,EAAKxY,EAC5B4a,EAAKjC,EAAK3Y,EAAIwY,EAAKhZ,EAAIiZ,EAAKrX,EAC5ByZ,GAAMrC,EAAKpX,EAAIqX,EAAKjZ,EAAIkZ,EAAK1Y,EAMjC,OAJA7W,EAAI,GAAKuxB,EAAK/B,EAAKkC,GAAMrC,EAAKmC,GAAMjC,EAAKkC,GAAMnC,EAC/CtvB,EAAI,GAAKwxB,EAAKhC,EAAKkC,GAAMpC,EAAKmC,GAAMpC,EAAKkC,GAAMhC,EAC/CvvB,EAAI,GAAKyxB,EAAKjC,EAAKkC,GAAMnC,EAAKgC,GAAMjC,EAAKkC,GAAMnC,EAC/CrvB,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAQO,SAASowB,GAAKpwB,GAKnB,OAJAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACpE,CASO,SAASgL,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EACvE,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,GACrV,CAMO,IAAIoB,GAAMxG,GAMNuG,GAAMvB,GAMNwQ,GAAMxC,GAMNyC,GAAOvC,GAMPwC,GAAUvC,GAMVrH,GAAMhuB,GAMN63B,GAASvC,GAcTt4B,GAAU,WACnB,IAAI86B,EAAMl8B,KACV,OAAO,SAAUyhB,EAAG0a,EAAQC,EAAQC,EAAOh8B,EAAIC,GAC7C,IAAI+D,EAAGud,EAgBP,IAdKua,IACHA,EAAS,GAGNC,IACHA,EAAS,GAITxa,EADEya,EACEnjB,KAAKL,IAAIwjB,EAAQF,EAASC,EAAQ3a,EAAErd,QAEpCqd,EAAErd,OAGHC,EAAI+3B,EAAQ/3B,EAAIud,EAAGvd,GAAK83B,EAC3BD,EAAI,GAAKza,EAAEpd,GACX63B,EAAI,GAAKza,EAAEpd,EAAI,GACf63B,EAAI,GAAKza,EAAEpd,EAAI,GACf63B,EAAI,GAAKza,EAAEpd,EAAI,GACfhE,EAAG67B,EAAKA,EAAK57B,GACbmhB,EAAEpd,GAAK63B,EAAI,GACXza,EAAEpd,EAAI,GAAK63B,EAAI,GACfza,EAAEpd,EAAI,GAAK63B,EAAI,GACfza,EAAEpd,EAAI,GAAK63B,EAAI,GAGjB,OAAOza,CACT,CACF,CAjCqB,GCtmBd,SAASzhB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,GASlC,OAPIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,GAGXA,EAAI,GAAK,EACFA,CACT,CAQO,SAAS8e,GAAS9e,GAKvB,OAJAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAWO,SAAS2xB,GAAa3xB,EAAK0mB,EAAMvG,GACtCA,GAAY,GACZ,IAAIhd,EAAIsK,KAAK2S,IAAID,GAKjB,OAJAngB,EAAI,GAAKmD,EAAIujB,EAAK,GAClB1mB,EAAI,GAAKmD,EAAIujB,EAAK,GAClB1mB,EAAI,GAAKmD,EAAIujB,EAAK,GAClB1mB,EAAI,GAAKyN,KAAK4S,IAAIF,GACXngB,CACT,CAeO,SAAS4xB,GAAaC,EAAU/N,GACrC,IAAI3D,EAAwB,EAAlB1S,KAAK0iB,KAAKrM,EAAE,IAClB3gB,EAAIsK,KAAK2S,IAAID,EAAM,GAavB,OAXIhd,EAAIyb,GACNiT,EAAS,GAAK/N,EAAE,GAAK3gB,EACrB0uB,EAAS,GAAK/N,EAAE,GAAK3gB,EACrB0uB,EAAS,GAAK/N,EAAE,GAAK3gB,IAGrB0uB,EAAS,GAAK,EACdA,EAAS,GAAK,EACdA,EAAS,GAAK,GAGT1R,CACT,CASO,SAAS2R,GAAS9b,EAAG2I,GAC1B,IAAIoT,EAAa1D,GAAIrY,EAAG2I,GACxB,OAAOlR,KAAK0iB,KAAK,EAAI4B,EAAaA,EAAa,EACjD,CAUO,SAASlS,GAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIiJ,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPwR,EAAK7I,EAAE,GACP8I,EAAK9I,EAAE,GACP+I,EAAK/I,EAAE,GACPgJ,EAAKhJ,EAAE,GAKX,OAJA3e,EAAI,GAAK4nB,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,EAC5CznB,EAAI,GAAK6nB,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,EAC5C1nB,EAAI,GAAK8nB,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,EAC5CxnB,EAAI,GAAK+nB,EAAKJ,EAAKC,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EACrC1nB,CACT,CAUO,SAAS4mB,GAAQ5mB,EAAKgW,EAAGmK,GAC9BA,GAAO,GACP,IAAIyH,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPwR,EAAK/Z,KAAK2S,IAAID,GACdwH,EAAKla,KAAK4S,IAAIF,GAKlB,OAJAngB,EAAI,GAAK4nB,EAAKD,EAAKI,EAAKP,EACxBxnB,EAAI,GAAK6nB,EAAKF,EAAKG,EAAKN,EACxBxnB,EAAI,GAAK8nB,EAAKH,EAAKE,EAAKL,EACxBxnB,EAAI,GAAK+nB,EAAKJ,EAAKC,EAAKJ,EACjBxnB,CACT,CAUO,SAAS6mB,GAAQ7mB,EAAKgW,EAAGmK,GAC9BA,GAAO,GACP,IAAIyH,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPyR,EAAKha,KAAK2S,IAAID,GACdwH,EAAKla,KAAK4S,IAAIF,GAKlB,OAJAngB,EAAI,GAAK4nB,EAAKD,EAAKG,EAAKL,EACxBznB,EAAI,GAAK6nB,EAAKF,EAAKI,EAAKN,EACxBznB,EAAI,GAAK8nB,EAAKH,EAAKC,EAAKH,EACxBznB,EAAI,GAAK+nB,EAAKJ,EAAKE,EAAKJ,EACjBznB,CACT,CAUO,SAAS8mB,GAAQ9mB,EAAKgW,EAAGmK,GAC9BA,GAAO,GACP,IAAIyH,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACP0R,EAAKja,KAAK2S,IAAID,GACdwH,EAAKla,KAAK4S,IAAIF,GAKlB,OAJAngB,EAAI,GAAK4nB,EAAKD,EAAKE,EAAKH,EACxB1nB,EAAI,GAAK6nB,EAAKF,EAAKC,EAAKF,EACxB1nB,EAAI,GAAK8nB,EAAKH,EAAKI,EAAKL,EACxB1nB,EAAI,GAAK+nB,EAAKJ,EAAKG,EAAKJ,EACjB1nB,CACT,CAWO,SAASgyB,GAAWhyB,EAAKgW,GAC9B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GAKV,OAJAhW,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACTrW,EAAI,GAAK6W,EACT7W,EAAI,GAAKyN,KAAK0T,KAAK1T,KAAKsJ,IAAI,EAAMkB,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,IAC/C7W,CACT,CASO,SAASiyB,GAAIjyB,EAAKgW,GACvB,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GACNxI,EAAIC,KAAK0T,KAAKlJ,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,GAClCqb,EAAKzkB,KAAKwkB,IAAI3a,GACdnU,EAAIqK,EAAI,EAAI0kB,EAAKzkB,KAAK2S,IAAI5S,GAAKA,EAAI,EAKvC,OAJAxN,EAAI,GAAKiY,EAAI9U,EACbnD,EAAI,GAAKqW,EAAIlT,EACbnD,EAAI,GAAK6W,EAAI1T,EACbnD,EAAI,GAAKkyB,EAAKzkB,KAAK4S,IAAI7S,GAChBxN,CACT,CASO,SAASmyB,GAAGnyB,EAAKgW,GACtB,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACNa,EAAIb,EAAE,GACNsB,EAAItB,EAAE,GACNxI,EAAIC,KAAK0T,KAAKlJ,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,GAClCf,EAAItI,EAAI,EAAIC,KAAK2kB,MAAM5kB,EAAG8J,GAAK9J,EAAI,EAKvC,OAJAxN,EAAI,GAAKiY,EAAInC,EACb9V,EAAI,GAAKqW,EAAIP,EACb9V,EAAI,GAAK6W,EAAIf,EACb9V,EAAI,GAAK,GAAMyN,KAAKpP,IAAI4Z,EAAIA,EAAI5B,EAAIA,EAAIQ,EAAIA,EAAIS,EAAIA,GAC7CtX,CACT,CAUO,SAASqyB,GAAIryB,EAAKgW,EAAG2I,GAI1B,OAHAwT,GAAGnyB,EAAKgW,GACRsK,GAAMtgB,EAAKA,EAAK2e,GAChBsT,GAAIjyB,EAAKA,GACFA,CACT,CAWO,SAASsyB,GAAMtyB,EAAKgW,EAAG2I,EAAG7I,GAG/B,IAQIyc,EAAOC,EAAOC,EAAOC,EAAQC,EAR7B/K,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPwR,EAAK7I,EAAE,GACP8I,EAAK9I,EAAE,GACP+I,EAAK/I,EAAE,GACPgJ,EAAKhJ,EAAE,GAgCX,OA7BA6T,EAAQ5K,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,GAE/B,IACV6K,GAASA,EACThL,GAAMA,EACNC,GAAMA,EACNC,GAAMA,EACNC,GAAMA,GAIJ,EAAM6K,EAAQ5T,GAEhB2T,EAAQ9kB,KAAK0iB,KAAKqC,GAClBC,EAAQhlB,KAAK2S,IAAImS,GACjBG,EAASjlB,KAAK2S,KAAK,EAAMtK,GAAKyc,GAASE,EACvCE,EAASllB,KAAK2S,IAAItK,EAAIyc,GAASE,IAI/BC,EAAS,EAAM5c,EACf6c,EAAS7c,GAIX9V,EAAI,GAAK0yB,EAAS9K,EAAK+K,EAASnL,EAChCxnB,EAAI,GAAK0yB,EAAS7K,EAAK8K,EAASlL,EAChCznB,EAAI,GAAK0yB,EAAS5K,EAAK6K,EAASjL,EAChC1nB,EAAI,GAAK0yB,EAAS3K,EAAK4K,EAAShL,EACzB3nB,CACT,CAQO,SAAS0N,GAAO1N,GAGrB,IAAI4yB,EAAKhU,IACLiU,EAAKjU,IACLkU,EAAKlU,IACLmU,EAAetlB,KAAK0T,KAAK,EAAIyR,GAC7BI,EAASvlB,KAAK0T,KAAKyR,GAKvB,OAJA5yB,EAAI,GAAK+yB,EAAetlB,KAAK2S,IAAI,EAAM3S,KAAK+Q,GAAKqU,GACjD7yB,EAAI,GAAK+yB,EAAetlB,KAAK4S,IAAI,EAAM5S,KAAK+Q,GAAKqU,GACjD7yB,EAAI,GAAKgzB,EAASvlB,KAAK2S,IAAI,EAAM3S,KAAK+Q,GAAKsU,GAC3C9yB,EAAI,GAAKgzB,EAASvlB,KAAK4S,IAAI,EAAM5S,KAAK+Q,GAAKsU,GACpC9yB,CACT,CASO,SAASsf,GAAOtf,EAAKgW,GAC1B,IAAIuJ,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACPqY,EAAM9O,EAAKA,EAAKF,EAAKA,EAAKG,EAAKA,EAAKC,EAAKA,EACzCwT,EAAS5E,EAAM,EAAMA,EAAM,EAM/B,OAJAruB,EAAI,IAAMuf,EAAK0T,EACfjzB,EAAI,IAAMqf,EAAK4T,EACfjzB,EAAI,IAAMwf,EAAKyT,EACfjzB,EAAI,GAAKyf,EAAKwT,EACPjzB,CACT,CAUO,SAASkzB,GAAUlzB,EAAKgW,GAK7B,OAJAhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAaO,SAASmzB,GAASnzB,EAAK0W,GAG5B,IACI0c,EADAC,EAAS3c,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAG7B,GAAI2c,EAAS,EAEXD,EAAQ3lB,KAAK0T,KAAKkS,EAAS,GAE3BrzB,EAAI,GAAK,GAAMozB,EACfA,EAAQ,GAAMA,EAEdpzB,EAAI,IAAM0W,EAAE,GAAKA,EAAE,IAAM0c,EACzBpzB,EAAI,IAAM0W,EAAE,GAAKA,EAAE,IAAM0c,EACzBpzB,EAAI,IAAM0W,EAAE,GAAKA,EAAE,IAAM0c,MACpB,CAEL,IAAIx6B,EAAI,EACJ8d,EAAE,GAAKA,EAAE,KAAI9d,EAAI,GACjB8d,EAAE,GAAKA,EAAM,EAAJ9d,EAAQA,KAAIA,EAAI,GAC7B,IAAI06B,GAAK16B,EAAI,GAAK,EACd26B,GAAK36B,EAAI,GAAK,EAClBw6B,EAAQ3lB,KAAK0T,KAAKzK,EAAM,EAAJ9d,EAAQA,GAAK8d,EAAM,EAAJ4c,EAAQA,GAAK5c,EAAM,EAAJ6c,EAAQA,GAAK,GAC/DvzB,EAAIpH,GAAK,GAAMw6B,EACfA,EAAQ,GAAMA,EACdpzB,EAAI,IAAM0W,EAAM,EAAJ4c,EAAQC,GAAK7c,EAAM,EAAJ6c,EAAQD,IAAMF,EACzCpzB,EAAIszB,IAAM5c,EAAM,EAAJ4c,EAAQ16B,GAAK8d,EAAM,EAAJ9d,EAAQ06B,IAAMF,EACzCpzB,EAAIuzB,IAAM7c,EAAM,EAAJ6c,EAAQ36B,GAAK8d,EAAM,EAAJ9d,EAAQ26B,IAAMH,CAC3C,CAEA,OAAOpzB,CACT,CAYO,SAASwzB,GAAUxzB,EAAKiY,EAAG5B,EAAGQ,GACnC,IAAI4c,EAAY,GAAMhmB,KAAK+Q,GAAK,IAChCvG,GAAKwb,EACLpd,GAAKod,EACL5c,GAAK4c,EACL,IAAIrK,EAAK3b,KAAK2S,IAAInI,GACdyb,EAAKjmB,KAAK4S,IAAIpI,GACdoR,EAAK5b,KAAK2S,IAAI/J,GACdsd,EAAKlmB,KAAK4S,IAAIhK,GACdiT,EAAK7b,KAAK2S,IAAIvJ,GACd+c,EAAKnmB,KAAK4S,IAAIxJ,GAKlB,OAJA7W,EAAI,GAAKopB,EAAKuK,EAAKC,EAAKF,EAAKrK,EAAKC,EAClCtpB,EAAI,GAAK0zB,EAAKrK,EAAKuK,EAAKxK,EAAKuK,EAAKrK,EAClCtpB,EAAI,GAAK0zB,EAAKC,EAAKrK,EAAKF,EAAKC,EAAKuK,EAClC5zB,EAAI,GAAK0zB,EAAKC,EAAKC,EAAKxK,EAAKC,EAAKC,EAC3BtpB,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACpE,CASO,IAAImB,GAAQ0c,GAYR9U,GAAa8U,GAUbhV,GAAOgV,GAaP1Z,GAAM0Z,GAWN1oB,GAAM0oB,GAMNzS,GAAMvB,GAWNS,GAAQuT,GAURxF,GAAMwF,GAYNtF,GAAOsF,GAQPl7B,GAASk7B,GAMTlN,GAAMhuB,GASNs1B,GAAgB4F,GAMhBrD,GAASvC,GAUTG,GAAYyF,GASZ7S,GAAc6S,GASdnV,GAASmV,GAaTC,GAAa,WACtB,IAAIC,EAAUC,KACVC,EAAYD,GAAgB,EAAG,EAAG,GAClCE,EAAYF,GAAgB,EAAG,EAAG,GACtC,OAAO,SAAUh0B,EAAKgW,EAAG2I,GACvB,IAAI0P,EAAM2F,GAAShe,EAAG2I,GAEtB,OAAI0P,GAAO,SACT2F,GAAWD,EAASE,EAAWje,GAC3Bge,GAASD,GAAW,MAAUC,GAAWD,EAASG,EAAWle,GACjEge,GAAeD,EAASA,GACxBpC,GAAa3xB,EAAK+zB,EAAStmB,KAAK+Q,IACzBxe,GACEquB,EAAM,SACfruB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,IAEPg0B,GAAWD,EAAS/d,EAAG2I,GACvB3e,EAAI,GAAK+zB,EAAQ,GACjB/zB,EAAI,GAAK+zB,EAAQ,GACjB/zB,EAAI,GAAK+zB,EAAQ,GACjB/zB,EAAI,GAAK,EAAIquB,EACND,GAAUpuB,EAAKA,GAE1B,CACF,CA5BwB,GAyCbm0B,GAAS,WAClB,IAAIC,EAAQ7/B,KACR8/B,EAAQ9/B,KACZ,OAAO,SAAUyL,EAAKgW,EAAG2I,EAAGhR,EAAGuI,EAAGJ,GAIhC,OAHAwc,GAAM8B,EAAOpe,EAAGE,EAAGJ,GACnBwc,GAAM+B,EAAO1V,EAAGhR,EAAGmI,GACnBwc,GAAMtyB,EAAKo0B,EAAOC,EAAO,EAAIve,GAAK,EAAIA,IAC/B9V,CACT,CACF,CAToB,GAqBTs0B,GAAU,WACnB,IAAIC,EAAOC,KACX,OAAO,SAAUx0B,EAAK9C,EAAMotB,EAAO+B,GAUjC,OATAkI,EAAK,GAAKjK,EAAM,GAChBiK,EAAK,GAAKjK,EAAM,GAChBiK,EAAK,GAAKjK,EAAM,GAChBiK,EAAK,GAAKlI,EAAG,GACbkI,EAAK,GAAKlI,EAAG,GACbkI,EAAK,GAAKlI,EAAG,GACbkI,EAAK,IAAMr3B,EAAK,GAChBq3B,EAAK,IAAMr3B,EAAK,GAChBq3B,EAAK,IAAMr3B,EAAK,GACTkxB,GAAUpuB,EAAKmzB,GAASnzB,EAAKu0B,GACtC,CACF,CAdqB,GCtqBd,SAAShgC,KACd,IAAIkgC,EAAK,IAAI7V,EAAoB,GAajC,OAXIA,GAAuBR,eACzBqW,EAAG,GAAK,EACRA,EAAG,GAAK,EACRA,EAAG,GAAK,EACRA,EAAG,GAAK,EACRA,EAAG,GAAK,EACRA,EAAG,GAAK,EACRA,EAAG,GAAK,GAGVA,EAAG,GAAK,EACDA,CACT,CASO,SAAStd,GAAMnB,GACpB,IAAIye,EAAK,IAAI7V,EAAoB,GASjC,OARA6V,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACVye,EAAG,GAAKze,EAAE,GACHye,CACT,CAgBO,SAAS1V,GAAWwN,EAAIE,EAAIE,EAAI+H,EAAI3Q,EAAIC,EAAIC,EAAI8L,GACrD,IAAI0E,EAAK,IAAI7V,EAAoB,GASjC,OARA6V,EAAG,GAAKlI,EACRkI,EAAG,GAAKhI,EACRgI,EAAG,GAAK9H,EACR8H,EAAG,GAAKC,EACRD,EAAG,GAAK1Q,EACR0Q,EAAG,GAAKzQ,EACRyQ,EAAG,GAAKxQ,EACRwQ,EAAG,GAAK1E,EACD0E,CACT,CAeO,SAASE,GAA8BpI,EAAIE,EAAIE,EAAI+H,EAAI3Q,EAAIC,EAAIC,GACpE,IAAIwQ,EAAK,IAAI7V,EAAoB,GACjC6V,EAAG,GAAKlI,EACRkI,EAAG,GAAKhI,EACRgI,EAAG,GAAK9H,EACR8H,EAAG,GAAKC,EACR,IAAI9M,EAAU,GAAL7D,EACL8D,EAAU,GAAL7D,EACL8D,EAAU,GAAL7D,EAKT,OAJAwQ,EAAG,GAAK7M,EAAK8M,EAAK7M,EAAK8E,EAAK7E,EAAK2E,EACjCgI,EAAG,GAAK5M,EAAK6M,EAAK5M,EAAKyE,EAAK3E,EAAK+E,EACjC8H,EAAG,GAAK3M,EAAK4M,EAAK9M,EAAK6E,EAAK5E,EAAK0E,EACjCkI,EAAG,IAAM7M,EAAK2E,EAAK1E,EAAK4E,EAAK3E,EAAK6E,EAC3B8H,CACT,CAWO,SAASvN,GAAwBlnB,EAAK8jB,EAAGhO,GAC9C,IAAI8R,EAAY,GAAP9R,EAAE,GACP+R,EAAY,GAAP/R,EAAE,GACPgS,EAAY,GAAPhS,EAAE,GACP0R,EAAK1D,EAAE,GACP2D,EAAK3D,EAAE,GACP4D,EAAK5D,EAAE,GACP6D,EAAK7D,EAAE,GASX,OARA9jB,EAAI,GAAKwnB,EACTxnB,EAAI,GAAKynB,EACTznB,EAAI,GAAK0nB,EACT1nB,EAAI,GAAK2nB,EACT3nB,EAAI,GAAK4nB,EAAKD,EAAKE,EAAKH,EAAKI,EAAKL,EAClCznB,EAAI,GAAK6nB,EAAKF,EAAKG,EAAKN,EAAKI,EAAKF,EAClC1nB,EAAI,GAAK8nB,EAAKH,EAAKC,EAAKH,EAAKI,EAAKL,EAClCxnB,EAAI,IAAM4nB,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EAC5B1nB,CACT,CAUO,SAASmiB,GAAgBniB,EAAK8V,GASnC,OARA9V,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAY,GAAP8V,EAAE,GACX9V,EAAI,GAAY,GAAP8V,EAAE,GACX9V,EAAI,GAAY,GAAP8V,EAAE,GACX9V,EAAI,GAAK,EACFA,CACT,CAUO,SAASygB,GAAazgB,EAAK8jB,GAShC,OARA9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAUO,SAASoiB,GAASpiB,EAAKgW,GAE5B,IAAI4e,EAAQC,KACZC,GAAiBF,EAAO5e,GACxB,IAAIF,EAAI,IAAI8I,EAAoB,GAGhC,OAFAkW,GAAoBhf,EAAGE,GACvBkR,GAAwBlnB,EAAK40B,EAAO9e,GAC7B9V,CACT,CAUO,SAAS6e,GAAK7e,EAAKgW,GASxB,OARAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAQO,SAAS8e,GAAS9e,GASvB,OARAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAiBO,SAASma,GAAIna,EAAKusB,EAAIE,EAAIE,EAAI+H,EAAI3Q,EAAIC,EAAIC,EAAI8L,GASnD,OARA/vB,EAAI,GAAKusB,EACTvsB,EAAI,GAAKysB,EACTzsB,EAAI,GAAK2sB,EACT3sB,EAAI,GAAK00B,EACT10B,EAAI,GAAK+jB,EACT/jB,EAAI,GAAKgkB,EACThkB,EAAI,GAAKikB,EACTjkB,EAAI,GAAK+vB,EACF/vB,CACT,CAQO,IAAI+0B,GAAUF,GAQd,SAASG,GAAQh1B,EAAKgW,GAK3B,OAJAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAUO,IAAIi1B,GAAUJ,GAUd,SAASK,GAAQl1B,EAAK8jB,GAK3B,OAJA9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACX9jB,EAAI,GAAK8jB,EAAE,GACJ9jB,CACT,CAQO,SAASioB,GAAejoB,EAAKgW,GAClC,IAAI4R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPwR,GAAMxR,EAAE,GACRyR,GAAMzR,EAAE,GACR0R,GAAM1R,EAAE,GACR2R,EAAK3R,EAAE,GAIX,OAHAhW,EAAI,GAA+C,GAAzC4nB,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,GAC7CznB,EAAI,GAA+C,GAAzC6nB,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,GAC7C1nB,EAAI,GAA+C,GAAzC8nB,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,GACtCxnB,CACT,CAUO,SAASkiB,GAAUliB,EAAKgW,EAAGY,GAChC,IAAIue,EAAMnf,EAAE,GACRof,EAAMpf,EAAE,GACRqf,EAAMrf,EAAE,GACRsf,EAAMtf,EAAE,GACRuf,EAAa,GAAP3e,EAAE,GACR4e,EAAa,GAAP5e,EAAE,GACR6e,EAAa,GAAP7e,EAAE,GACR8e,EAAM1f,EAAE,GACR2f,EAAM3f,EAAE,GACR4f,EAAM5f,EAAE,GACR6f,EAAM7f,EAAE,GASZ,OARAhW,EAAI,GAAKm1B,EACTn1B,EAAI,GAAKo1B,EACTp1B,EAAI,GAAKq1B,EACTr1B,EAAI,GAAKs1B,EACTt1B,EAAI,GAAKs1B,EAAMC,EAAMH,EAAMK,EAAMJ,EAAMG,EAAME,EAC7C11B,EAAI,GAAKs1B,EAAME,EAAMH,EAAME,EAAMJ,EAAMM,EAAME,EAC7C31B,EAAI,GAAKs1B,EAAMG,EAAMN,EAAMK,EAAMJ,EAAMG,EAAMK,EAC7C51B,EAAI,IAAMm1B,EAAMI,EAAMH,EAAMI,EAAMH,EAAMI,EAAMI,EACvC71B,CACT,CAUO,SAAS4mB,GAAQ5mB,EAAKgW,EAAGmK,GAC9B,IAAIqH,GAAMxR,EAAE,GACRyR,GAAMzR,EAAE,GACR0R,GAAM1R,EAAE,GACR2R,EAAK3R,EAAE,GACP4R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPmf,EAAMvN,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,EACzC2N,EAAMvN,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,EACzC2N,EAAMvN,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,EACzC8N,EAAMvN,EAAKJ,EAAKC,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EAU7C,OATAmN,GAAa70B,EAAKgW,EAAGmK,GACrBqH,EAAKxnB,EAAI,GACTynB,EAAKznB,EAAI,GACT0nB,EAAK1nB,EAAI,GACT2nB,EAAK3nB,EAAI,GACTA,EAAI,GAAKm1B,EAAMxN,EAAK2N,EAAM9N,EAAK4N,EAAM1N,EAAK2N,EAAM5N,EAChDznB,EAAI,GAAKo1B,EAAMzN,EAAK2N,EAAM7N,EAAK4N,EAAM7N,EAAK2N,EAAMzN,EAChD1nB,EAAI,GAAKq1B,EAAM1N,EAAK2N,EAAM5N,EAAKyN,EAAM1N,EAAK2N,EAAM5N,EAChDxnB,EAAI,GAAKs1B,EAAM3N,EAAKwN,EAAM3N,EAAK4N,EAAM3N,EAAK4N,EAAM3N,EACzC1nB,CACT,CAUO,SAAS6mB,GAAQ7mB,EAAKgW,EAAGmK,GAC9B,IAAIqH,GAAMxR,EAAE,GACRyR,GAAMzR,EAAE,GACR0R,GAAM1R,EAAE,GACR2R,EAAK3R,EAAE,GACP4R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPmf,EAAMvN,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,EACzC2N,EAAMvN,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,EACzC2N,EAAMvN,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,EACzC8N,EAAMvN,EAAKJ,EAAKC,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EAU7C,OATAmN,GAAa70B,EAAKgW,EAAGmK,GACrBqH,EAAKxnB,EAAI,GACTynB,EAAKznB,EAAI,GACT0nB,EAAK1nB,EAAI,GACT2nB,EAAK3nB,EAAI,GACTA,EAAI,GAAKm1B,EAAMxN,EAAK2N,EAAM9N,EAAK4N,EAAM1N,EAAK2N,EAAM5N,EAChDznB,EAAI,GAAKo1B,EAAMzN,EAAK2N,EAAM7N,EAAK4N,EAAM7N,EAAK2N,EAAMzN,EAChD1nB,EAAI,GAAKq1B,EAAM1N,EAAK2N,EAAM5N,EAAKyN,EAAM1N,EAAK2N,EAAM5N,EAChDxnB,EAAI,GAAKs1B,EAAM3N,EAAKwN,EAAM3N,EAAK4N,EAAM3N,EAAK4N,EAAM3N,EACzC1nB,CACT,CAUO,SAAS8mB,GAAQ9mB,EAAKgW,EAAGmK,GAC9B,IAAIqH,GAAMxR,EAAE,GACRyR,GAAMzR,EAAE,GACR0R,GAAM1R,EAAE,GACR2R,EAAK3R,EAAE,GACP4R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPmf,EAAMvN,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,EACzC2N,EAAMvN,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,EACzC2N,EAAMvN,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,EACzC8N,EAAMvN,EAAKJ,EAAKC,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EAU7C,OATAmN,GAAa70B,EAAKgW,EAAGmK,GACrBqH,EAAKxnB,EAAI,GACTynB,EAAKznB,EAAI,GACT0nB,EAAK1nB,EAAI,GACT2nB,EAAK3nB,EAAI,GACTA,EAAI,GAAKm1B,EAAMxN,EAAK2N,EAAM9N,EAAK4N,EAAM1N,EAAK2N,EAAM5N,EAChDznB,EAAI,GAAKo1B,EAAMzN,EAAK2N,EAAM7N,EAAK4N,EAAM7N,EAAK2N,EAAMzN,EAChD1nB,EAAI,GAAKq1B,EAAM1N,EAAK2N,EAAM5N,EAAKyN,EAAM1N,EAAK2N,EAAM5N,EAChDxnB,EAAI,GAAKs1B,EAAM3N,EAAKwN,EAAM3N,EAAK4N,EAAM3N,EAAK4N,EAAM3N,EACzC1nB,CACT,CAUO,SAAS81B,GAAmB91B,EAAKgW,EAAG8N,GACzC,IAAIuL,EAAKvL,EAAE,GACPwL,EAAKxL,EAAE,GACPyL,EAAKzL,EAAE,GACP0L,EAAK1L,EAAE,GACP8D,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GAaX,OAZAhW,EAAI,GAAK4nB,EAAK4H,EAAKzH,EAAKsH,EAAKxH,EAAK0H,EAAKzH,EAAKwH,EAC5CtvB,EAAI,GAAK6nB,EAAK2H,EAAKzH,EAAKuH,EAAKxH,EAAKuH,EAAKzH,EAAK2H,EAC5CvvB,EAAI,GAAK8nB,EAAK0H,EAAKzH,EAAKwH,EAAK3H,EAAK0H,EAAKzH,EAAKwH,EAC5CrvB,EAAI,GAAK+nB,EAAKyH,EAAK5H,EAAKyH,EAAKxH,EAAKyH,EAAKxH,EAAKyH,EAC5C3H,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GACPhW,EAAI,GAAK4nB,EAAK4H,EAAKzH,EAAKsH,EAAKxH,EAAK0H,EAAKzH,EAAKwH,EAC5CtvB,EAAI,GAAK6nB,EAAK2H,EAAKzH,EAAKuH,EAAKxH,EAAKuH,EAAKzH,EAAK2H,EAC5CvvB,EAAI,GAAK8nB,EAAK0H,EAAKzH,EAAKwH,EAAK3H,EAAK0H,EAAKzH,EAAKwH,EAC5CrvB,EAAI,GAAK+nB,EAAKyH,EAAK5H,EAAKyH,EAAKxH,EAAKyH,EAAKxH,EAAKyH,EACrCvvB,CACT,CAUO,SAAS+1B,GAAoB/1B,EAAK8jB,EAAG9N,GAC1C,IAAIqZ,EAAKvL,EAAE,GACPwL,EAAKxL,EAAE,GACPyL,EAAKzL,EAAE,GACP0L,EAAK1L,EAAE,GACP0D,EAAKxR,EAAE,GACPyR,EAAKzR,EAAE,GACP0R,EAAK1R,EAAE,GACP2R,EAAK3R,EAAE,GAaX,OAZAhW,EAAI,GAAKqvB,EAAK1H,EAAK6H,EAAKhI,EAAK8H,EAAK5H,EAAK6H,EAAK9H,EAC5CznB,EAAI,GAAKsvB,EAAK3H,EAAK6H,EAAK/H,EAAK8H,EAAK/H,EAAK6H,EAAK3H,EAC5C1nB,EAAI,GAAKuvB,EAAK5H,EAAK6H,EAAK9H,EAAK2H,EAAK5H,EAAK6H,EAAK9H,EAC5CxnB,EAAI,GAAKwvB,EAAK7H,EAAK0H,EAAK7H,EAAK8H,EAAK7H,EAAK8H,EAAK7H,EAC5CF,EAAKxR,EAAE,GACPyR,EAAKzR,EAAE,GACP0R,EAAK1R,EAAE,GACP2R,EAAK3R,EAAE,GACPhW,EAAI,GAAKqvB,EAAK1H,EAAK6H,EAAKhI,EAAK8H,EAAK5H,EAAK6H,EAAK9H,EAC5CznB,EAAI,GAAKsvB,EAAK3H,EAAK6H,EAAK/H,EAAK8H,EAAK/H,EAAK6H,EAAK3H,EAC5C1nB,EAAI,GAAKuvB,EAAK5H,EAAK6H,EAAK9H,EAAK2H,EAAK5H,EAAK6H,EAAK9H,EAC5CxnB,EAAI,GAAKwvB,EAAK7H,EAAK0H,EAAK7H,EAAK8H,EAAK7H,EAAK8H,EAAK7H,EACrC1nB,CACT,CAWO,SAASg2B,GAAiBh2B,EAAKgW,EAAG0Q,EAAMvG,GAE7C,GAAI1S,KAAKsJ,IAAIoJ,GAAOvB,EAClB,OAAOC,GAAK7e,EAAKgW,GAGnB,IAAIigB,EAAaxoB,KAAKmT,MAAM8F,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACnDvG,GAAY,GACZ,IAAIhd,EAAIsK,KAAK2S,IAAID,GACbqH,EAAKrkB,EAAIujB,EAAK,GAAKuP,EACnBxO,EAAKtkB,EAAIujB,EAAK,GAAKuP,EACnBvO,EAAKvkB,EAAIujB,EAAK,GAAKuP,EACnBtO,EAAKla,KAAK4S,IAAIF,GACdgV,EAAMnf,EAAE,GACRof,EAAMpf,EAAE,GACRqf,EAAMrf,EAAE,GACRsf,EAAMtf,EAAE,GACZhW,EAAI,GAAKm1B,EAAMxN,EAAK2N,EAAM9N,EAAK4N,EAAM1N,EAAK2N,EAAM5N,EAChDznB,EAAI,GAAKo1B,EAAMzN,EAAK2N,EAAM7N,EAAK4N,EAAM7N,EAAK2N,EAAMzN,EAChD1nB,EAAI,GAAKq1B,EAAM1N,EAAK2N,EAAM5N,EAAKyN,EAAM1N,EAAK2N,EAAM5N,EAChDxnB,EAAI,GAAKs1B,EAAM3N,EAAKwN,EAAM3N,EAAK4N,EAAM3N,EAAK4N,EAAM3N,EAChD,IAAIE,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GACP8R,EAAK9R,EAAE,GACP+R,EAAK/R,EAAE,GAKX,OAJAhW,EAAI,GAAK4nB,EAAKD,EAAKI,EAAKP,EAAKK,EAAKH,EAAKI,EAAKL,EAC5CznB,EAAI,GAAK6nB,EAAKF,EAAKI,EAAKN,EAAKK,EAAKN,EAAKI,EAAKF,EAC5C1nB,EAAI,GAAK8nB,EAAKH,EAAKI,EAAKL,EAAKE,EAAKH,EAAKI,EAAKL,EAC5CxnB,EAAI,GAAK+nB,EAAKJ,EAAKC,EAAKJ,EAAKK,EAAKJ,EAAKK,EAAKJ,EACrC1nB,CACT,CAWO,SAASmL,GAAInL,EAAKgW,EAAG2I,GAS1B,OARA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6f,GAAS7f,EAAKgW,EAAG2I,GAC/B,IAAIuX,EAAMlgB,EAAE,GACRmgB,EAAMngB,EAAE,GACRogB,EAAMpgB,EAAE,GACRqgB,EAAMrgB,EAAE,GACRuf,EAAM5W,EAAE,GACR6W,EAAM7W,EAAE,GACR8W,EAAM9W,EAAE,GACR2X,EAAM3X,EAAE,GACRwW,EAAMnf,EAAE,GACRof,EAAMpf,EAAE,GACRqf,EAAMrf,EAAE,GACRsf,EAAMtf,EAAE,GACRugB,EAAM5X,EAAE,GACR6X,EAAM7X,EAAE,GACR8X,EAAM9X,EAAE,GACR+X,EAAM/X,EAAE,GASZ,OARA3e,EAAI,GAAKk2B,EAAMQ,EAAML,EAAME,EAAMJ,EAAMM,EAAML,EAAMI,EACnDx2B,EAAI,GAAKm2B,EAAMO,EAAML,EAAMG,EAAMJ,EAAMG,EAAML,EAAMO,EACnDz2B,EAAI,GAAKo2B,EAAMM,EAAML,EAAMI,EAAMP,EAAMM,EAAML,EAAMI,EACnDv2B,EAAI,GAAKq2B,EAAMK,EAAMR,EAAMK,EAAMJ,EAAMK,EAAMJ,EAAMK,EACnDz2B,EAAI,GAAKk2B,EAAMI,EAAMD,EAAMd,EAAMY,EAAMV,EAAMW,EAAMZ,EAAML,EAAMuB,EAAMpB,EAAMiB,EAAMnB,EAAMqB,EAAMpB,EAAMmB,EACnGx2B,EAAI,GAAKm2B,EAAMG,EAAMD,EAAMb,EAAMY,EAAMb,EAAMW,EAAMT,EAAML,EAAMsB,EAAMpB,EAAMkB,EAAMnB,EAAMkB,EAAMpB,EAAMsB,EACnGz2B,EAAI,GAAKo2B,EAAME,EAAMD,EAAMZ,EAAMS,EAAMV,EAAMW,EAAMZ,EAAMF,EAAMqB,EAAMpB,EAAMmB,EAAMtB,EAAMqB,EAAMpB,EAAMmB,EACnGv2B,EAAI,GAAKq2B,EAAMC,EAAMJ,EAAMX,EAAMY,EAAMX,EAAMY,EAAMX,EAAMH,EAAMoB,EAAMvB,EAAMoB,EAAMnB,EAAMoB,EAAMnB,EAAMoB,EAC5Fz2B,CACT,CAMO,IAAIohB,GAAMvB,GAWV,SAASS,GAAMtgB,EAAKgW,EAAG2I,GAS5B,OARA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAUO,IAAIquB,GAAMwG,GAYV,SAAStG,GAAKvuB,EAAKgW,EAAG2I,EAAG7I,GAC9B,IAAI6gB,EAAK,EAAI7gB,EAUb,OATIuY,GAAIrY,EAAG2I,GAAK,IAAG7I,GAAKA,GACxB9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EAC5B9V,EAAI,GAAKgW,EAAE,GAAK2gB,EAAKhY,EAAE,GAAK7I,EACrB9V,CACT,CASO,SAASsf,GAAOtf,EAAKgW,GAC1B,IAAI4gB,EAAQ3I,GAAcjY,GAS1B,OARAhW,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,GAAKgW,EAAE,GAAK4gB,EAChB52B,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,IAAMgW,EAAE,GAAK4gB,EACjB52B,EAAI,GAAKgW,EAAE,GAAK4gB,EACT52B,CACT,CAUO,SAASkzB,GAAUlzB,EAAKgW,GAS7B,OARAhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CASO,IAAIrH,GAASk8B,GAMTlO,GAAMhuB,GASNs1B,GAAgB4G,GAMhBrE,GAASvC,GAUb,SAASG,GAAUpuB,EAAKgW,GAC7B,IAAIgS,EAAYiG,GAAcjY,GAE9B,GAAIgS,EAAY,EAAG,CACjBA,EAAYva,KAAK0T,KAAK6G,GACtB,IAAIzI,EAAKvJ,EAAE,GAAKgS,EACZ3I,EAAKrJ,EAAE,GAAKgS,EACZxI,EAAKxJ,EAAE,GAAKgS,EACZvI,EAAKzJ,EAAE,GAAKgS,EACZlI,EAAK9J,EAAE,GACP+J,EAAK/J,EAAE,GACPgK,EAAKhK,EAAE,GACPiK,EAAKjK,EAAE,GACP6gB,EAAUtX,EAAKO,EAAKT,EAAKU,EAAKP,EAAKQ,EAAKP,EAAKQ,EACjDjgB,EAAI,GAAKuf,EACTvf,EAAI,GAAKqf,EACTrf,EAAI,GAAKwf,EACTxf,EAAI,GAAKyf,EACTzf,EAAI,IAAM8f,EAAKP,EAAKsX,GAAW7O,EAC/BhoB,EAAI,IAAM+f,EAAKV,EAAKwX,GAAW7O,EAC/BhoB,EAAI,IAAMggB,EAAKR,EAAKqX,GAAW7O,EAC/BhoB,EAAI,IAAMigB,EAAKR,EAAKoX,GAAW7O,CACjC,CAEA,OAAOhoB,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,SAAWA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,KAAOA,EAAE,GAAK,GAC7H,CASO,SAASgL,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EAC3I,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACPwJ,EAAKxJ,EAAE,GACPyJ,EAAKzJ,EAAE,GACP8L,EAAK9L,EAAE,GACP+L,EAAK/L,EAAE,GACP6P,EAAK7P,EAAE,GACP8P,EAAK9P,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACPqB,EAAKrB,EAAE,GACPsB,EAAKtB,EAAE,GACPqD,EAAKrD,EAAE,GACPsD,EAAKtD,EAAE,GACPqH,EAAKrH,EAAE,GACPsH,EAAKtH,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,KAAQtS,KAAKsJ,IAAIyI,EAAKQ,IAAOpB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIyI,GAAK/R,KAAKsJ,IAAIiJ,KAAQvS,KAAKsJ,IAAI0I,EAAKQ,IAAOrB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI0I,GAAKhS,KAAKsJ,IAAIkJ,KAAQxS,KAAKsJ,IAAI+K,EAAKE,IAAOpD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+K,GAAKrU,KAAKsJ,IAAIiL,KAAQvU,KAAKsJ,IAAIgL,EAAKE,IAAOrD,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIgL,GAAKtU,KAAKsJ,IAAIkL,KAAQxU,KAAKsJ,IAAI8O,EAAKG,IAAOpH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI8O,GAAKpY,KAAKsJ,IAAIiP,KAAQvY,KAAKsJ,IAAI+O,EAAKG,IAAOrH,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAI+O,GAAKrY,KAAKsJ,IAAIkP,GACzqB,CCtzBO,SAAS1xB,KACd,IAAIyL,EAAM,IAAI4e,EAAoB,GAOlC,OALIA,GAAuBR,eACzBpe,EAAI,GAAK,EACTA,EAAI,GAAK,GAGJA,CACT,CAQO,SAASmX,GAAMnB,GACpB,IAAIhW,EAAM,IAAI4e,EAAoB,GAGlC,OAFA5e,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CASO,SAAS+e,GAAW9G,EAAG5B,GAC5B,IAAIrW,EAAM,IAAI4e,EAAoB,GAGlC,OAFA5e,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACFrW,CACT,CASO,SAAS6e,GAAK7e,EAAKgW,GAGxB,OAFAhW,EAAI,GAAKgW,EAAE,GACXhW,EAAI,GAAKgW,EAAE,GACJhW,CACT,CAUO,SAASma,GAAIna,EAAKiY,EAAG5B,GAG1B,OAFArW,EAAI,GAAKiY,EACTjY,EAAI,GAAKqW,EACFrW,CACT,CAUO,SAASmL,GAAInL,EAAKgW,EAAG2I,GAG1B,OAFA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6a,GAAS7a,EAAKgW,EAAG2I,GAG/B,OAFA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6f,GAAS7f,EAAKgW,EAAG2I,GAG/B,OAFA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CAUO,SAAS6tB,GAAO7tB,EAAKgW,EAAG2I,GAG7B,OAFA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAClB3e,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GACX3e,CACT,CASO,SAASoX,GAAKpX,EAAKgW,GAGxB,OAFAhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACrBhW,EAAI,GAAKyN,KAAK2J,KAAKpB,EAAE,IACdhW,CACT,CASO,SAAS+P,GAAM/P,EAAKgW,GAGzB,OAFAhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACtBhW,EAAI,GAAKyN,KAAKsC,MAAMiG,EAAE,IACfhW,CACT,CAUO,SAASoN,GAAIpN,EAAKgW,EAAG2I,GAG1B,OAFA3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKL,IAAI4I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CAUO,SAASqN,GAAIrN,EAAKgW,EAAG2I,GAG1B,OAFA3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IAC1B3e,EAAI,GAAKyN,KAAKJ,IAAI2I,EAAE,GAAI2I,EAAE,IACnB3e,CACT,CASO,SAAS4a,GAAM5a,EAAKgW,GAGzB,OAFAhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACtBhW,EAAI,GAAKyN,KAAKmN,MAAM5E,EAAE,IACfhW,CACT,CAUO,SAASsgB,GAAMtgB,EAAKgW,EAAG2I,GAG5B,OAFA3e,EAAI,GAAKgW,EAAE,GAAK2I,EAChB3e,EAAI,GAAKgW,EAAE,GAAK2I,EACT3e,CACT,CAWO,SAAS8tB,GAAY9tB,EAAKgW,EAAG2I,EAAG2B,GAGrC,OAFAtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EACvBtgB,EAAI,GAAKgW,EAAE,GAAK2I,EAAE,GAAK2B,EAChBtgB,CACT,CASO,SAAS+tB,GAAS/X,EAAG2I,GAC1B,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACjB,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EACvB,CASO,SAAS2X,GAAgBhY,EAAG2I,GACjC,IAAI1G,EAAI0G,EAAE,GAAK3I,EAAE,GACbK,EAAIsI,EAAE,GAAK3I,EAAE,GACjB,OAAOiC,EAAIA,EAAI5B,EAAIA,CACrB,CAQO,SAAS1d,GAAOqd,GACrB,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACV,OAAOvI,KAAKmT,MAAM3I,EAAG5B,EACvB,CAQO,SAAS4X,GAAcjY,GAC5B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACV,OAAOiC,EAAIA,EAAI5B,EAAIA,CACrB,CASO,SAAS6X,GAAOluB,EAAKgW,GAG1B,OAFAhW,EAAI,IAAMgW,EAAE,GACZhW,EAAI,IAAMgW,EAAE,GACLhW,CACT,CASO,SAASmuB,GAAQnuB,EAAKgW,GAG3B,OAFAhW,EAAI,GAAK,EAAMgW,EAAE,GACjBhW,EAAI,GAAK,EAAMgW,EAAE,GACVhW,CACT,CASO,SAASouB,GAAUpuB,EAAKgW,GAC7B,IAAIiC,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GACN2Q,EAAM1O,EAAIA,EAAI5B,EAAIA,EAStB,OAPIsQ,EAAM,IAERA,EAAM,EAAIlZ,KAAK0T,KAAKwF,IAGtB3mB,EAAI,GAAKgW,EAAE,GAAK2Q,EAChB3mB,EAAI,GAAKgW,EAAE,GAAK2Q,EACT3mB,CACT,CASO,SAASquB,GAAIrY,EAAG2I,GACrB,OAAO3I,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,EAChC,CAWO,SAAS2P,GAAMtuB,EAAKgW,EAAG2I,GAC5B,IAAI9H,EAAIb,EAAE,GAAK2I,EAAE,GAAK3I,EAAE,GAAK2I,EAAE,GAG/B,OAFA3e,EAAI,GAAKA,EAAI,GAAK,EAClBA,EAAI,GAAK6W,EACF7W,CACT,CAWO,SAASuuB,GAAKvuB,EAAKgW,EAAG2I,EAAG7I,GAC9B,IAAI8R,EAAK5R,EAAE,GACP6R,EAAK7R,EAAE,GAGX,OAFAhW,EAAI,GAAK4nB,EAAK9R,GAAK6I,EAAE,GAAKiJ,GAC1B5nB,EAAI,GAAK6nB,EAAK/R,GAAK6I,EAAE,GAAKkJ,GACnB7nB,CACT,CASO,SAAS0N,GAAO1N,EAAKsgB,GAC1BA,EAAQA,GAAS,EACjB,IAAI9S,EAAwB,EAApBoR,IAA0BnR,KAAK+Q,GAGvC,OAFAxe,EAAI,GAAKyN,KAAK4S,IAAI7S,GAAK8S,EACvBtgB,EAAI,GAAKyN,KAAK2S,IAAI5S,GAAK8S,EAChBtgB,CACT,CAUO,SAAS82B,GAAc92B,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GAGV,OAFAhW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAC3BrW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EACpBrW,CACT,CAUO,SAAS+2B,GAAe/2B,EAAKgW,EAAGU,GACrC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GAGV,OAFAhW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GACjC1W,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAC1B1W,CACT,CAWO,SAASmvB,GAAcnvB,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GAGV,OAFAhW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GACjC1W,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAC1B1W,CACT,CAYO,SAASkvB,GAAclvB,EAAKgW,EAAGU,GACpC,IAAIuB,EAAIjC,EAAE,GACNK,EAAIL,EAAE,GAGV,OAFAhW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IACjC1W,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAC1B1W,CACT,CAUO,SAASkgB,GAAOlgB,EAAKgW,EAAG2I,EAAGwB,GAEhC,IAAI6W,EAAKhhB,EAAE,GAAK2I,EAAE,GACdsY,EAAKjhB,EAAE,GAAK2I,EAAE,GACduY,EAAOzpB,KAAK2S,IAAID,GAChBgX,EAAO1pB,KAAK4S,IAAIF,GAIpB,OAFAngB,EAAI,GAAKg3B,EAAKG,EAAOF,EAAKC,EAAOvY,EAAE,GACnC3e,EAAI,GAAKg3B,EAAKE,EAAOD,EAAKE,EAAOxY,EAAE,GAC5B3e,CACT,CAQO,SAASgwB,GAAMha,EAAG2I,GACvB,IAAI4N,EAAKvW,EAAE,GACPyW,EAAKzW,EAAE,GACP+N,EAAKpF,EAAE,GACPqF,EAAKrF,EAAE,GAEXsR,EAAMxiB,KAAK0T,KAAKoL,EAAKA,EAAKE,EAAKA,GAAMhf,KAAK0T,KAAK4C,EAAKA,EAAKC,EAAKA,GAE9DkM,EAASD,IAAQ1D,EAAKxI,EAAK0I,EAAKzI,GAAMiM,EAEtC,OAAOxiB,KAAK0iB,KAAK1iB,KAAKL,IAAIK,KAAKJ,IAAI6iB,GAAS,GAAI,GAClD,CAQO,SAASE,GAAKpwB,GAGnB,OAFAA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,CACT,CAQO,SAAS5C,GAAI4Y,GAClB,MAAO,QAAUA,EAAE,GAAK,KAAOA,EAAE,GAAK,GACxC,CASO,SAASgL,GAAYhL,EAAG2I,GAC7B,OAAO3I,EAAE,KAAO2I,EAAE,IAAM3I,EAAE,KAAO2I,EAAE,EACrC,CASO,SAASD,GAAO1I,EAAG2I,GACxB,IAAIY,EAAKvJ,EAAE,GACPqJ,EAAKrJ,EAAE,GACP8J,EAAKnB,EAAE,GACPoB,EAAKpB,EAAE,GACX,OAAOlR,KAAKsJ,IAAIwI,EAAKO,IAAOlB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIwI,GAAK9R,KAAKsJ,IAAI+I,KAAQrS,KAAKsJ,IAAIsI,EAAKU,IAAOnB,EAAmBnR,KAAKJ,IAAI,EAAKI,KAAKsJ,IAAIsI,GAAK5R,KAAKsJ,IAAIgJ,GAC3K,CAMO,IAAI4G,GAAMhuB,GAMN0oB,GAAMxG,GAMNuG,GAAMvB,GAMNwQ,GAAMxC,GAMNyC,GAAOvC,GAMPwC,GAAUvC,GAMVwC,GAASvC,GAcTt4B,GAAU,WACnB,IAAI86B,EAAMl8B,KACV,OAAO,SAAUyhB,EAAG0a,EAAQC,EAAQC,EAAOh8B,EAAIC,GAC7C,IAAI+D,EAAGud,EAgBP,IAdKua,IACHA,EAAS,GAGNC,IACHA,EAAS,GAITxa,EADEya,EACEnjB,KAAKL,IAAIwjB,EAAQF,EAASC,EAAQ3a,EAAErd,QAEpCqd,EAAErd,OAGHC,EAAI+3B,EAAQ/3B,EAAIud,EAAGvd,GAAK83B,EAC3BD,EAAI,GAAKza,EAAEpd,GACX63B,EAAI,GAAKza,EAAEpd,EAAI,GACfhE,EAAG67B,EAAKA,EAAK57B,GACbmhB,EAAEpd,GAAK63B,EAAI,GACXza,EAAEpd,EAAI,GAAK63B,EAAI,GAGjB,OAAOza,CACT,CACF,CA7BqB,E,+BC3jBrB,IAOIohB,EAPAC,EAAuB,kBAAZziB,QAAuBA,QAAU,KAC5C0iB,EAAeD,GAAwB,oBAAZA,EAAEl7B,MAC7Bk7B,EAAEl7B,MACF,SAAsBb,EAAQi8B,EAAUt7B,GACxC,OAAOu7B,SAAS9kC,UAAUyJ,MAAMpH,KAAKuG,EAAQi8B,EAAUt7B,EACzD,EAIAm7B,EADEC,GAA0B,oBAAdA,EAAEp1B,QACCo1B,EAAEp1B,QACVxP,OAAO0P,sBACC,SAAwB7G,GACvC,OAAO7I,OAAOgS,oBAAoBnJ,GAC/B8Q,OAAO3Z,OAAO0P,sBAAsB7G,GACzC,EAEiB,SAAwBA,GACvC,OAAO7I,OAAOgS,oBAAoBnJ,EACpC,EAOF,IAAIm8B,EAAclvB,OAAO7P,OAAS,SAAqBzF,GACrD,OAAOA,IAAUA,CACnB,EAEA,SAAS6hB,IACPA,EAAa4D,KAAK3jB,KAAKK,KACzB,CACA2b,EAAOxe,QAAUuiB,EACjB/D,EAAOxe,QAAQgc,KAwYf,SAAc7D,EAASxR,GACrB,OAAO,IAAIM,SAAQ,SAAUvD,EAASC,GACpC,SAASwhC,EAAc5jC,GACrB4W,EAAQW,eAAenS,EAAMy+B,GAC7BzhC,EAAOpC,EACT,CAEA,SAAS6jC,IAC+B,oBAA3BjtB,EAAQW,gBACjBX,EAAQW,eAAe,QAASqsB,GAElCzhC,EAAQ,GAAGiE,MAAMnF,KAAKmH,WACxB,CAEA07B,EAA+BltB,EAASxR,EAAMy+B,EAAU,CAAEppB,MAAM,IACnD,UAATrV,GAMR,SAAuCwR,EAASmtB,EAASC,GAC7B,oBAAfptB,EAAQG,IACjB+sB,EAA+BltB,EAAS,QAASmtB,EAASC,EAE9D,CATMC,CAA8BrtB,EAASgtB,EAAe,CAAEnpB,MAAM,GAElE,GACF,EAxZAuG,EAAaA,aAAeA,EAE5BA,EAAapiB,UAAUslC,aAAU1gC,EACjCwd,EAAapiB,UAAUulC,aAAe,EACtCnjB,EAAapiB,UAAUwlC,mBAAgB5gC,EAIvC,IAAI6gC,EAAsB,GAE1B,SAASC,EAAcC,GACrB,GAAwB,oBAAbA,EACT,MAAM,IAAI9gC,UAAU,0EAA4E8gC,EAEpG,CAoCA,SAASC,EAAiBC,GACxB,YAA2BjhC,IAAvBihC,EAAKL,cACApjB,EAAaqjB,oBACfI,EAAKL,aACd,CAkDA,SAASM,EAAal9B,EAAQxG,EAAMujC,EAAUI,GAC5C,IAAI/hB,EACA/L,EACA+tB,EA1HsBC,EAgJ1B,GApBAP,EAAcC,QAGC/gC,KADfqT,EAASrP,EAAO08B,UAEdrtB,EAASrP,EAAO08B,QAAUvlC,OAAO8B,OAAO,MACxC+G,EAAO28B,aAAe,SAIK3gC,IAAvBqT,EAAOG,cACTxP,EAAO4Z,KAAK,cAAepgB,EACfujC,EAASA,SAAWA,EAASA,SAAWA,GAIpD1tB,EAASrP,EAAO08B,SAElBU,EAAW/tB,EAAO7V,SAGHwC,IAAbohC,EAEFA,EAAW/tB,EAAO7V,GAAQujC,IACxB/8B,EAAO28B,kBAeT,GAbwB,oBAAbS,EAETA,EAAW/tB,EAAO7V,GAChB2jC,EAAU,CAACJ,EAAUK,GAAY,CAACA,EAAUL,GAErCI,EACTC,EAASE,QAAQP,GAEjBK,EAAStgC,KAAKigC,IAIhB3hB,EAAI4hB,EAAiBh9B,IACb,GAAKo9B,EAAS//B,OAAS+d,IAAMgiB,EAASG,OAAQ,CACpDH,EAASG,QAAS,EAGlB,IAAIvhB,EAAI,IAAI1gB,MAAM,+CACE8hC,EAAS//B,OAAS,IAAMge,OAAO7hB,GADjC,qEAIlBwiB,EAAEpe,KAAO,8BACToe,EAAE5M,QAAUpP,EACZgc,EAAExiB,KAAOA,EACTwiB,EAAEsZ,MAAQ8H,EAAS//B,OA7KGggC,EA8KHrhB,EA7KnBrX,SAAWA,QAAQQ,MAAMR,QAAQQ,KAAKk4B,EA8KxC,CAGF,OAAOr9B,CACT,CAaA,SAASw9B,IACP,IAAK1jC,KAAK2jC,MAGR,OAFA3jC,KAAKkG,OAAO+P,eAAejW,KAAKN,KAAMM,KAAK4jC,QAC3C5jC,KAAK2jC,OAAQ,EACY,IAArB78B,UAAUvD,OACLvD,KAAKijC,SAAStjC,KAAKK,KAAKkG,QAC1BlG,KAAKijC,SAASl8B,MAAM/G,KAAKkG,OAAQY,UAE5C,CAEA,SAAS+8B,EAAU39B,EAAQxG,EAAMujC,GAC/B,IAAI1hC,EAAQ,CAAEoiC,OAAO,EAAOC,YAAQ1hC,EAAWgE,OAAQA,EAAQxG,KAAMA,EAAMujC,SAAUA,GACjFa,EAAUJ,EAAYK,KAAKxiC,GAG/B,OAFAuiC,EAAQb,SAAWA,EACnB1hC,EAAMqiC,OAASE,EACRA,CACT,CAyHA,SAASE,EAAW99B,EAAQxG,EAAMukC,GAChC,IAAI1uB,EAASrP,EAAO08B,QAEpB,QAAe1gC,IAAXqT,EACF,MAAO,GAET,IAAI2uB,EAAa3uB,EAAO7V,GACxB,YAAmBwC,IAAfgiC,EACK,GAEiB,oBAAfA,EACFD,EAAS,CAACC,EAAWjB,UAAYiB,GAAc,CAACA,GAElDD,EAsDT,SAAyBhkB,GAEvB,IADA,IAAIkkB,EAAM,IAAIv2B,MAAMqS,EAAI1c,QACfC,EAAI,EAAGA,EAAI2gC,EAAI5gC,SAAUC,EAChC2gC,EAAI3gC,GAAKyc,EAAIzc,GAAGy/B,UAAYhjB,EAAIzc,GAElC,OAAO2gC,CACT,CA3DIC,CAAgBF,GAAcG,EAAWH,EAAYA,EAAW3gC,OACpE,CAmBA,SAAS+gC,EAAc5kC,GACrB,IAAI6V,EAASvV,KAAK4iC,QAElB,QAAe1gC,IAAXqT,EAAsB,CACxB,IAAI2uB,EAAa3uB,EAAO7V,GAExB,GAA0B,oBAAfwkC,EACT,OAAO,EACF,QAAmBhiC,IAAfgiC,EACT,OAAOA,EAAW3gC,MAEtB,CAEA,OAAO,CACT,CAMA,SAAS8gC,EAAWpkB,EAAKjS,GAEvB,IADA,IAAIyb,EAAO,IAAI7b,MAAMI,GACZxK,EAAI,EAAGA,EAAIwK,IAAKxK,EACvBimB,EAAKjmB,GAAKyc,EAAIzc,GAChB,OAAOimB,CACT,CA2CA,SAAS+Y,EAA+BltB,EAASxR,EAAMm/B,EAAUP,GAC/D,GAA0B,oBAAfptB,EAAQG,GACbitB,EAAMvpB,KACR7D,EAAQ6D,KAAKrV,EAAMm/B,GAEnB3tB,EAAQG,GAAG3R,EAAMm/B,OAEd,IAAwC,oBAA7B3tB,EAAQuE,iBAYxB,MAAM,IAAI1X,UAAU,6EAA+EmT,GATnGA,EAAQuE,iBAAiB/V,GAAM,SAASygC,EAAa9kC,GAG/CijC,EAAMvpB,MACR7D,EAAQgG,oBAAoBxX,EAAMygC,GAEpCtB,EAASxjC,EACX,GAGF,CACF,CAraApC,OAAOI,eAAeiiB,EAAc,sBAAuB,CACzDnhB,YAAY,EACZuX,IAAK,WACH,OAAOitB,CACT,EACAhe,IAAK,SAAStlB,GACZ,GAAmB,kBAARA,GAAoBA,EAAM,GAAK4iC,EAAY5iC,GACpD,MAAM,IAAI4d,WAAW,kGAAoG5d,EAAM,KAEjIsjC,EAAsBtjC,CACxB,IAGFigB,EAAa4D,KAAO,gBAEGphB,IAAjBlC,KAAK4iC,SACL5iC,KAAK4iC,UAAYvlC,OAAO6C,eAAeF,MAAM4iC,UAC/C5iC,KAAK4iC,QAAUvlC,OAAO8B,OAAO,MAC7Ba,KAAK6iC,aAAe,GAGtB7iC,KAAK8iC,cAAgB9iC,KAAK8iC,oBAAiB5gC,CAC7C,EAIAwd,EAAapiB,UAAUknC,gBAAkB,SAAyBx2B,GAChE,GAAiB,kBAANA,GAAkBA,EAAI,GAAKq0B,EAAYr0B,GAChD,MAAM,IAAIqP,WAAW,gFAAkFrP,EAAI,KAG7G,OADAhO,KAAK8iC,cAAgB90B,EACdhO,IACT,EAQA0f,EAAapiB,UAAUmnC,gBAAkB,WACvC,OAAOvB,EAAiBljC,KAC1B,EAEA0f,EAAapiB,UAAUwiB,KAAO,SAAcpgB,GAE1C,IADA,IAAImH,EAAO,GACFrD,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAKqD,EAAK7D,KAAK8D,UAAUtD,IAC/D,IAAIkhC,EAAoB,UAAThlC,EAEX6V,EAASvV,KAAK4iC,QAClB,QAAe1gC,IAAXqT,EACFmvB,EAAWA,QAA4BxiC,IAAjBqT,EAAOnU,WAC1B,IAAKsjC,EACR,OAAO,EAGT,GAAIA,EAAS,CACX,IAAIC,EAGJ,GAFI99B,EAAKtD,OAAS,IAChBohC,EAAK99B,EAAK,IACR89B,aAAcnjC,MAGhB,MAAMmjC,EAGR,IAAIjmC,EAAM,IAAI8C,MAAM,oBAAsBmjC,EAAK,KAAOA,EAAG55B,QAAU,IAAM,KAEzE,MADArM,EAAIU,QAAUulC,EACRjmC,CACR,CAEA,IAAI+jC,EAAUltB,EAAO7V,GAErB,QAAgBwC,IAAZugC,EACF,OAAO,EAET,GAAuB,oBAAZA,EACTP,EAAaO,EAASziC,KAAM6G,OAE5B,KAAI0qB,EAAMkR,EAAQl/B,OACdqhC,EAAYP,EAAW5B,EAASlR,GACpC,IAAS/tB,EAAI,EAAGA,EAAI+tB,IAAO/tB,EACzB0+B,EAAa0C,EAAUphC,GAAIxD,KAAM6G,EAHX,CAM1B,OAAO,CACT,EAgEA6Y,EAAapiB,UAAUunC,YAAc,SAAqBnlC,EAAMujC,GAC9D,OAAOG,EAAapjC,KAAMN,EAAMujC,GAAU,EAC5C,EAEAvjB,EAAapiB,UAAUmY,GAAKiK,EAAapiB,UAAUunC,YAEnDnlB,EAAapiB,UAAUwnC,gBACnB,SAAyBplC,EAAMujC,GAC7B,OAAOG,EAAapjC,KAAMN,EAAMujC,GAAU,EAC5C,EAoBJvjB,EAAapiB,UAAU6b,KAAO,SAAczZ,EAAMujC,GAGhD,OAFAD,EAAcC,GACdjjC,KAAKyV,GAAG/V,EAAMmkC,EAAU7jC,KAAMN,EAAMujC,IAC7BjjC,IACT,EAEA0f,EAAapiB,UAAUynC,oBACnB,SAA6BrlC,EAAMujC,GAGjC,OAFAD,EAAcC,GACdjjC,KAAK8kC,gBAAgBplC,EAAMmkC,EAAU7jC,KAAMN,EAAMujC,IAC1CjjC,IACT,EAGJ0f,EAAapiB,UAAU2Y,eACnB,SAAwBvW,EAAMujC,GAC5B,IAAIvsB,EAAMnB,EAAQyvB,EAAUxhC,EAAGyhC,EAK/B,GAHAjC,EAAcC,QAGC/gC,KADfqT,EAASvV,KAAK4iC,SAEZ,OAAO5iC,KAGT,QAAakC,KADbwU,EAAOnB,EAAO7V,IAEZ,OAAOM,KAET,GAAI0W,IAASusB,GAAYvsB,EAAKusB,WAAaA,EACb,MAAtBjjC,KAAK6iC,aACT7iC,KAAK4iC,QAAUvlC,OAAO8B,OAAO,cAEtBoW,EAAO7V,GACV6V,EAAOU,gBACTjW,KAAK8f,KAAK,iBAAkBpgB,EAAMgX,EAAKusB,UAAYA,SAElD,GAAoB,oBAATvsB,EAAqB,CAGrC,IAFAsuB,GAAY,EAEPxhC,EAAIkT,EAAKnT,OAAS,EAAGC,GAAK,EAAGA,IAChC,GAAIkT,EAAKlT,KAAOy/B,GAAYvsB,EAAKlT,GAAGy/B,WAAaA,EAAU,CACzDgC,EAAmBvuB,EAAKlT,GAAGy/B,SAC3B+B,EAAWxhC,EACX,KACF,CAGF,GAAIwhC,EAAW,EACb,OAAOhlC,KAEQ,IAAbglC,EACFtuB,EAAKwuB,QAiIf,SAAmBxuB,EAAMvM,GACvB,KAAOA,EAAQ,EAAIuM,EAAKnT,OAAQ4G,IAC9BuM,EAAKvM,GAASuM,EAAKvM,EAAQ,GAC7BuM,EAAKhS,KACP,CAnIUygC,CAAUzuB,EAAMsuB,GAGE,IAAhBtuB,EAAKnT,SACPgS,EAAO7V,GAAQgX,EAAK,SAEQxU,IAA1BqT,EAAOU,gBACTjW,KAAK8f,KAAK,iBAAkBpgB,EAAMulC,GAAoBhC,EAC1D,CAEA,OAAOjjC,IACT,EAEJ0f,EAAapiB,UAAU8nC,IAAM1lB,EAAapiB,UAAU2Y,eAEpDyJ,EAAapiB,UAAU+nC,mBACnB,SAA4B3lC,GAC1B,IAAIklC,EAAWrvB,EAAQ/R,EAGvB,QAAetB,KADfqT,EAASvV,KAAK4iC,SAEZ,OAAO5iC,KAGT,QAA8BkC,IAA1BqT,EAAOU,eAUT,OATyB,IAArBnP,UAAUvD,QACZvD,KAAK4iC,QAAUvlC,OAAO8B,OAAO,MAC7Ba,KAAK6iC,aAAe,QACM3gC,IAAjBqT,EAAO7V,KACY,MAAtBM,KAAK6iC,aACT7iC,KAAK4iC,QAAUvlC,OAAO8B,OAAO,aAEtBoW,EAAO7V,IAEXM,KAIT,GAAyB,IAArB8G,UAAUvD,OAAc,CAC1B,IACI5F,EADA2G,EAAOjH,OAAOiH,KAAKiR,GAEvB,IAAK/R,EAAI,EAAGA,EAAIc,EAAKf,SAAUC,EAEjB,oBADZ7F,EAAM2G,EAAKd,KAEXxD,KAAKqlC,mBAAmB1nC,GAK1B,OAHAqC,KAAKqlC,mBAAmB,kBACxBrlC,KAAK4iC,QAAUvlC,OAAO8B,OAAO,MAC7Ba,KAAK6iC,aAAe,EACb7iC,IACT,CAIA,GAAyB,oBAFzB4kC,EAAYrvB,EAAO7V,IAGjBM,KAAKiW,eAAevW,EAAMklC,QACrB,QAAkB1iC,IAAd0iC,EAET,IAAKphC,EAAIohC,EAAUrhC,OAAS,EAAGC,GAAK,EAAGA,IACrCxD,KAAKiW,eAAevW,EAAMklC,EAAUphC,IAIxC,OAAOxD,IACT,EAmBJ0f,EAAapiB,UAAUsnC,UAAY,SAAmBllC,GACpD,OAAOskC,EAAWhkC,KAAMN,GAAM,EAChC,EAEAggB,EAAapiB,UAAUgoC,aAAe,SAAsB5lC,GAC1D,OAAOskC,EAAWhkC,KAAMN,GAAM,EAChC,EAEAggB,EAAa4kB,cAAgB,SAAShvB,EAAS5V,GAC7C,MAAqC,oBAA1B4V,EAAQgvB,cACVhvB,EAAQgvB,cAAc5kC,GAEtB4kC,EAAc3kC,KAAK2V,EAAS5V,EAEvC,EAEAggB,EAAapiB,UAAUgnC,cAAgBA,EAiBvC5kB,EAAapiB,UAAUioC,WAAa,WAClC,OAAOvlC,KAAK6iC,aAAe,EAAIb,EAAehiC,KAAK4iC,SAAW,EAChE,C,+BCvZA,SAAS4C,EAAeC,GAKtB,IAHA,IAAIC,EAAQt+B,SAASu+B,gBAAgBD,MACjCE,EAAa,CAAC,MAAO,SAAU,QAAS,IAAK,MAExCpiC,EAAI,EAAGA,EAAIoiC,EAAWriC,OAAQC,IAAK,CAC1C,IAEIqiC,EAFSD,EAAWpiC,IACEiiC,EAAS,GAAGrwB,cAAgBqwB,EAAS3gC,MAAM,IAGrE,GAAI+gC,KAAoBH,EACtB,OAAOG,CAEX,CAEA,OAAOJ,CAET,CAYA,SAASK,EAAoBL,GAC3B,IAAII,EAAmBL,EAAeC,GACtC,OAAO,SAAqCM,EAASxhC,GACnD,OAAQwhC,EAAQL,MAAMG,GAAoBthC,CAC5C,CACF,CAGA,IAAIyhC,EAAeF,EAAoB,aACnCG,EAAqBH,EAAoB,mBAuD7CnqB,EAAOxe,QAAU,CACfqoC,eAAgBA,EAChBU,oBA3EF,SAA6BT,GAC3B,IAAII,EAAmBL,EAAeC,GACtC,OAAO,SAAqCM,GAC1C,OAAOA,EAAQL,MAAMG,EACvB,CAEF,EAsEEC,oBAAqBA,EACrBE,aAAcA,EACdC,mBAAoBA,EACpBE,iBA1DF,SAA0BJ,GACxBC,EAAaD,EAAS,gBACxB,EAyDEK,uBAtDF,SAAgCL,GAC9BE,EAAmBF,EAAS,QAC9B,EAqDEM,YAlDF,SAAqBN,GACnBA,EAAQL,MAAMV,SAAW,UAC3B,EAiDEsB,iBA9CF,SAA0BP,EAASljB,EAAG5B,GACpC8kB,EAAQL,MAAMzQ,KAAOpS,EAAI,KACzBkjB,EAAQL,MAAMtQ,IAAMnU,EAAI,IAC1B,EA4CEslB,aAzCF,SAAsBR,EAASxV,EAAOC,GACpCuV,EAAQL,MAAMnV,MAAQA,EAAQ,KAC9BwV,EAAQL,MAAMlV,OAASA,EAAS,IAClC,EAuCEgW,YApCF,SAAqBT,GACnBA,EAAQL,MAAMnV,MAAQwV,EAAQL,MAAMlV,OAAS,CAC/C,EAmCEiW,YAhCF,SAAqBV,GACnBA,EAAQL,MAAMnV,MAAQwV,EAAQL,MAAMlV,OAAS,MAC/C,EA+BEkW,kBA5BF,SAA2BX,GACzBA,EAAQL,MAAMiB,SAAW,QAC3B,EA2BEC,mBAxBF,SAA4Bb,GAC1BA,EAAQL,MAAMiB,SAAW,SAC3B,EAuBEE,mBApBF,SAA4Bd,GAC1BA,EAAQL,MAAMoB,cAAgB,MAChC,E,+BC5Ge,SAASC,EAAgBt5B,GAItC,OAHAs5B,EAAkB1pC,OAAO2G,eAAiB3G,OAAO6C,eAAe6jC,OAAS,SAAyBt2B,GAChG,OAAOA,EAAExJ,WAAa5G,OAAO6C,eAAeuN,EAC9C,EACOs5B,EAAgBt5B,EACzB,CALA,iC,+BCiBAkO,EAAOxe,QAAU,CAGf6pC,WAAYx4B,EAAQ,IAGpBy4B,kBAAmBz4B,EAAQ,IAC3B04B,kBAAmB14B,EAAQ,IAC3B24B,sBAAuB34B,EAAQ,IAC/B44B,yBAA0B54B,EAAQ,IAGlC64B,aAAc74B,EAAQ,KACtB84B,aAAc94B,EAAQ,KACtB+4B,iBAAkB/4B,EAAQ,KAG1Bg5B,gBAAiBh5B,EAAQ,KACzBi5B,SAAUj5B,EAAQ,KAGlBk5B,eAAgBl5B,EAAQ,KACxBm5B,kBAAmBn5B,EAAQ,KAG3Bo5B,YAAap5B,EAAQ,IACrBq5B,aAAcr5B,EAAQ,KAGtBs5B,aAAct5B,EAAQ,KAGtBu5B,MAAOv5B,EAAQ,KAGfw5B,WAAYx5B,EAAQ,KAGpBy5B,iBAAkBz5B,EAAQ,KAC1B05B,kBAAmB15B,EAAQ,KAC3B25B,kBAAmB35B,EAAQ,KAC3B45B,wBAAyB55B,EAAQ,KACjC65B,uBAAwB75B,EAAQ,KAChC85B,sBAAuB95B,EAAQ,KAC/B+5B,0BAA2B/5B,EAAQ,KACnCg6B,SAAUh6B,EAAQ,KAClBi6B,SAAUj6B,EAAQ,IAGlBk6B,OAAQl6B,EAAQ,KAChBm6B,MAAOn6B,EAAQ,KAGfo6B,QAASp6B,EAAQ,KACjBq6B,iBAAkBr6B,EAAQ,KAG1Bs6B,aAAct6B,EAAQ,KAGtBu6B,wBAAyBv6B,EAAQ,KACjCw6B,WAAYx6B,EAAQ,KAGpBG,KAAM,CACJxK,MAAOqK,EAAQ,IACfy6B,UAAWz6B,EAAQ,IACnB06B,MAAO16B,EAAQ,IACf26B,MAAO36B,EAAQ,IACf46B,mBAAoB56B,EAAQ,IAC5B66B,IAAK76B,EAAQ,IACb86B,QAAS96B,EAAQ,KACjB+6B,WAAY/6B,EAAQ,KACpBg7B,QAASh7B,EAAQ,IACjBi7B,SAAUj7B,EAAQ,IAClB+K,MAAO/K,EAAQ,KACfk7B,SAAUl7B,EAAQ,KAClBm7B,MAAOn7B,EAAQ,KACfo7B,IAAKp7B,EAAQ,IACb8Y,OAAQ9Y,EAAQ,KAChBq7B,KAAMr7B,EAAQ,IACds7B,SAAUt7B,EAAQ,IAClBu7B,IAAKv7B,EAAQ,IACbw7B,KAAMx7B,EAAQ,IACdy7B,IAAKz7B,EAAQ,IACb2K,KAAM3K,EAAQ,IACd07B,WAAY17B,EAAQ,IACpB27B,SAAU37B,EAAQ,KAClB47B,KAAM57B,EAAQ,IACd67B,MAAO77B,EAAQ,KACf87B,MAAO97B,EAAQ,KACf9O,KAAM8O,EAAQ,KAIhB+7B,aAAc,CACZC,OAAQh8B,EAAQ,IAChBgb,SAAUhb,EAAQ,IAClBsK,aAActK,EAAQ,IACtBi8B,SAAUj8B,EAAQ,M,mCC5GlBk8B,E,0ZALEC,EAAmBn8B,EAAQ,KAAsBo8B,UACjDr8B,EAAYC,EAAQ,IAClB,EAA2CD,EAAS,kBAAjCkO,EAAwBlO,EAAS,oBACtDE,EAAID,EAAQ,IAAeyO,WAqBjC,iBASE,WAAY4tB,EAAYC,EAAWC,EAAWC,EAAYJ,GACxD,GAA0B,kBAAfC,EACT,MAAMp8B,EAAEgG,aAAa,aAAc,UAGrC,IAAKq2B,EACH,MAAMr8B,EAAE8O,kBAAkB,aAGH,kBAAdwtB,IACTA,EAAY,IAGdH,EAAYA,GAAaD,EAEzBM,EAAkBF,GAGlB1tC,OAAOkQ,iBAAiB,KAAM,CAC5B29B,WAAY,CACVrtC,MAAOitC,GAETK,WAAY,CACVttC,MAAOktC,GAETK,UAAW,CACTvtC,MAAO,IAAIgS,KAEbw7B,YAAa,CACXv1B,IAAK,WACH,IAAIhS,EAAOknC,GAAoC,kBAAfA,EAA0BA,EAAavuB,EAKvE,OAHK,KAAK6uB,kBACRxnC,EAAUA,EAAI,IAAI+mC,GAEb/mC,CACT,GAEFynC,QAAS,CACPz1B,IAAK,WACH,IAAMvN,EAASqiC,EAAU,KAAKS,aAC1Bx3B,EAAQ,KAAKs3B,WAAWN,IAAeruB,EAM3C,OAHA3I,EAAkB,QAAVA,EAAkB,SAAWA,EAErCtL,EAAOijC,gBAAgB33B,GAChBtL,CACT,GAEF+iC,gBAAiB,CACfx1B,IAAK,WAEH,OAA0D,IAAlD,IAAIjG,IAAIxS,OAAO+C,OAAO,KAAK+qC,aAAan1B,IAClD,GAEFlL,SAAU,CACRgL,IAAK,WACH,OAAO21B,EAAIC,eAAeX,EAAUF,IAAeruB,EACrD,GAEF1Y,KAAM,CAAEgS,IAAKg1B,EAAU5iC,SAAS67B,KAAK+G,KAEzC,CAuJF,OA9ISW,iBAAP,SAAsB3nC,GACpB,OAAKR,MAAMQ,IAIX6nC,EADA7nC,EAAOA,EAAKsR,eAELq2B,EAAI3nC,IAJF8nC,SAAS9nC,EAAM,GAK1B,EAQA2nC,sBAAA,SAAUZ,EAAYC,GACpB,IAAIhnC,EAAO,KAAKunC,YAKhB,OAHK,KAAKC,kBACRxnC,EAAOA,EAAKsf,UAAU,EAAGtf,EAAK+nC,YAAY,OAErC,IAAIJ,EAAIZ,EAAYC,EAAW,KAAKK,WAAYrnC,EACzD,EAUA2nC,sBAAA,SAAUK,GAGR,OAFAb,EAAkBa,GAClBzuC,OAAOgT,OAAO,KAAK86B,WAAYW,GACxB,IACT,EASAL,gBAAA,SAAI3gC,EAAUihC,GACZ,IAAIjoC,EAAO2nC,EAAIO,QAAQlhC,GAEvB,IAAKhH,EAAQ,MAAM2K,EAAE2O,cAAc,WAAY6uB,GAE/CnoC,EAAOA,EAAKqT,cACZ,IAAM2Q,EAAS,EAAC,IAAI7c,MAAOC,cAAepH,EAAM,KAAKA,MAIrD,OAFC,KAAKynC,QAAQznC,IAAS,WAAiB,GAAEiD,oBAAI+gB,EAAO9Q,OAAO+0B,MAErD,IACT,EAQAN,kBAAA,WACE,OAAO,KAAKxiC,IAAIwiC,EAAIS,MAAO,GAAGpnC,MAAMnF,KAAKmH,WAC3C,EASA2kC,uBAAA,SAAWU,GACT,IAAMC,EA9KV,SAAgCC,GAE9B,IADA3B,EAA4CA,GAA6C,IAAI56B,KAC/C8F,IAAIy2B,GAChD,OAAO3B,EAA0C50B,IAAIu2B,GAEvD,IAAMD,EAAsB,IAAIv8B,IAEhC,OADA66B,EAA0C3lB,IAAIsnB,EAAsBD,GAC7DA,CACT,CAsKgCE,CAAuB,KAAKpB,WAAWrnC,aACnE,OAAIuoC,EAAoBx2B,IAAIu2B,GACnB,MAETC,EAAoBr2B,IAAIo2B,GACjB,KAAK9gC,KAAK8gC,GACnB,EAQAV,iBAAA,WACE,OAAO,KAAKxiC,IAAIwiC,EAAIc,KAAM,GAAGznC,MAAMnF,KAAKmH,WAC1C,EAQA2kC,iBAAA,WACE,OAAO,KAAKxiC,IAAIwiC,EAAIe,KAAM,GAAG1nC,MAAMnF,KAAKmH,WAC1C,EAQA2kC,qBAAA,SAASlI,GACP,OAAI,KAAK6H,UAAUx1B,IAAI2tB,GACd,MAET,KAAK6H,UAAUr1B,IAAIwtB,GACZ,KAAKl4B,KAAKk4B,GACnB,EAQAkI,kBAAA,WACE,OAAO,KAAKxiC,IAAIwiC,EAAIgB,MAAO,GAAG3nC,MAAMnF,KAAKmH,WAC3C,EAQA2kC,kBAAA,SAAMrqC,EAAOsrC,GAMX,MALItrC,EAAM2gB,QACR3gB,EAAQA,EAAM2gB,MAAM2qB,IAGtB,KAAKzjC,IAAIwiC,EAAIgB,MAAOrrC,GACdA,CACR,EACF,EA/NA,GAoOA/D,OAAOkQ,iBAAiBk+B,EAAK,CAC3BS,MAAO,CAAEruC,MAAO,GAChB0uC,KAAO,CAAE1uC,MAAO,GAChB2uC,KAAO,CAAE3uC,MAAO,GAChB4uC,MAAO,CAAE5uC,MAAO,GAChB8uC,IAAO,CAAE9uC,MAAO,GAChBmuC,QAAS,CACPnuC,MAAO,CACL,QACA,OACA,OACA,QACA,UAKN,IAAM+uC,EAAiB,GACjBX,EAAmB,GAEnBY,EAAkBpB,EAAIO,QAAQr8B,KAAI,SAACkE,EAAOrQ,GAG9C,OAFAopC,EAAe/4B,IAAS,EACxBo4B,EAAiBjpC,KAAKQ,GACfqQ,CACT,IAEA,SAAS83B,EAAiB93B,GACxB,KAAMA,KAAS+4B,GACb,MAAMn+B,EAAE2O,cAAc,QAASyvB,EAEnC,CAEA,SAAS5B,EAAkBa,GACzBzuC,OAAOiH,KAAKwnC,GAAQvrC,SAAQ,YAC1BorC,EAAiBG,EAAOjB,GAAYz1B,cACtC,GACF,CAEAuG,EAAOxe,QAAUsuC,C,iGCnSF,SAAS,EAAWqB,EAAQjmC,EAAMkmC,GAa/C,OAXE,EADE,OAAAC,EAAA,KACWxtB,QAAQC,UAAUskB,OAElB,SAAoB+I,EAAQjmC,EAAMkmC,GAC7C,IAAInsB,EAAI,CAAC,MACTA,EAAE5d,KAAK+D,MAAM6Z,EAAG/Z,GAChB,IACId,EAAW,IADGq8B,SAAS2B,KAAKh9B,MAAM+lC,EAAQlsB,IAG9C,OADImsB,GAAO,OAAA/oC,EAAA,GAAe+B,EAAUgnC,EAAMzvC,WACnCyI,CACT,EAEK,EAAWgB,MAAM,KAAMD,UAChC,CCZe,SAAS,EAAiBimC,GACvC,IAAIE,EAAwB,oBAARn9B,IAAqB,IAAIA,SAAQ5N,EAuBrD,OAtBA,EAAmB,SAA0B6qC,GAC3C,GAAc,OAAVA,ICPkCvtC,EDOEutC,GCNsB,IAAzD3K,SAASl6B,SAASvI,KAAKH,GAAI6K,QAAQ,kBDMQ,OAAO0iC,ECP5C,IAA2BvtC,EDQtC,GAAqB,oBAAVutC,EACT,MAAM,IAAI5qC,UAAU,sDAEtB,GAAsB,qBAAX8qC,EAAwB,CACjC,GAAIA,EAAOr3B,IAAIm3B,GAAQ,OAAOE,EAAOn3B,IAAIi3B,GACzCE,EAAOloB,IAAIgoB,EAAOG,EACpB,CACA,SAASA,IACP,OAAO,EAAUH,EAAOjmC,UAAW,OAAA5G,EAAA,GAAeF,MAAM6D,YAC1D,CASA,OARAqpC,EAAQ5vC,UAAYD,OAAO8B,OAAO4tC,EAAMzvC,UAAW,CACjDuG,YAAa,CACXhG,MAAOqvC,EACP3uC,YAAY,EACZE,UAAU,EACVD,cAAc,KAGX,OAAAwF,EAAA,GAAekpC,EAASH,EACjC,EACO,EAAiBA,EAC1B,C,+BEFApxB,EAAOxe,QARP,SAAkByG,EAAMupC,GACtBvpC,EAAKwpC,OAASD,EACd,IAAIE,EAAW,WAAY,EAC3BA,EAAS/vC,UAAY6vC,EAAU7vC,UAC/BsG,EAAKtG,UAAY,IAAI+vC,EACrBzpC,EAAKtG,UAAUuG,YAAcD,CAC/B,C,+BCCA+X,EAAOxe,QATP,SAAkBO,EAAK4vC,GACrB,IAAK,IAAI3vC,KAAO2vC,EACR3vC,KAAOD,IACXA,EAAIC,GAAO2vC,EAAY3vC,IAG3B,OAAOD,CACT,C,+BCxBe,SAAS6vC,EAAQ7vC,GAG9B,OAAO6vC,EAAU,mBAAqBxvC,QAAU,iBAAmBA,OAAOE,SAAW,SAAUP,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBK,QAAUL,EAAImG,cAAgB9F,QAAUL,IAAQK,OAAOT,UAAY,gBAAkBI,CAC1H,EAAG6vC,EAAQ7vC,EACb,CARA,iC,+BC4BA,SAAS+qC,IACPzoC,KAAKwtC,SAAW,KAChBxtC,KAAKytC,SAAW,KAChBztC,KAAKu7B,OAAS,IAChB,CAEAkN,EAASnf,OAAS,SAASokB,EAAIC,GAC7B,OAAOD,EAAGF,WAAaG,EAAGH,UAAYE,EAAGD,WAAaE,EAAGF,UAAYC,EAAGnS,SAAWoS,EAAGpS,MACxF,EAEAkN,EAASnrC,UAAUgsB,OAAS,SAASskB,GACnC,OAAOnF,EAASnf,OAAOtpB,KAAM4tC,EAC/B,EAEAnF,EAASnrC,UAAUuwC,OAAS,SAASD,EAAOE,GACtCF,EAAMrS,SAERv7B,KAAKu7B,OAASv7B,KAAKu7B,QAAU,EAC7Bv7B,KAAKu7B,QAAUqS,EAAMrS,QAGvB,IAAIwS,EAAqB/tC,KAAK+tC,mBAAmBD,GAC7CC,IAEF/tC,KAAKu7B,OAASv7B,KAAKu7B,QAAU,EAC7Bv7B,KAAKu7B,QAAUwS,GAGjB/tC,KAAKwtC,SAAWI,EAAMJ,SACtBxtC,KAAKytC,SAAWG,EAAMH,QACxB,EAEAhF,EAASnrC,UAAU6F,MAAQ,WACzBnD,KAAKwtC,SAAW,KAChBxtC,KAAKytC,SAAW,KAChBztC,KAAKu7B,OAAS,IAChB,EAGAkN,EAASnrC,UAAU0wC,cAAgB,SAASF,GAC1C,OAAK9tC,KAAKwtC,SAGNxtC,KAAKytC,SA0BX,SAAqBxlC,EAAKgmC,GACxB,GAAIhmC,EAAM,EACR,OAAOoQ,KAAKL,IAAI,EAAG/P,EAAMgmC,GAE3B,GAAIhmC,EAAM,EACR,OAAOoQ,KAAKJ,IAAI,EAAGhQ,EAAMgmC,GAE3B,OAAO,CACT,CAjCWC,CAAYluC,KAAKwtC,SAAUxtC,KAAKytC,SAAUK,GAE5C9tC,KAAKwtC,SALH,IAMX,EAEA/E,EAASnrC,UAAUywC,mBAAqB,SAASD,GAC/CA,EAAUz1B,KAAKL,IAAI81B,EAAS9tC,KAAKmuC,oBAEjC,IAAIC,EAAcpuC,KAAKguC,cAAcF,GAGrC,OAFuB9tC,KAAKwtC,SAAWY,GAAe,EAE7BN,CAC3B,EAGArF,EAASnrC,UAAU6wC,iBAAmB,WACpC,OAAqB,MAAjBnuC,KAAKwtC,SACA,EAELxtC,KAAKwtC,WAAaxtC,KAAKytC,SAClB3X,IAEFzd,KAAKsJ,IAAI3hB,KAAKwtC,SAAWxtC,KAAKytC,SACvC,EAYA9xB,EAAOxe,QAAUsrC,C,ohBCtGX4F,EAAc7/B,EAAQ,KACtB8/B,EAAoB,GAS1BnxC,EAAQoxC,kBAAoB,SAA2BC,EAAMzjC,GAG3D,OADAA,EAA6B,kBAAZA,GAAwBA,EAAUA,EAAU,gBACtDujC,EAFPE,EAAuB,kBAATA,EAAoBA,EAAO,GAER,IAAIF,EAAkBE,GAAU,IAAIH,EAAYG,EAAMzjC,EACzF,EASA,kBACE,mBACE0jC,YAAM,MAAO,yBAAuB,K,OACpCpxC,OAAO2G,eAAesT,EAAMo3B,EAAwBpxC,W,CACtD,CACF,OALsCia,OAKtC,EALA,CAAsC82B,GAOtClxC,EAAQuxC,wBAA0BA,EAClCrxC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO6wC,IASzD,kBACE,mBACED,YAAM,MAAO,gCAA8B,K,OAC3CpxC,OAAO2G,eAAesT,EAAMq3B,EAA8BrxC,W,CAC5D,CACF,OAL4Cia,OAK5C,EALA,CAA4C82B,GAO5ClxC,EAAQwxC,8BAAgCA,EACxCtxC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO8wC,IASzD,kBACE,mBACEF,YAAM,MAAO,wCAAsC,K,OACnDpxC,OAAO2G,eAAesT,EAAMs3B,EAA8BtxC,W,CAC5D,CACF,OAL4Cia,OAK5C,EALA,CAA4C82B,GAO5ClxC,EAAQyxC,8BAAgCA,EACxCvxC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO+wC,IASzD,kBACE,mBACEH,YAAM,MAAO,oDAAkD,K,OAC/DpxC,OAAO2G,eAAesT,EAAMu3B,EAAwBvxC,W,CACtD,CACF,OALsCia,OAKtC,EALA,CAAsC82B,GAOtClxC,EAAQ0xC,wBAA0BA,EAClCxxC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOgxC,IASzD,kBACE,mBACEJ,YAAM,MAAO,+BAA6B,K,OAC1CpxC,OAAO2G,eAAesT,EAAMw3B,EAA4BxxC,W,CAC1D,CACF,OAL0Cia,OAK1C,EALA,CAA0C82B,GAO1ClxC,EAAQ2xC,4BAA8BA,EACtCzxC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOixC,IASzD,kBACE,mBACEL,YAAM,MAAO,gCAA8B,K,OAC3CpxC,OAAO2G,eAAesT,EAAMy3B,EAA8BzxC,W,CAC5D,CACF,OAL4Cia,OAK5C,EALA,CAA4C82B,GAO5ClxC,EAAQ4xC,8BAAgCA,EACxC1xC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOkxC,IASzD,kBACE,mBACEN,YAAM,MAAO,mCAAiC,K,OAC9CpxC,OAAO2G,eAAesT,EAAM03B,EAAiC1xC,W,CAC/D,CACF,OAL+Cia,OAK/C,EALA,CAA+C82B,GAO/ClxC,EAAQ6xC,iCAAmCA,EAC3C3xC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOmxC,IASzD,kBACE,mBACEP,YAAM,KAAO,+BAA6B,K,OAC1CpxC,OAAO2G,eAAesT,EAAM23B,EAAyB3xC,W,CACvD,CACF,OALuCia,OAKvC,EALA,CAAuC82B,GAOvClxC,EAAQ8xC,yBAA2BA,EACnC5xC,OAAOI,eAAe6wC,EAAmB,KAAO,CAAEzwC,MAAOoxC,IASzD,kBACE,mBACER,YAAM,MAAO,sCAAoC,K,OACjDpxC,OAAO2G,eAAesT,EAAM43B,EAAqC5xC,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQ+xC,qCAAuCA,EAC/C7xC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOqxC,IASzD,kBACE,mBACET,YAAM,MAAO,mCAAiC,K,OAC9CpxC,OAAO2G,eAAesT,EAAM63B,EAAgC7xC,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQgyC,gCAAkCA,EAC1C9xC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOsxC,IASzD,kBACE,mBACEV,YAAM,MAAO,iDAA+C,K,OAC5DpxC,OAAO2G,eAAesT,EAAM83B,EAAqC9xC,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQiyC,qCAAuCA,EAC/C/xC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOuxC,IASzD,kBACE,mBACEX,YAAM,MAAO,6CAA2C,K,OACxDpxC,OAAO2G,eAAesT,EAAM+3B,EAAqC/xC,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQkyC,qCAAuCA,EAC/ChyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOwxC,IASzD,kBACE,mBACEZ,YAAM,MAAO,yBAAuB,K,OACpCpxC,OAAO2G,eAAesT,EAAMg4B,EAAyBhyC,W,CACvD,CACF,OALuCia,OAKvC,EALA,CAAuC82B,GAOvClxC,EAAQmyC,yBAA2BA,EACnCjyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOyxC,IASzD,kBACE,mBACEb,YAAM,MAAO,yBAAuB,K,OACpCpxC,OAAO2G,eAAesT,EAAMi4B,EAAqBjyC,W,CACnD,CACF,OALmCia,OAKnC,EALA,CAAmC82B,GAOnClxC,EAAQoyC,qBAAuBA,EAC/BlyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO0xC,IASzD,kBACE,mBACEd,YAAM,MAAO,0BAAwB,K,OACrCpxC,OAAO2G,eAAesT,EAAMk4B,EAAqBlyC,W,CACnD,CACF,OALmCia,OAKnC,EALA,CAAmC82B,GAOnClxC,EAAQqyC,qBAAuBA,EAC/BnyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO2xC,IASzD,kBACE,mBACEf,YAAM,MAAO,0CAAwC,K,OACrDpxC,OAAO2G,eAAesT,EAAMm4B,EAA0BnyC,W,CACxD,CACF,OALwCia,OAKxC,EALA,CAAwC82B,GAOxClxC,EAAQsyC,0BAA4BA,EACpCpyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO4xC,IASzD,kBACE,mBACEhB,YAAM,MAAO,0BAAwB,K,OACrCpxC,OAAO2G,eAAesT,EAAMo4B,EAAsBpyC,W,CACpD,CACF,OALoCia,OAKpC,EALA,CAAoC82B,GAOpClxC,EAAQuyC,sBAAwBA,EAChCryC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO6xC,IASzD,kBACE,mBACEjB,YAAM,MAAO,8BAA4B,K,OACzCpxC,OAAO2G,eAAesT,EAAMq4B,EAAuBryC,W,CACrD,CACF,OALqCia,OAKrC,EALA,CAAqC82B,GAOrClxC,EAAQwyC,uBAAyBA,EACjCtyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO8xC,IASzD,kBACE,mBACElB,YAAM,MAAO,wCAAsC,K,OACnDpxC,OAAO2G,eAAesT,EAAMs4B,EAAiCtyC,W,CAC/D,CACF,OAL+Cia,OAK/C,EALA,CAA+C82B,GAO/ClxC,EAAQyyC,iCAAmCA,EAC3CvyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO+xC,IASzD,kBACE,mBACEnB,YAAM,MAAO,mBAAiB,K,OAC9BpxC,OAAO2G,eAAesT,EAAMu4B,EAAkBvyC,W,CAChD,CACF,OALgCia,OAKhC,EALA,CAAgC82B,GAOhClxC,EAAQ0yC,kBAAoBA,EAC5BxyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOgyC,IASzD,kBACE,mBACEpB,YAAM,MAAO,oCAAkC,K,OAC/CpxC,OAAO2G,eAAesT,EAAMw4B,EAAmCxyC,W,CACjE,CACF,OALiDia,OAKjD,EALA,CAAiD82B,GAOjDlxC,EAAQ2yC,mCAAqCA,EAC7CzyC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOiyC,IASzD,kBACE,mBACErB,YAAM,MAAO,0BAAwB,K,OACrCpxC,OAAO2G,eAAesT,EAAMy4B,EAAqBzyC,W,CACnD,CACF,OALmCia,OAKnC,EALA,CAAmC82B,GAOnClxC,EAAQ4yC,qBAAuBA,EAC/B1yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOkyC,IASzD,kBACE,mBACEtB,YAAM,MAAO,4BAA0B,K,OACvCpxC,OAAO2G,eAAesT,EAAM04B,EAA2B1yC,W,CACzD,CACF,OALyCia,OAKzC,EALA,CAAyC82B,GAOzClxC,EAAQ6yC,2BAA6BA,EACrC3yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOmyC,IASzD,kBACE,mBACEvB,YAAM,MAAO,oCAAkC,K,OAC/CpxC,OAAO2G,eAAesT,EAAM24B,EAAqC3yC,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQ8yC,qCAAuCA,EAC/C5yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOoyC,IASzD,kBACE,mBACExB,YAAM,MAAO,8BAA4B,K,OACzCpxC,OAAO2G,eAAesT,EAAM44B,EAA+B5yC,W,CAC7D,CACF,OAL6Cia,OAK7C,EALA,CAA6C82B,GAO7ClxC,EAAQ+yC,+BAAiCA,EACzC7yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOqyC,IASzD,kBACE,mBACEzB,YAAM,MAAO,sBAAoB,K,OACjCpxC,OAAO2G,eAAesT,EAAM64B,EAAuB7yC,W,CACrD,CACF,OALqCia,OAKrC,EALA,CAAqC82B,GAOrClxC,EAAQgzC,uBAAyBA,EACjC9yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOsyC,IASzD,kBACE,mBACE1B,YAAM,MAAO,gBAAc,K,OAC3BpxC,OAAO2G,eAAesT,EAAM84B,EAAoB9yC,W,CAClD,CACF,OALkCia,OAKlC,EALA,CAAkC82B,GAOlClxC,EAAQizC,oBAAsBA,EAC9B/yC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOuyC,IASzD,kBACE,mBACE3B,YAAM,MAAO,+DAA6D,K,OAC1EpxC,OAAO2G,eAAesT,EAAM+4B,EAA2B/yC,W,CACzD,CACF,OALyCia,OAKzC,EALA,CAAyC82B,GAOzClxC,EAAQkzC,2BAA6BA,EACrChzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOwyC,IASzD,kBACE,mBACE5B,YAAM,MAAO,2BAAyB,K,OACtCpxC,OAAO2G,eAAesT,EAAMg5B,EAA4BhzC,W,CAC1D,CACF,OAL0Cia,OAK1C,EALA,CAA0C82B,GAO1ClxC,EAAQmzC,4BAA8BA,EACtCjzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOyyC,IASzD,kBACE,mBACE7B,YAAM,MAAO,4DAA0D,K,OACvEpxC,OAAO2G,eAAesT,EAAMi5B,EAAgCjzC,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQozC,gCAAkCA,EAC1ClzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO0yC,IASzD,kBACE,mBACE9B,YAAM,MAAO,4EAA0E,K,OACvFpxC,OAAO2G,eAAesT,EAAMk5B,EAA2ClzC,W,CACzE,CACF,OALyDia,OAKzD,EALA,CAAyD82B,GAOzDlxC,EAAQqzC,2CAA6CA,EACrDnzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO2yC,IASzD,kBACE,mBACE/B,YAAM,MAAO,mBAAiB,K,OAC9BpxC,OAAO2G,eAAesT,EAAMm5B,EAAmBnzC,W,CACjD,CACF,OALiCia,OAKjC,EALA,CAAiC82B,GAOjClxC,EAAQszC,mBAAqBA,EAC7BpzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO4yC,IASzD,kBACE,mBACEhC,YAAM,MAAO,0DAAwD,K,OACrEpxC,OAAO2G,eAAesT,EAAMo5B,EAAmCpzC,W,CACjE,CACF,OALiDia,OAKjD,EALA,CAAiD82B,GAOjDlxC,EAAQuzC,mCAAqCA,EAC7CrzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO6yC,IASzD,kBACE,mBACEjC,YAAM,MAAO,gDAA8C,K,OAC3DpxC,OAAO2G,eAAesT,EAAMq5B,EAA+BrzC,W,CAC7D,CACF,OAL6Cia,OAK7C,EALA,CAA6C82B,GAO7ClxC,EAAQwzC,+BAAiCA,EACzCtzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO8yC,IASzD,kBACE,mBACElC,YAAM,MAAO,oCAAkC,K,OAC/CpxC,OAAO2G,eAAesT,EAAMs5B,EAAgCtzC,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQyzC,gCAAkCA,EAC1CvzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO+yC,IASzD,kBACE,mBACEnC,YAAM,MAAO,qCAAmC,K,OAChDpxC,OAAO2G,eAAesT,EAAMu5B,EAAgCvzC,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQ0zC,gCAAkCA,EAC1CxzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOgzC,IASzD,kBACE,mBACEpC,YAAM,MAAO,qDAAmD,K,OAChEpxC,OAAO2G,eAAesT,EAAMw5B,EAAqCxzC,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQ2zC,qCAAuCA,EAC/CzzC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOizC,IASzD,kBACE,mBACErC,YAAM,MAAO,iGAA+F,K,OAC5GpxC,OAAO2G,eAAesT,EAAMy5B,EAAkCzzC,W,CAChE,CACF,OALgDia,OAKhD,EALA,CAAgD82B,GAOhDlxC,EAAQ4zC,kCAAoCA,EAC5C1zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOkzC,IASzD,kBACE,mBACEtC,YAAM,MAAO,0BAAwB,K,OACrCpxC,OAAO2G,eAAesT,EAAM05B,EAAyB1zC,W,CACvD,CACF,OALuCia,OAKvC,EALA,CAAuC82B,GAOvClxC,EAAQ6zC,yBAA2BA,EACnC3zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOmzC,IASzD,kBACE,mBACEvC,YAAM,MAAO,2DAAyD,K,OACtEpxC,OAAO2G,eAAesT,EAAM25B,EAAkC3zC,W,CAChE,CACF,OALgDia,OAKhD,EALA,CAAgD82B,GAOhDlxC,EAAQ8zC,kCAAoCA,EAC5C5zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOozC,IASzD,kBACE,mBACExC,YAAM,MAAO,qBAAmB,K,OAChCpxC,OAAO2G,eAAesT,EAAM45B,EAAkB5zC,W,CAChD,CACF,OALgCia,OAKhC,EALA,CAAgC82B,GAOhClxC,EAAQ+zC,kBAAoBA,EAC5B7zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOqzC,IASzD,kBACE,mBACEzC,YAAM,MAAO,0BAAwB,K,OACrCpxC,OAAO2G,eAAesT,EAAM65B,EAAsB7zC,W,CACpD,CACF,OALoCia,OAKpC,EALA,CAAoC82B,GAOpClxC,EAAQg0C,sBAAwBA,EAChC9zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOszC,IASzD,kBACE,mBACE1C,YAAM,MAAO,2BAAyB,K,OACtCpxC,OAAO2G,eAAesT,EAAM85B,EAAsB9zC,W,CACpD,CACF,OALoCia,OAKpC,EALA,CAAoC82B,GAOpClxC,EAAQi0C,sBAAwBA,EAChC/zC,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOuzC,IASzD,kBACE,mBACE3C,YAAM,MAAO,2CAAyC,K,OACtDpxC,OAAO2G,eAAesT,EAAM+5B,EAA2B/zC,W,CACzD,CACF,OALyCia,OAKzC,EALA,CAAyC82B,GAOzClxC,EAAQk0C,2BAA6BA,EACrCh0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOwzC,IASzD,kBACE,mBACE5C,YAAM,MAAO,6BAA2B,K,OACxCpxC,OAAO2G,eAAesT,EAAMg6B,EAA2Bh0C,W,CACzD,CACF,OALyCia,OAKzC,EALA,CAAyC82B,GAOzClxC,EAAQm0C,2BAA6BA,EACrCj0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOyzC,IASzD,kBACE,mBACE7C,YAAM,MAAO,oEAAkE,K,OAC/EpxC,OAAO2G,eAAesT,EAAMi6B,EAAqCj0C,W,CACnE,CACF,OALmDia,OAKnD,EALA,CAAmD82B,GAOnDlxC,EAAQo0C,qCAAuCA,EAC/Cl0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO0zC,IASzD,kBACE,mBACE9C,YAAM,MAAO,kEAAgE,K,OAC7EpxC,OAAO2G,eAAesT,EAAMk6B,EAAgCl0C,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQq0C,gCAAkCA,EAC1Cn0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO2zC,IASzD,kBACE,mBACE/C,YAAM,MAAO,kEAAgE,K,OAC7EpxC,OAAO2G,eAAesT,EAAMm6B,EAAgCn0C,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQs0C,gCAAkCA,EAC1Cp0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO4zC,IASzD,mBACE,mBACEhD,YAAM,MAAO,yDAAuD,K,OACpEpxC,OAAO2G,eAAesT,EAAMo6B,EAAiCp0C,W,CAC/D,CACF,OAL+Cia,OAK/C,EALA,CAA+C82B,GAO/ClxC,EAAQu0C,iCAAmCA,GAC3Cr0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO6zC,KASzD,mBACE,mBACEjD,YAAM,MAAO,yDAAuD,K,OACpEpxC,OAAO2G,eAAesT,EAAMq6B,EAAiCr0C,W,CAC/D,CACF,OAL+Cia,OAK/C,EALA,CAA+C82B,GAO/ClxC,EAAQw0C,iCAAmCA,GAC3Ct0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO8zC,KASzD,mBACE,mBACElD,YAAM,MAAO,uBAAqB,K,OAClCpxC,OAAO2G,eAAesT,EAAMs6B,EAA2Bt0C,W,CACzD,CACF,OALyCia,OAKzC,EALA,CAAyC82B,GAOzClxC,EAAQy0C,2BAA6BA,GACrCv0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAO+zC,KASzD,mBACE,mBACEnD,YAAM,MAAO,qDAAmD,K,OAChEpxC,OAAO2G,eAAesT,EAAMu6B,EAAqBv0C,W,CACnD,CACF,OALmCia,OAKnC,EALA,CAAmC82B,GAOnClxC,EAAQ00C,qBAAuBA,GAC/Bx0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOg0C,KASzD,mBACE,mBACEpD,YAAM,MAAO,0DAAwD,K,OACrEpxC,OAAO2G,eAAesT,EAAMw6B,EAA8Bx0C,W,CAC5D,CACF,OAL4Cia,OAK5C,EALA,CAA4C82B,GAO5ClxC,EAAQ20C,8BAAgCA,GACxCz0C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOi0C,KASzD,mBACE,mBACErD,YAAM,MAAO,oCAAkC,K,OAC/CpxC,OAAO2G,eAAesT,EAAMy6B,EAAgCz0C,W,CAC9D,CACF,OAL8Cia,OAK9C,EALA,CAA8C82B,GAO9ClxC,EAAQ40C,gCAAkCA,GAC1C10C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOk0C,KASzD,mBACE,mBACEtD,YAAM,MAAO,uCAAqC,K,OAClDpxC,OAAO2G,eAAesT,EAAM06B,EAAoC10C,W,CAClE,CACF,OALkDia,OAKlD,EALA,CAAkD82B,GAOlDlxC,EAAQ60C,oCAAsCA,GAC9C30C,OAAOI,eAAe6wC,EAAmB,MAAO,CAAEzwC,MAAOm0C,I,+BC75BzDr2B,EAAOxe,QAJP,SAAayjB,EAAG2I,GACd,QAAS3I,GAAK2I,GAAKA,GAAKA,GAAKA,CAC/B,C,+BC3BA,8CACe,SAAS0oB,EAA4BxkC,EAAGykC,GACrD,GAAKzkC,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGykC,GACtD,IAAIlkC,EAAI3Q,OAAOC,UAAU4K,SAASvI,KAAK8N,GAAG3I,MAAM,GAAI,GAEpD,MADU,WAANkJ,GAAkBP,EAAE5J,cAAamK,EAAIP,EAAE5J,YAAYC,MAC7C,QAANkK,GAAqB,QAANA,EAAoBJ,MAAMiJ,KAAKpJ,GACxC,cAANO,GAAqB,2CAA2CmV,KAAKnV,GAAW,YAAiBP,EAAGykC,QAAxG,CALc,CAMhB,C,iGCJe,SAASC,EAAmBlyB,GACzC,OCJa,SAA4BA,GACzC,GAAIrS,MAAMC,QAAQoS,GAAM,OAAO,OAAAmyB,EAAA,GAAiBnyB,EAClD,CDES,CAAkBA,IAAQ,OAAAoyB,EAAA,GAAgBpyB,IAAQ,OAAAK,EAAA,GAA2BL,IELvE,WACb,MAAM,IAAI9d,UAAU,uIACtB,CFG8F,EAC9F,C,+BGNA,sDAEe,SAASmwC,EAA2BxzC,EAAMa,GACvD,GAAIA,IAA2B,WAAlB,YAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIwC,UAAU,4DAEtB,OAAO,YAAsBrD,EAC/B,C,+BCTA,SAASyuC,EAAQ7vC,GAAkC,OAAO6vC,EAAU,mBAAqBxvC,QAAU,iBAAmBA,OAAOE,SAAW,SAAUP,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBK,QAAUL,EAAImG,cAAgB9F,QAAUL,IAAQK,OAAOT,UAAY,gBAAkBI,CAAK,EAAG6vC,EAAQ7vC,EAAM,CAA/U,sGACA,IAAIuiB,EAAM,GACNsyB,EAAOtyB,EAAI1f,QACXuE,EAAQmb,EAAInb,MACT,SAAS2kC,EAAS/rC,GAQvB,OAPA60C,EAAK5yC,KAAKmF,EAAMnF,KAAKmH,UAAW,IAAI,SAAUuG,GAC5C,GAAIA,EACF,IAAK,IAAIoD,KAAQpD,OACGnL,IAAdxE,EAAI+S,KAAqB/S,EAAI+S,GAAQpD,EAAOoD,GAGtD,IACO/S,CACT,CACO,SAAS80C,IACd,MAAiC,oBAAnBC,gBAAqH,YAAzD,qBAAnBA,eAAiC,YAAclF,EAAQkF,gBAChH,CAMO,SAASC,EAAYC,GAC1B,OALF,SAAmBA,GACjB,QAASA,GAA6C,oBAAtBA,EAAazxC,IAC/C,CAGM0xC,CAAUD,GACLA,EAEFvuC,QAAQvD,QAAQ8xC,EACzB,C,+BCCAh3B,EAAOxe,QAVsB,qBAAhB01C,aAA+BA,YAAY5I,IAC7C,WACL,OAAO4I,YAAY5I,KACrB,EAEK,WACL,OAAOh/B,KAAKg/B,KACd,C,+BCvBF,IAAI6I,EAAS,GAEbz1C,OAAOkQ,iBAAiBulC,EAAQ,CAC9BC,SAAU,CACRx0C,YAAY,EACZV,MAAO2Q,EAAQ,MAEjBma,aAAc,CACZpqB,YAAY,EACZV,MAAO2Q,EAAQ,MAEjBwkC,YAAa,CACXz0C,YAAY,EACZV,MAAO2Q,EAAQ,MAEjBgG,iBAAkB,CAChBjW,YAAY,EACZV,MAAO2Q,EAAQ,MAEjBykC,gBAAiB,CACf10C,YAAY,EACZV,MAAO2Q,EAAQ,MAEjBoa,kBAAmB,CACjBrqB,YAAY,EACZV,MAAO2Q,EAAQ,MAEjB0kC,sBAAuB,CACrB30C,YAAY,EACZV,MAAO2Q,EAAQ,QAInBmN,EAAOxe,QAAU21C,C,iVCpBjB,SAASK,IACP,SAAUrkC,WAAaA,UAAUskC,gBAAkBtkC,UAAUskC,eAAiB,EAChF,CAMA,SAASC,IACP,OAAOF,KAAoBhsC,OAAOmsC,OAAO/iB,OAAS,MAAQ,aAAapN,KAAKrU,UAAU9C,YACjF,OAAOmX,KAAKrU,UAAU9C,YACtB,OAAOmX,KAAKrU,UAAU1C,UAC7B,CAMA,SAASmnC,IACP,OAAOJ,KAAoBhsC,OAAOmsC,OAAO/iB,OAAS,MAAQ,aAAapN,KAAKrU,UAAU9C,YACjF,SAASmX,KAAKrU,UAAU9C,YACxB,SAASmX,KAAKrU,UAAU1C,UAC/B,CAiHAuP,EAAOxe,QAAU,CACfq2C,UAhJF,WACE,MAAO,UAAUrwB,KAAKrU,UAAU9C,UAClC,EA+IEynC,MA7GF,WACE,OAAOJ,KAAYE,GACrB,EA4GEF,OAAM,EACNE,SAAQ,EACRG,SAxGF,WACE,MAAO,OAAOvwB,KAAKrU,UAAU9C,UAC/B,EAuGE2nC,kBAhGF,SAA2BC,GACzB,MAAmB,WAAZA,GAAwB,OAAOzwB,KAAKrU,UAAU9C,aACjC,qBAAX+b,QAAoD,qBAAnBA,OAAOjc,QAEnD,EA6FE+nC,oBA3CF,SAA6BD,GAC3B,MAAgB,WAAZA,EACK,KAEL,UAAW9kC,UACN,QAGF,CAAC,OAAQ,OAAOglC,MAAK,YAC1B,OAAOhlC,UAAU9C,UAAUmL,cAAcgG,SAASrZ,EACpD,KAAM,IACR,EAiCEiwC,uBApFF,SAAgCH,GAE9B,GAAgB,WAAZA,EACF,OAAO,KAIT,GAAI,UAAW9kC,UACb,MAAO,QAKT,IAQMklC,EAuCR,SAAoCC,GAGlC,IAFA,IAAMC,EAA2B,GAC3BC,EAAa,GACV3wC,EAAI,EAAGA,EAAIywC,EAAO1wC,OAAQC,IACjC,GAAkB,MAAdywC,EAAOzwC,GACT0wC,EAAyBlxC,KAAKQ,QACzB,GAAkB,MAAdywC,EAAOzwC,IAAc0wC,EAAyB3wC,OAAS,EAAG,CACnE,IAAM6wC,EAA0BF,EAAyBxvC,MACjB,IAApCwvC,EAAyB3wC,QAC3B4wC,EAAWnxC,KAAKixC,EAAO7wB,UAAUgxB,EAAyB5wC,EAAI,G,CAIpE,OAAO2wC,CACT,CA7DkCE,CAA2BvlC,UAAU9C,WACrBiE,QAC9C,SAACjE,EAAWoX,GAAc,SAAUjL,QAAQiL,EAAW,GAA7B,GAC1BtU,UAAU9C,WAKoB/E,MAAM,YAAc,GAQpD,OAPM,EAAgD+sC,EAAQrkC,KAAI,YAChE,OAAO2kC,EAAepoC,MAAM,KAAK,GAAGiL,aACtC,KAFkD,SAO9B28B,MAAK,YACvB,OAAQ,CAAC,SAAU,SAAU,UAAU32B,SAASrZ,EAClD,KAAM,IACR,E,+BCrGA,iBAOE,WAAYtE,EAAImqC,EAAO4K,QAAA,QAAAA,MACrBl3C,OAAOkQ,iBAAiB,KAAM,CAC5BinC,OAAQ,CACN32C,MAAO8rC,EACPlrC,UAAU,GAEZg2C,IAAK,CACH52C,MAAO2B,GAETk1C,SAAU,CACR72C,MAAO,KACPY,UAAU,KAIV81C,GACF,KAAKI,OAET,CA0DF,OApDEt3C,sBAAIu3C,oBAAK,C,IAAT,WACE,OAAO,KAAKJ,MACd,E,gCAMAn3C,sBAAIu3C,oBAAK,C,IAAT,WACE,QAAS,KAAKF,QAChB,E,gCAOAE,qBAAA,SAASjL,GACP,KAAK6K,OAAS7K,CAChB,EAMAiL,kBAAA,sBACO,KAAKC,QACR,KAAKH,SAAW/7B,YAAW,WACzB,IAAMnZ,EAAK8X,EAAKm9B,IAChBn9B,EAAKw9B,QACLt1C,GACF,GAAG,KAAKg1C,QAEZ,EAMAI,kBAAA,WACEl8B,aAAa,KAAKg8B,UAClB,KAAKA,SAAW,IAClB,EAMAE,kBAAA,WACE,KAAKE,QACL,KAAKH,OACP,EACF,EAnFA,GAqFAh5B,EAAOxe,QAAUy3C,C,mCCrEjBj5B,EAAOxe,QAJP,SAAeU,EAAOma,EAAKC,GACzB,OAAOI,KAAKL,IAAIK,KAAKJ,IAAIpa,EAAOma,GAAMC,EACxC,C,gBCZA0D,EAAOxe,QAAU,SAAkByG,EAAMupC,GACvC,GAAIvpC,GAAQupC,EAEV,GADAvpC,EAAKwpC,OAASD,EACe,oBAAlB9vC,OAAO8B,OAEhByE,EAAKtG,UAAYD,OAAO8B,OAAOguC,EAAU7vC,UAAW,CAClDuG,YAAa,CACXhG,MAAO+F,EACPrF,YAAY,EACZE,UAAU,EACVD,cAAc,SAGb,CAEL,MACE,WAAgB,EAElB6uC,EAAS/vC,UAAY6vC,EAAU7vC,UAC/BsG,EAAKtG,UAAY,IAAI+vC,EACrBzpC,EAAKtG,UAAUuG,YAAcD,C,CAGnC,C,+BC5BA+X,EAAOxe,QAAU,CACfkX,gBAAiB7F,EAAQ,KACzB8F,gBAAiB9F,EAAQ,KACzB+F,eAAgB/F,EAAQ,K,86BCHpBkR,EAAelR,EAAQ,IAAUkR,aACjC/Q,EAAOH,EAAQ,GAarB,cAME,WAAYumC,EAAcC,GAA1B,IAoXiBC,EApXjB,EACExG,cAAO,KACHyG,EAAO,KACP3zC,EAAQwzC,E,OACZC,EAuYJ,SAAyBA,GACvB,IAAMG,EAAY,IAAIrlC,IACtB,IAAK,IAAMnS,KAAOq3C,EAChBG,EAAUpwB,IAAIpnB,EAAK,IAAIkS,IAAImlC,EAAOr3C,KAEpC,OAAOw3C,CACT,CA7YaC,CAAgBJ,GACzB33C,OAAOkQ,iBAAiB+J,EAAM,CAC5B+9B,MAAO,CACLv/B,IAAG,WACD,OAAOo/B,CACT,EACAnwB,IAAG,SAACswB,GACFH,EAAOG,CACT,GAEFC,iBAAkB,CAChBz3C,OAqWWo3C,EArWMD,EAsWhBpnC,MAAMiJ,KAAKo+B,EAAM3wC,QAAQ2L,QAAO,SAACslC,EAAU1+B,GAAS,SAASkO,IAAIlO,EAAM2+B,EAAcP,EAAOp+B,GAAxC,GAAgD,IAAI/G,OApW3G2lC,OAAQ,CACN3/B,IAAG,WACD,OAAOvU,CACT,EACAwjB,IAAG,SAAC0wB,GACFl0C,EAAQk0C,CACV,GAEFC,QAAS,CACP73C,MAAOm3C,GAETW,eAAgB,CACd93C,MAAO,IAAIgS,KAEb+lC,SAAU,CACRr3C,YAAY,EACZuX,IAAG,WACD,OAAgB,OAATo/B,CACT,GAEF3zC,MAAO,CACLhD,YAAY,EACZuX,IAAG,WACD,OAAOvU,CACT,KAIJ+V,EAAK7B,GAAG,gBAAgB,YACtB6B,EAAKq+B,eAAep1C,SAAQ,YAC1BiZ,EAASq8B,KAAKt0C,EAAOiY,EAAS3Y,QAAS2Y,EAAS1Y,OAClD,GACF,I,CACF,CA6RF,OArV2ByW,OAgEzBu+B,yBAAA,SAAaD,GAAb,WACE,GAAoB,oBAATA,EACT,OAAOzxC,QAAQtD,OAAO,IAAIU,MAAM,uCAGlC,IAAMgY,EAAW7K,EAAK4K,QAKtB,OAHAC,EAASq8B,KAAOA,EAChB,KAAKF,eAAe5/B,IAAIyD,GAEjBA,EAASC,QAAQvY,MAAK,YAE3B,OADAoW,EAAKq+B,eAAeI,OAAOv8B,GACpBvI,CACT,IAAG,YAED,MADAqG,EAAKq+B,eAAeI,OAAOv8B,GACrBpY,CACR,GACF,EAeA00C,oBAAA,SAAQhyC,EAAMkyC,GACZ,IAAIr4C,EACEmB,EAAO,KAEb,SAASm3C,EAAY70C,GAInB,GAHItC,EAAKo3C,QAAQv4C,IACfmB,EAAKq3C,sBAAsBx4C,GAEzByD,EACF,MAAMA,CAEV,CAEA,OAAO,KAAKg1C,SAAStyC,GAAM5C,MAAK,SAAgBm1C,GAE9C,OAAOL,EADPr4C,EAAM04C,EAER,IAAGn1C,MAAK,SAAiBF,GAEvB,OADAi1C,IACOj1C,CACT,GAAGi1C,EACL,EAOAH,oBAAA,SAAQn4C,GACN,OAAO,KAAK03C,QAAU13C,CACxB,EAWAm4C,oBAAA,SAAQQ,EAAUxyC,EAAMmN,GAEtB,IAAKslC,EAAkB,KAAKb,QAAS,KAAKn0C,MAAO+0C,GAC/C,MAAM,IAAI90C,MAAM,2BAA2B,KAAKD,MAAK,SAAS+0C,EAAQ,KAIxE,IAAIE,EACA,KAAKZ,WACPY,EAAU,KAAKnB,MACf,KAAKA,MAAQ,MAIf,IAAI13C,EAAM,KACNmG,IACFnG,EAAM,KAAK84C,aAAa3yC,IAK1B,IAAM4yC,EAAgB/4C,EAAM,KAAO,KAAK84C,aAAa,cAerD,OAZA,KAAKE,WAAWL,EAAU34C,GAAO+4C,EAAezlC,GAG5CulC,GACFA,EAAQ31C,UAIN61C,GACF,KAAKT,YAAYS,GAGZ/4C,CACT,EAQAm4C,wBAAA,SAAYn4C,GACV,IAAK,KAAKi4C,SACR,MAAM,IAAIp0C,MAAM,kCAAkC7D,EAAImG,KAAI,2CACrD,IAAK,KAAKoyC,QAAQv4C,GACvB,MAAM,IAAI6D,MAAM,kCAAkC7D,EAAImG,KAAI,YAAY,KAAKuxC,MAAMvxC,KAAI,iBAErE,IAAdnG,EAAIi5C,OACN,KAAKvB,MAAQ,KACb13C,EAAIkD,WAEJlD,EAAIi5C,OAER,EASAd,kCAAA,SAAsBn4C,GACpB,IAAK,KAAKi4C,SACR,MAAM,IAAIp0C,MAAM,kCAAkC7D,EAAImG,KAAI,2CACrD,IAAK,KAAKoyC,QAAQv4C,GACvB,MAAM,IAAI6D,MAAM,kCAAkC7D,EAAImG,KAAI,YAAY,KAAKuxC,MAAMvxC,KAAI,iBAEvFnG,EAAIi5C,MAAQ,EACZ,KAAKvB,MAAQ,KACb13C,EAAIkD,SACN,EAWAi1C,qBAAA,SAASe,GAAT,WAEE,GAAyB,kBAAdA,EAAwB,CACjC,IAAMC,EAAMD,EACZ,OAAO,IAAIzyC,SAAQ,YACjBvD,EAAQyW,EAAKm/B,aAAaK,GAC5B,G,CAIF,IAAMhzC,EAAO+yC,EACb,GAAI,KAAKjB,SAAU,CACjB,IAAIQ,EAAW,KAAKA,SAASrS,KAAK,KAAMjgC,GACxC,OAAO,KAAKuxC,MAAM57B,QAAQvY,KAAKk1C,E,CAEjC,OAAOhyC,QAAQvD,QAAQ,KAAK41C,aAAa3yC,GAC3C,EAWAgyC,yBAAA,SAAae,GACX,IAAMl5C,EAA2B,kBAAdk5C,EAAyB,KAAOA,EAC7C/yC,EAAOnG,EAAMA,EAAImG,KAAO+yC,EAE9B,GAAIl5C,IAAQ,KAAKu4C,QAAQv4C,KAASA,GAAO,KAAKi4C,SAC5C,MAAM,IAAIp0C,MAAM,+BAA+BsC,EAAI,yBAAyB,KAAKuxC,MAAMvxC,KAAI,qBAI7F,GAAInG,EAEF,OADAA,EAAIi5C,QACGj5C,EAIT,IAAMu3C,EAoGV,SAAkBpxC,GAChB,IAAMoxC,EAAOvmC,EAAK4K,QAGlB,OAFA27B,EAAKpxC,KAAOA,EACZoxC,EAAK0B,MAAQ,EACN1B,CACT,CAzGiB6B,CAASjzC,GAEtB,OADA,KAAKuxC,MAAQH,EACNA,CACT,EAWAY,uBAAA,SAAWQ,EAAU34C,EAAKsT,GAIxB,GAHAA,EAAUA,GAAW,GAGjB,KAAK2kC,SAAU,CACjB,IAAKj4C,EACH,MAAM,IAAI6D,MAAM,mDAEX,IAAK,KAAK00C,QAAQv4C,GACvB,MAAM,IAAI6D,MAAM,0CAA0C7D,EAAImG,KAAI,YAAY,KAAKuxC,MAAMvxC,KAAI,gB,MAE1F,GAAInG,EACT,MAAM,IAAI6D,MAAM,oBAAoB7D,EAAImG,KAAI,sEAI9C,IAAKyyC,EAAkB,KAAKb,QAAS,KAAKn0C,MAAO+0C,GAC/C,MAAM,IAAI90C,MAAM,2BAA2B,KAAKD,MAAK,SAAS+0C,EAAQ,KAIxE,KAAKb,OAASa,EACd,KAAKx2B,KAAI,MAAT,KAAI,OAAS,CAAC,eAAgBw2B,GAAUt/B,OAAO/F,KACjD,EAUA6kC,0BAAA,SAAcQ,EAAU34C,EAAKsT,GAC3B,IACE,KAAK0lC,WAAWL,EAAU34C,EAAKsT,E,CAC/B,MAAO7P,GACP,OAAO,C,CAET,OAAO,CACT,EASA00C,iBAAA,SAAKv0C,GAAL,WACE,OAAI,KAAKA,QAAUA,EACV6C,QAAQvD,QAAQ,MACb01C,EAAkB,KAAKjB,iBAAkB,KAAK/zC,MAAOA,GAG1D,KAAKy1C,cAAa,SAACV,EAAUz1C,EAASC,GACvCw1C,IAAa/0C,EACfV,EAAQyW,GACEi/B,EAAkBj/B,EAAKg+B,iBAAkBgB,EAAU/0C,IAC7DT,EAAOm2C,EAAuBX,EAAU/0C,GAE5C,IARS6C,QAAQtD,OAAOm2C,EAAuB,KAAK11C,MAAOA,GAS7D,EACF,EArVA,CAA2Bme,GAoW3B,SAAS62B,EAAkBtB,EAAOp+B,EAAMqgC,GACtC,OAAOjC,EAAMn/B,IAAIe,GAAMjB,IAAIshC,EAC7B,CAgCA,SAAS1B,EAAcP,EAAOp+B,EAAMqgC,GAQlC,OAPAA,EAAKA,GAAM,IAAIrnC,IACfolC,EAAMn/B,IAAIe,GAAMtW,SAAQ,YACjB22C,EAAGthC,IAAItJ,KACV4qC,EAAGnhC,IAAIzJ,GACPkpC,EAAcP,EAAO3oC,EAAM4qC,GAAI32C,QAAQ22C,EAAGnhC,IAAKmhC,GAEnD,IACOA,CACT,CAgBA,SAASD,EAAuBE,EAAMC,GACpC,OAAO,IAAI51C,MAAM,IAAI41C,EAAK,6BAA6BD,EAAI,IAC7D,CAEAx7B,EAAOxe,QAAU24C,C,ohBChbXp2B,EAAelR,EAAQ,IAEzB6oC,EAAa,EACjB,cAME,WAAYC,EAAaC,EAAS1uC,GAAlC,MACE4lC,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5BkgC,YAAa,CACX35C,MAAOw5C,KAETE,QAAS,CACP15C,MAAO05C,GAETE,KAAM,CACJ55C,MAAOgL,EAAQI,IAAIyuC,UAAU,UAAWpgC,IAE1CqgC,aAAc,CACZ95C,MAAOy5C,GAETM,iBAAkB,CAChB/5C,MAAO,KACPY,UAAU,GAEZo5C,WAAY,CACVh6C,MAAO,KACPY,UAAU,K,CAGhB,CAuCF,OArE6B8Y,OAgC3Bla,sBAAIy6C,sBAAO,C,IAAX,WACE,QAAS,KAAKF,gBAChB,E,gCAEAE,qBAAA,WACE,MAAO,oBAAoB,KAAKN,YAAW,IAAI,KAAKD,QAAO,GAC7D,EAEAO,kBAAA,SAAMC,GAAN,WACE,KAAKC,YACL,KAAKP,KAAKr1C,KAAK,mCAAoC21C,GACnD,IAAME,EAAkB,KAAKN,aAAaI,GAAI72C,MAAK,YAG/C,GAFoB,SAAlBihC,EAASrvB,MACXwE,EAAKmgC,KAAKr2C,MAAM,gCACZkW,EAAKsgC,mBAAqBK,EAA9B,CAIF,IACE3gC,EAAKugC,WAAa1V,EAAS+V,kBAC3B5gC,EAAKwI,KAAK,QAASxI,EAAKugC,W,CACxB,MAAOM,GACP7gC,EAAKmgC,KAAKr2C,MAAM,8BAA8B+2C,EAAGptC,Q,CAEnDo3B,EAAShpB,KAAK,SAAS,WAAM,SAAK6+B,WAAL,G,CAC/B,IACA,KAAKJ,iBAAmBK,CAC1B,EAEAH,sBAAA,WACM,KAAKD,aACP,KAAKJ,KAAKr1C,KAAK,gBACf,KAAKy1C,WAAa,KAClB,KAAKD,iBAAmB,KACxB,KAAK93B,KAAK,YAEd,EACF,EArEA,CAA6BJ,GAuE7B/D,EAAOxe,QAAU26C,C,+BC7EF,SAASM,EAAgB3qC,EAAGwU,GAKzC,OAJAm2B,EAAkB/6C,OAAO2G,eAAiB3G,OAAO2G,eAAe+/B,OAAS,SAAyBt2B,EAAGwU,GAEnG,OADAxU,EAAExJ,UAAYge,EACPxU,CACT,EACO2qC,EAAgB3qC,EAAGwU,EAC5B,CANA,iC,mFCMapY,EAAU,WAInB,gCAAuB,CAKtB,OAFD,gCACO,SAAIwuC,EAAqBC,GAChC,KAAC,EATkB,GAELzuC,WAAoB,IAAIA,C,+BCS1C,IAAIw/B,EAAM76B,EAAQ,IAgClBmN,EAAOxe,QAAU,CACfo7C,cA/BF,SAAuBC,EAAqBC,GAG1C,IAFA,IAAI/hC,EAAO,GAEFlT,EAAI,EAAGA,EAAIg1C,EAAoBj1C,OAAQC,IAC9CkT,EAAK1T,KAAK,IAAIy1C,EAAWD,EAAoBh1C,KAO/C,OAJAkT,EAAKmB,MAAK,SAAS6gC,EAAQC,GACzB,OAAOtP,EAAIqP,EAAOnoB,QAASooB,EAAOpoB,QACpC,IAEO7Z,CACT,EAoBEkiC,wBAlBF,SAAiCC,GAG/B,IAFA,IAAIniC,EAAO,GAEFlT,EAAI,EAAGA,EAAIq1C,EAAUt1C,OAAQC,IAC/Bq1C,EAAUr1C,GAAGs1C,eAChBpiC,EAAK1T,KAAK61C,EAAUr1C,IAIxB,IAAKkT,EAAKnT,OACR,MAAM,IAAI/B,MAAM,gCAGlB,OAAOkV,CACT,E,+BCpBAiF,EAAOxe,QAVP,SAAa0lB,EAAG5B,GACd,OAAI4B,EAAI5B,GACE,EAEN4B,EAAI5B,EACC,EAEF,CACT,C,+BCQAtF,EAAOxe,QAhBP,SAAc0lB,GACZ,IAAIk2B,SAAal2B,EACjB,GAAY,WAARk2B,EAAkB,CACpB,GAAU,OAANl2B,EACF,MAAO,OAET,GAA0C,mBAAtCxlB,OAAOC,UAAU4K,SAASvI,KAAKkjB,GACjC,MAAO,QAET,GAA0C,oBAAtCxlB,OAAOC,UAAU4K,SAASvI,KAAKkjB,GACjC,MAAO,QAEX,CACA,OAAOk2B,CACT,C,+BCZAp9B,EAAOxe,QAFP,WAAiB,C,+BCbjB,IAAIsZ,EAAUjI,EAAQ,IAAMiI,QACxBoE,EAAerM,EAAQ,IAAMqM,aAI7Bm+B,EAA0B,KA0B9B,IAAIC,EAAkB,KAqCtB,SAASC,EAAmBC,GAC1B,OAAKA,GA1DP,WACE,GAAuC,mBAA5BH,EACT,OAAOA,EAET,GAAiC,qBAAtBpwB,kBAET,OADAowB,GAA0B,EAG5B,IAEE,IAAIpwB,kBAAkB,CAAEuwB,aAAc,QACtCH,GAA0B,C,CAC1B,MAAOxsC,GACPwsC,GAA0B,C,CAE5B,OAAOA,CACT,CA0CwBI,GAGf,CACL,SAAU,QACV,eAAgB,WAChBD,GA/BJ,WACE,IAAKF,EACH,GAAiC,qBAAtBrwB,mBACN,mBAAoBA,kBAAkBtrB,UAAW,CACpD,IAAM+7C,EAAK,IAAIzwB,kBACf,IACEywB,EAAGC,eAAe,SAClBL,EAAkB,S,CAClB,MAAOzsC,GACPysC,EAAkB,O,CAEpBI,EAAGE,O,MAEHN,EAAkB,QAGtB,OAAOA,CACT,CASWO,EAMX,CAiCA,SAASC,EAAWC,EAASC,GAE3B,OADcA,EAAM1yC,MAAM,IAAIkhB,OAAOuxB,EAAS,QAAU,IACzCzpC,QAAO,SAAS2pC,EAASC,GACtC,IAAI5yC,EAAQ4yC,EAAK5yC,MAAM,IAAIkhB,OAAOuxB,IAClC,OAAOzyC,EAAQ2yC,EAAQ7jC,IAAI9O,EAAM,IAAM2yC,CACzC,GAAG,IAAI/pC,IACT,CAQA,SAASiqC,EAAYJ,EAASK,GAC5B,OAAON,EAAWC,EAASK,EAC7B,CAOA,SAASC,EAAiBD,GACxB,OAAOD,EAAY,mCAAoCC,EACzD,CAOA,SAASE,EAAuBF,GAC9B,OAAOD,EAAY,sBAAuBC,EAC5C,CAQA,SAASG,EAAcH,EAAKI,GAE1B,OAAOV,EADO,iCAAmCU,EAAU,MAChCJ,EAC7B,CASA,SAASK,EAAiBL,EAAKjnC,EAAMunC,GAGnC,OAFAvnC,EAAOA,GAAQ,KACfunC,EAAYA,GAAa,KAClBN,EAAI7tC,MAAM,UAAUpH,MAAM,GAAG6K,KAAI,SAAS2qC,GAC/C,MAAO,KAAOA,CAChB,IAAGrtC,QAAO,SAASqtC,GACjB,IAAIC,EAAc,IAAIpyB,OAAO,KAAOrV,EAAM,MACtC0nC,EAAmB,IAAIryB,OAAO,KAAOkyB,EAAW,MACpD,OAAOE,EAAYp3B,KAAKm3B,IAAiBE,EAAiBr3B,KAAKm3B,EACjE,GACF,CAOA,SAASG,EAAqBH,GAC5B,OAAO1sC,MAAMiJ,KAAK4iC,EAAW,wBAAyBa,GACxD,CAQA,SAASI,EAAoBX,EAAKI,GAChC,IAAIQ,EAAgBP,EAAiBL,GAEjCa,EAAiB,IAAIzyB,OAAO,kBAAoBgyB,EAAU,MAAO,MACjEU,EAAwBF,EAAc1tC,QAAO,SAASqtC,GACxD,OAAOA,EAAarzC,MAAM2zC,EAC5B,IAEA,OAAO,IAAI/qC,IAAI4G,EAAQokC,EAAuBJ,GAChD,CASA,SAASK,EAAmBhB,EAAaiB,EAAUhB,GACjD,OAAO,IAAIjqC,IAAIlC,MAAMiJ,KAAKijC,EAAYC,IAAMpqC,KAAI,SAASwqC,GACvD,MAAO,CAACA,EAASY,EAAShB,EAAKI,GACjC,IACF,CAOA,SAASa,EAAwBjB,GAC/B,OAAOe,EAAmBd,EAAkBE,EAAeH,EAC7D,CAOA,SAASkB,EAA8BlB,GACrC,OAAOe,EAAmBb,EAAwBS,EAAqBX,EACzE,CAWA,SAASmB,EAAsBJ,EAAoBK,EAAiBpB,GAClE,IAAIqB,EAAqBN,EAAmBf,GACxCsB,EAAqB,IAAIvrC,IAG7BsrC,EAAmB76C,SAAQ,SAAS+6C,EAAOnB,GACzC,GAAKgB,EAAgBvlC,IAAIukC,GAAzB,CAIA,IAAIoB,EAAW3tC,MAAMiJ,KAAKskC,EAAgBrlC,IAAIqkC,IAC1CqB,EAAW5tC,MAAMiJ,KAAKykC,GAC1BC,EAASh7C,SAAQ,SAASk7C,EAASj4C,GACjC,IAAIk4C,EAAUF,EAASh4C,GACvB63C,EAAmBt2B,IAAI22B,EAASD,GAChC,IAAI/B,EAAU,WAAagC,EAAU,SACjCC,EAAc,UAAYF,EAAU,MACxC1B,EAAMA,EAAI5hC,QAAQ,IAAIgQ,OAAOuxB,EAAS,MAAOiC,EAC/C,G,MAXER,EAAgBp2B,IAAIo1B,EAASmB,EAYjC,IAGA,IAAI5B,EAAU,+BAgBd,OAfcK,EAAI9yC,MAAM,IAAIkhB,OAAOuxB,EAAS,QAAU,IAC9Cn5C,SAAQ,SAASs5C,GACvB,IAAI5yC,EAAQ4yC,EAAK5yC,MAAM,IAAIkhB,OAAOuxB,IAClC,GAAKzyC,EAAL,CAGA,IAAI6gB,EAAS7gB,EAAM,GAEfs0C,EADWt0C,EAAM,GACGiF,MAAM,KAAKyD,KAAI,SAAS+rC,GAC9C,IAAID,EAAUJ,EAAmBvlC,IAAI4lC,GACrC,OAAOD,GAAoBC,CAC7B,IAAGp+B,KAAK,KACRy8B,EAAMA,EAAI5hC,QAAQlR,EAAM,GAAI6gB,EAASyzB,E,CACvC,IAEOxB,CACT,CA0BA58C,EAAQy+C,2BA9QR,WACE3C,EAAkB,IACpB,EA6QA97C,EAAQ0+C,aArNR,SAAsB1C,GACpB,MAAO,CACLpxB,OAAQmxB,EAAmBC,GAC3BnxB,QAAS,UACTC,OAfkC,qBAAtB6zB,mBACT,qBAAsBA,kBAAkBx+C,UACzC,UACA,SAaFud,MAAmB,IACvB,EAgNA1d,EAAQi9C,iBAAmBA,EAC3Bj9C,EAAQ68C,iBAAmBA,EAC3B78C,EAAQ88C,uBAAyBA,EACjC98C,EAAQ+8C,cAAgBA,EACxB/8C,EAAQu9C,oBAAsBA,EAC9Bv9C,EAAQ4+C,2BAvBR,SAAoCZ,EAAiBpB,GACnD,OAAOmB,EAAsBF,EAAyBG,EAAiBpB,EACzE,EAsBA58C,EAAQ6+C,iCAZR,SAA0Cb,EAAiBpB,GACzD,OAAOmB,EAAsBD,EAA+BE,EAAiBpB,EAC/E,C,+BClTQ,MAAiBvrC,EAAQ,IAAS,aAElC,EAAiDA,EAAQ,GAAS,6CAE1EmN,EAAOxe,QAAUia,EAA6CsI,EAAc,CAAC,U,+BCN9D,SAASu8B,EAAkBh8B,EAAKsR,IAClC,MAAPA,GAAeA,EAAMtR,EAAI1c,UAAQguB,EAAMtR,EAAI1c,QAC/C,IAAK,IAAIC,EAAI,EAAG04C,EAAO,IAAItuC,MAAM2jB,GAAM/tB,EAAI+tB,EAAK/tB,IAC9C04C,EAAK14C,GAAKyc,EAAIzc,GAEhB,OAAO04C,CACT,CANA,iC,yTCOA,aACA,SAGMC,EAAY,CAChBC,QAAS5tC,EAAQ,KACjB6tC,sBAAuB7tC,EAAQ,KAAsBsG,MACrDwnC,sBAAuB9tC,EAAQ,KAAsBiF,MACrD8oC,YAAa/tC,EAAQ,IAARA,GACb5C,QAAS4C,EAAQ,KAAmB5C,QACpC4wC,OAAQhuC,EAAQ,KAChB6F,gBAAiB7F,EAAQ,IAAqB6F,gBAC9CE,eAAgB/F,EAAQ,IAAqB+F,eAC7CD,gBAAiB9F,EAAQ,IAAqB8F,iBA2ChD,IAAMioC,EAAuBJ,EAAUI,YACjC3wC,EAAmBuwC,EAAUvwC,QAC7B4wC,EAAyBL,EAAUK,OACnCnoC,EAAkB8nC,EAAU9nC,gBAC5BC,EAAkB6nC,EAAU7nC,gBAC5BC,EAAiB4nC,EAAU5nC,eAEjCoH,EAAOxe,QAAU,CACfi/C,QAhDF,SAAiBrzC,EAAeF,GAC9B,IAAM4zC,EAAe,GACnBC,kBAAiB,qBACd7zC,GAEL,OAAOszC,EAAUC,QAAQrzC,EAAO0zC,EAClC,EA2CEJ,sBAzCF,SAA+BxzC,GAC7B,IAAM4zC,EAAe,GACnBC,kBAAiB,qBACd7zC,GAEL,OAAOszC,EAAUE,sBAAsBI,EACzC,EAoCEH,sBAlCF,SAA+BzzC,GAC7B,IAAM4zC,EAAe,GACnBC,kBAAiB,qBACd7zC,GAEL,OAAOszC,EAAUG,sBAAsBG,EACzC,EA6BEC,kBAAiB,oBACjBC,aAAY,eACZJ,YAAW,EACX3wC,QAAO,EACP4wC,OAAM,EACNnoC,gBAAe,EACfC,gBAAe,EACfC,eAAc,E,+BC7ChBoH,EAAOxe,QAjBP,WACE,GAAsB,qBAAXgK,OAAwB,CACjC,GAAIA,OAAOy1C,iBACT,OAAOz1C,OAAOy1C,iBAGd,IAAItJ,EAASnsC,OAAOmsC,OACpB,GAAIA,GAAUA,EAAOuJ,YAAcvJ,EAAOwJ,YACxC,OAAOxJ,EAAOuJ,WAAavJ,EAAOwJ,YAC7B,GAAIxJ,GAAUA,EAAOyJ,YAAczJ,EAAOwJ,YAC/C,OAAOxJ,EAAOyJ,WAAazJ,EAAOwJ,WAGxC,CACA,OAhBsB,CAiBxB,C,+BCEAnhC,EAAOxe,QAdP,WAEE,IADA,IAAI0jB,EAAI,EACCrd,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CACzC,IAAI26B,EAAIr3B,UAAUtD,GAClBqd,GAAKsd,EACLtd,GAAKsd,GAAK,GACVtd,GAAKsd,GAAK,CACZ,CAIA,OAHAtd,GAAKA,GAAK,EACVA,GAAKA,GAAK,IACVA,GAAKA,GAAK,KACE,EAAIA,GAAKA,CACvB,C,+BCjBA,IAAIm8B,EAASxuC,EAAQ,KAEjByuC,EAAS,EACTC,EAAa,2BACjB,SAASC,EAAwBpX,EAASrmC,GAIxC,OAHKqmC,EAAQmX,KACXnX,EAAQmX,GAAcD,KAEjBv9C,EAAOqmC,EAAQmX,EACxB,CAUA,SAASE,IACPp9C,KAAKq9C,UAAY,CAAC,EAClBr9C,KAAKs9C,UAAY,CAAC,CACpB,CA8CA,SAASC,EAAqBC,EAAgBC,EAAS1X,EAASrmC,GAC9DM,KAAK09C,SAAWD,EAChBz9C,KAAK29C,SAAW5X,EAChB/lC,KAAK49C,MAAQl+C,EACbM,KAAK69C,gBAAkBL,EACvBx9C,KAAK89C,eAAiB,EACxB,CAjDAV,EAAe9/C,UAAUwY,IAAM,SAASiwB,EAASrmC,GAC/C,IAAI/B,EAAMw/C,EAAwBpX,EAASrmC,GAM3C,OALKM,KAAKq9C,UAAU1/C,KAClBqC,KAAKq9C,UAAU1/C,GAAOqC,KAAK+9C,eAAehY,EAASrmC,GACnDM,KAAKs9C,UAAU3/C,GAAO,GAExBqC,KAAKs9C,UAAU3/C,KACR,IAAI4/C,EAAqBv9C,KAAMA,KAAKq9C,UAAU1/C,GAAMooC,EAASrmC,EACtE,EAGA09C,EAAe9/C,UAAUygD,eAAiB,SAAShY,EAASrmC,GAC1D,IAAI+9C,EAAU,IAAIT,EAAOgB,QAAQjY,GAcjC,MAVa,UAATrmC,EACF+9C,EAAQ1nC,IAAI,IAAIinC,EAAOiB,IAAI,CAAE5D,UAAW2C,EAAOkB,cAAeC,UAAW,KAEzD,UAATz+C,GAA6B,QAATA,GAA2B,WAATA,IAG7C+9C,EAAQ1nC,IAAI,IAAIinC,EAAOiB,IAAI,CAAE5D,UAAW2C,EAAOkB,cAAeC,UAAW,GAAIC,SAAU,KACvFX,EAAQ1nC,IAAI,IAAIinC,EAAOqB,QAGlBZ,CACT,EAGAL,EAAe9/C,UAAUghD,eAAiB,SAASvY,EAASrmC,GAC1D,IAAI/B,EAAMw/C,EAAwBpX,EAASrmC,GACvCM,KAAKs9C,UAAU3/C,KACjBqC,KAAKs9C,UAAU3/C,KACVqC,KAAKs9C,UAAU3/C,KAClBqC,KAAKq9C,UAAU1/C,GAAK4gD,iBACbv+C,KAAKq9C,UAAU1/C,UACfqC,KAAKs9C,UAAU3/C,IAG5B,EAYA4/C,EAAqBjgD,UAAUmY,GAAK,SAASF,EAAQktB,GACnD,IAAI/iC,EAAOM,KAAK49C,MACZY,EAAwB,SAAShyC,GAC/B9M,IAAS8M,EAAEiyC,aACbhc,EAAQj2B,EAEZ,EAEAxM,KAAK89C,eAAe96C,KAAK,CAAEuS,OAAQA,EAAQktB,QAAS+b,IACpDx+C,KAAK09C,SAASjoC,GAAGF,EAAQipC,EAC3B,EAGAjB,EAAqBjgD,UAAUohD,QAAU,WACvC,IAAK,IAAIl7C,EAAI,EAAGA,EAAIxD,KAAK89C,eAAev6C,OAAQC,IAAK,CACnD,IAAIm7C,EAAe3+C,KAAK89C,eAAet6C,GACvCxD,KAAK09C,SAAStY,IAAIuZ,EAAappC,OAAQopC,EAAalc,QACtD,CAEAziC,KAAK69C,gBAAgBS,eAAet+C,KAAK29C,SAAU39C,KAAK49C,OACxD59C,KAAK09C,SAAW,KAChB19C,KAAK29C,SAAW,KAChB39C,KAAK49C,MAAQ,KACb59C,KAAK69C,gBAAkB,IACzB,EAGAN,EAAqBjgD,UAAUmgD,QAAU,WACvC,OAAOz9C,KAAK09C,QACd,EAGA/hC,EAAOxe,QAAU,IAAIigD,C,+BC3HrB,IAAMwB,EAA6C,qBAAjBC,aAC9BA,aAC8B,qBAAvBC,mBACLA,mBACA,KAaN,aAIE,WAAYj2C,GACVA,EAAUxL,OAAOgT,OAAO,CACtBwuC,aAAcD,GACb/1C,GACHxL,OAAOkQ,iBAAiB,KAAM,CAC5BwxC,cAAe,CACblhD,MAAOgL,EAAQg2C,cAEjBG,cAAe,CACbnhD,MAAO,KACPY,UAAU,GAEZwgD,SAAU,CACRphD,MAAO,IAAIgS,KAEbqvC,oBAAqB,CACnB3gD,YAAY,EACZV,MAAOqhD,IAGb,CAsCF,OA7BEA,wBAAA,SAAYC,GACV,IAAK,KAAKF,SAASrpC,IAAIupC,KACrB,KAAKF,SAASlpC,IAAIopC,GACd,KAAKJ,gBAAkB,KAAKC,eAC9B,IACE,KAAKA,cAAgB,IAAI,KAAKD,aAE9B,CADA,MAAO39C,GACP,CAIN,OAAO,KAAK49C,aACd,EAQAE,oBAAA,SAAQC,GACF,KAAKF,SAASrpC,IAAIupC,KACpB,KAAKF,SAASlJ,OAAOoJ,IAChB,KAAKF,SAASjpC,MAAQ,KAAKgpC,gBAC9B,KAAKA,cAAczF,QACnB,KAAKyF,cAAgB,MAG3B,EACF,EA9DA,GAgEArjC,EAAOxe,QAAU,IAAI+hD,C,+BCpFN,SAASE,IACtB,GAAuB,qBAAZ5/B,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAU4/B,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAC,QAAQjiD,UAAU2nB,QAAQtlB,KAAK6f,QAAQC,UAAU8/B,QAAS,IAAI,WAAa,MACpE,CAGT,CAFE,MAAO/yC,GACP,OAAO,CACT,CACF,CAVA,iC,+BCAe,SAASgzC,EAAgBv/B,GACtC,GAAIrS,MAAMC,QAAQoS,GAAM,OAAOA,CACjC,CAFA,iC,+BCAe,SAASw/B,IACtB,MAAM,IAAIt9C,UAAU,4IACtB,CAFA,iC,+BCAe,SAASu9C,EAAiBr7C,GACvC,GAAsB,qBAAXtG,QAAmD,MAAzBsG,EAAKtG,OAAOE,WAA2C,MAAtBoG,EAAK,cAAuB,OAAOuJ,MAAMiJ,KAAKxS,EACtH,CAFA,iC,+BCIA,IAAI2lC,EAAO,WAAiB,EAExB2V,EAAU,CAAC,EACXC,EAAY,CAAC,EACbC,EAAuB,KACvBC,EAAe,CAAE/7C,KAAMimC,EAAM+V,QAAS/V,GAE1C,IACwB,qBAAX7iC,SAAwBw4C,EAAUx4C,QACrB,qBAAbC,WAA0Bw4C,EAAYx4C,UACjB,qBAArB44C,mBAAkCH,EAAuBG,kBACzC,qBAAhBnN,cAA6BiN,EAAejN,YAC5C,CAAX,MAAOrmC,IAAI,CAEb,IACIyzC,GADON,EAAQ7wC,WAAa,CAAC,GACP9C,UACtBA,OAA+B9J,IAAnB+9C,EAA+B,GAAKA,EAEhDC,EAASP,EACTQ,EAAWP,EACXQ,EAAoBP,EACpBQ,EAAcP,EACdQ,IAAeJ,EAAO94C,SACtBm5C,IAAWJ,EAASxa,mBAAqBwa,EAASK,MAA6C,oBAA9BL,EAAStmC,kBAAqE,oBAA3BsmC,EAASM,cAC7HC,GAAS10C,EAAU3B,QAAQ,UAAY2B,EAAU3B,QAAQ,YAKzDs2C,EAA4B,iBAC5BC,EAAgB,gBAChBC,EAAyB,yBAGzBC,EAAa,WACf,IACE,OAAO30C,CAGT,CAFE,MAAOK,IACP,OAAO,CACT,CACF,CANiB,GAQbu0C,EAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACvCC,EAAcD,EAAS/pC,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAEnEiqC,EAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,gBAE7FC,EAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,YAAa,aAAc,OAAQ,QAAS,YAAa,aAAc,aAAc,kBAAmB,gBAAiB,QAAS,WAAY,WAAY,UAAW,SAAU,cAAe,kBAAkBlqC,OAAO+pC,EAASpxC,KAAI,SAAU3B,GAClT,OAAOA,EAAI,GACb,KAAIgJ,OAAOgqC,EAAYrxC,KAAI,SAAU3B,GACnC,MAAO,KAAOA,CAChB,KAQImzC,EAAc,WAChB,SAAS5zC,EAAiBrH,EAAQC,GAChC,IAAK,IAAI3C,EAAI,EAAGA,EAAI2C,EAAM5C,OAAQC,IAAK,CACrC,IAAI4C,EAAaD,EAAM3C,GACvB4C,EAAW7H,WAAa6H,EAAW7H,aAAc,EACjD6H,EAAW5H,cAAe,EACtB,UAAW4H,IAAYA,EAAW3H,UAAW,GACjDpB,OAAOI,eAAeyI,EAAQE,EAAWzI,IAAKyI,EAChD,CACF,CAEA,OAAO,SAAUJ,EAAaM,EAAYC,GAGxC,OAFID,GAAYiH,EAAiBvH,EAAY1I,UAAWgJ,GACpDC,GAAagH,EAAiBvH,EAAaO,GACxCP,CACT,CACF,CAhBkB,GAoBdo7C,EAAW/jD,OAAOgT,QAAU,SAAUnK,GACxC,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CACzC,IAAI6J,EAASvG,UAAUtD,GAEvB,IAAK,IAAI7F,KAAO0P,EACVhQ,OAAOC,UAAUE,eAAemC,KAAK0N,EAAQ1P,KAC/CuI,EAAOvI,GAAO0P,EAAO1P,GAG3B,CAEA,OAAOuI,CACT,EAIIm7C,EAAoB,SAAUphC,GAChC,GAAIrS,MAAMC,QAAQoS,GAAM,CACtB,IAAK,IAAIzc,EAAI,EAAG04C,EAAOtuC,MAAMqS,EAAI1c,QAASC,EAAIyc,EAAI1c,OAAQC,IAAK04C,EAAK14C,GAAKyc,EAAIzc,GAE7E,OAAO04C,CACT,CACE,OAAOtuC,MAAMiJ,KAAKoJ,EAEtB,EAEIqhC,EAAUpB,EAAOqB,mBAAqB,CAAC,EACvCC,EAAcnkD,OAAOiH,KAAKg9C,GAE1BG,EAAWL,EAAS,CACtBM,aAjF0B,KAkF1BC,iBAAkBhB,EAClBiB,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GACjBb,GAEEG,EAASG,iBAAgBH,EAASO,kBAAmB,GAE1D,IAAII,EAAWhB,EAAS,CAAC,EAAGK,GAI5B,SAAS5T,EAAOwU,GACd,IAAIC,EAASx7C,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ey7C,EAAuBD,EAAOE,aAC9BA,OAAwCtgD,IAAzBqgD,GAA6CA,EAE5DE,EAAYplD,OAAOiH,KAAK89C,GACxBM,EAAKF,EAAe,SAAUrkB,GAChC,OAAQskB,EAAUp4C,QAAQ8zB,MAAQqjB,EAAYn3C,QAAQ8zB,EACxD,EAAI,SAAUA,GACZ,OAAQskB,EAAUp4C,QAAQ8zB,EAC5B,EAEA9gC,OAAOiH,KAAK+9C,GAAW9hD,SAAQ,SAAUoiD,GACnCD,EAAGC,KAAYP,EAASO,GAAaN,EAAUM,GACrD,GACF,CAjBAzC,EAAOqB,kBAAoBa,EA0B3B,IAAIlgC,EAAIg+B,GAAU,CAAC,EAEdh+B,EAAsB,qBAAGA,EAAsB,mBAAI,CAAC,GACpDA,EAAsB,mBAAE0gC,SAAQ1gC,EAAsB,mBAAE0gC,OAAS,CAAC,GAClE1gC,EAAsB,mBAAE2gC,QAAO3gC,EAAsB,mBAAE2gC,MAAQ,CAAC,GAChE3gC,EAAsB,mBAAE4gC,QAAO5gC,EAAsB,mBAAE4gC,MAAQ,IAEpE,IAAIC,EAAY7gC,EAAsB,mBAElC8gC,EAAY,GASZC,GAAS,EAET1C,KACF0C,GAAU9C,EAASxa,gBAAgBud,SAAW,aAAe,iBAAiB//B,KAAKg9B,EAASgD,cAE/EhD,EAAStmC,iBAAiB,oBAb1B,SAASopB,IACtBkd,EAAS7kC,oBAAoB,mBAAoB2nB,GACjDggB,EAAS,EACTD,EAAUrzC,KAAI,SAAUnQ,GACtB,OAAOA,GACT,GACF,KAUA,IAKIshB,EA3JgB,GA6JhBsiC,EAAuB,CACzBptC,KAAM,GACN6M,EAAG,EACH5B,EAAG,EACH6J,OAAQ,EACRu4B,OAAO,EACPC,OAAO,GAiBT,SAASC,EAAUC,GACjB,GAAKA,GAAQjD,EAAb,CAIA,IAAI7a,EAAQya,EAASM,cAAc,SACnC/a,EAAM+d,aAAa,OAAQ,YAC3B/d,EAAMge,UAAYF,EAKlB,IAHA,IAAIG,EAAexD,EAASK,KAAKoD,WAC7BC,EAAc,KAETrgD,EAAImgD,EAAapgD,OAAS,EAAGC,GAAK,EAAGA,IAAK,CACjD,IAAIsgD,EAAQH,EAAangD,GACrBugD,GAAWD,EAAMC,SAAW,IAAI3uC,cAChC,CAAC,QAAS,QAAQ/K,QAAQ05C,IAAY,IACxCF,EAAcC,EAElB,CAIA,OAFA3D,EAASK,KAAKwD,aAAate,EAAOme,GAE3BL,CAnBP,CAoBF,CAEA,IAAIS,EAAY,EAEhB,SAASC,IAGP,QAFAD,CAGF,CAEA,SAASE,EAAQzmD,GAGf,IAFA,IAAIgS,EAAQ,GAEHlM,GAAK9F,GAAO,IAAI6F,SAAW,EAAGC,KACrCkM,EAAMlM,GAAK9F,EAAI8F,GAGjB,OAAOkM,CACT,CAEA,SAAS00C,EAAW93C,GAClB,OAAIA,EAAK+3C,UACAF,EAAQ73C,EAAK+3C,YAEZ/3C,EAAKg4C,aAAa,UAAY,IAAIp4C,MAAM,KAAKe,QAAO,SAAUzJ,GACpE,OAAOA,CACT,GAEJ,CAEA,SAAS+gD,EAAY7C,EAAc8C,GACjC,IApEkB1gD,EAoEd2gD,EAAQD,EAAIt4C,MAAM,KAClB4b,EAAS28B,EAAM,GACfC,EAAWD,EAAM3/C,MAAM,GAAGwY,KAAK,KAEnC,OAAIwK,IAAW45B,GAA6B,KAAbgD,IAxEb5gD,EAwE4C4gD,GAvEtDxD,EAAiB72C,QAAQvG,IA0ExB,KAFA4gD,CAIX,CAEA,SAASC,EAAW38C,GAClB,OAAQ,GAAKA,GAAKmQ,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAC9H,CAQA,SAASysC,EAAWhC,GAClB,OAAOvlD,OAAOiH,KAAKs+C,GAAU,CAAC,GAAG3yC,QAAO,SAAU40C,EAAKC,GACrD,OAAOD,GAAOC,EAAY,MAAOlC,EAAOkC,GAAa,GACvD,GAAG,GACL,CAEA,SAASC,EAAsBp0C,GAC7B,OAAOA,EAAUqF,OAASotC,EAAqBptC,MAAQrF,EAAUkS,IAAMugC,EAAqBvgC,GAAKlS,EAAUsQ,IAAMmiC,EAAqBniC,GAAKtQ,EAAUma,SAAWs4B,EAAqBt4B,QAAUna,EAAU0yC,OAAS1yC,EAAU2yC,KAC9N,CAEA,SAAS0B,EAAgBC,GACvB,IAAIt0C,EAAYs0C,EAAKt0C,UACjBu0C,EAAiBD,EAAKC,eACtBC,EAAYF,EAAKE,UAcrB,MAAO,CACL3lB,MAbU,CACV7uB,UAAW,aAAeu0C,EAAiB,EAAI,SAa/CE,MARU,CACVz0C,UAJmB,aAA6B,GAAdA,EAAUkS,EAAS,KAAqB,GAAdlS,EAAUsQ,EAAS,KAInD,KAHb,SAAWtQ,EAAUqF,KAAO,IAAMrF,EAAU0yC,OAAS,EAAI,GAAK,KAAO1yC,EAAUqF,KAAO,IAAMrF,EAAU2yC,OAAS,EAAI,GAAK,MAGxF,KAF/B,UAAY3yC,EAAUma,OAAS,UAU/CzR,KANS,CACT1I,UAAW,aAAew0C,EAAY,GAAK,EAAI,UAOnD,CA2BA,IAAIE,EAAY,CACdxiC,EAAG,EACH5B,EAAG,EACHsP,MAAO,OACPC,OAAQ,QAiJV,SAAS80B,EAAsBhD,GAC7B,IAAIiD,EAAgBjD,EAAOkD,MACvBC,EAAOF,EAAcE,KACrBC,EAAOH,EAAcG,KACrB59B,EAASw6B,EAAOx6B,OAChB48B,EAAWpC,EAAOoC,SAClB/zC,EAAY2xC,EAAO3xC,UACnBg1C,EAASrD,EAAOqD,OAChBC,EAAQtD,EAAOsD,MACfC,EAAQvD,EAAOuD,MACfC,EAAoBxD,EAAOyD,UAC3BA,OAAkC7jD,IAAtB4jD,GAA0CA,EAEtDb,EAAOS,EAAKM,MAAQN,EAAOD,EAC3Bl1B,EAAQ00B,EAAK10B,MACbC,EAASy0B,EAAKz0B,OAEdy1B,EAAa,QAAU5tC,KAAK2J,KAAKuO,EAAQC,EAAS,IAClD01B,EAAY,CAAC9D,EAAST,iBAAkB+C,EAAWtC,EAASV,aAAe,IAAMgD,EAAW,GAAIuB,GAAYjvC,OAAO6uC,EAAMM,SAAS7oC,KAAK,KAEvI1U,EAAU,CACZw9C,SAAU,GACVC,WAAYjF,EAAS,CAAC,EAAGyE,EAAMQ,WAAY,CACzC,cAAev+B,EACf,YAAa48B,EACb,MAASwB,EACT,KAAQ,MACR,MAAS,6BACT,QAAW,OAAS31B,EAAQ,IAAMC,KAIlCu1B,IACFn9C,EAAQy9C,WAAWzF,GAAiB,IAGlCgF,GAAOh9C,EAAQw9C,SAASpjD,KAAK,CAAEsjD,IAAK,QAASD,WAAY,CAAEtO,GAAInvC,EAAQy9C,WAAW,oBAAsB,SAAWnC,KAAkBkC,SAAU,CAACR,KAEpJ,IAAI/+C,EAAOu6C,EAAS,CAAC,EAAGx4C,EAAS,CAC/Bkf,OAAQA,EACR48B,SAAUA,EACVe,KAAMA,EACNC,KAAMA,EACN/0C,UAAWA,EACXg1C,OAAQA,EACR/C,OAAQiD,EAAMjD,SAGZ2D,EAAQb,EAAKM,OAASP,EAAKO,MA9LX,SAAUf,GAC9B,IAAImB,EAAWnB,EAAKmB,SAChBC,EAAapB,EAAKoB,WAClBZ,EAAOR,EAAKQ,KACZC,EAAOT,EAAKS,KACZ/0C,EAAYs0C,EAAKt0C,UACjB61C,EAAYf,EAAKl1B,MACjBk2B,EAAWhB,EAAKiB,KAChBC,EAAYjB,EAAKn1B,MACjBq2B,EAAWlB,EAAKgB,KAGhBG,EAAQ7B,EAAgB,CAAEr0C,UAAWA,EAAWu0C,eAAgByB,EAAWxB,UAAWqB,IAEtFM,EAAW,CACbR,IAAK,OACLD,WAAYjF,EAAS,CAAC,EAAGiE,EAAW,CAClC0B,KAAM,WAGNC,EAAiB,CACnBV,IAAK,IACLD,WAAYjF,EAAS,CAAC,EAAGyF,EAAMzB,OAC/BgB,SAAU,CAAC,CAAEE,IAAK,OAAQD,WAAYjF,EAAS,CAAC,EAAGqF,EAASJ,WAAYQ,EAAMxtC,KAAM,CAAE0tC,KAAM,aAE1FE,EAAiB,CACnBX,IAAK,IACLD,WAAYjF,EAAS,CAAC,EAAGyF,EAAMrnB,OAC/B4mB,SAAU,CAACY,IAETE,EAAS,QAAUhD,IACnBiD,EAAS,QAAUjD,IAUnBkD,EAAO,CACTd,IAAK,OACLF,SAAU,CAAC,CAAEE,IAAK,WAAYD,WAAY,CAAEtO,GAAIoP,GAAUf,SAAU,CAACQ,IAXzD,CACZN,IAAK,OACLD,WAAYjF,EAAS,CAAC,EAAGiE,EAAW,CAClCtN,GAAImP,EACJG,UAAW,iBACXC,iBAAkB,mBAEpBlB,SAAU,CAACU,EAAUG,MASvB,OAFAb,EAASpjD,KAAKokD,EAAM,CAAEd,IAAK,OAAQD,WAAYjF,EAAS,CAAE2F,KAAM,eAAgB,YAAa,QAAUI,EAAS,IAAKzB,KAAM,QAAUwB,EAAS,KAAO7B,KAE9I,CACLe,SAAUA,EACVC,WAAYA,EAEhB,CA0IyCkB,CAAgB1gD,GAxIlC,SAAUo+C,GAC/B,IAAImB,EAAWnB,EAAKmB,SAChBC,EAAapB,EAAKoB,WAClBZ,EAAOR,EAAKQ,KACZ90C,EAAYs0C,EAAKt0C,UAGjB62C,EAAc5C,EAFLK,EAAKrC,QAQlB,GAJI4E,EAAYjkD,OAAS,IACvB8iD,EAAkB,MAAImB,GAGpBzC,EAAsBp0C,GAAY,CACpC,IAAIk2C,EAAQ7B,EAAgB,CAAEr0C,UAAWA,EAAWu0C,eAAgBO,EAAKl1B,MAAO40B,UAAWM,EAAKl1B,QAChG61B,EAASpjD,KAAK,CACZsjD,IAAK,IACLD,WAAYjF,EAAS,CAAC,EAAGyF,EAAMrnB,OAC/B4mB,SAAU,CAAC,CACTE,IAAK,IACLD,WAAYjF,EAAS,CAAC,EAAGyF,EAAMzB,OAC/BgB,SAAU,CAAC,CACTE,IAAKb,EAAKiB,KAAKJ,IACfF,SAAUX,EAAKiB,KAAKN,SACpBC,WAAYjF,EAAS,CAAC,EAAGqE,EAAKiB,KAAKL,WAAYQ,EAAMxtC,WAI7D,MACE+sC,EAASpjD,KAAKyiD,EAAKiB,MAGrB,MAAO,CACLN,SAAUA,EACVC,WAAYA,EAEhB,CAoGiEoB,CAAiB5gD,GAC5Eu/C,EAAWG,EAAMH,SACjBC,EAAaE,EAAMF,WAKvB,OAHAx/C,EAAKu/C,SAAWA,EAChBv/C,EAAKw/C,WAAaA,EAEdV,EA7ES,SAAUV,GACvB,IAAIn9B,EAASm9B,EAAKn9B,OACd48B,EAAWO,EAAKP,SAChB0B,EAAWnB,EAAKmB,SAChBC,EAAapB,EAAKoB,WAClBV,EAASV,EAAKU,OAEd5N,GAAgB,IAAX4N,EAAkB79B,EAAS,IAAMs6B,EAASV,aAAe,IAAMgD,EAAWiB,EAEnF,MAAO,CAAC,CACNW,IAAK,MACLD,WAAY,CACV3gB,MAAO,kBAET0gB,SAAU,CAAC,CACTE,IAAK,SACLD,WAAYjF,EAAS,CAAC,EAAGiF,EAAY,CAAEtO,GAAIA,IAC3CqO,SAAUA,KAGhB,CA0DWsB,CAAS7gD,GA1GP,SAAUo+C,GACrB,IAAImB,EAAWnB,EAAKmB,SAChBX,EAAOR,EAAKQ,KACZC,EAAOT,EAAKS,KACZW,EAAapB,EAAKoB,WAClBzD,EAASqC,EAAKrC,OACdjyC,EAAYs0C,EAAKt0C,UAErB,GAAIo0C,EAAsBp0C,IAAc80C,EAAKO,QAAUN,EAAKM,MAAO,CACjE,IAGIzqB,EAAS,CACX1Y,EAJU4iC,EAAKl1B,MACJk1B,EAAKj1B,OAGI,EACpBvP,EAAG,IAELolC,EAAkB,MAAIzB,EAAWxD,EAAS,CAAC,EAAGwB,EAAQ,CACpD,mBAAoBrnB,EAAO1Y,EAAIlS,EAAUkS,EAAI,GAAK,OAAS0Y,EAAOta,EAAItQ,EAAUsQ,EAAI,IAAM,OAE9F,CAEA,MAAO,CAAC,CACNqlC,IAAK,MACLD,WAAYA,EACZD,SAAUA,GAEd,CAkFWuB,CAAO9gD,EAElB,CAEA,SAAS+gD,EAAuBtF,GAC9B,IAAI15C,EAAU05C,EAAO15C,QACjB2nB,EAAQ+xB,EAAO/xB,MACfC,EAAS8xB,EAAO9xB,OAChB7f,EAAY2xC,EAAO3xC,UACnBi1C,EAAQtD,EAAOsD,MACfC,EAAQvD,EAAOuD,MACfgC,EAAqBvF,EAAOyD,UAC5BA,OAAmC7jD,IAAvB2lD,GAA2CA,EAGvDxB,EAAajF,EAAS,CAAC,EAAGyE,EAAMQ,WAAYT,EAAQ,CAAE,MAASA,GAAU,CAAC,EAAG,CAC/E,MAASC,EAAMM,QAAQ7oC,KAAK,OAG1ByoC,IACFM,EAAWzF,GAAiB,IAG9B,IAAIgC,EAASxB,EAAS,CAAC,EAAGyE,EAAMjD,QAE5BmC,EAAsBp0C,KACxBiyC,EAAkB,UAlQtB,SAAyB2D,GACvB,IAAI51C,EAAY41C,EAAM51C,UAClBm3C,EAAcvB,EAAMh2B,MACpBA,OAAwBruB,IAAhB4lD,EApSM,GAoSsCA,EACpDC,EAAexB,EAAM/1B,OACrBA,OAA0BtuB,IAAjB6lD,EAtSK,GAsSwCA,EACtDC,EAAsBzB,EAAM0B,cAC5BA,OAAwC/lD,IAAxB8lD,GAA4CA,EAE5DzjD,EAAM,GAaV,OAVEA,GADE0jD,GAAiBvH,EACZ,cAAgB/vC,EAAUkS,EAAI/B,EAAIyP,EAAQ,GAAK,QAAU5f,EAAUsQ,EAAIH,EAAI0P,EAAS,GAAK,OACvFy3B,EACF,yBAA2Bt3C,EAAUkS,EAAI/B,EAAI,oBAAsBnQ,EAAUsQ,EAAIH,EAAI,QAErF,aAAenQ,EAAUkS,EAAI/B,EAAI,OAASnQ,EAAUsQ,EAAIH,EAAI,OAGrEvc,GAAO,SAAWoM,EAAUqF,KAAO8K,GAAKnQ,EAAU0yC,OAAS,EAAI,GAAK,KAAO1yC,EAAUqF,KAAO8K,GAAKnQ,EAAU2yC,OAAS,EAAI,GAAK,KAC7H/+C,EAAO,UAAYoM,EAAUma,OAAS,OAGxC,CA2O0Bo9B,CAAgB,CAAEv3C,UAAWA,EAAWs3C,eAAe,EAAM13B,MAAOA,EAAOC,OAAQA,IACzGoyB,EAAO,qBAAuBA,EAAkB,WAGlD,IAAI4E,EAAc5C,EAAWhC,GAEzB4E,EAAYjkD,OAAS,IACvB8iD,EAAkB,MAAImB,GAGxB,IAAIjjD,EAAM,GAYV,OAVAA,EAAIvB,KAAK,CACPsjD,IAAK,OACLD,WAAYA,EACZD,SAAU,CAACx9C,KAGTg9C,GACFrhD,EAAIvB,KAAK,CAAEsjD,IAAK,OAAQD,WAAY,CAAE8B,MAAO,WAAa/B,SAAU,CAACR,KAGhErhD,CACT,CAEA,IAAI6jD,EAAS,WAAiB,EAC1BnmC,EAAImgC,EAASF,oBAAsB7B,GAAeA,EAAYt8C,MAAQs8C,EAAYN,QAAUM,EAAc,CAAEt8C,KAAMqkD,EAAQrI,QAASqI,GACnIC,GAAW,cASXC,GAAM,SAAaxkD,GACrBme,EAAEle,KAAKskD,GAAW,IAAMvkD,EAAO,SAC/Bme,EAAE89B,QAAQsI,GAAW,IAAMvkD,EAAMukD,GAAW,IAAMvkD,EAAO,UAAWukD,GAAW,IAAMvkD,EAAO,QAC9F,EAEIykD,GAZQ,SAAezkD,GAEzB,OADAme,EAAEle,KAAKskD,GAAW,IAAMvkD,EAAO,WACxB,WACL,OAAOwkD,GAAIxkD,EACb,CACF,EAoCImM,GAAS,SAA2BlG,EAASvK,EAAIgpD,EAAcC,GACjE,IAGIjlD,EAAG7F,EAAKqD,EAHRsD,EAAOjH,OAAOiH,KAAKyF,GACnBxG,EAASe,EAAKf,OACdtF,OAA2BiE,IAAhBumD,EAxBG,SAAwBC,EAAMD,GAChD,OAAO,SAAU7nC,EAAG2I,EAAGhR,EAAGuI,GACxB,OAAO4nC,EAAK/oD,KAAK8oD,EAAa7nC,EAAG2I,EAAGhR,EAAGuI,EACzC,CACF,CAoB6C6nC,CAAcnpD,EAAIipD,GAAejpD,EAY5E,SATqB0C,IAAjBsmD,GACFhlD,EAAI,EACJxC,EAAS+I,EAAQzF,EAAK,MAGtBd,EAAI,EACJxC,EAASwnD,GAGJhlD,EAAID,EAAQC,IAEjBxC,EAAS/C,EAAS+C,EAAQ+I,EAD1BpM,EAAM2G,EAAKd,IAC6B7F,EAAKoM,GAG/C,OAAO/I,CACT,EAEI4nD,GAAW7F,EAAUH,OACrBE,GAAQC,EAAUD,MAGlB+F,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EAEdC,GAAQ,WACV,IAAIC,EAAS,SAAgBC,GAC3B,OAAOj5C,GAAO24C,IAAU,SAAUn7C,EAAGi4B,EAAO5d,GAE1C,OADAra,EAAEqa,GAAU7X,GAAOy1B,EAAOwjB,EAAS,CAAC,GAC7Bz7C,CACT,GAAG,CAAC,EACN,EAEAo7C,GAAaI,GAAO,SAAUpE,EAAK6B,EAAMhC,GAGvC,OAFAG,EAAI6B,EAAK,IAAMhC,EAERG,CACT,IAEAiE,GAAcG,GAAO,SAAUpE,EAAK6B,EAAMhC,GACxC,IAAIyE,EAAYzC,EAAK,GAQrB,OANA7B,EAAIH,GAAYA,EAEhByE,EAAU5oD,SAAQ,SAAU6oD,GAC1BvE,EAAIuE,GAAY1E,CAClB,IAEOG,CACT,IAEA,IAAIwE,EAAa,QAAST,GAE1BG,GAAa94C,GAAO6yC,IAAO,SAAU+B,EAAKyE,GACxC,IAAIC,EAAUD,EAAK,GACfxhC,EAASwhC,EAAK,GACd5E,EAAW4E,EAAK,GAQpB,MANe,QAAXxhC,GAAqBuhC,IACvBvhC,EAAS,OAGX+8B,EAAI0E,GAAW,CAAEzhC,OAAQA,EAAQ48B,SAAUA,GAEpCG,CACT,GAAG,CAAC,EACN,EAEAmE,KAcA,IAAIQ,GAAWzG,EAAUH,OAOzB,SAAS6G,GAAiBrpD,GACxB,OAAOA,EAAO6P,QAAO,SAAU40C,EAAKL,GAClC,IAAIE,EAAWH,EAAYnC,EAASV,aAAc8C,GAElD,GAAIgF,GAAShF,GACXK,EAAI/8B,OAAS08B,OACR,GAAIE,EAAU,CACnB,IAAI4E,EAAsB,OAAfzE,EAAI/8B,OAjBZihC,GAiBwCrE,IAjBpB,CAAE58B,OAAQ,KAAM48B,SAAU,MAiBM,CAAC,EAExDG,EAAIH,SAAW4E,EAAK5E,UAAYA,EAChCG,EAAI/8B,OAASwhC,EAAKxhC,QAAU+8B,EAAI/8B,MAClC,MAAW08B,IAAQpC,EAAST,kBAA6C,IAAzB6C,EAAIn6C,QAAQ,UAC1Dw6C,EAAI6E,KAAK1mD,KAAKwhD,GAGhB,OAAOK,CACT,GAnBO,CAAE/8B,OAAQ,KAAM48B,SAAU,KAAMgF,KAAM,IAoB/C,CAEA,SAASC,GAAgBC,EAAS9hC,EAAQ48B,GACxC,GAAIkF,GAAWA,EAAQ9hC,IAAW8hC,EAAQ9hC,GAAQ48B,GAChD,MAAO,CACL58B,OAAQA,EACR48B,SAAUA,EACVgC,KAAMkD,EAAQ9hC,GAAQ48B,GAG5B,CAEA,SAASmF,GAAOC,GACd,IAAIxD,EAAMwD,EAAcxD,IACpByD,EAAwBD,EAAczD,WACtCA,OAAuCnkD,IAA1B6nD,EAAsC,CAAC,EAAIA,EACxDC,EAAwBF,EAAc1D,SACtCA,OAAqClkD,IAA1B8nD,EAAsC,GAAKA,EAG1D,MAA6B,kBAAlBF,EACFnF,EAAWmF,GAEX,IAAMxD,EAAM,IAvfvB,SAAwBD,GACtB,OAAOhpD,OAAOiH,KAAK+hD,GAAc,CAAC,GAAGp2C,QAAO,SAAU40C,EAAKoF,GACzD,OAAOpF,GAAOoF,EAAgB,MAAOtF,EAAW0B,EAAW4D,IAAkB,IAC/E,GAAG,IAAI/yC,MACT,CAmf6BgzC,CAAe7D,GAAc,IAAMD,EAASz2C,IAAIk6C,IAAQvsC,KAAK,IAAM,KAAOgpC,EAAM,GAE7G,CAEA,IAAI6D,GAAS,WAAiB,EAE9B,SAASC,GAAU99C,GAGjB,MAAwB,kBAFZA,EAAKg4C,aAAeh4C,EAAKg4C,aAAa1D,GAAiB,KAGrE,CAYA,IAAIyJ,GAAW,CACblyC,QAAS,SAAiBmyC,GACxB,IAAIh+C,EAAOg+C,EAAS,GAEhBC,EADWD,EAAS,GACI36C,KAAI,SAAUiR,GACxC,OAAOipC,GAAOjpC,EAChB,IAAGtD,KAAK,MAER,GAAIhR,EAAKk+C,YAAcl+C,EAAKm+C,UAC1Bn+C,EAAKm+C,UAAYF,GAAgBnI,EAASH,oBAAqD,QAA/B31C,EAAKy3C,QAAQ5sC,cAA0B,WAAU7K,EAAKm+C,UAAY,UAAS,SACtI,GAAIn+C,EAAKk+C,WAAY,CAC1B,IAAIE,EAAUtjD,SAASq5C,cAAc,QACrCn0C,EAAKk+C,WAAWG,aAAaD,EAASp+C,GACtCo+C,EAAQD,UAAYF,CACtB,CACF,EACAK,KAAM,SAAcN,GAClB,IAAIh+C,EAAOg+C,EAAS,GAChBO,EAAWP,EAAS,GAIxB,IAAKlG,EAAW93C,GAAMjC,QAAQ+3C,EAAST,kBACrC,OAAO0I,GAASlyC,QAAQmyC,GAG1B,IAAIQ,EAAS,IAAI3iC,OAAOi6B,EAASV,aAAe,cAEzCmJ,EAAS,GAAGxE,WAAW3gB,MAE9B,IAAIqlB,EAAeF,EAAS,GAAGxE,WAAW8B,MAAMj8C,MAAM,KAAK+D,QAAO,SAAU40C,EAAKL,GAO/E,OANIA,IAAQpC,EAAST,kBAAoB6C,EAAIv9C,MAAM6jD,GACjDjG,EAAImG,MAAMhoD,KAAKwhD,GAEfK,EAAIoG,OAAOjoD,KAAKwhD,GAGXK,CACT,GAAG,CAAEoG,OAAQ,GAAID,MAAO,KAExBH,EAAS,GAAGxE,WAAW8B,MAAQ4C,EAAaC,MAAM1tC,KAAK,KAEvD,IAAI4tC,EAAeL,EAASl7C,KAAI,SAAUiR,GACxC,OAAOipC,GAAOjpC,EAChB,IAAGtD,KAAK,MACRhR,EAAKm3C,aAAa,QAASsH,EAAaE,OAAO3tC,KAAK,MACpDhR,EAAKm3C,aAAa7C,EAAe,IACjCt0C,EAAKo3C,UAAYwH,CACnB,GAGF,SAASC,GAAQC,EAAWC,GAC1B,IAAIC,EAAuC,oBAAbD,EAA0BA,EAAWlB,GAE1C,IAArBiB,EAAU7nD,OACZ+nD,KAEYpL,EAAOqL,uBAAyB,SAAUC,GACpD,OAAOA,GACT,IAEM,WACJ,IAAIC,GAvEwB,IAA5BrJ,EAASR,eACJyI,GAASlyC,QAGJkyC,GAASjI,EAASR,iBAEdyI,GAASlyC,QAkEnBpU,EAAOwkD,GAAW,UAEtB6C,EAAUz7C,IAAI87C,GAEd1nD,IAEAunD,GACF,GAEJ,CAEA,IAAII,IAAW,EAQf,IAAIC,GAAK,KAuFT,IAAIC,GAAc,SAAUt/C,GAC1B,IAvPkBwb,EAAQshC,EAuPtByC,EAAiBv/C,EAAKg4C,aAAa,eACnCwH,EAAmBx/C,EAAKg4C,aAAa,aACrCyH,OAA+B7pD,IAAnBoK,EAAKy/C,UAA0Bz/C,EAAKy/C,UAAU70C,OAAS,GAEnE3S,EAAMklD,GAAiBrF,EAAW93C,IAatC,OAXIu/C,GAAkBC,IACpBvnD,EAAIujB,OAAS+jC,EACbtnD,EAAImgD,SAAWoH,GAGbvnD,EAAIujB,QAAUikC,EAAUxoD,OAAS,EACnCgB,EAAImgD,UAnQY58B,EAmQUvjB,EAAIujB,OAnQNshC,EAmQc98C,EAAKy/C,UAlQtCjD,GAAYhhC,GAAQshC,IAmQhB7kD,EAAIujB,QAA+B,IAArBikC,EAAUxoD,SACjCgB,EAAImgD,SAzQR,SAAmB58B,EAAQkkC,GACzB,OAAOnD,GAAW/gC,GAAQkkC,EAC5B,CAuQmBC,CAAU1nD,EAAIujB,OA1BjC,SAAekkC,GAGb,IAFA,IAAIhrD,EAAS,GAEJwC,EAAI,EAAGA,EAAIwoD,EAAQzoD,OAAQC,IAElCxC,IAAW,MADDgrD,EAAQE,WAAW1oD,GAAG0E,SAAS,KACjBpD,OAAO,GAGjC,OAAO9D,CACT,CAiByCmrD,CAAM7/C,EAAKy/C,aAG3CxnD,CACT,EAEI6nD,GAAuB,SAA8BC,GACvD,IAAI17C,EAAY,CACdqF,KAAM,GACN6M,EAAG,EACH5B,EAAG,EACHoiC,OAAO,EACPC,OAAO,EACPx4B,OAAQ,GAGV,OAAKuhC,EAGIA,EAAgBl1C,cAAcjL,MAAM,KAAK+D,QAAO,SAAU40C,EAAK72C,GACpE,IAAIy2C,EAAQz2C,EAAEmJ,cAAcjL,MAAM,KAC9BogD,EAAQ7H,EAAM,GACdiF,EAAOjF,EAAM3/C,MAAM,GAAGwY,KAAK,KAE/B,GAAIgvC,GAAkB,MAAT5C,EAEX,OADA7E,EAAIxB,OAAQ,EACLwB,EAGT,GAAIyH,GAAkB,MAAT5C,EAEX,OADA7E,EAAIvB,OAAQ,EACLuB,EAKT,GAFA6E,EAAO6C,WAAW7C,GAEdpmD,MAAMomD,GACR,OAAO7E,EAGT,OAAQyH,GACN,IAAK,OACHzH,EAAI7uC,KAAO6uC,EAAI7uC,KAAO0zC,EACtB,MACF,IAAK,SACH7E,EAAI7uC,KAAO6uC,EAAI7uC,KAAO0zC,EACtB,MACF,IAAK,OACH7E,EAAIhiC,EAAIgiC,EAAIhiC,EAAI6mC,EAChB,MACF,IAAK,QACH7E,EAAIhiC,EAAIgiC,EAAIhiC,EAAI6mC,EAChB,MACF,IAAK,KACH7E,EAAI5jC,EAAI4jC,EAAI5jC,EAAIyoC,EAChB,MACF,IAAK,OACH7E,EAAI5jC,EAAI4jC,EAAI5jC,EAAIyoC,EAChB,MACF,IAAK,SACH7E,EAAI/5B,OAAS+5B,EAAI/5B,OAAS4+B,EAI9B,OAAO7E,CACT,GAAGl0C,GAhDIA,CAkDX,EA6CA,SAAS67C,GAAUlgD,GACjB,IAAImgD,EAAeb,GAAYt/C,GAC3Bo4C,EAAW+H,EAAa/H,SACxB58B,EAAS2kC,EAAa3kC,OACtB4kC,EAAeD,EAAa/C,KAE5BiD,EAtKY,SAAUrgD,GAC1B,IAAIo5B,EAAQp5B,EAAKg4C,aAAa,SAE1B//C,EAAM,GAgBV,OAdImhC,IACFnhC,EAAMmhC,EAAMx5B,MAAM,KAAK+D,QAAO,SAAU40C,EAAKnf,GAC3C,IAAIkd,EAASld,EAAMx5B,MAAM,KACrBuE,EAAOmyC,EAAO,GACd/kD,EAAQ+kD,EAAO99C,MAAM,GAMzB,OAJI2L,GAAQ5S,EAAM0F,OAAS,IACzBshD,EAAIp0C,GAAQ5S,EAAMyf,KAAK,KAAKpG,QAGvB2tC,CACT,GAAG,CAAC,IAGCtgD,CACT,CAkJoBqoD,CAAYtgD,GAC1BqE,EAlDgB,SAAUrE,GAC9B,OAAO8/C,GAAqB9/C,EAAKg4C,aAAa,qBAChD,CAgDkBuI,CAAgBvgD,GAC5Bq5C,EA/Ca,SAAUr5C,GAC3B,IAAIq5C,EAASr5C,EAAKg4C,aAAa,kBAE/B,OAAkB,OAAXqB,IAAqC,KAAXA,GAAuBA,EAC1D,CA2CemH,CAAaxgD,GACtBygD,EA1CiB,SAAUzgD,GAC/B,IAAIygD,EAAkB5I,EAAQ73C,EAAK+5C,YAAYp2C,QAAO,SAAU40C,EAAKmI,GAInE,MAHiB,UAAbnI,EAAI/gD,MAAiC,UAAb+gD,EAAI/gD,OAC9B+gD,EAAImI,EAAKlpD,MAAQkpD,EAAKnvD,OAEjBgnD,CACT,GAAG,CAAC,GAEAe,EAAQt5C,EAAKg4C,aAAa,SAU9B,OARIlC,EAASN,WACP8D,EACFmH,EAAgB,mBAAqB3K,EAAST,iBAAmB,UAAYuC,IAE7E6I,EAAgB,eAAiB,QAI9BA,CACT,CAuBwBE,CAAiB3gD,GACnCo5C,EAtBW,SAAUp5C,GACzB,IAAIo5C,EAAOp5C,EAAKg4C,aAAa,gBAE7B,OAAKoB,EAGI+D,GAAiB/D,EAAKx5C,MAAM,KAAKyD,KAAI,SAAUnM,GACpD,OAAOA,EAAE0T,MACX,KArWK,CAAE4Q,OAAQ,KAAM48B,SAAU,KAAMgF,KAAM,GAuW/C,CAYawD,CAAW5gD,GAEtB,MAAO,CACLo4C,SAAUA,EACVkB,MAAOt5C,EAAKg4C,aAAa,SACzBx8B,OAAQA,EACRnX,UAAWA,EACXg1C,OAAQA,EACRD,KAAMA,EACNG,MAAO,CACLM,QAASuG,EACT9J,OAAQ+J,EACRtG,WAAY0G,GAGlB,CAEA,SAASI,GAAY/rD,GACnBpB,KAAK8D,KAAO,cACZ9D,KAAK+K,QAAU3J,GAAS,mBACxBpB,KAAKyM,OAAQ,IAAIjL,OAAQiL,KAC3B,CAEA0gD,GAAY7vD,UAAYD,OAAO8B,OAAOqC,MAAMlE,WAC5C6vD,GAAY7vD,UAAUuG,YAAcspD,GAEpC,IAAIC,GAAO,CAAErG,KAAM,gBACfsG,GAAiB,CACnBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAEHC,GAAO,CACTnH,IAAK,OACLD,WAAYjF,EAAS,CAAC,EAAGgM,GAAM,CAC7BtsC,EAAG,s4CAGH4sC,GAAkBtM,EAAS,CAAC,EAAGiM,GAAgB,CACjDpD,cAAe,YA4Bb0D,GAAU,CAAErH,IAAK,IAAKF,SAAU,CAACqH,GA1B3B,CACRnH,IAAK,SACLD,WAAYjF,EAAS,CAAC,EAAGgM,GAAM,CAC7B9uB,GAAI,MACJC,GAAI,MACJnmB,EAAG,OAELguC,SAAU,CAAC,CAAEE,IAAK,UAAWD,WAAYjF,EAAS,CAAC,EAAGiM,GAAgB,CAAEpD,cAAe,IAAK7pD,OAAQ,wBAA2B,CAAEkmD,IAAK,UAAWD,WAAYjF,EAAS,CAAC,EAAGsM,GAAiB,CAAEttD,OAAQ,oBAExL,CACbkmD,IAAK,OACLD,WAAYjF,EAAS,CAAC,EAAGgM,GAAM,CAC7BQ,QAAS,IACT9sC,EAAG,ySAELslC,SAAU,CAAC,CAAEE,IAAK,UAAWD,WAAYjF,EAAS,CAAC,EAAGsM,GAAiB,CAAEttD,OAAQ,oBAEjE,CAChBkmD,IAAK,OACLD,WAAYjF,EAAS,CAAC,EAAGgM,GAAM,CAC7BQ,QAAS,IACT9sC,EAAG,gJAELslC,SAAU,CAAC,CAAEE,IAAK,UAAWD,WAAYjF,EAAS,CAAC,EAAGsM,GAAiB,CAAEttD,OAAQ,sBAK/EwiD,GAASG,EAAUH,OAEnBiL,GAAwB,iBACxBC,GAAsB,8CACtBC,GAAkB,CACpB,MAAS,MACT,QAAW,MACX,MAAS,MACT,OAAU,OAGZ,SAASC,GAAStJ,EAAU58B,GAC1B,IAAIvjB,EAAM,CACRyhD,OAAO,EACPz1B,MAAO,IACPC,OAAQ,IACRk2B,KAAMiH,IAGR,GAAIjJ,GAAY58B,GAAU86B,GAAO96B,IAAW86B,GAAO96B,GAAQ48B,GAAW,CACpE,IAAIgC,EAAO9D,GAAO96B,GAAQ48B,GAK1BngD,EAAM,CACJyhD,OAAO,EACPz1B,MANUm2B,EAAK,GAOfl2B,OANWk2B,EAAK,GAOhBA,KAAM,CAAEJ,IAAK,OAAQD,WAAY,CAAEU,KAAM,eAAgBjmC,EAN1C4lC,EAAK5hD,MAAM,GAM6C,KAE3E,MAAO,GAAI4/C,GAAY58B,IAAWs6B,EAASD,iBACzC,MAAM,IAAIgL,GAAY,8BAAgCrlC,EAAS,mBAAqB48B,GAGtF,OAAOngD,CACT,CA2DA,SAAS0pD,GAAiB3hD,GACxB,IAAI4hD,EAAW1B,GAAUlgD,GAEzB,OAAK4hD,EAASrI,MAAMM,QAAQ97C,QAAQwjD,IAlCtC,SAA4BvhD,EAAM4hD,GAChC,IAAItI,EAAQsI,EAAStI,MACjBj1C,EAAYu9C,EAASv9C,UACrBk1C,EAAQqI,EAASrI,MAGjBt1B,EAAQ,KACRC,EAAS,KAEb,GAAIkwB,EAAO,CACT,IAAIyN,EAAmBviB,SAASwiB,iBAAiB9hD,GAAM+hD,SAAU,IAC7DC,EAAqBhiD,EAAKiiD,wBAC9Bh+B,EAAQ+9B,EAAmB/9B,MAAQ49B,EACnC39B,EAAS89B,EAAmB99B,OAAS29B,CACvC,CAMA,OAJI/L,EAASN,WAAa8D,IACxBC,EAAMQ,WAAW,eAAiB,QAG7B,CAAC/5C,EAAMs7C,EAAuB,CACnCh/C,QAAS0D,EAAKo3C,UACdnzB,MAAOA,EACPC,OAAQA,EACR7f,UAAWA,EACXi1C,MAAOA,EACPC,MAAOA,EACPE,WAAW,IAEf,CAMWyI,CAAmBliD,EAAM4hD,GA7DpC,SAAwC5hD,EAAM4hD,GAC5C,IAAIxJ,EAAWwJ,EAASxJ,SACpBkB,EAAQsI,EAAStI,MACjB99B,EAASomC,EAASpmC,OAClBnX,EAAYu9C,EAASv9C,UACrBg1C,EAASuI,EAASvI,OAClBD,EAAOwI,EAASxI,KAChBG,EAAQqI,EAASrI,MAGrB,MAAO,CAACv5C,EAAMg5C,EAAsB,CAClCE,MAAO,CACLC,KAAMuI,GAAStJ,EAAU58B,GACzB49B,KAAMsI,GAAStI,EAAKhB,SAAUgB,EAAK59B,SAErCA,OAAQA,EACR48B,SAAUA,EACV/zC,UAAWA,EACXg1C,OAAQA,EACRD,KAAMA,EACNE,MAAOA,EACPC,MAAOA,EACPE,WAAW,IAEf,CAuCW0I,CAA+BniD,EAAM4hD,EAEhD,CAEA,SAASQ,GAAOpiD,GACa,oBAAhBA,EAAKoiD,OACdpiD,EAAKoiD,SACIpiD,GAAQA,EAAKk+C,YACtBl+C,EAAKk+C,WAAWmE,YAAYriD,EAEhC,CAEA,SAASy1C,GAAqB6M,GAC5B,GAAKrO,EAAL,CAEA,IA/Z0B1nC,EA+ZtByvC,EAAMC,GAAW,wBA/ZK1vC,EAiaP,WACjBsrC,EAAQyK,EAAKC,iBAAiB,MAAMtuD,SAAQ,SAAU+L,GACpD,CAAC,UAAW,UAAU/L,SAAQ,SAAUuuD,GACtC,IAAIlM,EAAS1C,EAAOkO,iBAAiB9hD,EAAMwiD,GACvCC,EAAanM,EAAOoM,iBAAiB,eAAe/nD,MAAM6mD,IAE1DmB,EADW9K,EAAQ73C,EAAK85C,UACCn5C,QAAO,SAAUsL,GAC5C,OAAOA,EAAE+rC,aAAazD,KAA4BiO,CACpD,IAAG,GAUH,GARIG,IACEA,EAAcC,aAAeD,EAAcC,YAAYC,YAAY9kD,QAAQw2C,IAA2B,GACxG6N,GAAOO,EAAcC,aAEvBR,GAAOO,GACPA,EAAgB,MAGdF,IAAeE,EAAe,CAChC,IAAIrmD,EAAUg6C,EAAOoM,iBAAiB,WAClCxrD,EAAI28C,EAASM,cAAc,KAC/Bj9C,EAAEigD,aAAa,QAAS,GAAKsK,GAAgBgB,EAAW,KACxDvrD,EAAEigD,aAAa5C,EAAwBiO,GACvCtrD,EAAEuoD,UAA+B,IAAnBnjD,EAAQrF,OAAeqF,EAAQT,OAAO,EAAG,GAAKS,EAChD,YAARkmD,EACFxiD,EAAK03C,aAAaxgD,EAAG8I,EAAK8iD,YAE1B9iD,EAAK+iD,YAAY7rD,EAErB,CACF,GACF,GACF,EAhcAkoD,IAAW,EACX7yC,IACA6yC,IAAW,EAgcXpD,GAtCmB,CAuCrB,CAEA,SAASgH,GAAOV,GACd,IAAIvD,EAAWvkD,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,KAEnF,GAAKy5C,EAAL,CAEA,IAAIgP,EAAgBpP,EAASxa,gBAAgB0e,UACzCmL,EAAS,SAAgBC,GAC3B,OAAOF,EAAcx5C,IAAI25C,qBAAoCD,EAC/D,EACIE,EAAY,SAAmBF,GACjC,OAAOF,EAAcb,OAAOgB,qBAAoCD,EAClE,EACIG,EAAWvyD,OAAOiH,KAAKs+C,IACvBiN,EAAmB,CAAC,wCAA+D74C,OAAO44C,EAASjgD,KAAI,SAAUsS,GACnH,MAAO,IAAMA,EAAI,SAAV,iBACT,KAAI3E,KAAK,MAET,GAAgC,IAA5BuyC,EAAiBtsD,OAArB,CAIA,IAAIusD,EAAa3L,EAAQyK,EAAKC,iBAAiBgB,IAE/C,GAAIC,EAAWvsD,OAAS,EAAxB,CACEisD,EAAO,WACPG,EAAU,YAKZ,IAAI5rD,EAAOwkD,GAAW,UAElB6C,EAAY0E,EAAW7/C,QAAO,SAAU40C,EAAKv4C,GAC/C,IACE,IAAIg+C,EAAW2D,GAAiB3hD,GAE5Bg+C,GACFzF,EAAI7hD,KAAKsnD,EAQb,CANE,MAAO99C,IACFs0C,GACCt0C,cAAa2gD,IACftiD,QAAQzJ,MAAMoL,GAGpB,CAEA,OAAOq4C,CACT,GAAG,IAEH9gD,IAEAonD,GAAQC,GAAW,WACjBoE,EAAO,UACPA,EAAO,YACPG,EAAU,WAEc,oBAAbtE,GAAyBA,GACtC,GA9BA,CATA,CAhBmB,CAwDrB,CAEA,SAAS0E,GAAOzjD,GACd,IAAI++C,EAAWvkD,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,KAE/EwjD,EAAW2D,GAAiB3hD,GAE5Bg+C,GACFa,GAAQ,CAACb,GAAWe,EAExB,CAEA,IAEI7H,GAAM,WACR,IACIwM,EAAMrP,EACNsP,EAAK7N,EAASV,aACdwO,EAAK9N,EAAST,iBACd5zC,EAPW,m5OASf,GAv2C0B,OAu2CtBkiD,GAAcC,IAAOF,EAAK,CAC5B,IAAIG,EAAQ,IAAIhoC,OAAO,WAAqB,KACxCioC,EAAQ,IAAIjoC,OAAO,MAAQ6nC,EAAK,KAEpCjiD,EAAIA,EAAEoK,QAAQg4C,EAAO,IAAMF,EAAK,KAAK93C,QAAQi4C,EAAO,IAAMF,EAC5D,CAEA,OAAOniD,CACT,EAEA,SAASzP,GAAOwpB,EAAQ09B,GACtB,IAAI6K,EAAahzD,OAAOiH,KAAKkhD,GAAOv1C,QAAO,SAAU40C,EAAKH,GACxD,IAAIgC,EAAOlB,EAAMd,GAQjB,QAPiBgC,EAAKA,KAGpB7B,EAAI6B,EAAKhC,UAAYgC,EAAKA,KAE1B7B,EAAIH,GAAYgC,EAEX7B,CACT,GAAG,CAAC,GAEmC,oBAA5B9B,EAAUF,MAAMyN,QACzBvN,EAAUF,MAAMyN,QAAQxoC,EAAQuoC,GAEhCtN,EAAUH,OAAO96B,GAAUs5B,EAAS,CAAC,EAAG2B,EAAUH,OAAO96B,IAAW,CAAC,EAAGuoC,GAS3D,QAAXvoC,GACFxpB,GAAO,KAAMknD,EAEjB,CAEA,IAAI+K,GAAU,WACZ,SAASA,KAv3CU,SAAUxqD,EAAUC,GACvC,KAAMD,aAAoBC,GACxB,MAAM,IAAI7D,UAAU,oCAExB,CAo3CIquD,CAAexwD,KAAMuwD,GAErBvwD,KAAKywD,YAAc,CAAC,CACtB,CA2CA,OAzCAtP,EAAYoP,EAAS,CAAC,CACpB5yD,IAAK,MACLE,MAAO,WAGL,IAFA,IAAIyZ,EAAQtX,KAEH0wD,EAAO5pD,UAAUvD,OAAQktD,EAAc7iD,MAAM8iD,GAAOra,EAAO,EAAGA,EAAOqa,EAAMra,IAClFoa,EAAYpa,GAAQvvC,UAAUuvC,GAGhC,IAAIsa,EAAYF,EAAYxgD,OAAOjQ,KAAK4wD,iBAAkB,CAAC,GAE3DvzD,OAAOiH,KAAKqsD,GAAWpwD,SAAQ,SAAU5C,GACvC2Z,EAAMm5C,YAAY9yD,GAAOyjD,EAAS,CAAC,EAAG9pC,EAAMm5C,YAAY9yD,IAAQ,CAAC,EAAGgzD,EAAUhzD,IAC9EW,GAAOX,EAAKgzD,EAAUhzD,GACxB,GACF,GACC,CACDA,IAAK,QACLE,MAAO,WACLmC,KAAKywD,YAAc,CAAC,CACtB,GACC,CACD9yD,IAAK,mBACLE,MAAO,SAA0B8yD,EAAWE,GAC1C,IAAIR,EAAaQ,EAAW/oC,QAAU+oC,EAAWnM,UAAYmM,EAAWnK,KAAO,CAAE,EAAGmK,GAAeA,EAcnG,OAZAxzD,OAAOiH,KAAK+rD,GAAY1gD,KAAI,SAAUhS,GACpC,IAAImzD,EAAkBT,EAAW1yD,GAC7BmqB,EAASgpC,EAAgBhpC,OACzB48B,EAAWoM,EAAgBpM,SAC3BgC,EAAOoK,EAAgBpK,KAGtBiK,EAAU7oC,KAAS6oC,EAAU7oC,GAAU,CAAC,GAE7C6oC,EAAU7oC,GAAQ48B,GAAYgC,CAChC,IAEOiK,CACT,KAEKJ,CACT,CAjDc,GAmDd,SAASQ,GAASrK,GAKhB,MAAO,CACLV,OAAO,EACPz1B,MANUm2B,EAAK,GAOfl2B,OANWk2B,EAAK,GAOhBA,KAAM,CAAEJ,IAAK,OAAQD,WAAY,CAAEU,KAAM,eAAgBjmC,EAN1C4lC,EAAK5hD,MAAM,GAM6C,KAE3E,CAEA,IAAIksD,IAAe,EAEnB,SAASC,KACF7O,EAASP,aAITmP,IACHzN,EAAUC,MAGZwN,IAAe,EACjB,CAEA,SAASE,GAAU3sD,EAAK4sD,GAuBtB,OAtBA9zD,OAAOI,eAAe8G,EAAK,WAAY,CACrCuR,IAAKq7C,IAGP9zD,OAAOI,eAAe8G,EAAK,OAAQ,CACjCuR,IAAK,WACH,OAAOvR,EAAIsmD,SAASl7C,KAAI,SAAUiR,GAChC,OAAOipC,GAAOjpC,EAChB,GACF,IAGFvjB,OAAOI,eAAe8G,EAAK,OAAQ,CACjCuR,IAAK,WACH,GAAKyqC,EAAL,CAEA,IAAI6Q,EAAYjR,EAASM,cAAc,OAEvC,OADA2Q,EAAU1N,UAAYn/C,EAAI8sD,KACnBD,EAAUhL,QAJE,CAKrB,IAGK7hD,CACT,CAEA,SAAS+sD,GAAmBhP,GAC1B,IAAIiP,EAAiBjP,EAAOx6B,OACxBA,OAA4B5lB,IAAnBqvD,EAA+B,KAAOA,EAC/C7M,EAAWpC,EAAOoC,SAGtB,GAAKA,EAEL,OAAOiF,GAAgB6H,GAAQf,YAAa3oC,EAAQ48B,IAAaiF,GAAgB5G,EAAUH,OAAQ96B,EAAQ48B,EAC7G,CAmBA,IAjBsBpiD,GAiBlBkvD,GAAU,IAAIjB,GAOd3mB,GAAM,CACR6nB,MAAO,WACL,IAAInP,EAASx7C,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,GAAIy5C,EAAQ,CACV0Q,KAEA,IAAIS,EAAepP,EAAOh2C,KACtBA,OAAwBpK,IAAjBwvD,EAA6BvR,EAAWuR,EAC/CC,EAAmBrP,EAAO+I,SAC1BA,OAAgCnpD,IAArByvD,EAAiC,WAAa,EAAIA,EAG7DvP,EAASL,sBACXA,GAAqBz1C,GAGvBgjD,GAAOhjD,EAAM++C,EACf,CACF,EAEA7H,IAAKA,GAELD,UAAW,WACTA,EAAUC,KACZ,GASEkD,IA1DkBpkD,GA0DE,SAAUsvD,GAChC,IAAItP,EAASx7C,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E+qD,EAAoBvP,EAAO3xC,UAC3BA,OAAkCzO,IAAtB2vD,EAAkCzO,EAAuByO,EACrEC,EAAiBxP,EAAOqD,OACxBA,OAA4BzjD,IAAnB4vD,GAAuCA,EAChDC,EAAezP,EAAOoD,KACtBA,OAAwBxjD,IAAjB6vD,EAA6B,KAAOA,EAC3CC,EAAgB1P,EAAOsD,MACvBA,OAA0B1jD,IAAlB8vD,EAA8B,KAAOA,EAC7CC,EAAkB3P,EAAO6D,QACzBA,OAA8BjkD,IAApB+vD,EAAgC,GAAKA,EAC/CC,EAAqB5P,EAAO+D,WAC5BA,OAAoCnkD,IAAvBgwD,EAAmC,CAAC,EAAIA,EACrDC,EAAiB7P,EAAOM,OACxBA,OAA4B1gD,IAAnBiwD,EAA+B,CAAC,EAAIA,EAGjD,GAAKP,EAAL,CAEA,IAAI9pC,EAAS8pC,EAAe9pC,OACxB48B,EAAWkN,EAAelN,SAC1BgC,EAAOkL,EAAelL,KAG1B,OAAOwK,GAAU9P,EAAS,CAAE1hD,KAAM,QAAUkyD,IAAiB,WAW3D,OAVAX,KAEI7O,EAASN,WACP8D,EACFS,EAAW,mBAAqBjE,EAAST,iBAAmB,UAAYuC,IAExEmC,EAAW,eAAiB,QAIzBf,EAAsB,CAC3BE,MAAO,CACLC,KAAMsL,GAASrK,GACfhB,KAAMA,EAAOqL,GAASrL,EAAKgB,MAAQ,CAAEV,OAAO,EAAOz1B,MAAO,KAAMC,OAAQ,KAAMk2B,KAAM,CAAC,IAEvF5+B,OAAQA,EACR48B,SAAUA,EACV/zC,UAAWywC,EAAS,CAAC,EAAGgC,EAAsBzyC,GAC9Cg1C,OAAQA,EACRC,MAAOA,EACPC,MAAO,CACLQ,WAAYA,EACZzD,OAAQA,EACRuD,QAASA,IAGf,GAlC2B,CAmC7B,EA9GS,SAAUiM,GACf,IAAI9P,EAASx7C,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9E8qD,GAAkBQ,GAAuB,CAAC,GAAG1L,KAAO0L,EAAsBd,GAAmBc,GAAuB,CAAC,GAErH1M,EAAOpD,EAAOoD,KAOlB,OAJIA,IACFA,GAAQA,GAAQ,CAAC,GAAGgB,KAAOhB,EAAO4L,GAAmB5L,GAAQ,CAAC,IAGzDpjD,GAAKsvD,EAAgBxQ,EAAS,CAAC,EAAGkB,EAAQ,CAAEoD,KAAMA,IAC3D,GAqJE2M,GAAQ,CACVC,OAjJW,WAj6Cb,IAAcz0D,EACZgwC,EAAO,CACL+T,eAFU/jD,GAk6CP,EA/5CHmkD,iBAAkBnkD,IAixBf8tD,IAELA,GAAG4G,YA8oBL,EA+IE3oB,IAAKA,GACL4nB,QAASA,GACTxuC,MAnHU,CACVrS,UAAW,SAAmB07C,GAC5B,OAAOD,GAAqBC,EAC9B,GAiHAiF,mBAAoBA,GACpB5K,KAAMA,GACN8L,KAzDS,SAAc5pD,GACvB,IAAI05C,EAASx7C,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E2rD,EAAqBnQ,EAAO3xC,UAC5BA,OAAmCzO,IAAvBuwD,EAAmCrP,EAAuBqP,EACtEC,EAAiBpQ,EAAOsD,MACxBA,OAA2B1jD,IAAnBwwD,EAA+B,KAAOA,EAC9CC,EAAmBrQ,EAAO6D,QAC1BA,OAA+BjkD,IAArBywD,EAAiC,GAAKA,EAChDC,EAAsBtQ,EAAO+D,WAC7BA,OAAqCnkD,IAAxB0wD,EAAoC,CAAC,EAAIA,EACtDC,EAAkBvQ,EAAOM,OACzBA,OAA6B1gD,IAApB2wD,EAAgC,CAAC,EAAIA,EAGlD,OAAO3B,GAAU,CAAExxD,KAAM,OAAQkJ,QAASA,IAAW,WAGnD,OAFAqoD,KAEOrJ,EAAuB,CAC5Bh/C,QAASA,EACT+H,UAAWywC,EAAS,CAAC,EAAGgC,EAAsBzyC,GAC9Ci1C,MAAOA,EACPC,MAAO,CACLQ,WAAYA,EACZzD,OAAQA,EACRuD,QAAS,CAAC/D,EAASV,aAAe,gBAAgB1qC,OAAOqqC,EAAkB8E,MAGjF,GACF,EA8BE2M,MA5BU,SAAeC,GACzB,OAAO7B,GAAU,CAAExxD,KAAM,UAAW,WAClCuxD,KAEA,IAAI7K,EAAW,GAQf,OANA2M,GAAU,SAAUlsD,GAClB+G,MAAMC,QAAQhH,GAAQA,EAAK8I,KAAI,SAAUiR,GACvCwlC,EAAWA,EAASpvC,OAAO4J,EAAEiqC,SAC/B,IAAKzE,EAAWA,EAASpvC,OAAOnQ,EAAKgkD,SACvC,IAEO,CAAC,CACNvE,IAAK,OACLD,WAAY,CAAE8B,MAAO/F,EAASV,aAAe,WAC7C0E,SAAUA,GAEd,GACF,GAaI4M,GAAc,WACZzS,GAAU6B,EAASR,gBAAgByQ,GAAMzoB,IAAI6nB,MAAM,CAAEnlD,KAAM6zC,GACjE,EA2CA9iD,OAAOI,eAAe40D,GAAO,SAAU,CACrCv8C,IAAK,WACH,OAAOssC,CACT,EAEAr9B,IAAK,SAAas9B,GAChBxU,EAAOwU,EACT,IAGE9B,GA9jDJ,SAAgB/gD,GACd,IACEA,GAKF,CAJE,MAAOgN,IACP,IAAKs0C,EACH,MAAMt0C,EAEV,CACF,CAsjDYymD,EAnDZ,WA/hDe,IAAUzzD,EAgiDnB8gD,IACGJ,EAAOgT,cACVhT,EAAOgT,YAAcb,IAliDF7yD,EAqiDZ,WACHnC,OAAOiH,KAAKy+C,EAAUH,QAAQr/C,OAAS,GACzCyvD,KAGE5Q,EAASJ,kBAAgD,oBAArBhC,kBAt2B9C,SAAiBn3C,GACf,GAAKu3C,EAAL,CAEA,IAAI+S,EAAetqD,EAAQsqD,aACvBC,EAAevqD,EAAQuqD,aACvBC,EAAyBxqD,EAAQwqD,uBAGrC1H,GAAK,IAAIvL,GAAkB,SAAUkT,GAC/B5H,IAEJvH,EAAQmP,GAAS/yD,SAAQ,SAAUgzD,GAajC,GAZ4B,cAAxBA,EAAe7zD,MAAwB6zD,EAAeC,WAAWjwD,OAAS,IAAM6mD,GAAUmJ,EAAeC,WAAW,MAClHpR,EAASL,sBACXsR,EAAuBE,EAAertD,QAGxCitD,EAAaI,EAAertD,SAGF,eAAxBqtD,EAAe7zD,MAAyB6zD,EAAertD,OAAOskD,YAAcpI,EAASL,sBACvFsR,EAAuBE,EAAertD,OAAOskD,YAGnB,eAAxB+I,EAAe7zD,MAAyB0qD,GAAUmJ,EAAertD,UAAY+6C,EAAgC52C,QAAQkpD,EAAetJ,eACtI,GAAqC,UAAjCsJ,EAAetJ,cAA2B,CAC5C,IAAIwJ,EAAoBhK,GAAiBrF,EAAWmP,EAAertD,SAC/D4hB,EAAS2rC,EAAkB3rC,OAC3B48B,EAAW+O,EAAkB/O,SAE7B58B,GAAQyrC,EAAertD,OAAOu9C,aAAa,cAAe37B,GAC1D48B,GAAU6O,EAAertD,OAAOu9C,aAAa,YAAaiB,EAChE,MACE0O,EAAaG,EAAertD,OAGlC,GACF,IAEKq6C,GAELoL,GAAG+H,QAAQvT,EAASwT,qBAAqB,QAAQ,GAAI,CACnDC,WAAW,EAAMvN,YAAY,EAAMwN,eAAe,EAAMC,SAAS,GAzCrC,CA2ChC,CA2zBQJ,CAAQ,CACNP,aAAc7D,GACd8D,aAAcrD,GACdsD,uBAAwBtR,IAG9B,EAhjDGxB,IACL0C,EAAStqC,WAAWnZ,EAAI,GAAKwjD,EAAUhgD,KAAKxD,KAkjD5CujD,EAAUF,MAAQzB,EAAS,CAAC,EAAG2B,EAAUF,MAAO,CAE9CyN,QAAS,SAAiBxoC,EAAQ09B,GAChCzC,EAAUH,OAAO96B,GAAUs5B,EAAS,CAAC,EAAG2B,EAAUH,OAAO96B,IAAW,CAAC,EAAG09B,GAExEwD,KACAgK,IACF,EAEAe,SAAU,SAAkBjR,GAC1B,IAAIkR,GAEHA,EAAmBjR,EAAUD,OAAO9/C,KAAK+D,MAAMitD,EAAkB3S,EAAkByB,IAEpFkG,KACAgK,IACF,GAEJ,IAiBeX,M,+BC5wDf,OAAe,cAA0B,oC,gICUzC,SAASxlD,EAAQrI,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAExV,SAAS2vD,EAAc/tD,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAKqJ,EAAQxP,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBR,EAAQxP,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAErhB,IAAIguD,EAAgB,CAClBx0D,KAAM,SACNuJ,IAAK,SAAapC,GAChB7G,KAAKsZ,OAAO,MAAOzS,EACrB,EACAwE,KAAM,SAAcxE,GAClB7G,KAAKsZ,OAAO,OAAQzS,EACtB,EACAzF,MAAO,SAAeyF,GACpB7G,KAAKsZ,OAAO,QAASzS,EACvB,EACAyS,OAAQ,SAAgB5Z,EAAMmH,GACxBgE,SAAWA,QAAQnL,IAAOmL,QAAQnL,GAAMqH,MAAM8D,QAAShE,EAC7D,GAGE21C,EAAS,WACX,SAASA,EAAO2X,GACd,IAAItrD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnFhB,YAAgB9F,KAAMw8C,GAEtBx8C,KAAKsjB,KAAK6wC,EAAgBtrD,EAC5B,CA2EA,OAzEAxC,YAAam2C,EAAQ,CAAC,CACpB7+C,IAAK,OACLE,MAAO,SAAcs2D,GACnB,IAAItrD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF9G,KAAK8nB,OAASjf,EAAQif,QAAU,WAChC9nB,KAAKuI,OAAS4rD,GAAkBD,EAChCl0D,KAAK6I,QAAUA,EACf7I,KAAKo0D,MAAQvrD,EAAQurD,KACvB,GACC,CACDz2D,IAAK,WACLE,MAAO,SAAkBw2D,GACvBr0D,KAAKo0D,MAAQC,CACf,GACC,CACD12D,IAAK,MACLE,MAAO,WACL,IAAK,IAAI6yD,EAAO5pD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM8iD,GAAOra,EAAO,EAAGA,EAAOqa,EAAMra,IAC/ExvC,EAAKwvC,GAAQvvC,UAAUuvC,GAGzB,OAAOr2C,KAAKs0D,QAAQztD,EAAM,MAAO,IAAI,EACvC,GACC,CACDlJ,IAAK,OACLE,MAAO,WACL,IAAK,IAAI02D,EAAQztD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM2mD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF3tD,EAAK2tD,GAAS1tD,UAAU0tD,GAG1B,OAAOx0D,KAAKs0D,QAAQztD,EAAM,OAAQ,IAAI,EACxC,GACC,CACDlJ,IAAK,QACLE,MAAO,WACL,IAAK,IAAI42D,EAAQ3tD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM6mD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7tD,EAAK6tD,GAAS5tD,UAAU4tD,GAG1B,OAAO10D,KAAKs0D,QAAQztD,EAAM,QAAS,GACrC,GACC,CACDlJ,IAAK,YACLE,MAAO,WACL,IAAK,IAAI82D,EAAQ7tD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM+mD,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF/tD,EAAK+tD,GAAS9tD,UAAU8tD,GAG1B,OAAO50D,KAAKs0D,QAAQztD,EAAM,OAAQ,wBAAwB,EAC5D,GACC,CACDlJ,IAAK,UACLE,MAAO,SAAiBgJ,EAAMguD,EAAK/sC,EAAQgtC,GACzC,OAAIA,IAAc90D,KAAKo0D,MAAc,MACd,kBAAZvtD,EAAK,KAAiBA,EAAK,GAAK,GAAGmQ,OAAO8Q,GAAQ9Q,OAAOhX,KAAK8nB,OAAQ,KAAK9Q,OAAOnQ,EAAK,KAC3F7G,KAAKuI,OAAOssD,GAAKhuD,GAC1B,GACC,CACDlJ,IAAK,SACLE,MAAO,SAAgBgtC,GACrB,OAAO,IAAI2R,EAAOx8C,KAAKuI,OAAQ0rD,EAAcA,EAAc,CAAC,EAAG,CAC7DnsC,OAAQ,GAAG9Q,OAAOhX,KAAK8nB,OAAQ,KAAK9Q,OAAO6zB,EAAY,OACrD7qC,KAAK6I,SACX,GACC,CACDlL,IAAK,QACLE,MAAO,SAAegL,GAGpB,OAFAA,EAAUA,GAAW7I,KAAK6I,SAClBif,OAASjf,EAAQif,QAAU9nB,KAAK8nB,OACjC,IAAI00B,EAAOx8C,KAAKuI,OAAQM,EACjC,KAGK2zC,CACT,CAnFa,GAqFTuY,EAAa,IAAIvY,EAEjB98B,EAAe,WACjB,SAASA,IACP5Z,YAAgB9F,KAAM0f,GAEtB1f,KAAKoK,UAAY,CAAC,CACpB,CAoDA,OAlDA/D,YAAaqZ,EAAc,CAAC,CAC1B/hB,IAAK,KACLE,MAAO,SAAY0X,EAAQ0tB,GACzB,IAAI3rB,EAAQtX,KAOZ,OALAuV,EAAOrJ,MAAM,KAAK3L,SAAQ,SAAUoV,GAClC2B,EAAMlN,UAAUuL,GAAS2B,EAAMlN,UAAUuL,IAAU,GAEnD2B,EAAMlN,UAAUuL,GAAO3S,KAAKigC,EAC9B,IACOjjC,IACT,GACC,CACDrC,IAAK,MACLE,MAAO,SAAa8X,EAAOstB,GACpBjjC,KAAKoK,UAAUuL,KAEfstB,EAKLjjC,KAAKoK,UAAUuL,GAAS3V,KAAKoK,UAAUuL,GAAO1I,QAAO,SAAU8T,GAC7D,OAAOA,IAAMkiB,CACf,WANSjjC,KAAKoK,UAAUuL,GAO1B,GACC,CACDhY,IAAK,OACLE,MAAO,SAAc8X,GACnB,IAAK,IAAI+6C,EAAO5pD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM8iD,EAAO,EAAIA,EAAO,EAAI,GAAIra,EAAO,EAAGA,EAAOqa,EAAMra,IAClGxvC,EAAKwvC,EAAO,GAAKvvC,UAAUuvC,GAG7B,GAAIr2C,KAAKoK,UAAUuL,GAAQ,CACzB,IAAIq/C,EAAS,GAAGh+C,OAAOhX,KAAKoK,UAAUuL,IACtCq/C,EAAOz0D,SAAQ,SAAUyJ,GACvBA,EAASjD,WAAM,EAAQF,EACzB,GACF,CAEA,GAAI7G,KAAKoK,UAAU,KAAM,CACvB,IAAI6qD,EAAU,GAAGj+C,OAAOhX,KAAKoK,UAAU,MAEvC6qD,EAAQ10D,SAAQ,SAAUyJ,GACxBA,EAASjD,MAAMiD,EAAU,CAAC2L,GAAOqB,OAAOnQ,GAC1C,GACF,CACF,KAGK6Y,CACT,CA1DmB,GA4DnB,SAASnG,IACP,IAAI27C,EACAC,EACA17C,EAAU,IAAIrV,SAAQ,SAAUvD,EAASC,GAC3Co0D,EAAMr0D,EACNs0D,EAAMr0D,CACR,IAGA,OAFA2Y,EAAQ5Y,QAAUq0D,EAClBz7C,EAAQ3Y,OAASq0D,EACV17C,CACT,CACA,SAAS27C,EAAW5wD,GAClB,OAAc,MAAVA,EAAuB,GACpB,GAAKA,CACd,CACA,SAASilB,EAAK7I,EAAG7S,EAAG2S,GAClBE,EAAErgB,SAAQ,SAAU+gB,GACdvT,EAAEuT,KAAIZ,EAAEY,GAAKvT,EAAEuT,GACrB,GACF,CAEA,SAAS+zC,EAAc7wD,EAAQ6U,EAAMi8C,GACnC,SAASC,EAAS53D,GAChB,OAAOA,GAAOA,EAAI0M,QAAQ,QAAU,EAAI1M,EAAIwa,QAAQ,OAAQ,KAAOxa,CACrE,CAEA,SAAS63D,IACP,OAAQhxD,GAA4B,kBAAXA,CAC3B,CAIA,IAFA,IAAIiI,EAAwB,kBAAT4M,EAAoB,GAAGrC,OAAOqC,GAAQA,EAAKnN,MAAM,KAE7DO,EAAMlJ,OAAS,GAAG,CACvB,GAAIiyD,IAAwB,MAAO,CAAC,EACpC,IAAI73D,EAAM43D,EAAS9oD,EAAMy4B,UACpB1gC,EAAO7G,IAAQ23D,IAAO9wD,EAAO7G,GAAO,IAAI23D,GAG3C9wD,EADEnH,OAAOC,UAAUE,eAAemC,KAAK6E,EAAQ7G,GACtC6G,EAAO7G,GAEP,CAAC,CAEd,CAEA,OAAI63D,IAA+B,CAAC,EAC7B,CACL93D,IAAK8G,EACL25B,EAAGo3B,EAAS9oD,EAAMy4B,SAEtB,CAEA,SAASuwB,EAAQjxD,EAAQ6U,EAAMq8C,GAC7B,IAAIC,EAAiBN,EAAc7wD,EAAQ6U,EAAMhc,QACvCs4D,EAAej4D,IACjBi4D,EAAex3B,GAEdu3B,CACX,CAUA,SAASE,EAAQpxD,EAAQ6U,GACvB,IAAIw8C,EAAkBR,EAAc7wD,EAAQ6U,GACxC3b,EAAMm4D,EAAgBn4D,IACtBygC,EAAI03B,EAAgB13B,EAExB,GAAKzgC,EACL,OAAOA,EAAIygC,EACb,CACA,SAAS23B,EAAoBruD,EAAMsuD,EAAap4D,GAC9C,IAAIE,EAAQ+3D,EAAQnuD,EAAM9J,GAE1B,YAAcuE,IAAVrE,EACKA,EAGF+3D,EAAQG,EAAap4D,EAC9B,CACA,SAASq4D,EAAW9vD,EAAQmH,EAAQ4oD,GAClC,IAAK,IAAIxlD,KAAQpD,EACF,cAAToD,GAAiC,gBAATA,IACtBA,KAAQvK,EACkB,kBAAjBA,EAAOuK,IAAsBvK,EAAOuK,aAAiB8Q,QAAkC,kBAAjBlU,EAAOoD,IAAsBpD,EAAOoD,aAAiB8Q,OAChI00C,IAAW/vD,EAAOuK,GAAQpD,EAAOoD,IAErCulD,EAAW9vD,EAAOuK,GAAOpD,EAAOoD,GAAOwlD,GAGzC/vD,EAAOuK,GAAQpD,EAAOoD,IAK5B,OAAOvK,CACT,CACA,SAASgwD,EAAYluD,GACnB,OAAOA,EAAImQ,QAAQ,sCAAuC,OAC5D,CACA,IAAIg+C,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,SAASC,EAAO3uD,GACd,MAAoB,kBAATA,EACFA,EAAK0Q,QAAQ,cAAc,SAAUpK,GAC1C,OAAOooD,EAAWpoD,EACpB,IAGKtG,CACT,CACA,IAAI4uD,EAA2B,qBAAXlvD,QAA0BA,OAAO2H,WAAuD,qBAAnC3H,OAAO2H,UAAUwnD,eAAiCnvD,OAAO2H,UAAU9C,WAAa7E,OAAO2H,UAAU9C,UAAU3B,QAAQ,SAAW,EACnMksD,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAwBjC,SAASC,EAAUhyD,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAASmyD,EAAgBvwD,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAKgzD,EAAUn5D,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBmpD,EAAUn5D,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,SAASiZ,EAAaC,GAAW,IAAIC,EAErC,WAAuC,GAAuB,qBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAU4/B,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjiD,UAAU2nB,QAAQtlB,KAAK6f,QAAQC,UAAU8/B,QAAS,IAAI,WAAa,MAAY,CAAkC,CAA1B,MAAO/yC,GAAK,OAAO,CAAO,CAAE,CAFvQ4yC,GAA6B,OAAO,WAAkC,IAAsCp+C,EAAlCse,EAAQynB,YAAgB3nB,GAAkB,GAAIC,EAA2B,CAAE,IAAIE,EAAYwnB,YAAgB/mC,MAAM6D,YAAa7C,EAASwe,QAAQC,UAAUH,EAAOxY,UAAWyY,EAAY,MAASve,EAASse,EAAMvY,MAAM/G,KAAM8G,WAAc,OAAOwrC,YAA2BtyC,KAAMgB,EAAS,CAAG,CAIxa,SAAS01D,EAASh5D,EAAK2b,GACrB,IAAIs9C,EAAe7vD,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,IACvF,GAAKpJ,EAAL,CACA,GAAIA,EAAI2b,GAAO,OAAO3b,EAAI2b,GAI1B,IAHA,IAAIu9C,EAAQv9C,EAAKnN,MAAMyqD,GACnBE,EAAUn5D,EAEL8F,EAAI,EAAGA,EAAIozD,EAAMrzD,SAAUC,EAAG,CACrC,IAAKqzD,EAAS,OAEd,GAAiC,kBAAtBA,EAAQD,EAAMpzD,KAAoBA,EAAI,EAAIozD,EAAMrzD,OACzD,OAGF,QAA0BrB,IAAtB20D,EAAQD,EAAMpzD,IAAmB,CAKnC,IAJA,IAAI06B,EAAI,EACJjc,EAAI20C,EAAM9xD,MAAMtB,EAAGA,EAAI06B,GAAG5gB,KAAKq5C,GAC/BG,EAAMD,EAAQ50C,QAEH/f,IAAR40D,GAAqBF,EAAMrzD,OAASC,EAAI06B,GAC7CA,IAEA44B,EAAMD,EADN50C,EAAI20C,EAAM9xD,MAAMtB,EAAGA,EAAI06B,GAAG5gB,KAAKq5C,IAIjC,QAAYz0D,IAAR40D,EAAmB,OACvB,GAAY,OAARA,EAAc,OAAO,KAEzB,GAAIz9C,EAAK09C,SAAS90C,GAAI,CACpB,GAAmB,kBAAR60C,EAAkB,OAAOA,EACpC,GAAI70C,GAAuB,kBAAX60C,EAAI70C,GAAiB,OAAO60C,EAAI70C,EAClD,CAEA,IAAI+0C,EAAaJ,EAAM9xD,MAAMtB,EAAI06B,GAAG5gB,KAAKq5C,GACzC,OAAIK,EAAmBN,EAASI,EAAKE,EAAYL,QACjD,CACF,CAEAE,EAAUA,EAAQD,EAAMpzD,GAC1B,CAEA,OAAOqzD,CAvCmB,CAwC5B,CAEA,IAAII,EAAgB,SAAUC,GAC5B37C,YAAU07C,EAAeC,GAEzB,IAAIzoB,EAAStvB,EAAa83C,GAE1B,SAASA,EAAcxvD,GACrB,IAAI6P,EAEAzO,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFqwD,GAAI,CAAC,eACLC,UAAW,eAsBb,OAnBAtxD,YAAgB9F,KAAMi3D,GAEtB3/C,EAAQm3B,EAAO9uC,KAAKK,MAEhBq2D,GACF32C,EAAa/f,KAAK6gB,YAAuBlJ,IAG3CA,EAAM7P,KAAOA,GAAQ,CAAC,EACtB6P,EAAMzO,QAAUA,OAEmB3G,IAA/BoV,EAAMzO,QAAQ8tD,eAChBr/C,EAAMzO,QAAQ8tD,aAAe,UAGWz0D,IAAtCoV,EAAMzO,QAAQwuD,sBAChB//C,EAAMzO,QAAQwuD,qBAAsB,GAG/B//C,CACT,CA8IA,OA5IAjR,YAAa4wD,EAAe,CAAC,CAC3Bt5D,IAAK,gBACLE,MAAO,SAAuBs5D,GACxBn3D,KAAK6I,QAAQsuD,GAAG9sD,QAAQ8sD,GAAM,GAChCn3D,KAAK6I,QAAQsuD,GAAGn0D,KAAKm0D,EAEzB,GACC,CACDx5D,IAAK,mBACLE,MAAO,SAA0Bs5D,GAC/B,IAAIhtD,EAAQnK,KAAK6I,QAAQsuD,GAAG9sD,QAAQ8sD,GAEhChtD,GAAS,GACXnK,KAAK6I,QAAQsuD,GAAG7sD,OAAOH,EAAO,EAElC,GACC,CACDxM,IAAK,cACLE,MAAO,SAAqBy5D,EAAKH,EAAIx5D,GACnC,IAAIkL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E6vD,OAAwCz0D,IAAzB2G,EAAQ8tD,aAA6B9tD,EAAQ8tD,aAAe32D,KAAK6I,QAAQ8tD,aACxFU,OAAsDn1D,IAAhC2G,EAAQwuD,oBAAoCxuD,EAAQwuD,oBAAsBr3D,KAAK6I,QAAQwuD,oBAC7Gh+C,EAAO,CAACi+C,EAAKH,GACbx5D,GAAsB,kBAARA,IAAkB0b,EAAOA,EAAKrC,OAAOrZ,IACnDA,GAAsB,kBAARA,IAAkB0b,EAAOA,EAAKrC,OAAO2/C,EAAeh5D,EAAIuO,MAAMyqD,GAAgBh5D,IAE5F25D,EAAIjtD,QAAQ,MAAQ,IACtBgP,EAAOi+C,EAAIprD,MAAM,MAGnB,IAAIlL,EAAS40D,EAAQ51D,KAAKyH,KAAM4R,GAChC,OAAIrY,IAAWq2D,GAAsC,kBAAR15D,EAAyBqD,EAC/D01D,EAAS12D,KAAKyH,MAAQzH,KAAKyH,KAAK6vD,IAAQt3D,KAAKyH,KAAK6vD,GAAKH,GAAKx5D,EAAKg5D,EAC1E,GACC,CACDh5D,IAAK,cACLE,MAAO,SAAqBy5D,EAAKH,EAAIx5D,EAAKE,GACxC,IAAIgL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFywD,QAAQ,GAENZ,EAAe32D,KAAK6I,QAAQ8tD,kBACXz0D,IAAjBy0D,IAA4BA,EAAe,KAC/C,IAAIt9C,EAAO,CAACi+C,EAAKH,GACbx5D,IAAK0b,EAAOA,EAAKrC,OAAO2/C,EAAeh5D,EAAIuO,MAAMyqD,GAAgBh5D,IAEjE25D,EAAIjtD,QAAQ,MAAQ,IAEtBxM,EAAQs5D,EACRA,GAFA99C,EAAOi+C,EAAIprD,MAAM,MAEP,IAGZlM,KAAKw3D,cAAcL,GACnB1B,EAAQz1D,KAAKyH,KAAM4R,EAAMxb,GACpBgL,EAAQ0uD,QAAQv3D,KAAK8f,KAAK,QAASw3C,EAAKH,EAAIx5D,EAAKE,EACxD,GACC,CACDF,IAAK,eACLE,MAAO,SAAsBy5D,EAAKH,EAAIM,GACpC,IAAI5uD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFywD,QAAQ,GAGV,IAAK,IAAIj2C,KAAKm2C,EACgB,kBAAjBA,EAAUn2C,IAAqE,mBAAlDjkB,OAAOC,UAAU4K,SAASnB,MAAM0wD,EAAUn2C,KAA0BthB,KAAK03D,YAAYJ,EAAKH,EAAI71C,EAAGm2C,EAAUn2C,GAAI,CACrJi2C,QAAQ,IAIP1uD,EAAQ0uD,QAAQv3D,KAAK8f,KAAK,QAASw3C,EAAKH,EAAIM,EACnD,GACC,CACD95D,IAAK,oBACLE,MAAO,SAA2By5D,EAAKH,EAAIM,EAAWE,EAAM1B,GAC1D,IAAIptD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFywD,QAAQ,GAENl+C,EAAO,CAACi+C,EAAKH,GAEbG,EAAIjtD,QAAQ,MAAQ,IAEtBstD,EAAOF,EACPA,EAAYN,EACZA,GAHA99C,EAAOi+C,EAAIprD,MAAM,MAGP,IAGZlM,KAAKw3D,cAAcL,GACnB,IAAIS,EAAOhC,EAAQ51D,KAAKyH,KAAM4R,IAAS,CAAC,EAEpCs+C,EACF3B,EAAW4B,EAAMH,EAAWxB,GAE5B2B,EAAOnB,EAAgBA,EAAgB,CAAC,EAAGmB,GAAOH,GAGpDhC,EAAQz1D,KAAKyH,KAAM4R,EAAMu+C,GACpB/uD,EAAQ0uD,QAAQv3D,KAAK8f,KAAK,QAASw3C,EAAKH,EAAIM,EACnD,GACC,CACD95D,IAAK,uBACLE,MAAO,SAA8By5D,EAAKH,GACpCn3D,KAAK63D,kBAAkBP,EAAKH,WACvBn3D,KAAKyH,KAAK6vD,GAAKH,GAGxBn3D,KAAK83D,iBAAiBX,GACtBn3D,KAAK8f,KAAK,UAAWw3C,EAAKH,EAC5B,GACC,CACDx5D,IAAK,oBACLE,MAAO,SAA2By5D,EAAKH,GACrC,YAAqCj1D,IAA9BlC,KAAK+3D,YAAYT,EAAKH,EAC/B,GACC,CACDx5D,IAAK,oBACLE,MAAO,SAA2By5D,EAAKH,GAErC,OADKA,IAAIA,EAAKn3D,KAAK6I,QAAQuuD,WACW,OAAlCp3D,KAAK6I,QAAQmvD,iBAAkCvB,EAAgBA,EAAgB,CAAC,EAAG,CAAC,GAAIz2D,KAAK+3D,YAAYT,EAAKH,IAC3Gn3D,KAAK+3D,YAAYT,EAAKH,EAC/B,GACC,CACDx5D,IAAK,oBACLE,MAAO,SAA2By5D,GAChC,OAAOt3D,KAAKyH,KAAK6vD,EACnB,GACC,CACD35D,IAAK,8BACLE,MAAO,SAAqCy5D,GAC1C,IAAI7vD,EAAOzH,KAAKi4D,kBAAkBX,GAElC,SADQ7vD,GAAQpK,OAAOiH,KAAKmD,IAAS,IAC1BqsC,MAAK,SAAUtyB,GACxB,OAAO/Z,EAAK+Z,IAAMnkB,OAAOiH,KAAKmD,EAAK+Z,IAAIje,OAAS,CAClD,GACF,GACC,CACD5F,IAAK,SACLE,MAAO,WACL,OAAOmC,KAAKyH,IACd,KAGKwvD,CACT,CAhLoB,CAgLlBv3C,GAEEw4C,EAAgB,CAClBC,WAAY,CAAC,EACbC,iBAAkB,SAA0Bz8C,GAC1C3b,KAAKm4D,WAAWx8C,EAAO7X,MAAQ6X,CACjC,EACAxW,OAAQ,SAAgBgzD,EAAYt6D,EAAOF,EAAKkL,EAASwvD,GACvD,IAAI/gD,EAAQtX,KAKZ,OAHAm4D,EAAW53D,SAAQ,SAAU+3D,GACvBhhD,EAAM6gD,WAAWG,KAAYz6D,EAAQyZ,EAAM6gD,WAAWG,GAAWnsD,QAAQtO,EAAOF,EAAKkL,EAASwvD,GACpG,IACOx6D,CACT,GAGF,SAAS06D,EAAU/zD,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAASk0D,EAAgBtyD,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAK+0D,EAAUl7D,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBkrD,EAAUl7D,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,SAASuyD,EAAer5C,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAU4/B,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjiD,UAAU2nB,QAAQtlB,KAAK6f,QAAQC,UAAU8/B,QAAS,IAAI,WAAa,MAAY,CAAkC,CAA1B,MAAO/yC,GAAK,OAAO,CAAO,CAAE,CAFvQksD,GAA+B,OAAO,WAAkC,IAAsC13D,EAAlCse,EAAQynB,YAAgB3nB,GAAkB,GAAIC,EAA2B,CAAE,IAAIE,EAAYwnB,YAAgB/mC,MAAM6D,YAAa7C,EAASwe,QAAQC,UAAUH,EAAOxY,UAAWyY,EAAY,MAASve,EAASse,EAAMvY,MAAM/G,KAAM8G,WAAc,OAAOwrC,YAA2BtyC,KAAMgB,EAAS,CAAG,CAG5a,IAAI23D,EAAmB,CAAC,EAEpBC,EAAa,SAAU1B,GACzB37C,YAAUq9C,EAAY1B,GAEtB,IAAIzoB,EAASgqB,EAAeG,GAE5B,SAASA,EAAWC,GAClB,IAAIvhD,EAEAzO,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAkBnF,OAhBAhB,YAAgB9F,KAAM44D,GAEtBthD,EAAQm3B,EAAO9uC,KAAKK,MAEhBq2D,GACF32C,EAAa/f,KAAK6gB,YAAuBlJ,IAG3CmS,EAAK,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SAAUovC,EAAUr4C,YAAuBlJ,IACvJA,EAAMzO,QAAUA,OAEmB3G,IAA/BoV,EAAMzO,QAAQ8tD,eAChBr/C,EAAMzO,QAAQ8tD,aAAe,KAG/Br/C,EAAM/O,OAASwsD,EAAW51D,OAAO,cAC1BmY,CACT,CAwZA,OAtZAjR,YAAauyD,EAAY,CAAC,CACxBj7D,IAAK,iBACLE,MAAO,SAAwBy5D,GACzBA,IAAKt3D,KAAK84D,SAAWxB,EAC3B,GACC,CACD35D,IAAK,SACLE,MAAO,SAAgBF,GACrB,IAAIkL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFiyD,cAAe,CAAC,GAGlB,QAAY72D,IAARvE,GAA6B,OAARA,EACvB,OAAO,EAGT,IAAIq7D,EAAWh5D,KAAKa,QAAQlD,EAAKkL,GACjC,OAAOmwD,QAA6B92D,IAAjB82D,EAAS9D,GAC9B,GACC,CACDv3D,IAAK,iBACLE,MAAO,SAAwBF,EAAKkL,GAClC,IAAIowD,OAAsC/2D,IAAxB2G,EAAQowD,YAA4BpwD,EAAQowD,YAAcj5D,KAAK6I,QAAQowD,iBACrE/2D,IAAhB+2D,IAA2BA,EAAc,KAC7C,IAAItC,OAAwCz0D,IAAzB2G,EAAQ8tD,aAA6B9tD,EAAQ8tD,aAAe32D,KAAK6I,QAAQ8tD,aACxFuC,EAAarwD,EAAQsuD,IAAMn3D,KAAK6I,QAAQuuD,WAAa,GACrD+B,EAAuBF,GAAet7D,EAAI0M,QAAQ4uD,IAAgB,EAClEG,GAAwBp5D,KAAK6I,QAAQwwD,0BAA4BxwD,EAAQ8tD,eAAiB32D,KAAK6I,QAAQywD,yBAA2BzwD,EAAQowD,cA7UpJ,SAA6Bt7D,EAAKs7D,EAAatC,GAC7CsC,EAAcA,GAAe,GAC7BtC,EAAeA,GAAgB,GAC/B,IAAI4C,EAAgBhD,EAAMtpD,QAAO,SAAUsL,GACzC,OAAO0gD,EAAY5uD,QAAQkO,GAAK,GAAKo+C,EAAatsD,QAAQkO,GAAK,CACjE,IACA,GAA6B,IAAzBghD,EAAch2D,OAAc,OAAO,EACvC,IAAI6U,EAAI,IAAI+P,OAAO,IAAInR,OAAOuiD,EAAc5pD,KAAI,SAAU4I,GACxD,MAAa,MAANA,EAAY,MAAQA,CAC7B,IAAG+E,KAAK,KAAM,MACVk8C,GAAWphD,EAAE+K,KAAKxlB,GAEtB,IAAK67D,EAAS,CACZ,IAAIC,EAAK97D,EAAI0M,QAAQssD,GAEjB8C,EAAK,IAAMrhD,EAAE+K,KAAKxlB,EAAIylB,UAAU,EAAGq2C,MACrCD,GAAU,EAEd,CAEA,OAAOA,CACT,CAwToKE,CAAoB/7D,EAAKs7D,EAAatC,GAEpM,GAAIwC,IAAyBC,EAAsB,CACjD,IAAI93C,EAAI3jB,EAAIsJ,MAAMjH,KAAK25D,aAAaC,eAEpC,GAAIt4C,GAAKA,EAAE/d,OAAS,EAClB,MAAO,CACL5F,IAAKA,EACLu7D,WAAYA,GAIhB,IAAIzU,EAAQ9mD,EAAIuO,MAAM+sD,IAClBA,IAAgBtC,GAAgBsC,IAAgBtC,GAAgB32D,KAAK6I,QAAQsuD,GAAG9sD,QAAQo6C,EAAM,KAAO,KAAGyU,EAAazU,EAAMvf,SAC/HvnC,EAAM8mD,EAAMnnC,KAAKq5C,EACnB,CAGA,MAD0B,kBAAfuC,IAAyBA,EAAa,CAACA,IAC3C,CACLv7D,IAAKA,EACLu7D,WAAYA,EAEhB,GACC,CACDv7D,IAAK,YACLE,MAAO,SAAmByG,EAAMuE,EAASgxD,GACvC,IAAIC,EAAS95D,KAOb,GALyB,WAArButC,YAAQ1kC,IAAyB7I,KAAK6I,QAAQkxD,mCAChDlxD,EAAU7I,KAAK6I,QAAQkxD,iCAAiCjzD,YAGrD+B,IAASA,EAAU,CAAC,QACZ3G,IAAToC,GAA+B,OAATA,EAAe,MAAO,GAC3CsJ,MAAMC,QAAQvJ,KAAOA,EAAO,CAACid,OAAOjd,KACzC,IAAI01D,OAA0C93D,IAA1B2G,EAAQmxD,cAA8BnxD,EAAQmxD,cAAgBh6D,KAAK6I,QAAQmxD,cAC3FrD,OAAwCz0D,IAAzB2G,EAAQ8tD,aAA6B9tD,EAAQ8tD,aAAe32D,KAAK6I,QAAQ8tD,aAExFsD,EAAuBj6D,KAAKk6D,eAAe51D,EAAKA,EAAKf,OAAS,GAAIsF,GAClElL,EAAMs8D,EAAqBt8D,IAC3Bu7D,EAAae,EAAqBf,WAElCnW,EAAYmW,EAAWA,EAAW31D,OAAS,GAC3C+zD,EAAMzuD,EAAQyuD,KAAOt3D,KAAK84D,SAC1BqB,EAA0BtxD,EAAQsxD,yBAA2Bn6D,KAAK6I,QAAQsxD,wBAE9E,GAAI7C,GAA6B,WAAtBA,EAAIngD,cAA4B,CACzC,GAAIgjD,EAAyB,CAC3B,IAAIlB,EAAcpwD,EAAQowD,aAAej5D,KAAK6I,QAAQowD,YAEtD,OAAIe,GACFhB,EAAS9D,IAAM,GAAGl+C,OAAO+rC,GAAW/rC,OAAOiiD,GAAajiD,OAAOrZ,GACxDq7D,GAGF,GAAGhiD,OAAO+rC,GAAW/rC,OAAOiiD,GAAajiD,OAAOrZ,EACzD,CAEA,OAAIq8D,GACFhB,EAAS9D,IAAMv3D,EACRq7D,GAGFr7D,CACT,CAEA,IAAIq7D,EAAWh5D,KAAKa,QAAQyD,EAAMuE,GAC9BqsD,EAAM8D,GAAYA,EAAS9D,IAC3BkF,EAAapB,GAAYA,EAASqB,SAAW18D,EAC7C28D,EAAkBtB,GAAYA,EAASuB,cAAgB58D,EACvD68D,EAAUn9D,OAAOC,UAAU4K,SAASnB,MAAMmuD,GAC1CuF,EAAW,CAAC,kBAAmB,oBAAqB,mBACpDC,OAAoCx4D,IAAvB2G,EAAQ6xD,WAA2B7xD,EAAQ6xD,WAAa16D,KAAK6I,QAAQ6xD,WAClFC,GAA8B36D,KAAK46D,YAAc56D,KAAK46D,WAAWC,eACjEA,EAAgC,kBAAR3F,GAAmC,mBAARA,GAAoC,kBAARA,EAEnF,GAAIyF,GAA8BzF,GAAO2F,GAAkBJ,EAASpwD,QAAQmwD,GAAW,IAA6B,kBAAfE,GAAuC,mBAAZF,GAA+B,CAC7J,IAAK3xD,EAAQiyD,gBAAkB96D,KAAK6I,QAAQiyD,cAAe,CACpD96D,KAAK6I,QAAQkyD,uBAChB/6D,KAAKuI,OAAO8C,KAAK,mEAGnB,IAAI+M,EAAIpY,KAAK6I,QAAQkyD,sBAAwB/6D,KAAK6I,QAAQkyD,sBAAsBX,EAAYlF,EAAKsD,EAAgBA,EAAgB,CAAC,EAAG3vD,GAAU,CAAC,EAAG,CACjJsuD,GAAI+B,KACA,QAAQliD,OAAOrZ,EAAK,MAAMqZ,OAAOhX,KAAK84D,SAAU,4CAEtD,OAAIkB,GACFhB,EAAS9D,IAAM98C,EACR4gD,GAGF5gD,CACT,CAEA,GAAIu+C,EAAc,CAChB,IAAIqE,EAA6B,mBAAZR,EACjB/wC,EAAOuxC,EAAiB,GAAK,CAAC,EAC9BC,EAAcD,EAAiBV,EAAkBF,EAErD,IAAK,IAAI94C,KAAK4zC,EACZ,GAAI73D,OAAOC,UAAUE,eAAemC,KAAKu1D,EAAK5zC,GAAI,CAChD,IAAI45C,EAAU,GAAGlkD,OAAOikD,GAAajkD,OAAO2/C,GAAc3/C,OAAOsK,GACjEmI,EAAKnI,GAAKthB,KAAK8sB,UAAUouC,EAAS1C,EAAgBA,EAAgB,CAAC,EAAG3vD,GAAU,CAC9E6xD,YAAY,EACZvD,GAAI+B,KAEFzvC,EAAKnI,KAAO45C,IAASzxC,EAAKnI,GAAK4zC,EAAI5zC,GACzC,CAGF4zC,EAAMzrC,CACR,CACF,MAAO,GAAIkxC,GAAoD,kBAAfD,GAAuC,mBAAZF,GACzEtF,EAAMA,EAAI53C,KAAKo9C,MACNxF,EAAMl1D,KAAKm7D,kBAAkBjG,EAAK5wD,EAAMuE,EAASgxD,QACrD,CACL,IAAIuB,GAAc,EACdf,GAAU,EACVgB,OAAwCn5D,IAAlB2G,EAAQ2yB,OAAgD,kBAAlB3yB,EAAQ2yB,MACpE8/B,EAAkB1C,EAAW0C,gBAAgBzyD,GAC7C0yD,EAAqBF,EAAsBr7D,KAAKw7D,eAAeC,UAAUnE,EAAKzuD,EAAQ2yB,MAAO3yB,GAAW,GACxG6yD,EAAe7yD,EAAQ,eAAemO,OAAOukD,KAAwB1yD,EAAQ6yD,cAE5E17D,KAAK27D,cAAczG,IAAQoG,IAC9BF,GAAc,EACdlG,EAAMwG,GAGH17D,KAAK27D,cAAczG,KACtBmF,GAAU,EACVnF,EAAMv3D,GAGR,IAAIi+D,EAAiC/yD,EAAQ+yD,gCAAkC57D,KAAK6I,QAAQ+yD,+BACxFC,EAAgBD,GAAkCvB,OAAUn4D,EAAYgzD,EACxE4G,EAAgBR,GAAmBI,IAAiBxG,GAAOl1D,KAAK6I,QAAQizD,cAE5E,GAAIzB,GAAWe,GAAeU,EAAe,CAG3C,GAFA97D,KAAKuI,OAAOU,IAAI6yD,EAAgB,YAAc,aAAcxE,EAAKvU,EAAWplD,EAAKm+D,EAAgBJ,EAAexG,GAE5GyB,EAAc,CAChB,IAAIoF,EAAK/7D,KAAKa,QAAQlD,EAAK66D,EAAgBA,EAAgB,CAAC,EAAG3vD,GAAU,CAAC,EAAG,CAC3E8tD,cAAc,KAEZoF,GAAMA,EAAG7G,KAAKl1D,KAAKuI,OAAO8C,KAAK,kLACrC,CAEA,IAAI2wD,EAAO,GACPC,EAAej8D,KAAKk8D,cAAcC,iBAAiBn8D,KAAK6I,QAAQuzD,YAAavzD,EAAQyuD,KAAOt3D,KAAK84D,UAErG,GAAmC,aAA/B94D,KAAK6I,QAAQwzD,eAAgCJ,GAAgBA,EAAa,GAC5E,IAAK,IAAIz4D,EAAI,EAAGA,EAAIy4D,EAAa14D,OAAQC,IACvCw4D,EAAKh5D,KAAKi5D,EAAaz4D,QAEe,QAA/BxD,KAAK6I,QAAQwzD,cACtBL,EAAOh8D,KAAKk8D,cAAcI,mBAAmBzzD,EAAQyuD,KAAOt3D,KAAK84D,UAEjEkD,EAAKh5D,KAAK6F,EAAQyuD,KAAOt3D,KAAK84D,UAGhC,IAAIyD,EAAO,SAAcx7C,EAAGod,EAAGq+B,GAC7B,IAAIC,EAAoBnB,GAAmBkB,IAAyBtH,EAAMsH,EAAuBX,EAE7F/B,EAAOjxD,QAAQ6zD,kBACjB5C,EAAOjxD,QAAQ6zD,kBAAkB37C,EAAGgiC,EAAW5kB,EAAGs+B,EAAmBX,EAAejzD,GAC3EixD,EAAO6C,kBAAoB7C,EAAO6C,iBAAiBC,aAC5D9C,EAAO6C,iBAAiBC,YAAY77C,EAAGgiC,EAAW5kB,EAAGs+B,EAAmBX,EAAejzD,GAGzFixD,EAAOh6C,KAAK,aAAciB,EAAGgiC,EAAW5kB,EAAG+2B,EAC7C,EAEIl1D,KAAK6I,QAAQ+zD,cACX58D,KAAK6I,QAAQg0D,oBAAsBxB,EACrCW,EAAKz7D,SAAQ,SAAUu4D,GACrBgB,EAAO0B,eAAesB,YAAYhE,EAAUjwD,GAAStI,SAAQ,SAAUkvD,GACrE8M,EAAK,CAACzD,GAAWn7D,EAAM8xD,EAAQ5mD,EAAQ,eAAemO,OAAOy4C,KAAYiM,EAC3E,GACF,IAEAa,EAAKP,EAAMr+D,EAAK+9D,GAGtB,CAEAxG,EAAMl1D,KAAKm7D,kBAAkBjG,EAAK5wD,EAAMuE,EAASmwD,EAAUa,GACvDQ,GAAWnF,IAAQv3D,GAAOqC,KAAK6I,QAAQk0D,8BAA6B7H,EAAM,GAAGl+C,OAAO+rC,EAAW,KAAK/rC,OAAOrZ,KAE1G08D,GAAWe,IAAgBp7D,KAAK6I,QAAQm0D,yBAEzC9H,EADoC,OAAlCl1D,KAAK6I,QAAQmvD,iBACTh4D,KAAK6I,QAAQm0D,uBAAuBh9D,KAAK6I,QAAQk0D,4BAA8B,GAAG/lD,OAAO+rC,EAAW,KAAK/rC,OAAOrZ,GAAOA,EAAKy9D,EAAclG,OAAMhzD,GAEhJlC,KAAK6I,QAAQm0D,uBAAuB9H,GAGhD,CAEA,OAAI8E,GACFhB,EAAS9D,IAAMA,EACR8D,GAGF9D,CACT,GACC,CACDv3D,IAAK,oBACLE,MAAO,SAA2Bq3D,EAAKv3D,EAAKkL,EAASmwD,EAAUa,GAC7D,IAAIoD,EAASj9D,KAEb,GAAIA,KAAK46D,YAAc56D,KAAK46D,WAAW53C,MACrCkyC,EAAMl1D,KAAK46D,WAAW53C,MAAMkyC,EAAKsD,EAAgBA,EAAgB,CAAC,EAAGx4D,KAAK6I,QAAQkwD,cAAcmE,kBAAmBr0D,GAAUmwD,EAASmE,QAASnE,EAASoE,OAAQpE,EAASqB,QAAS,CAChLrB,SAAUA,SAEP,IAAKnwD,EAAQw0D,kBAAmB,CACjCx0D,EAAQkwD,eAAe/4D,KAAK25D,aAAar2C,KAAKk1C,EAAgBA,EAAgB,CAAC,EAAG3vD,GAAU,CAC9FkwD,cAAeP,EAAgBA,EAAgB,CAAC,EAAGx4D,KAAK6I,QAAQkwD,eAAgBlwD,EAAQkwD,kBAE1F,IACIuE,EADAC,EAAiC,kBAARrI,IAAqBrsD,GAAWA,EAAQkwD,oBAA2D72D,IAA1C2G,EAAQkwD,cAAcwE,gBAAgC10D,EAAQkwD,cAAcwE,gBAAkBv9D,KAAK6I,QAAQkwD,cAAcwE,iBAG/M,GAAIA,EAAiB,CACnB,IAAIC,EAAKtI,EAAIjuD,MAAMjH,KAAK25D,aAAaC,eACrC0D,EAAUE,GAAMA,EAAGj6D,MACrB,CAEA,IAAIkE,EAAOoB,EAAQsP,SAAsC,kBAApBtP,EAAQsP,QAAuBtP,EAAQsP,QAAUtP,EAItF,GAHI7I,KAAK6I,QAAQkwD,cAAcmE,mBAAkBz1D,EAAO+wD,EAAgBA,EAAgB,CAAC,EAAGx4D,KAAK6I,QAAQkwD,cAAcmE,kBAAmBz1D,IAC1IytD,EAAMl1D,KAAK25D,aAAa8D,YAAYvI,EAAKztD,EAAMoB,EAAQyuD,KAAOt3D,KAAK84D,SAAUjwD,GAEzE00D,EAAiB,CACnB,IAAIG,EAAKxI,EAAIjuD,MAAMjH,KAAK25D,aAAaC,eAEjC0D,GADUI,GAAMA,EAAGn6D,UACAsF,EAAQ+hD,MAAO,EACxC,EAEqB,IAAjB/hD,EAAQ+hD,OAAgBsK,EAAMl1D,KAAK25D,aAAa/O,KAAKsK,GAAK,WAC5D,IAAK,IAAIxE,EAAO5pD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM8iD,GAAOra,EAAO,EAAGA,EAAOqa,EAAMra,IAC/ExvC,EAAKwvC,GAAQvvC,UAAUuvC,GAGzB,OAAIwjB,GAAWA,EAAQ,KAAOhzD,EAAK,KAAOgC,EAAQzJ,SAChD69D,EAAO10D,OAAO8C,KAAK,6CAA6C2L,OAAOnQ,EAAK,GAAI,aAAamQ,OAAOrZ,EAAI,KAEjG,MAGFs/D,EAAOnwC,UAAU/lB,MAAMk2D,EAAQp2D,EAAKmQ,OAAO,CAACrZ,IACrD,GAAGkL,IACCA,EAAQkwD,eAAe/4D,KAAK25D,aAAax2D,OAC/C,CAEA,IAAIw6D,EAAc90D,EAAQ80D,aAAe39D,KAAK6I,QAAQ80D,YAClDC,EAA4C,kBAAhBD,EAA2B,CAACA,GAAeA,EAQ3E,YANYz7D,IAARgzD,GAA6B,OAARA,GAAgB0I,GAAsBA,EAAmBr6D,SAAyC,IAA/BsF,EAAQg1D,qBAClG3I,EAAMgD,EAAc/yD,OAAOy4D,EAAoB1I,EAAKv3D,EAAKqC,KAAK6I,SAAW7I,KAAK6I,QAAQi1D,wBAA0BtF,EAAgB,CAC9HuF,aAAc/E,GACbnwD,GAAWA,EAAS7I,OAGlBk1D,CACT,GACC,CACDv3D,IAAK,UACLE,MAAO,SAAiByG,GACtB,IAGI0hD,EACAqU,EACAE,EACA4C,EACAC,EAPAY,EAASh+D,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA6EnF,MAvEoB,kBAATxC,IAAmBA,EAAO,CAACA,IACtCA,EAAK/D,SAAQ,SAAU49B,GACrB,IAAI6/B,EAAOrC,cAAc3V,GAAzB,CAEA,IAAIiY,EAAYD,EAAO9D,eAAe/7B,EAAGt1B,GAErClL,EAAMsgE,EAAUtgE,IACpB08D,EAAU18D,EACV,IAAIu7D,EAAa+E,EAAU/E,WACvB8E,EAAOn1D,QAAQq1D,aAAYhF,EAAaA,EAAWliD,OAAOgnD,EAAOn1D,QAAQq1D,aAC7E,IAAI7C,OAAwCn5D,IAAlB2G,EAAQ2yB,OAAgD,kBAAlB3yB,EAAQ2yB,MAEpE2iC,EAAwB9C,IAAwBxyD,EAAQwY,SAA6B,IAAlBxY,EAAQ2yB,OAAewiC,EAAOxC,eAAe4C,mBAEhHC,OAA2Cn8D,IAApB2G,EAAQzJ,UAAqD,kBAApByJ,EAAQzJ,SAAmD,kBAApByJ,EAAQzJ,UAA6C,KAApByJ,EAAQzJ,QAChJk/D,EAAQz1D,EAAQmzD,KAAOnzD,EAAQmzD,KAAOgC,EAAO9B,cAAcI,mBAAmBzzD,EAAQyuD,KAAO0G,EAAOlF,SAAUjwD,EAAQuzD,aAC1HlD,EAAW34D,SAAQ,SAAU42D,GACvB6G,EAAOrC,cAAc3V,KACzBoX,EAASjG,GAEJwB,EAAiB,GAAG3hD,OAAOsnD,EAAM,GAAI,KAAKtnD,OAAOmgD,KAAQ6G,EAAOO,OAASP,EAAOO,MAAMC,qBAAuBR,EAAOO,MAAMC,mBAAmBpB,KAChJzE,EAAiB,GAAG3hD,OAAOsnD,EAAM,GAAI,KAAKtnD,OAAOmgD,KAAO,EAExD6G,EAAOz1D,OAAO8C,KAAK,QAAS2L,OAAOqjD,EAAS,qBAAuBrjD,OAAOsnD,EAAMhhD,KAAK,MAAO,wCAAyCtG,OAAOomD,EAAQ,wBAA0B,6NAGhLkB,EAAM/9D,SAAQ,SAAUiuC,GACtB,IAAIwvB,EAAOrC,cAAc3V,GAAzB,CACAmX,EAAU3uB,EACV,IA+BIiwB,EA/BAC,EAAY,CAAC/gE,GAEjB,GAAIqgE,EAAOpD,YAAcoD,EAAOpD,WAAW+D,cACzCX,EAAOpD,WAAW+D,cAAcD,EAAW/gE,EAAK6wC,EAAM2oB,EAAItuD,OACrD,CACL,IAAI+1D,EACAvD,IAAqBuD,EAAeZ,EAAOxC,eAAeC,UAAUjtB,EAAM3lC,EAAQ2yB,MAAO3yB,IAC7F,IAAIg2D,EAAa,GAAG7nD,OAAOgnD,EAAOn1D,QAAQi2D,gBAAiB,QAU3D,GARIzD,IACFqD,EAAU17D,KAAKrF,EAAMihE,GAEjBT,GACFO,EAAU17D,KAAKrF,EAAMkhE,IAIrBR,EAAsB,CACxB,IAAIU,EAAa,GAAG/nD,OAAOrZ,GAAKqZ,OAAOgnD,EAAOn1D,QAAQm2D,kBAAkBhoD,OAAOnO,EAAQzJ,SACvFs/D,EAAU17D,KAAK+7D,GAEX1D,IACFqD,EAAU17D,KAAK+7D,EAAaH,GAExBT,GACFO,EAAU17D,KAAK+7D,EAAaF,GAGlC,CACF,CAIA,KAAOJ,EAAcC,EAAUh6D,OACxBs5D,EAAOrC,cAAc3V,KACxBuU,EAAekE,EACfzY,EAAQgY,EAAOjG,YAAYvpB,EAAM2oB,EAAIsH,EAAa51D,GAtCf,CAyCzC,IACF,GAnEuC,CAoEzC,IACO,CACLqsD,IAAKlP,EACLqU,QAASA,EACTE,aAAcA,EACd4C,QAASA,EACTC,OAAQA,EAEZ,GACC,CACDz/D,IAAK,gBACLE,MAAO,SAAuBq3D,GAC5B,YAAehzD,IAARgzD,MAAwBl1D,KAAK6I,QAAQo2D,YAAsB,OAAR/J,OAAoBl1D,KAAK6I,QAAQq2D,mBAA6B,KAARhK,EAClH,GACC,CACDv3D,IAAK,cACLE,MAAO,SAAqB2wC,EAAM2oB,EAAIx5D,GACpC,IAAIkL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAI9G,KAAK46D,YAAc56D,KAAK46D,WAAW7C,YAAoB/3D,KAAK46D,WAAW7C,YAAYvpB,EAAM2oB,EAAIx5D,EAAKkL,GAC/F7I,KAAKm/D,cAAcpH,YAAYvpB,EAAM2oB,EAAIx5D,EAAKkL,EACvD,IACE,CAAC,CACHlL,IAAK,kBACLE,MAAO,SAAyBgL,GAC9B,IAAIif,EAAS,eAEb,IAAK,IAAIs3C,KAAUv2D,EACjB,GAAIxL,OAAOC,UAAUE,eAAemC,KAAKkJ,EAASu2D,IAAWt3C,IAAWs3C,EAAOh8C,UAAU,EAAG0E,EAAOvkB,cAAWrB,IAAc2G,EAAQu2D,GAClI,OAAO,EAIX,OAAO,CACT,KAGKxG,CACT,CApbiB,CAobfl5C,GAEF,SAASxK,EAAW++B,GAClB,OAAOA,EAAOpvC,OAAO,GAAGuQ,cAAgB6+B,EAAOnvC,MAAM,EACvD,CAEA,IAAIu6D,EAAe,WACjB,SAASA,EAAax2D,GACpB/C,YAAgB9F,KAAMq/D,GAEtBr/D,KAAK6I,QAAUA,EACf7I,KAAKs/D,cAAgBt/D,KAAK6I,QAAQy2D,gBAAiB,EACnDt/D,KAAKuI,OAASwsD,EAAW51D,OAAO,gBAClC,CAuIA,OArIAkH,YAAag5D,EAAc,CAAC,CAC1B1hE,IAAK,wBACLE,MAAO,SAA+B2wC,GACpC,IAAKA,GAAQA,EAAKnkC,QAAQ,KAAO,EAAG,OAAO,KAC3C,IAAI4X,EAAIusB,EAAKtiC,MAAM,KACnB,OAAiB,IAAb+V,EAAE1e,OAAqB,MAC3B0e,EAAEvd,MACoC,MAAlCud,EAAEA,EAAE1e,OAAS,GAAG4T,cAA8B,KAC3CnX,KAAKu/D,mBAAmBt9C,EAAE3E,KAAK,MACxC,GACC,CACD3f,IAAK,0BACLE,MAAO,SAAiC2wC,GACtC,IAAKA,GAAQA,EAAKnkC,QAAQ,KAAO,EAAG,OAAOmkC,EAC3C,IAAIvsB,EAAIusB,EAAKtiC,MAAM,KACnB,OAAOlM,KAAKu/D,mBAAmBt9C,EAAE,GACnC,GACC,CACDtkB,IAAK,qBACLE,MAAO,SAA4B2wC,GACjC,GAAoB,kBAATA,GAAqBA,EAAKnkC,QAAQ,MAAQ,EAAG,CACtD,IAAIm1D,EAAe,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAChEv9C,EAAIusB,EAAKtiC,MAAM,KAkBnB,OAhBIlM,KAAK6I,QAAQ42D,aACfx9C,EAAIA,EAAEtS,KAAI,SAAU+vD,GAClB,OAAOA,EAAKvoD,aACd,IACsB,IAAb8K,EAAE1e,QACX0e,EAAE,GAAKA,EAAE,GAAG9K,cACZ8K,EAAE,GAAKA,EAAE,GAAG7M,cACRoqD,EAAan1D,QAAQ4X,EAAE,GAAG9K,gBAAkB,IAAG8K,EAAE,GAAK/M,EAAW+M,EAAE,GAAG9K,iBACpD,IAAb8K,EAAE1e,SACX0e,EAAE,GAAKA,EAAE,GAAG9K,cACQ,IAAhB8K,EAAE,GAAG1e,SAAc0e,EAAE,GAAKA,EAAE,GAAG7M,eACtB,QAAT6M,EAAE,IAAgC,IAAhBA,EAAE,GAAG1e,SAAc0e,EAAE,GAAKA,EAAE,GAAG7M,eACjDoqD,EAAan1D,QAAQ4X,EAAE,GAAG9K,gBAAkB,IAAG8K,EAAE,GAAK/M,EAAW+M,EAAE,GAAG9K,gBACtEqoD,EAAan1D,QAAQ4X,EAAE,GAAG9K,gBAAkB,IAAG8K,EAAE,GAAK/M,EAAW+M,EAAE,GAAG9K,iBAGrE8K,EAAE3E,KAAK,IAChB,CAEA,OAAOtd,KAAK6I,QAAQ82D,WAAa3/D,KAAK6I,QAAQ42D,aAAejxB,EAAKr3B,cAAgBq3B,CACpF,GACC,CACD7wC,IAAK,kBACLE,MAAO,SAAyB2wC,GAK9B,OAJ0B,iBAAtBxuC,KAAK6I,QAAQ+2D,MAA2B5/D,KAAK6I,QAAQg3D,4BACvDrxB,EAAOxuC,KAAK8/D,wBAAwBtxB,KAG9BxuC,KAAKs/D,gBAAkBt/D,KAAKs/D,cAAc/7D,QAAUvD,KAAKs/D,cAAcj1D,QAAQmkC,IAAS,CAClG,GACC,CACD7wC,IAAK,wBACLE,MAAO,SAA+BygE,GACpC,IAGItY,EAHA1uC,EAAQtX,KAEZ,OAAKs+D,GAELA,EAAM/9D,SAAQ,SAAUiuC,GACtB,IAAIwX,EAAJ,CAEA,IAAI+Z,EAAazoD,EAAMioD,mBAAmB/wB,GAErCl3B,EAAMzO,QAAQy2D,gBAAiBhoD,EAAM0oD,gBAAgBD,KAAa/Z,EAAQ+Z,EAJ9D,CAKnB,KAEK/Z,GAAShmD,KAAK6I,QAAQy2D,eACzBhB,EAAM/9D,SAAQ,SAAUiuC,GACtB,IAAIwX,EAAJ,CAEA,IAAIia,EAAU3oD,EAAMwoD,wBAAwBtxB,GAE5C,GAAIl3B,EAAM0oD,gBAAgBC,GAAU,OAAOja,EAAQia,EACnDja,EAAQ1uC,EAAMzO,QAAQy2D,cAAcxrB,MAAK,SAAUosB,GACjD,GAAsC,IAAlCA,EAAa71D,QAAQ41D,GAAgB,OAAOC,CAClD,GAPiB,CAQnB,IAGGla,IAAOA,EAAQhmD,KAAKm8D,iBAAiBn8D,KAAK6I,QAAQuzD,aAAa,IAC7DpW,GAxBY,IAyBrB,GACC,CACDroD,IAAK,mBACLE,MAAO,SAA0BsiE,EAAW3xB,GAC1C,IAAK2xB,EAAW,MAAO,GAGvB,GAFyB,oBAAdA,IAA0BA,EAAYA,EAAU3xB,IAClC,kBAAd2xB,IAAwBA,EAAY,CAACA,IACG,mBAA/C9iE,OAAOC,UAAU4K,SAASnB,MAAMo5D,GAAiC,OAAOA,EAC5E,IAAK3xB,EAAM,OAAO2xB,EAAmB,SAAK,GAC1C,IAAIna,EAAQma,EAAU3xB,GAKtB,OAJKwX,IAAOA,EAAQma,EAAUngE,KAAKogE,sBAAsB5xB,KACpDwX,IAAOA,EAAQma,EAAUngE,KAAKu/D,mBAAmB/wB,KACjDwX,IAAOA,EAAQma,EAAUngE,KAAK8/D,wBAAwBtxB,KACtDwX,IAAOA,EAAQma,EAAmB,SAChCna,GAAS,EAClB,GACC,CACDroD,IAAK,qBACLE,MAAO,SAA4B2wC,EAAM6xB,GACvC,IAAIvG,EAAS95D,KAETsgE,EAAgBtgE,KAAKm8D,iBAAiBkE,GAAgBrgE,KAAK6I,QAAQuzD,aAAe,GAAI5tB,GACtF8vB,EAAQ,GAERiC,EAAU,SAAiBhoD,GACxBA,IAEDuhD,EAAOkG,gBAAgBznD,GACzB+lD,EAAMt7D,KAAKuV,GAEXuhD,EAAOvxD,OAAO8C,KAAK,uDAAuD2L,OAAOuB,IAErF,EAaA,MAXoB,kBAATi2B,GAAqBA,EAAKnkC,QAAQ,MAAQ,GACzB,iBAAtBrK,KAAK6I,QAAQ+2D,MAAyBW,EAAQvgE,KAAKu/D,mBAAmB/wB,IAChD,iBAAtBxuC,KAAK6I,QAAQ+2D,MAAiD,gBAAtB5/D,KAAK6I,QAAQ+2D,MAAwBW,EAAQvgE,KAAKogE,sBAAsB5xB,IAC1F,gBAAtBxuC,KAAK6I,QAAQ+2D,MAAwBW,EAAQvgE,KAAK8/D,wBAAwBtxB,KACrD,kBAATA,GAChB+xB,EAAQvgE,KAAKu/D,mBAAmB/wB,IAGlC8xB,EAAc//D,SAAQ,SAAUigE,GAC1BlC,EAAMj0D,QAAQm2D,GAAM,GAAGD,EAAQzG,EAAOyF,mBAAmBiB,GAC/D,IACOlC,CACT,KAGKe,CACT,CA/ImB,GAiJfoB,EAAO,CAAC,CACVzE,KAAM,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MACjI0E,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDxE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACzY0E,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDxE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACxI0E,GAAI,CAAC,GACLF,GAAI,GACH,CACDxE,KAAM,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,MAClD0E,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,KACrBF,GAAI,GACH,CACDxE,KAAM,CAAC,KAAM,MACb0E,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDxE,KAAM,CAAC,MAAO,MACd0E,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,GACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,GACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,EAAG,IACjBF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,IACdF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,GACRF,GAAI,IACH,CACDxE,KAAM,CAAC,OACP0E,GAAI,CAAC,EAAG,EAAG,GACXF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,GACRF,GAAI,GACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,IACXF,GAAI,IACH,CACDxE,KAAM,CAAC,MACP0E,GAAI,CAAC,EAAG,EAAG,EAAG,GACdF,GAAI,IACH,CACDxE,KAAM,CAAC,KAAM,MACb0E,GAAI,CAAC,EAAG,EAAG,GAAI,IACfF,GAAI,KAEFG,EAAqB,CACvB,EAAG,SAAW3yD,GACZ,OAAOmF,OAAOnF,EAAI,EACpB,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAY,GAALnF,EAChB,EACA,EAAG,SAAWA,GACZ,OAAO,CACT,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAOnF,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACvH,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,EAC/G,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAY,GAALnF,EAAS,EAAIA,GAAK,GAAKA,GAAK,EAAI,EAAI,EACpD,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAY,GAALnF,EAAS,EAAIA,EAAI,IAAM,GAAKA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACjG,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,GAAe,IAALA,EAAU,EAAI,EAClE,EACA,EAAG,SAAWA,GACZ,OAAOmF,OAAOnF,GAAK,EACrB,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,EAAIA,EAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EACnE,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,GAAe,IAALA,EAAU,EAAS,GAALA,GAAe,IAALA,EAAU,EAAIA,EAAI,GAAKA,EAAI,GAAK,EAAI,EACtF,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAOnF,EAAI,IAAM,GAAKA,EAAI,KAAO,GAC1C,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAa,IAANnF,EAChB,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,EAAS,GAALA,EAAS,EAAI,EACvD,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAOnF,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,IAAMA,EAAI,KAAO,IAAM,EAAI,EACxG,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAOnF,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAU,IAANA,EAAU,EAAI,EACjE,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,GAAUA,EAAI,IAAM,GAAKA,EAAI,KAAO,GAAK,EAAI,EAC7D,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,EAAI,EAC1C,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAIA,EAAI,IAAM,IAAMA,EAAI,IAAM,GAAK,EAAI,EAC5G,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,GAAUA,EAAI,IAAM,GAAKA,EAAI,IAAM,GAAK,EAAI,EACzE,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAOnF,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,EAAI,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,EAAI,EAAI,EACzF,EACA,GAAI,SAAWA,GACb,OAAOmF,OAAY,GAALnF,EAAS,EAAS,GAALA,EAAS,GAAKA,EAAI,GAAKA,EAAI,KAAOA,EAAI,IAAM,EAAI,EAAI,EACjF,GAEE4yD,EAAyB,CAAC,KAAM,KAAM,MACtCC,EAAgB,CAClB7lC,KAAM,EACN8lC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNrzB,MAAO,GAGT,SAASszB,IACP,IAAIltD,EAAQ,CAAC,EASb,OARAysD,EAAKlgE,SAAQ,SAAUwkB,GACrBA,EAAIi3C,KAAKz7D,SAAQ,SAAUwgB,GACzB/M,EAAM+M,GAAK,CACTogD,QAASp8C,EAAI27C,GACbU,QAAST,EAAmB57C,EAAIy7C,IAEpC,GACF,IACOxsD,CACT,CAEA,IAAIqtD,EAAiB,WACnB,SAASA,EAAenF,GACtB,IAAIrzD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnFhB,YAAgB9F,KAAMqhE,GAEtBrhE,KAAKk8D,cAAgBA,EACrBl8D,KAAK6I,QAAUA,EACf7I,KAAKuI,OAASwsD,EAAW51D,OAAO,kBAE1Ba,KAAK6I,QAAQy4D,mBAAwD,OAAnCthE,KAAK6I,QAAQy4D,mBAAgD,qBAATC,MAAyBA,KAAKC,cACxHxhE,KAAK6I,QAAQy4D,kBAAoB,KACjCthE,KAAKuI,OAAOnH,MAAM,uJAGpBpB,KAAKgU,MAAQktD,GACf,CA4HA,OA1HA76D,YAAag7D,EAAgB,CAAC,CAC5B1jE,IAAK,UACLE,MAAO,SAAiBy5D,EAAK55D,GAC3BsC,KAAKgU,MAAMsjD,GAAO55D,CACpB,GACC,CACDC,IAAK,UACLE,MAAO,SAAiB2wC,GACtB,IAAI3lC,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,GAAI9G,KAAKo+D,mBACP,IACE,OAAO,IAAImD,KAAKC,YAAYhzB,EAAM,CAChC9uC,KAAMmJ,EAAQwY,QAAU,UAAY,YAIxC,CAFE,MAAOogD,GACP,MACF,CAGF,OAAOzhE,KAAKgU,MAAMw6B,IAASxuC,KAAKgU,MAAMhU,KAAKk8D,cAAc4D,wBAAwBtxB,GACnF,GACC,CACD7wC,IAAK,cACLE,MAAO,SAAqB2wC,GAC1B,IAAI3lC,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E46D,EAAO1hE,KAAK2hE,QAAQnzB,EAAM3lC,GAE9B,OAAI7I,KAAKo+D,mBACAsD,GAAQA,EAAKE,kBAAkBC,iBAAiBt+D,OAAS,EAG3Dm+D,GAAQA,EAAKP,QAAQ59D,OAAS,CACvC,GACC,CACD5F,IAAK,sBACLE,MAAO,SAA6B2wC,EAAM7wC,GACxC,IAAIkL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO9G,KAAK88D,YAAYtuB,EAAM3lC,GAAS8G,KAAI,SAAU8/C,GACnD,MAAO,GAAGz4C,OAAOrZ,GAAKqZ,OAAOy4C,EAC/B,GACF,GACC,CACD9xD,IAAK,cACLE,MAAO,SAAqB2wC,GAC1B,IAAIl3B,EAAQtX,KAER6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E46D,EAAO1hE,KAAK2hE,QAAQnzB,EAAM3lC,GAE9B,OAAK64D,EAID1hE,KAAKo+D,mBACAsD,EAAKE,kBAAkBC,iBAAiBhqD,MAAK,SAAUiqD,EAAiBC,GAC7E,OAAOlB,EAAciB,GAAmBjB,EAAckB,EACxD,IAAGpyD,KAAI,SAAUqyD,GACf,MAAO,GAAGhrD,OAAOM,EAAMzO,QAAQw6B,SAASrsB,OAAOgrD,EACjD,IAGKN,EAAKP,QAAQxxD,KAAI,SAAUsyD,GAChC,OAAO3qD,EAAMmkD,UAAUjtB,EAAMyzB,EAAQp5D,EACvC,IAbS,EAcX,GACC,CACDlL,IAAK,YACLE,MAAO,SAAmB2wC,EAAMhT,GAC9B,IAAI3yB,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E46D,EAAO1hE,KAAK2hE,QAAQnzB,EAAM3lC,GAE9B,OAAI64D,EACE1hE,KAAKo+D,mBACA,GAAGpnD,OAAOhX,KAAK6I,QAAQw6B,SAASrsB,OAAO0qD,EAAKQ,OAAO1mC,IAGrDx7B,KAAKmiE,yBAAyBT,EAAMlmC,IAG7Cx7B,KAAKuI,OAAO8C,KAAK,6BAA6B2L,OAAOw3B,IAC9C,GACT,GACC,CACD7wC,IAAK,2BACLE,MAAO,SAAkC6jE,EAAMlmC,GAC7C,IAAIs+B,EAAS95D,KAEToiE,EAAMV,EAAKW,MAAQX,EAAKN,QAAQ5lC,GAASkmC,EAAKN,QAAQ/oD,KAAKsJ,IAAI6Z,IAC/Di0B,EAASiS,EAAKP,QAAQiB,GAEtBpiE,KAAK6I,QAAQy5D,sBAAgD,IAAxBZ,EAAKP,QAAQ59D,QAAoC,IAApBm+D,EAAKP,QAAQ,KAClE,IAAX1R,EACFA,EAAS,SACW,IAAXA,IACTA,EAAS,KAIb,IAAI8S,EAAe,WACjB,OAAOzI,EAAOjxD,QAAQw6B,SAAWosB,EAAOvnD,WAAa4xD,EAAOjxD,QAAQw6B,QAAUosB,EAAOvnD,WAAaunD,EAAOvnD,UAC3G,EAEA,MAAuC,OAAnClI,KAAK6I,QAAQy4D,kBACA,IAAX7R,EAAqB,GACH,kBAAXA,EAA4B,WAAWz4C,OAAOy4C,EAAOvnD,YACzDq6D,IACqC,OAAnCviE,KAAK6I,QAAQy4D,mBAEbthE,KAAK6I,QAAQy5D,sBAAgD,IAAxBZ,EAAKP,QAAQ59D,QAAoC,IAApBm+D,EAAKP,QAAQ,GADjFoB,IAKFviE,KAAK6I,QAAQw6B,SAAW++B,EAAIl6D,WAAalI,KAAK6I,QAAQw6B,QAAU++B,EAAIl6D,WAAak6D,EAAIl6D,UAC9F,GACC,CACDvK,IAAK,mBACLE,MAAO,WACL,OAAQ+iE,EAAuBzjD,SAASnd,KAAK6I,QAAQy4D,kBACvD,KAGKD,CACT,CA7IqB,GA+IrB,SAASmB,EAAUh+D,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAASm+D,GAAgBv8D,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAKg/D,EAAUnlE,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBm1D,EAAUnlE,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,IAAIw8D,GAAe,WACjB,SAASA,IACP,IAAI75D,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnFhB,YAAgB9F,KAAM0iE,GAEtB1iE,KAAKuI,OAASwsD,EAAW51D,OAAO,gBAChCa,KAAK6I,QAAUA,EAEf7I,KAAK0lB,OAAS7c,EAAQkwD,eAAiBlwD,EAAQkwD,cAAcrzC,QAAU,SAAU7nB,GAC/E,OAAOA,CACT,EAEAmC,KAAKsjB,KAAKza,EACZ,CA8MA,OA5MAxC,YAAaq8D,EAAc,CAAC,CAC1B/kE,IAAK,OACLE,MAAO,WACL,IAAIgL,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E+B,EAAQkwD,gBAAelwD,EAAQkwD,cAAgB,CAClD4J,aAAa,IAEf,IAAIC,EAAQ/5D,EAAQkwD,cACpB/4D,KAAKo2D,YAA0Bl0D,IAAjB0gE,EAAMxM,OAAuBwM,EAAMxM,OAASA,EAC1Dp2D,KAAK2iE,iBAAoCzgE,IAAtB0gE,EAAMD,aAA4BC,EAAMD,YAC3D3iE,KAAK6iE,yBAAoD3gE,IAA9B0gE,EAAMC,qBAAoCD,EAAMC,oBAC3E7iE,KAAK8nB,OAAS86C,EAAM96C,OAASouC,EAAY0M,EAAM96C,QAAU86C,EAAME,eAAiB,KAChF9iE,KAAKyvD,OAASmT,EAAMnT,OAASyG,EAAY0M,EAAMnT,QAAUmT,EAAMG,eAAiB,KAChF/iE,KAAKgjE,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,IAChGhjE,KAAKijE,eAAiBL,EAAMM,eAAiB,GAAKN,EAAMK,gBAAkB,IAC1EjjE,KAAKkjE,eAAiBljE,KAAKijE,eAAiB,GAAKL,EAAMM,gBAAkB,GACzEljE,KAAKmjE,cAAgBP,EAAMO,cAAgBjN,EAAY0M,EAAMO,eAAiBP,EAAMQ,sBAAwBlN,EAAY,OACxHl2D,KAAKqjE,cAAgBT,EAAMS,cAAgBnN,EAAY0M,EAAMS,eAAiBT,EAAMU,sBAAwBpN,EAAY,KACxHl2D,KAAKujE,wBAA0BX,EAAMW,wBAA0BX,EAAMW,wBAA0BX,EAAMW,yBAA2B,IAChIvjE,KAAKwjE,YAAcZ,EAAMY,YAAcZ,EAAMY,YAAc,IAC3DxjE,KAAKyjE,kBAAsCvhE,IAAvB0gE,EAAMa,cAA6Bb,EAAMa,aAC7DzjE,KAAK0jE,aACP,GACC,CACD/lE,IAAK,QACLE,MAAO,WACDmC,KAAK6I,SAAS7I,KAAKsjB,KAAKtjB,KAAK6I,QACnC,GACC,CACDlL,IAAK,cACLE,MAAO,WACL,IAAI8lE,EAAY,GAAG3sD,OAAOhX,KAAK8nB,OAAQ,SAAS9Q,OAAOhX,KAAKyvD,QAC5DzvD,KAAK4jE,OAAS,IAAIz7C,OAAOw7C,EAAW,KACpC,IAAIE,EAAoB,GAAG7sD,OAAOhX,KAAK8nB,QAAQ9Q,OAAOhX,KAAKijE,eAAgB,SAASjsD,OAAOhX,KAAKkjE,gBAAgBlsD,OAAOhX,KAAKyvD,QAC5HzvD,KAAK8jE,eAAiB,IAAI37C,OAAO07C,EAAmB,KACpD,IAAIE,EAAmB,GAAG/sD,OAAOhX,KAAKmjE,cAAe,SAASnsD,OAAOhX,KAAKqjE,eAC1ErjE,KAAK45D,cAAgB,IAAIzxC,OAAO47C,EAAkB,IACpD,GACC,CACDpmE,IAAK,cACLE,MAAO,SAAqBmK,EAAKP,EAAM6vD,EAAKzuD,GAC1C,IAEI5B,EACApJ,EACAmmE,EAJA1sD,EAAQtX,KAKR+1D,EAAc/1D,KAAK6I,SAAW7I,KAAK6I,QAAQkwD,eAAiB/4D,KAAK6I,QAAQkwD,cAAcmE,kBAAoB,CAAC,EAEhH,SAAS+G,EAAU1/D,GACjB,OAAOA,EAAI4T,QAAQ,MAAO,OAC5B,CAEA,IAAI+rD,EAAe,SAAsBvmE,GACvC,GAAIA,EAAI0M,QAAQiN,EAAM0rD,iBAAmB,EAAG,CAC1C,IAAI3pD,EAAOy8C,EAAoBruD,EAAMsuD,EAAap4D,GAClD,OAAO2Z,EAAMmsD,aAAensD,EAAMoO,OAAOrM,OAAMnX,EAAWo1D,EAAKmL,GAAgBA,GAAgBA,GAAgB,CAAC,EAAG55D,GAAUpB,GAAO,CAAC,EAAG,CACtI08D,iBAAkBxmE,KACd0b,CACR,CAEA,IAAI4I,EAAItkB,EAAIuO,MAAMoL,EAAM0rD,iBACpB7kC,EAAIlc,EAAEijB,QAAQhuB,OACdhJ,EAAI+T,EAAE3E,KAAKhG,EAAM0rD,iBAAiB9rD,OACtC,OAAOI,EAAMoO,OAAOowC,EAAoBruD,EAAMsuD,EAAa53B,GAAIjwB,EAAGopD,EAAKmL,GAAgBA,GAAgBA,GAAgB,CAAC,EAAG55D,GAAUpB,GAAO,CAAC,EAAG,CAC9I08D,iBAAkBhmC,IAEtB,EAEAn+B,KAAK0jE,cACL,IAAIU,EAA8Bv7D,GAAWA,EAAQu7D,6BAA+BpkE,KAAK6I,QAAQu7D,4BAC7F7G,EAAkB10D,GAAWA,EAAQkwD,oBAA2D72D,IAA1C2G,EAAQkwD,cAAcwE,gBAAgC10D,EAAQkwD,cAAcwE,gBAAkBv9D,KAAK6I,QAAQkwD,cAAcwE,gBAsDnL,MArDY,CAAC,CACXr1C,MAAOloB,KAAK8jE,eACZO,UAAW,SAAmB9/D,GAC5B,OAAO0/D,EAAU1/D,EACnB,GACC,CACD2jB,MAAOloB,KAAK4jE,OACZS,UAAW,SAAmB9/D,GAC5B,OAAO+S,EAAMqrD,YAAcsB,EAAU3sD,EAAM8+C,OAAO7xD,IAAQ0/D,EAAU1/D,EACtE,IAEIhE,SAAQ,SAAU+jE,GAGtB,IAFAN,EAAW,EAEJ/8D,EAAQq9D,EAAKp8C,MAAMq8C,KAAKv8D,IAAM,CACnC,IAAIw8D,EAAav9D,EAAM,GAAGiQ,OAG1B,QAAchV,KAFdrE,EAAQqmE,EAAaM,IAGnB,GAA2C,oBAAhCJ,EAA4C,CACrD,IAAIK,EAAOL,EAA4Bp8D,EAAKf,EAAO4B,GACnDhL,EAAwB,kBAAT4mE,EAAoBA,EAAO,EAC5C,MAAO,GAAI57D,GAAWA,EAAQrL,eAAegnE,GAC3C3mE,EAAQ,OACH,IAAI0/D,EAAiB,CAC1B1/D,EAAQoJ,EAAM,GACd,QACF,CACEqQ,EAAM/O,OAAO8C,KAAK,8BAA8B2L,OAAOwtD,EAAY,uBAAuBxtD,OAAOhP,IAEjGnK,EAAQ,EACV,KAC0B,kBAAVA,GAAuByZ,EAAMurD,sBAC7ChlE,EAAQu3D,EAAWv3D,IAGrB,IAAIwmE,EAAYC,EAAKD,UAAUxmE,GAY/B,GAXAmK,EAAMA,EAAImQ,QAAQlR,EAAM,GAAIo9D,GAExB9G,GACF+G,EAAKp8C,MAAMw8C,WAAa7mE,EAAM0F,OAC9B+gE,EAAKp8C,MAAMw8C,WAAaz9D,EAAM,GAAG1D,QAEjC+gE,EAAKp8C,MAAMw8C,UAAY,IAGzBV,GAEgB1sD,EAAMksD,YACpB,KAEJ,CACF,IACOx7D,CACT,GACC,CACDrK,IAAK,OACLE,MAAO,SAAcmK,EAAKw4D,GACxB,IAGIv5D,EACApJ,EAJAi8D,EAAS95D,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAI/E69D,EAAgBlC,GAAgB,CAAC,EAAG55D,GAKxC,SAAS+7D,EAAiBjnE,EAAKknE,GAC7B,IAAIC,EAAM9kE,KAAKujE,wBACf,GAAI5lE,EAAI0M,QAAQy6D,GAAO,EAAG,OAAOnnE,EACjC,IAAI4a,EAAI5a,EAAIuO,MAAM,IAAIic,OAAO,GAAGnR,OAAO8tD,EAAK,WACxCC,EAAgB,IAAI/tD,OAAOuB,EAAE,IACjC5a,EAAM4a,EAAE,GAER,IAAIysD,GADJD,EAAgB/kE,KAAKy9D,YAAYsH,EAAeJ,IACR19D,MAAM,MAC1Cg+D,EAAsBF,EAAc99D,MAAM,OAE1C+9D,GAAuBA,EAAoBzhE,OAAS,IAAM,IAAM0hE,GAAuBA,EAAoB1hE,OAAS,IAAM,KAC5HwhE,EAAgBA,EAAc5sD,QAAQ,KAAM,MAG9C,IACEwsD,EAAgBvxD,KAAK4P,MAAM+hD,GACvBF,IAAkBF,EAAgBlC,GAAgBA,GAAgB,CAAC,EAAGoC,GAAmBF,GAI/F,CAHE,MAAOn4D,GAEP,OADAxM,KAAKuI,OAAO8C,KAAK,oDAAoD2L,OAAOrZ,GAAM6O,GAC3E,GAAGwK,OAAOrZ,GAAKqZ,OAAO8tD,GAAK9tD,OAAO+tD,EAC3C,CAGA,cADOJ,EAAcjJ,aACd/9D,CACT,CAEA,IA7BAgnE,EAAc9G,oBAAqB,SAC5B8G,EAAcjJ,aA4Bdz0D,EAAQjH,KAAK45D,cAAc2K,KAAKv8D,IAAM,CAC3C,IAAIk9D,EAAa,GACbC,GAAW,EAEf,IAAgD,IAA5Cl+D,EAAM,GAAGoD,QAAQrK,KAAKgjE,mBAA4B,OAAO7/C,KAAKlc,EAAM,IAAK,CAC3E,IAAImR,EAAInR,EAAM,GAAGiF,MAAMlM,KAAKgjE,iBAAiBrzD,KAAI,SAAUy1D,GACzD,OAAOA,EAAKluD,MACd,IACAjQ,EAAM,GAAKmR,EAAE8sB,QACbggC,EAAa9sD,EACb+sD,GAAW,CACb,CAGA,IADAtnE,EAAQ2iE,EAAGoE,EAAiBjlE,KAAKK,KAAMiH,EAAM,GAAGiQ,OAAQytD,GAAgBA,KAC3D19D,EAAM,KAAOe,GAAwB,kBAAVnK,EAAoB,OAAOA,EAC9C,kBAAVA,IAAoBA,EAAQu3D,EAAWv3D,IAE7CA,IACHmC,KAAKuI,OAAO8C,KAAK,qBAAqB2L,OAAO/P,EAAM,GAAI,iBAAiB+P,OAAOhP,IAC/EnK,EAAQ,IAGNsnE,IACFtnE,EAAQqnE,EAAWj1D,QAAO,SAAUuR,EAAGtT,GACrC,OAAO4rD,EAAOp0C,OAAOlE,EAAGtT,EAAGrF,EAAQyuD,IAAKmL,GAAgBA,GAAgB,CAAC,EAAG55D,GAAU,CAAC,EAAG,CACxFs7D,iBAAkBl9D,EAAM,GAAGiQ,SAE/B,GAAGrZ,EAAMqZ,SAGXlP,EAAMA,EAAImQ,QAAQlR,EAAM,GAAIpJ,GAC5BmC,KAAK4jE,OAAOc,UAAY,CAC1B,CAEA,OAAO18D,CACT,KAGK06D,CACT,CA7NmB,GA+NnB,SAAS2C,GAAU7gE,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAASghE,GAAgBp/D,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAK6hE,GAAUhoE,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBg4D,GAAUhoE,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,SAASq/D,GAAeC,GACtB,IAAIC,EAAaD,EAAUruD,cAAcD,OACrCwuD,EAAgB,CAAC,EAErB,GAAIF,EAAUn7D,QAAQ,MAAQ,EAAG,CAC/B,IAAI4X,EAAIujD,EAAUt5D,MAAM,KACxBu5D,EAAaxjD,EAAE,GAAG9K,cAAcD,OAChC,IAAIyuD,EAAS1jD,EAAE,GAAGmB,UAAU,EAAGnB,EAAE,GAAG1e,OAAS,GAE7C,GAAmB,aAAfkiE,GAA6BE,EAAOt7D,QAAQ,KAAO,EAChDq7D,EAAcE,WAAUF,EAAcE,SAAWD,EAAOzuD,aACxD,GAAmB,iBAAfuuD,GAAiCE,EAAOt7D,QAAQ,KAAO,EAC3Dq7D,EAAcG,QAAOH,EAAcG,MAAQF,EAAOzuD,YAClD,CACMyuD,EAAOz5D,MAAM,KACnB3L,SAAQ,SAAUulE,GACrB,GAAKA,EAAL,CAEA,ICxsDyB7lD,EDwsDrB8lD,EAAaD,EAAI55D,MAAM,KACvB85D,GCzsDqB/lD,EDysDE8lD,ECxsD1B,OAAA7lD,EAAA,GAAeD,IAAQ,OAAAoyB,EAAA,GAAgBpyB,IAAQ,OAAAK,EAAA,GAA2BL,IAAQ,OAAAM,EAAA,MDysD/E5iB,EAAMqoE,EAAY,GAGlBzhE,EAFOyhE,EAAYlhE,MAAM,GAEdwY,KAAK,KAAKpG,OAAOiB,QAAQ,WAAY,IAC/CutD,EAAc/nE,EAAIuZ,UAASwuD,EAAc/nE,EAAIuZ,QAAU3S,GAChD,UAARA,IAAiBmhE,EAAc/nE,EAAIuZ,SAAU,GACrC,SAAR3S,IAAgBmhE,EAAc/nE,EAAIuZ,SAAU,GAC3C5T,MAAMiB,KAAMmhE,EAAc/nE,EAAIuZ,QAAU00B,SAASrnC,EAAK,IAX3C,CAYlB,GACF,CACF,CAEA,MAAO,CACLkhE,WAAYA,EACZC,cAAeA,EAEnB,CAEA,SAASO,GAAsBzmE,GAC7B,IAAI0mE,EAAQ,CAAC,EACb,OAAO,SAAyB3hE,EAAK+yD,EAAKzuD,GACxC,IAAIlL,EAAM25D,EAAMlkD,KAAKC,UAAUxK,GAC3Bs9D,EAAYD,EAAMvoE,GAOtB,OALKwoE,IACHA,EAAY3mE,EAAG83D,EAAKzuD,GACpBq9D,EAAMvoE,GAAOwoE,GAGRA,EAAU5hE,EACnB,CACF,CAEA,IAAI6hE,GAAY,WACd,SAASA,IACP,IAAIv9D,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnFhB,YAAgB9F,KAAMomE,GAEtBpmE,KAAKuI,OAASwsD,EAAW51D,OAAO,aAChCa,KAAK6I,QAAUA,EACf7I,KAAKqmE,QAAU,CACbpE,OAAQgE,IAAsB,SAAU3O,EAAKzuD,GAC3C,IAAIs9D,EAAY,IAAI5E,KAAK+E,aAAahP,EAAKzuD,GAC3C,OAAO,SAAUtE,GACf,OAAO4hE,EAAUzgD,OAAOnhB,EAC1B,CACF,IACAqhE,SAAUK,IAAsB,SAAU3O,EAAKzuD,GAC7C,IAAIs9D,EAAY,IAAI5E,KAAK+E,aAAahP,EAAKgO,GAAgBA,GAAgB,CAAC,EAAGz8D,GAAU,CAAC,EAAG,CAC3F68B,MAAO,cAET,OAAO,SAAUnhC,GACf,OAAO4hE,EAAUzgD,OAAOnhB,EAC1B,CACF,IACAgiE,SAAUN,IAAsB,SAAU3O,EAAKzuD,GAC7C,IAAIs9D,EAAY,IAAI5E,KAAKiF,eAAelP,EAAKgO,GAAgB,CAAC,EAAGz8D,IACjE,OAAO,SAAUtE,GACf,OAAO4hE,EAAUzgD,OAAOnhB,EAC1B,CACF,IACAkiE,aAAcR,IAAsB,SAAU3O,EAAKzuD,GACjD,IAAIs9D,EAAY,IAAI5E,KAAKmF,mBAAmBpP,EAAKgO,GAAgB,CAAC,EAAGz8D,IACrE,OAAO,SAAUtE,GACf,OAAO4hE,EAAUzgD,OAAOnhB,EAAKsE,EAAQg9D,OAAS,MAChD,CACF,IACAnvD,KAAMuvD,IAAsB,SAAU3O,EAAKzuD,GACzC,IAAIs9D,EAAY,IAAI5E,KAAKoF,WAAWrP,EAAKgO,GAAgB,CAAC,EAAGz8D,IAC7D,OAAO,SAAUtE,GACf,OAAO4hE,EAAUzgD,OAAOnhB,EAC1B,CACF,KAEFvE,KAAKsjB,KAAKza,EACZ,CAuDA,OArDAxC,YAAa+/D,EAAW,CAAC,CACvBzoE,IAAK,OACLE,MAAO,SAAcg7D,GACnB,IAAIhwD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAChFiyD,cAAe,CAAC,GAEd6J,EAAQ/5D,EAAQkwD,cACpB/4D,KAAKgjE,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,gBAAkBJ,EAAMI,iBAAmB,GAClG,GACC,CACDrlE,IAAK,MACLE,MAAO,SAAaiG,EAAM08D,GACxBxgE,KAAKqmE,QAAQviE,EAAKqT,cAAcD,QAAUspD,CAC5C,GACC,CACD7iE,IAAK,YACLE,MAAO,SAAmBiG,EAAM08D,GAC9BxgE,KAAKqmE,QAAQviE,EAAKqT,cAAcD,QAAU+uD,GAAsBzF,EAClE,GACC,CACD7iE,IAAK,SACLE,MAAO,SAAgBA,EAAO+oE,EAAStP,EAAKzuD,GAC1C,IAAIyO,EAAQtX,KA2BZ,OAzBc4mE,EAAQ16D,MAAMlM,KAAKgjE,iBAEZ/yD,QAAO,SAAU42D,EAAK34D,GACzC,IAAI44D,EAAkBvB,GAAer3D,GACjCu3D,EAAaqB,EAAgBrB,WAC7BC,EAAgBoB,EAAgBpB,cAEpC,GAAIpuD,EAAM+uD,QAAQZ,GAAa,CAC7B,IAAIsB,EAAYF,EAEhB,IACE,IAAIG,EAAan+D,GAAWA,EAAQo+D,cAAgBp+D,EAAQo+D,aAAap+D,EAAQs7D,mBAAqB,CAAC,EACnGpjD,EAAIimD,EAAWvkD,QAAUukD,EAAW1P,KAAOzuD,EAAQ4Z,QAAU5Z,EAAQyuD,KAAOA,EAChFyP,EAAYzvD,EAAM+uD,QAAQZ,GAAYoB,EAAK9lD,EAAGukD,GAAgBA,GAAgBA,GAAgB,CAAC,EAAGI,GAAgB78D,GAAUm+D,GAG9H,CAFE,MAAO5lE,GACPkW,EAAM/O,OAAO8C,KAAKjK,EACpB,CAEA,OAAO2lE,CACT,CAIA,OAHEzvD,EAAM/O,OAAO8C,KAAK,oCAAoC2L,OAAOyuD,IAGxDoB,CACT,GAAGhpE,EAEL,KAGKuoE,CACT,CAnGgB,GAqGhB,SAASc,GAAU1iE,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAAS6iE,GAAgBjhE,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAK0jE,GAAU7pE,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmB65D,GAAU7pE,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,SAASkhE,GAAehoD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAU4/B,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjiD,UAAU2nB,QAAQtlB,KAAK6f,QAAQC,UAAU8/B,QAAS,IAAI,WAAa,MAAY,CAAkC,CAA1B,MAAO/yC,GAAK,OAAO,CAAO,CAAE,CAFvQ66D,GAA+B,OAAO,WAAkC,IAAsCrmE,EAAlCse,EAAQynB,YAAgB3nB,GAAkB,GAAIC,EAA2B,CAAE,IAAIE,EAAYwnB,YAAgB/mC,MAAM6D,YAAa7C,EAASwe,QAAQC,UAAUH,EAAOxY,UAAWyY,EAAY,MAASve,EAASse,EAAMvY,MAAM/G,KAAM8G,WAAc,OAAOwrC,YAA2BtyC,KAAMgB,EAAS,CAAG,CAW5a,IAAIsmE,GAAY,SAAUpQ,GACxB37C,YAAU+rD,EAAWpQ,GAErB,IAAIzoB,EAAS24B,GAAeE,GAE5B,SAASA,EAAUC,EAASC,EAAO3O,GACjC,IAAIvhD,EAEAzO,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EA4BnF,OA1BAhB,YAAgB9F,KAAMsnE,GAEtBhwD,EAAQm3B,EAAO9uC,KAAKK,MAEhBq2D,GACF32C,EAAa/f,KAAK6gB,YAAuBlJ,IAG3CA,EAAMiwD,QAAUA,EAChBjwD,EAAMkwD,MAAQA,EACdlwD,EAAMuhD,SAAWA,EACjBvhD,EAAM4kD,cAAgBrD,EAASqD,cAC/B5kD,EAAMzO,QAAUA,EAChByO,EAAM/O,OAASwsD,EAAW51D,OAAO,oBACjCmY,EAAMmwD,aAAe,GACrBnwD,EAAMowD,iBAAmB7+D,EAAQ6+D,kBAAoB,GACrDpwD,EAAMqwD,aAAe,EACrBrwD,EAAMswD,WAAa/+D,EAAQ++D,YAAc,EAAI/+D,EAAQ++D,WAAa,EAClEtwD,EAAMuwD,aAAeh/D,EAAQg/D,cAAgB,EAAIh/D,EAAQg/D,aAAe,IACxEvwD,EAAM/V,MAAQ,CAAC,EACf+V,EAAMwwD,MAAQ,GAEVxwD,EAAMiwD,SAAWjwD,EAAMiwD,QAAQjkD,MACjChM,EAAMiwD,QAAQjkD,KAAKu1C,EAAUhwD,EAAQ0+D,QAAS1+D,GAGzCyO,CACT,CAmNA,OAjNAjR,YAAaihE,EAAW,CAAC,CACvB3pE,IAAK,YACLE,MAAO,SAAmBkqE,EAAW7O,EAAYrwD,EAASwiD,GACxD,IAAIyO,EAAS95D,KAETgoE,EAAS,CAAC,EACVC,EAAU,CAAC,EACXC,EAAkB,CAAC,EACnBC,EAAmB,CAAC,EA+BxB,OA9BAJ,EAAUxnE,SAAQ,SAAU+2D,GAC1B,IAAI8Q,GAAmB,EACvBlP,EAAW34D,SAAQ,SAAU42D,GAC3B,IAAIrzD,EAAO,GAAGkT,OAAOsgD,EAAK,KAAKtgD,OAAOmgD,IAEjCtuD,EAAQw/D,QAAUvO,EAAO0N,MAAM3P,kBAAkBP,EAAKH,GACzD2C,EAAOv4D,MAAMuC,GAAQ,EACZg2D,EAAOv4D,MAAMuC,GAAQ,IAAqC,IAAvBg2D,EAAOv4D,MAAMuC,QACnC5B,IAAlB+lE,EAAQnkE,KAAqBmkE,EAAQnkE,IAAQ,IAEjDg2D,EAAOv4D,MAAMuC,GAAQ,EACrBskE,GAAmB,OACGlmE,IAAlB+lE,EAAQnkE,KAAqBmkE,EAAQnkE,IAAQ,QAC5B5B,IAAjB8lE,EAAOlkE,KAAqBkkE,EAAOlkE,IAAQ,QAClB5B,IAAzBimE,EAAiBhR,KAAmBgR,EAAiBhR,IAAM,IAEnE,IACKiR,IAAkBF,EAAgB5Q,IAAO,EAChD,KAEIj6D,OAAOiH,KAAK0jE,GAAQzkE,QAAUlG,OAAOiH,KAAK2jE,GAAS1kE,SACrDvD,KAAK8nE,MAAM9kE,KAAK,CACdilE,QAASA,EACTK,aAAcjrE,OAAOiH,KAAK2jE,GAAS1kE,OACnC0/C,OAAQ,CAAC,EACTslB,OAAQ,GACRld,SAAUA,IAIP,CACL2c,OAAQ3qE,OAAOiH,KAAK0jE,GACpBC,QAAS5qE,OAAOiH,KAAK2jE,GACrBC,gBAAiB7qE,OAAOiH,KAAK4jE,GAC7BC,iBAAkB9qE,OAAOiH,KAAK6jE,GAElC,GACC,CACDxqE,IAAK,SACLE,MAAO,SAAgBiG,EAAMpF,EAAK+I,GAChC,IAAIsG,EAAIjK,EAAKoI,MAAM,KACforD,EAAMvpD,EAAE,GACRopD,EAAKppD,EAAE,GACPrP,GAAKsB,KAAK8f,KAAK,gBAAiBw3C,EAAKH,EAAIz4D,GAEzC+I,GACFzH,KAAKwnE,MAAMgB,kBAAkBlR,EAAKH,EAAI1vD,GAGxCzH,KAAKuB,MAAMuC,GAAQpF,GAAO,EAAI,EAC9B,IAAIukD,EAAS,CAAC,EACdjjD,KAAK8nE,MAAMvnE,SAAQ,SAAUmuB,IA3tDnC,SAAkBlqB,EAAQ6U,EAAMq8C,EAAU1+C,GACxC,IAAIyxD,EAAkBpT,EAAc7wD,EAAQ6U,EAAMhc,QAC9CK,EAAM+qE,EAAgB/qE,IACtBygC,EAAIsqC,EAAgBtqC,EAExBzgC,EAAIygC,GAAKzgC,EAAIygC,IAAM,GACfnnB,IAAQtZ,EAAIygC,GAAKzgC,EAAIygC,GAAGnnB,OAAO0+C,IAC9B1+C,GAAQtZ,EAAIygC,GAAGn7B,KAAK0yD,EAC3B,CAotDQgT,CAASh6C,EAAEu0B,OAAQ,CAACqU,GAAMH,GA3GlC,SAAuBzoC,EAAG5qB,QACA5B,IAApBwsB,EAAEu5C,QAAQnkE,YACL4qB,EAAEu5C,QAAQnkE,GACjB4qB,EAAE45C,eAEN,CAuGQK,CAAcj6C,EAAG5qB,GACbpF,GAAKgwB,EAAE65C,OAAOvlE,KAAKtE,GAEA,IAAnBgwB,EAAE45C,cAAuB55C,EAAEzsB,OAC7B5E,OAAOiH,KAAKoqB,EAAEu0B,QAAQ1iD,SAAQ,SAAUwgB,GACjCkiC,EAAOliC,KAAIkiC,EAAOliC,GAAK,CAAC,GAC7B,IAAI6nD,EAAal6C,EAAEu0B,OAAOliC,GAEtB6nD,EAAWrlE,QACbqlE,EAAWroE,SAAQ,SAAU42D,QACLj1D,IAAlB+gD,EAAOliC,GAAGo2C,KAAmBlU,EAAOliC,GAAGo2C,IAAM,EACnD,GAEJ,IACAzoC,EAAEzsB,MAAO,EAELysB,EAAE65C,OAAOhlE,OACXmrB,EAAE28B,SAAS38B,EAAE65C,QAEb75C,EAAE28B,WAGR,IACArrD,KAAK8f,KAAK,SAAUmjC,GACpBjjD,KAAK8nE,MAAQ9nE,KAAK8nE,MAAM76D,QAAO,SAAUyhB,GACvC,OAAQA,EAAEzsB,IACZ,GACF,GACC,CACDtE,IAAK,OACLE,MAAO,SAAcy5D,EAAKH,EAAI0R,GAC5B,IAAI5L,EAASj9D,KAET8oE,EAAQhiE,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,EAC5EiiE,EAAOjiE,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK9G,KAAK6nE,aAChFxc,EAAWvkD,UAAUvD,OAAS,EAAIuD,UAAU,QAAK5E,EACrD,OAAKo1D,EAAI/zD,OAELvD,KAAK2nE,cAAgB3nE,KAAK0nE,sBAC5B1nE,KAAKynE,aAAazkE,KAAK,CACrBs0D,IAAKA,EACLH,GAAIA,EACJ0R,OAAQA,EACRC,MAAOA,EACPC,KAAMA,EACN1d,SAAUA,KAKdrrD,KAAK2nE,eACE3nE,KAAKunE,QAAQsB,GAAQvR,EAAKH,GAAI,SAAUz4D,EAAK+I,GAGlD,GAFAw1D,EAAO0K,eAEH1K,EAAOwK,aAAalkE,OAAS,EAAG,CAClC,IAAIjB,EAAO26D,EAAOwK,aAAaviC,QAE/B+3B,EAAO+L,KAAK1mE,EAAKg1D,IAAKh1D,EAAK60D,GAAI70D,EAAKumE,OAAQvmE,EAAKwmE,MAAOxmE,EAAKymE,KAAMzmE,EAAK+oD,SAC1E,CAEI3sD,GAAO+I,GAAQqhE,EAAQ7L,EAAO2K,WAChCjvD,YAAW,WACTskD,EAAO+L,KAAKrpE,KAAKs9D,EAAQ3F,EAAKH,EAAI0R,EAAQC,EAAQ,EAAU,EAAPC,EAAU1d,EACjE,GAAG0d,GAIL1d,EAAS3sD,EAAK+I,EAChB,KAhCwB4jD,EAAS,KAAM,CAAC,EAiC1C,GACC,CACD1tD,IAAK,iBACLE,MAAO,SAAwBkqE,EAAW7O,GACxC,IAAI8E,EAASh+D,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EukD,EAAWvkD,UAAUvD,OAAS,EAAIuD,UAAU,QAAK5E,EAErD,IAAKlC,KAAKunE,QAER,OADAvnE,KAAKuI,OAAO8C,KAAK,kEACVggD,GAAYA,IAGI,kBAAd0c,IAAwBA,EAAY/nE,KAAKk8D,cAAcI,mBAAmByL,IAC3D,kBAAf7O,IAAyBA,EAAa,CAACA,IAClD,IAAI8O,EAAShoE,KAAKipE,UAAUlB,EAAW7O,EAAYrwD,EAASwiD,GAE5D,IAAK2c,EAAOA,OAAOzkE,OAEjB,OADKykE,EAAOC,QAAQ1kE,QAAQ8nD,IACrB,KAGT2c,EAAOA,OAAOznE,SAAQ,SAAUuD,GAC9Bk6D,EAAOkL,QAAQplE,EACjB,GACF,GACC,CACDnG,IAAK,OACLE,MAAO,SAAckqE,EAAW7O,EAAY7N,GAC1CrrD,KAAKmpE,eAAepB,EAAW7O,EAAY,CAAC,EAAG7N,EACjD,GACC,CACD1tD,IAAK,SACLE,MAAO,SAAgBkqE,EAAW7O,EAAY7N,GAC5CrrD,KAAKmpE,eAAepB,EAAW7O,EAAY,CACzCmP,QAAQ,GACPhd,EACL,GACC,CACD1tD,IAAK,UACLE,MAAO,SAAiBiG,GACtB,IAAIslE,EAASppE,KAET8nB,EAAShhB,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,GAC7EiH,EAAIjK,EAAKoI,MAAM,KACforD,EAAMvpD,EAAE,GACRopD,EAAKppD,EAAE,GACX/N,KAAKgpE,KAAK1R,EAAKH,EAAI,YAAQj1D,OAAWA,GAAW,SAAUxD,EAAK+I,GAC1D/I,GAAK0qE,EAAO7gE,OAAO8C,KAAK,GAAG2L,OAAO8Q,EAAQ,sBAAsB9Q,OAAOmgD,EAAI,kBAAkBngD,OAAOsgD,EAAK,WAAY54D,IACpHA,GAAO+I,GAAM2hE,EAAO7gE,OAAOU,IAAI,GAAG+N,OAAO8Q,EAAQ,qBAAqB9Q,OAAOmgD,EAAI,kBAAkBngD,OAAOsgD,GAAM7vD,GAErH2hE,EAAOnmB,OAAOn/C,EAAMpF,EAAK+I,EAC3B,GACF,GACC,CACD9J,IAAK,cACLE,MAAO,SAAqBkqE,EAAWhlB,EAAWplD,EAAK0rE,EAAeC,GACpE,IAAIzgE,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E9G,KAAK64D,SAAS0F,OAASv+D,KAAK64D,SAAS0F,MAAMC,qBAAuBx+D,KAAK64D,SAAS0F,MAAMC,mBAAmBzb,GAC3G/iD,KAAKuI,OAAO8C,KAAK,qBAAsB2L,OAAOrZ,EAAK,wBAA0BqZ,OAAO+rC,EAAW,wBAA0B,iOAI/G7gD,IAARvE,GAA6B,OAARA,GAAwB,KAARA,IAErCqC,KAAKunE,SAAWvnE,KAAKunE,QAAQpoE,QAC/Ba,KAAKunE,QAAQpoE,OAAO4oE,EAAWhlB,EAAWplD,EAAK0rE,EAAe,KAAMlC,GAAgBA,GAAgB,CAAC,EAAGt+D,GAAU,CAAC,EAAG,CACpHygE,SAAUA,KAITvB,GAAcA,EAAU,IAC7B/nE,KAAKwnE,MAAM9P,YAAYqQ,EAAU,GAAIhlB,EAAWplD,EAAK0rE,GACvD,KAGK/B,CACT,CAzPgB,CAyPd5nD,GAEF,SAAS5J,KACP,MAAO,CACLs+C,OAAO,EACPmV,eAAe,EACfpS,GAAI,CAAC,eACLC,UAAW,CAAC,eACZgF,YAAa,CAAC,OACd8B,YAAY,EACZoB,eAAe,EACfO,0BAA0B,EAC1BD,KAAM,MACN4J,SAAS,EACTlH,sBAAsB,EACtB3L,aAAc,IACdsC,YAAa,IACb6F,gBAAiB,IACjBE,iBAAkB,IAClByK,yBAAyB,EACzB7M,aAAa,EACbd,eAAe,EACfO,cAAe,WACfQ,oBAAoB,EACpBH,mBAAmB,EACnB0H,6BAA6B,EAC7BzG,aAAa,EACbG,yBAAyB,EACzBmB,YAAY,EACZC,mBAAmB,EACnBpE,eAAe,EACfJ,YAAY,EACZK,uBAAuB,EACvBiC,wBAAwB,EACxBD,6BAA6B,EAC7B5C,yBAAyB,EACzBJ,iCAAkC,SAAgBlzD,GAChD,IAAIs9B,EAAM,CAAC,EAKX,GAJyB,WAArBoJ,YAAQ1mC,EAAK,MAAkBs9B,EAAMt9B,EAAK,IACvB,kBAAZA,EAAK,KAAiBs9B,EAAIu3B,aAAe70D,EAAK,IAClC,kBAAZA,EAAK,KAAiBs9B,EAAIulC,aAAe7iE,EAAK,IAEhC,WAArB0mC,YAAQ1mC,EAAK,KAAyC,WAArB0mC,YAAQ1mC,EAAK,IAAkB,CAClE,IAAIgC,EAAUhC,EAAK,IAAMA,EAAK,GAC9BxJ,OAAOiH,KAAKuE,GAAStI,SAAQ,SAAU5C,GACrCwmC,EAAIxmC,GAAOkL,EAAQlL,EACrB,GACF,CAEA,OAAOwmC,CACT,EACA40B,cAAe,CACb4J,aAAa,EACbj9C,OAAQ,SAAgB7nB,EAAO+oE,EAAStP,EAAKzuD,GAC3C,OAAOhL,CACT,EACAiqB,OAAQ,KACR2nC,OAAQ,KACRuT,gBAAiB,IACjBC,eAAgB,IAChBE,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACbjG,iBAAiB,GAGvB,CACA,SAASoM,GAAiB9gE,GASxB,MAR0B,kBAAfA,EAAQsuD,KAAiBtuD,EAAQsuD,GAAK,CAACtuD,EAAQsuD,KACvB,kBAAxBtuD,EAAQuzD,cAA0BvzD,EAAQuzD,YAAc,CAACvzD,EAAQuzD,cAC1C,kBAAvBvzD,EAAQq1D,aAAyBr1D,EAAQq1D,WAAa,CAACr1D,EAAQq1D,aAEtEr1D,EAAQy2D,eAAiBz2D,EAAQy2D,cAAcj1D,QAAQ,UAAY,IACrExB,EAAQy2D,cAAgBz2D,EAAQy2D,cAActoD,OAAO,CAAC,YAGjDnO,CACT,CAEA,SAAS+gE,GAAUplE,EAAQsI,GAAkB,IAAIxI,EAAOjH,OAAOiH,KAAKE,GAAS,GAAInH,OAAO0P,sBAAuB,CAAE,IAAIC,EAAU3P,OAAO0P,sBAAsBvI,GAAasI,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO7P,OAAO8P,yBAAyB3I,EAAQ0I,GAAK3O,UAAY,KAAM+F,EAAKtB,KAAK+D,MAAMzC,EAAM0I,EAAU,CAAE,OAAO1I,CAAM,CAE1V,SAASulE,GAAgB3jE,GAAU,IAAK,IAAI1C,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAAK,CAAE,IAAI6J,EAAyB,MAAhBvG,UAAUtD,GAAasD,UAAUtD,GAAK,CAAC,EAAOA,EAAI,EAAKomE,GAAUvsE,OAAOgQ,IAAS,GAAM9M,SAAQ,SAAU5C,GAAOkrB,YAAgB3iB,EAAQvI,EAAK0P,EAAO1P,GAAO,IAAeN,OAAOiQ,0BAA6BjQ,OAAOkQ,iBAAiBrH,EAAQ7I,OAAOiQ,0BAA0BD,IAAmBu8D,GAAUvsE,OAAOgQ,IAAS9M,SAAQ,SAAU5C,GAAON,OAAOI,eAAeyI,EAAQvI,EAAKN,OAAO8P,yBAAyBE,EAAQ1P,GAAO,GAAM,CAAE,OAAOuI,CAAQ,CAE3hB,SAAS4jE,GAAe1qD,GAAW,IAAIC,EAEvC,WAAyC,GAAuB,qBAAZG,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAU4/B,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQjiD,UAAU2nB,QAAQtlB,KAAK6f,QAAQC,UAAU8/B,QAAS,IAAI,WAAa,MAAY,CAAkC,CAA1B,MAAO/yC,GAAK,OAAO,CAAO,CAAE,CAFvQu9D,GAA+B,OAAO,WAAkC,IAAsC/oE,EAAlCse,EAAQynB,YAAgB3nB,GAAkB,GAAIC,EAA2B,CAAE,IAAIE,EAAYwnB,YAAgB/mC,MAAM6D,YAAa7C,EAASwe,QAAQC,UAAUH,EAAOxY,UAAWyY,EAAY,MAASve,EAASse,EAAMvY,MAAM/G,KAAM8G,WAAc,OAAOwrC,YAA2BtyC,KAAMgB,EAAS,CAAG,CAI5a,SAASgpC,KAAQ,CAEjB,SAASggC,GAAoBC,GAChB5sE,OAAOgS,oBAAoBhS,OAAO6C,eAAe+pE,IACvD1pE,SAAQ,SAAUsmE,GACI,oBAAdoD,EAAKpD,KACdoD,EAAKpD,GAAOoD,EAAKpD,GAAK9iC,KAAKkmC,GAE/B,GACF,CAEA,IAAIC,GAAO,SAAUhT,GACnB37C,YAAU2uD,EAAMhT,GAEhB,IAAIzoB,EAASq7B,GAAeI,GAE5B,SAASA,IACP,IAAI5yD,EAEAzO,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EukD,EAAWvkD,UAAUvD,OAAS,EAAIuD,UAAU,QAAK5E,EAkBrD,GAhBA4D,YAAgB9F,KAAMkqE,GAEtB5yD,EAAQm3B,EAAO9uC,KAAKK,MAEhBq2D,GACF32C,EAAa/f,KAAK6gB,YAAuBlJ,IAG3CA,EAAMzO,QAAU8gE,GAAiB9gE,GACjCyO,EAAMuhD,SAAW,CAAC,EAClBvhD,EAAM/O,OAASwsD,EACfz9C,EAAM6yD,QAAU,CACdC,SAAU,IAEZJ,GAAoBxpD,YAAuBlJ,IAEvC+zC,IAAa/zC,EAAM+yD,gBAAkBxhE,EAAQyhE,QAAS,CACxD,IAAKhzD,EAAMzO,QAAQ0gE,cAGjB,OAFAjyD,EAAMgM,KAAKza,EAASwiD,GAEb/Y,YAA2Bh7B,EAAOkJ,YAAuBlJ,IAGlEqB,YAAW,WACTrB,EAAMgM,KAAKza,EAASwiD,EACtB,GAAG,EACL,CAEA,OAAO/zC,CACT,CAsiBA,OApiBAjR,YAAa6jE,EAAM,CAAC,CAClBvsE,IAAK,OACLE,MAAO,WACL,IAAIi8D,EAAS95D,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EukD,EAAWvkD,UAAUvD,OAAS,EAAIuD,UAAU,QAAK5E,EAE9B,oBAAZ2G,IACTwiD,EAAWxiD,EACXA,EAAU,CAAC,IAGRA,EAAQuuD,YAAmC,IAAtBvuD,EAAQuuD,WAAuBvuD,EAAQsuD,KACrC,kBAAftuD,EAAQsuD,GACjBtuD,EAAQuuD,UAAYvuD,EAAQsuD,GACnBtuD,EAAQsuD,GAAG9sD,QAAQ,eAAiB,IAC7CxB,EAAQuuD,UAAYvuD,EAAQsuD,GAAG,KAInC,IAAIoT,EAAUz0D,KAed,SAAS00D,EAAoBC,GAC3B,OAAKA,EACwB,oBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,IAG7B,CAEA,GApBAzqE,KAAK6I,QAAUghE,GAAgBA,GAAgBA,GAAgB,CAAC,EAAGU,GAAUvqE,KAAK6I,SAAU8gE,GAAiB9gE,IAEvE,OAAlC7I,KAAK6I,QAAQmvD,mBACfh4D,KAAK6I,QAAQkwD,cAAgB8Q,GAAgBA,GAAgB,CAAC,EAAGU,EAAQxR,eAAgB/4D,KAAK6I,QAAQkwD,qBAG3E72D,IAAzB2G,EAAQ8tD,eACV32D,KAAK6I,QAAQwwD,wBAA0BxwD,EAAQ8tD,mBAGrBz0D,IAAxB2G,EAAQowD,cACVj5D,KAAK6I,QAAQywD,uBAAyBzwD,EAAQowD,cAS3Cj5D,KAAK6I,QAAQyhE,QAAS,CAOzB,IAAInE,EANAnmE,KAAKmqE,QAAQ5hE,OACfwsD,EAAWzxC,KAAKknD,EAAoBxqE,KAAKmqE,QAAQ5hE,QAASvI,KAAK6I,SAE/DksD,EAAWzxC,KAAK,KAAMtjB,KAAK6I,SAKzB7I,KAAKmqE,QAAQhE,UACfA,EAAYnmE,KAAKmqE,QAAQhE,UACA,qBAAT5E,OAChB4E,EAAYC,IAGd,IAAIsE,EAAK,IAAIrL,EAAar/D,KAAK6I,SAC/B7I,KAAKwnE,MAAQ,IAAIvQ,EAAcj3D,KAAK6I,QAAQ4uD,UAAWz3D,KAAK6I,SAC5D,IAAIkF,EAAI/N,KAAK64D,SACb9qD,EAAExF,OAASwsD,EACXhnD,EAAEoxD,cAAgBn/D,KAAKwnE,MACvBz5D,EAAEmuD,cAAgBwO,EAClB38D,EAAEytD,eAAiB,IAAI6F,EAAeqJ,EAAI,CACxCrnC,QAASrjC,KAAK6I,QAAQi2D,gBACtBwC,kBAAmBthE,KAAK6I,QAAQy4D,kBAChCgB,qBAAsBtiE,KAAK6I,QAAQy5D,wBAGjC6D,GAAenmE,KAAK6I,QAAQkwD,cAAcrzC,QAAU1lB,KAAK6I,QAAQkwD,cAAcrzC,SAAW6kD,EAAQxR,cAAcrzC,SAClH3X,EAAEo4D,UAAYqE,EAAoBrE,GAClCp4D,EAAEo4D,UAAU7iD,KAAKvV,EAAG/N,KAAK6I,SACzB7I,KAAK6I,QAAQkwD,cAAcrzC,OAAS3X,EAAEo4D,UAAUzgD,OAAOqe,KAAKh2B,EAAEo4D,YAGhEp4D,EAAE4rD,aAAe,IAAI+I,GAAa1iE,KAAK6I,SACvCkF,EAAEwwD,MAAQ,CACRC,mBAAoBx+D,KAAKw+D,mBAAmBz6B,KAAK/jC,OAEnD+N,EAAE4uD,iBAAmB,IAAI2K,GAAUkD,EAAoBxqE,KAAKmqE,QAAQ5C,SAAUx5D,EAAEoxD,cAAepxD,EAAG/N,KAAK6I,SACvGkF,EAAE4uD,iBAAiBlnD,GAAG,KAAK,SAAUE,GACnC,IAAK,IAAI+6C,EAAO5pD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM8iD,EAAO,EAAIA,EAAO,EAAI,GAAIra,EAAO,EAAGA,EAAOqa,EAAMra,IAClGxvC,EAAKwvC,EAAO,GAAKvvC,UAAUuvC,GAG7ByjB,EAAOh6C,KAAK/Y,MAAM+yD,EAAQ,CAACnkD,GAAOqB,OAAOnQ,GAC3C,IAEI7G,KAAKmqE,QAAQQ,mBACf58D,EAAE48D,iBAAmBH,EAAoBxqE,KAAKmqE,QAAQQ,kBACtD58D,EAAE48D,iBAAiBrnD,KAAKvV,EAAG/N,KAAK6I,QAAQ+hE,UAAW5qE,KAAK6I,UAGtD7I,KAAKmqE,QAAQvP,aACf7sD,EAAE6sD,WAAa4P,EAAoBxqE,KAAKmqE,QAAQvP,YAC5C7sD,EAAE6sD,WAAWt3C,MAAMvV,EAAE6sD,WAAWt3C,KAAKtjB,OAG3CA,KAAKq4D,WAAa,IAAIO,EAAW54D,KAAK64D,SAAU74D,KAAK6I,SACrD7I,KAAKq4D,WAAW5iD,GAAG,KAAK,SAAUE,GAChC,IAAK,IAAI4+C,EAAQztD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM2mD,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG3tD,EAAK2tD,EAAQ,GAAK1tD,UAAU0tD,GAG9BsF,EAAOh6C,KAAK/Y,MAAM+yD,EAAQ,CAACnkD,GAAOqB,OAAOnQ,GAC3C,IACA7G,KAAKmqE,QAAQC,SAAS7pE,SAAQ,SAAU+gB,GAClCA,EAAEgC,MAAMhC,EAAEgC,KAAKw2C,EACrB,GACF,CAKA,GAHA95D,KAAK0lB,OAAS1lB,KAAK6I,QAAQkwD,cAAcrzC,OACpC2lC,IAAUA,EAAWrhB,IAEtBhqC,KAAK6I,QAAQuzD,cAAgBp8D,KAAK64D,SAAS8R,mBAAqB3qE,KAAK6I,QAAQyuD,IAAK,CACpF,IAAIgH,EAAQt+D,KAAK64D,SAASqD,cAAcC,iBAAiBn8D,KAAK6I,QAAQuzD,aAClEkC,EAAM/6D,OAAS,GAAkB,QAAb+6D,EAAM,KAAct+D,KAAK6I,QAAQyuD,IAAMgH,EAAM,GACvE,CAEKt+D,KAAK64D,SAAS8R,kBAAqB3qE,KAAK6I,QAAQyuD,KACnDt3D,KAAKuI,OAAO8C,KAAK,2DAGnB,IAAIw/D,EAAW,CAAC,cAAe,oBAAqB,oBAAqB,qBACzEA,EAAStqE,SAAQ,SAAUsoE,GACzB/O,EAAO+O,GAAU,WACf,IAAIiC,EAEJ,OAAQA,EAAehR,EAAO0N,OAAOqB,GAAQ9hE,MAAM+jE,EAAchkE,UACnE,CACF,IACA,IAAIikE,EAAkB,CAAC,cAAe,eAAgB,oBAAqB,wBAC3EA,EAAgBxqE,SAAQ,SAAUsoE,GAChC/O,EAAO+O,GAAU,WACf,IAAImC,EAIJ,OAFCA,EAAgBlR,EAAO0N,OAAOqB,GAAQ9hE,MAAMikE,EAAelkE,WAErDgzD,CACT,CACF,IACA,IAAItgD,EAAWD,IAEXqmD,EAAO,WACT,IAAIl6D,EAAS,SAAgBhH,EAAKgiB,GAC5Bo5C,EAAOuQ,gBAAkBvQ,EAAOmR,sBAAsBnR,EAAOvxD,OAAO8C,KAAK,yEAC7EyuD,EAAOuQ,eAAgB,EAClBvQ,EAAOjxD,QAAQyhE,SAASxQ,EAAOvxD,OAAOU,IAAI,cAAe6wD,EAAOjxD,SAErEixD,EAAOh6C,KAAK,cAAeg6C,EAAOjxD,SAElC2Q,EAAS3Y,QAAQ6f,GACjB2qC,EAAS3sD,EAAKgiB,EAChB,EAEA,GAAIo5C,EAAOiO,WAAiD,OAApCjO,EAAOjxD,QAAQmvD,mBAA8B8B,EAAOuQ,cAAe,OAAO3kE,EAAO,KAAMo0D,EAAOp5C,EAAEqjB,KAAK+1B,IAE7HA,EAAOoR,eAAepR,EAAOjxD,QAAQyuD,IAAK5xD,EAC5C,EAQA,OANI1F,KAAK6I,QAAQ4uD,YAAcz3D,KAAK6I,QAAQ0gE,cAC1C3J,IAEAjnD,WAAWinD,EAAM,GAGZpmD,CACT,GACC,CACD7b,IAAK,gBACLE,MAAO,SAAuBi7D,GAC5B,IAAImE,EAASj9D,KAETqrD,EAAWvkD,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAKkjC,GAC/EmhC,EAAe9f,EACf8R,EAA8B,kBAAbrE,EAAwBA,EAAW94D,KAAK84D,SAG7D,GAFwB,oBAAbA,IAAyBqS,EAAerS,IAE9C94D,KAAK6I,QAAQ4uD,WAAaz3D,KAAK6I,QAAQ4gE,wBAAyB,CACnE,GAAItM,GAAqC,WAA1BA,EAAQhmD,cAA4B,OAAOg0D,IAC1D,IAAInD,EAAS,GAEToD,EAAS,SAAgB9T,GACtBA,GAEM2F,EAAOpE,SAASqD,cAAcI,mBAAmBhF,GAEvD/2D,SAAQ,SAAUwgB,GACjBinD,EAAO39D,QAAQ0W,GAAK,GAAGinD,EAAOhlE,KAAK+d,EACzC,GACF,EAEA,GAAKo8C,EAMHiO,EAAOjO,OANK,CACZ,IAAIgD,EAAYngE,KAAK64D,SAASqD,cAAcC,iBAAiBn8D,KAAK6I,QAAQuzD,aAC1E+D,EAAU5/D,SAAQ,SAAUwgB,GAC1B,OAAOqqD,EAAOrqD,EAChB,GACF,CAII/gB,KAAK6I,QAAQ2gE,SACfxpE,KAAK6I,QAAQ2gE,QAAQjpE,SAAQ,SAAUwgB,GACrC,OAAOqqD,EAAOrqD,EAChB,IAGF/gB,KAAK64D,SAAS8D,iBAAiBiD,KAAKoI,EAAQhoE,KAAK6I,QAAQsuD,IAAI,SAAU3qD,GAChEA,GAAMywD,EAAOoO,mBAAoBpO,EAAOnE,UAAUmE,EAAOqO,oBAAoBrO,EAAOnE,UACzFqS,EAAa3+D,EACf,GACF,MACE2+D,EAAa,KAEjB,GACC,CACDxtE,IAAK,kBACLE,MAAO,SAAyBm+D,EAAM7E,EAAI9L,GACxC,IAAI7xC,EAAWD,IAQf,OAPKyiD,IAAMA,EAAOh8D,KAAK+nE,WAClB5Q,IAAIA,EAAKn3D,KAAK6I,QAAQsuD,IACtB9L,IAAUA,EAAWrhB,IAC1BhqC,KAAK64D,SAAS8D,iBAAiB0L,OAAOrM,EAAM7E,GAAI,SAAUz4D,GACxD8a,EAAS3Y,UACTwqD,EAAS3sD,EACX,IACO8a,CACT,GACC,CACD7b,IAAK,MACLE,MAAO,SAAa8d,GAClB,IAAKA,EAAQ,MAAM,IAAIna,MAAM,iGAC7B,IAAKma,EAAOjc,KAAM,MAAM,IAAI8B,MAAM,4FA8BlC,MA5BoB,YAAhBma,EAAOjc,OACTM,KAAKmqE,QAAQ5C,QAAU5rD,IAGL,WAAhBA,EAAOjc,MAAqBic,EAAO1S,KAAO0S,EAAOtQ,MAAQsQ,EAAOva,SAClEpB,KAAKmqE,QAAQ5hE,OAASoT,GAGJ,qBAAhBA,EAAOjc,OACTM,KAAKmqE,QAAQQ,iBAAmBhvD,GAGd,eAAhBA,EAAOjc,OACTM,KAAKmqE,QAAQvP,WAAaj/C,GAGR,kBAAhBA,EAAOjc,MACTw4D,EAAcE,iBAAiBz8C,GAGb,cAAhBA,EAAOjc,OACTM,KAAKmqE,QAAQhE,UAAYxqD,GAGP,aAAhBA,EAAOjc,MACTM,KAAKmqE,QAAQC,SAASpnE,KAAK2Y,GAGtB3b,IACT,GACC,CACDrC,IAAK,sBACLE,MAAO,SAA6BkjB,GAClC,GAAKA,GAAM/gB,KAAK+nE,aACZ,CAAC,SAAU,OAAO19D,QAAQ0W,IAAM,GAEpC,IAAK,IAAIwqD,EAAK,EAAGA,EAAKvrE,KAAK+nE,UAAUxkE,OAAQgoE,IAAM,CACjD,IAAIC,EAAYxrE,KAAK+nE,UAAUwD,GAC/B,KAAI,CAAC,SAAU,OAAOlhE,QAAQmhE,IAAc,IAExCxrE,KAAKwnE,MAAMiE,4BAA4BD,GAAY,CACrDxrE,KAAKqrE,iBAAmBG,EACxB,KACF,CACF,CACF,GACC,CACD7tE,IAAK,iBACLE,MAAO,SAAwBy5D,EAAKjM,GAClC,IAAI2S,EAASh+D,KAEbA,KAAK0rE,qBAAuBpU,EAC5B,IAAI99C,EAAWD,IACfvZ,KAAK8f,KAAK,mBAAoBw3C,GAE9B,IAAIqU,EAAc,SAAqB5qD,GACrCi9C,EAAOlF,SAAW/3C,EAClBi9C,EAAO+J,UAAY/J,EAAOnF,SAASqD,cAAcI,mBAAmBv7C,GACpEi9C,EAAOqN,sBAAmBnpE,EAE1B87D,EAAOsN,oBAAoBvqD,EAC7B,EAyBI6qD,EAAS,SAAgB5P,GACtB1E,GAAQ0E,IAAQgC,EAAOnF,SAAS8R,mBAAkB3O,EAAO,IAC9D,IAAIj7C,EAAoB,kBAATi7C,EAAoBA,EAAOgC,EAAOnF,SAASqD,cAAc2P,sBAAsB7P,GAE1Fj7C,IACGi9C,EAAOlF,UACV6S,EAAY5qD,GAGTi9C,EAAO3F,WAAWS,UAAUkF,EAAO3F,WAAW6S,eAAenqD,GAC9Di9C,EAAOnF,SAAS8R,kBAAkB3M,EAAOnF,SAAS8R,iBAAiBmB,kBAAkB/qD,IAG3Fi9C,EAAO+N,cAAchrD,GAAG,SAAUriB,IApCzB,SAAcA,EAAKqiB,GACxBA,GACF4qD,EAAY5qD,GAEZi9C,EAAO3F,WAAW6S,eAAenqD,GAEjCi9C,EAAO0N,0BAAuBxpE,EAE9B87D,EAAOl+C,KAAK,kBAAmBiB,GAE/Bi9C,EAAOz1D,OAAOU,IAAI,kBAAmB8X,IAErCi9C,EAAO0N,0BAAuBxpE,EAGhCsX,EAAS3Y,SAAQ,WACf,OAAOm9D,EAAOt9C,EAAE3Z,MAAMi3D,EAAQl3D,UAChC,IACIukD,GAAUA,EAAS3sD,GAAK,WAC1B,OAAOs/D,EAAOt9C,EAAE3Z,MAAMi3D,EAAQl3D,UAChC,GACF,CAgBI7E,CAAKvD,EAAKqiB,EACZ,GACF,EAUA,OARKu2C,IAAOt3D,KAAK64D,SAAS8R,kBAAqB3qE,KAAK64D,SAAS8R,iBAAiBxmE,OAElEmzD,GAAOt3D,KAAK64D,SAAS8R,kBAAoB3qE,KAAK64D,SAAS8R,iBAAiBxmE,MAClFnE,KAAK64D,SAAS8R,iBAAiBqB,OAAOJ,GAEtCA,EAAOtU,GAJPsU,EAAO5rE,KAAK64D,SAAS8R,iBAAiBqB,UAOjCxyD,CACT,GACC,CACD7b,IAAK,YACLE,MAAO,SAAmBy5D,EAAKH,EAAI8U,GACjC,IAAI7C,EAASppE,KAETksE,EAAS,SAASA,EAAOvuE,EAAKwuE,GAChC,IAAItjE,EAEJ,GAAsB,WAAlB0kC,YAAQ4+B,GAAoB,CAC9B,IAAK,IAAI1X,EAAQ3tD,UAAUvD,OAAQmmD,EAAO,IAAI97C,MAAM6mD,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGhL,EAAKgL,EAAQ,GAAK5tD,UAAU4tD,GAG9B7rD,EAAUugE,EAAOvgE,QAAQkxD,iCAAiC,CAACp8D,EAAKwuE,GAAMn1D,OAAO0yC,GAC/E,MACE7gD,EAAUghE,GAAgB,CAAC,EAAGsC,GAGhCtjE,EAAQyuD,IAAMzuD,EAAQyuD,KAAO4U,EAAO5U,IACpCzuD,EAAQmzD,KAAOnzD,EAAQmzD,MAAQkQ,EAAOlQ,KACtCnzD,EAAQsuD,GAAKtuD,EAAQsuD,IAAM+U,EAAO/U,GAClCtuD,EAAQojE,UAAYpjE,EAAQojE,WAAaA,GAAaC,EAAOD,UAC7D,IAAItV,EAAeyS,EAAOvgE,QAAQ8tD,cAAgB,IAC9CyV,EAAYvjE,EAAQojE,UAAY,GAAGj1D,OAAOnO,EAAQojE,WAAWj1D,OAAO2/C,GAAc3/C,OAAOrZ,GAAOA,EACpG,OAAOyrE,EAAO1oD,EAAE0rD,EAAWvjE,EAC7B,EAUA,MARmB,kBAARyuD,EACT4U,EAAO5U,IAAMA,EAEb4U,EAAOlQ,KAAO1E,EAGhB4U,EAAO/U,GAAKA,EACZ+U,EAAOD,UAAYA,EACZC,CACT,GACC,CACDvuE,IAAK,IACLE,MAAO,WACL,IAAIwuE,EAEJ,OAAOrsE,KAAKq4D,aAAegU,EAAmBrsE,KAAKq4D,YAAYvrC,UAAU/lB,MAAMslE,EAAkBvlE,UACnG,GACC,CACDnJ,IAAK,SACLE,MAAO,WACL,IAAIyuE,EAEJ,OAAOtsE,KAAKq4D,aAAeiU,EAAoBtsE,KAAKq4D,YAAYkU,OAAOxlE,MAAMulE,EAAmBxlE,UAClG,GACC,CACDnJ,IAAK,sBACLE,MAAO,SAA6Bs5D,GAClCn3D,KAAK6I,QAAQuuD,UAAYD,CAC3B,GACC,CACDx5D,IAAK,qBACLE,MAAO,SAA4Bs5D,GACjC,IAAIqV,EAASxsE,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,IAAK9G,KAAKqqE,cAER,OADArqE,KAAKuI,OAAO8C,KAAK,kDAAmDrL,KAAK+nE,YAClE,EAGT,IAAK/nE,KAAK+nE,YAAc/nE,KAAK+nE,UAAUxkE,OAErC,OADAvD,KAAKuI,OAAO8C,KAAK,6DAA8DrL,KAAK+nE,YAC7E,EAGT,IAAIzQ,EAAMt3D,KAAKqrE,kBAAoBrrE,KAAK+nE,UAAU,GAC9C3L,IAAcp8D,KAAK6I,SAAU7I,KAAK6I,QAAQuzD,YAC1CqQ,EAAUzsE,KAAK+nE,UAAU/nE,KAAK+nE,UAAUxkE,OAAS,GACrD,GAA0B,WAAtB+zD,EAAIngD,cAA4B,OAAO,EAE3C,IAAIu1D,EAAiB,SAAwB3rD,EAAG/S,GAC9C,IAAI2+D,EAAYH,EAAO3T,SAAS8D,iBAAiBp7D,MAAM,GAAGyV,OAAO+J,EAAG,KAAK/J,OAAOhJ,IAEhF,OAAsB,IAAf2+D,GAAkC,IAAdA,CAC7B,EAEA,GAAI9jE,EAAQ+jE,SAAU,CACpB,IAAIC,EAAYhkE,EAAQ+jE,SAAS5sE,KAAM0sE,GACvC,QAAkBxqE,IAAd2qE,EAAyB,OAAOA,CACtC,CAEA,QAAI7sE,KAAK63D,kBAAkBP,EAAKH,OAC3Bn3D,KAAK64D,SAAS8D,iBAAiB4K,WAAWvnE,KAAK6I,QAAQ4uD,WAAcz3D,KAAK6I,QAAQ4gE,8BACnFiD,EAAepV,EAAKH,IAASiF,IAAesQ,EAAeD,EAAStV,IAE1E,GACC,CACDx5D,IAAK,iBACLE,MAAO,SAAwBs5D,EAAI9L,GACjC,IAAIyhB,EAAS9sE,KAETwZ,EAAWD,IAEf,OAAKvZ,KAAK6I,QAAQsuD,IAKA,kBAAPA,IAAiBA,EAAK,CAACA,IAClCA,EAAG52D,SAAQ,SAAUyN,GACf8+D,EAAOjkE,QAAQsuD,GAAG9sD,QAAQ2D,GAAK,GAAG8+D,EAAOjkE,QAAQsuD,GAAGn0D,KAAKgL,EAC/D,IACAhO,KAAK+rE,eAAc,SAAUrtE,GAC3B8a,EAAS3Y,UACLwqD,GAAUA,EAAS3sD,EACzB,IACO8a,IAZL6xC,GAAYA,IACLjnD,QAAQvD,UAYnB,GACC,CACDlD,IAAK,gBACLE,MAAO,SAAuBm+D,EAAM3Q,GAClC,IAAI7xC,EAAWD,IACK,kBAATyiD,IAAmBA,EAAO,CAACA,IACtC,IAAI+Q,EAAY/sE,KAAK6I,QAAQ2gE,SAAW,GACpCwD,EAAUhR,EAAK/uD,QAAO,SAAUqqD,GAClC,OAAOyV,EAAU1iE,QAAQitD,GAAO,CAClC,IAEA,OAAK0V,EAAQzpE,QAKbvD,KAAK6I,QAAQ2gE,QAAUuD,EAAU/1D,OAAOg2D,GACxChtE,KAAK+rE,eAAc,SAAUrtE,GAC3B8a,EAAS3Y,UACLwqD,GAAUA,EAAS3sD,EACzB,IACO8a,IATD6xC,GAAUA,IACPjnD,QAAQvD,UASnB,GACC,CACDlD,IAAK,MACLE,MAAO,SAAay5D,GAElB,GADKA,IAAKA,EAAMt3D,KAAKqrE,mBAAqBrrE,KAAK+nE,WAAa/nE,KAAK+nE,UAAUxkE,OAAS,EAAIvD,KAAK+nE,UAAU,GAAK/nE,KAAK84D,YAC5GxB,EAAK,MAAO,MAEjB,MADc,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,OACjajtD,QAAQrK,KAAK64D,SAASqD,cAAc4D,wBAAwBxI,KAAS,GAAKA,EAAIngD,cAAc9M,QAAQ,SAAW,EAAI,MAAQ,KAC5I,GACC,CACD1M,IAAK,gBACLE,MAAO,WACL,IAAIovE,EAASjtE,KAET6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EukD,EAAWvkD,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAKkjC,GAE/EkjC,EAAgBrD,GAAgBA,GAAgBA,GAAgB,CAAC,EAAG7pE,KAAK6I,SAAUA,GAAU,CAC/FyhE,SAAS,IAGPvoD,EAAQ,IAAImoD,EAAKgD,QAEChrE,IAAlB2G,EAAQurD,YAA0ClyD,IAAnB2G,EAAQif,SACzC/F,EAAMxZ,OAASwZ,EAAMxZ,OAAOwZ,MAAMlZ,IAGpC,IAAIskE,EAAgB,CAAC,QAAS,WAAY,YAqB1C,OApBAA,EAAc5sE,SAAQ,SAAU+gB,GAC9BS,EAAMT,GAAK2rD,EAAO3rD,EACpB,IACAS,EAAM82C,SAAWgR,GAAgB,CAAC,EAAG7pE,KAAK64D,UAC1C92C,EAAM82C,SAAS0F,MAAQ,CACrBC,mBAAoBz8C,EAAMy8C,mBAAmBz6B,KAAKhiB,IAEpDA,EAAMs2C,WAAa,IAAIO,EAAW72C,EAAM82C,SAAU92C,EAAMlZ,SACxDkZ,EAAMs2C,WAAW5iD,GAAG,KAAK,SAAUE,GACjC,IAAK,IAAIg/C,EAAQ7tD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM+mD,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG/tD,EAAK+tD,EAAQ,GAAK9tD,UAAU8tD,GAG9B7yC,EAAMjC,KAAK/Y,MAAMgb,EAAO,CAACpM,GAAOqB,OAAOnQ,GACzC,IACAkb,EAAMuB,KAAK4pD,EAAe7hB,GAC1BtpC,EAAMs2C,WAAWxvD,QAAUkZ,EAAMlZ,QACjCkZ,EAAMs2C,WAAWsE,iBAAiB9D,SAAS0F,MAAQ,CACjDC,mBAAoBz8C,EAAMy8C,mBAAmBz6B,KAAKhiB,IAE7CA,CACT,GACC,CACDpkB,IAAK,SACLE,MAAO,WACL,MAAO,CACLgL,QAAS7I,KAAK6I,QACd2+D,MAAOxnE,KAAKwnE,MACZ1O,SAAU94D,KAAK84D,SACfiP,UAAW/nE,KAAK+nE,UAChBsD,iBAAkBrrE,KAAKqrE,iBAE3B,KAGKnB,CACT,CA/kBW,CA+kBTxqD,GAEFmJ,YAAgBqhD,GAAM,kBAAkB,WACtC,IAAIrhE,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EukD,EAAWvkD,UAAUvD,OAAS,EAAIuD,UAAU,QAAK5E,EACrD,OAAO,IAAIgoE,GAAKrhE,EAASwiD,EAC3B,IAEA,IAAItlD,GAAWmkE,GAAKkD,iBACpBrnE,GAASqnE,eAAiBlD,GAAKkD,eAEVrnE,GAASqnE,eACnBrnE,GAASud,KACAvd,GAASgmE,cACPhmE,GAASsnE,gBACrBtnE,GAASunE,IACEvnE,GAASmlE,eACdnlE,GAASwnE,UACjBxnE,GAAS2a,EACJ3a,GAASwmE,OACIxmE,GAASynE,oBACVznE,GAASy4D,mBACbz4D,GAAS0nE,eACV1nE,GAAS2nE,cAEd3nE,M,+BE1wFf4V,EAAOxe,QAZP,SAAcqC,GACZ,IACI3B,EADA8vE,GAAS,EAEb,OAAO,WAKL,OAJKA,IACHA,GAAS,EACT9vE,EAAQ2B,EAAGuH,MAAM,KAAMD,YAElBjJ,CACT,CACF,C,+BCVA,IAAI+O,EAAS4B,EAAQ,IACjBsK,EAAetK,EAAQ,IACvB46B,EAAqB56B,EAAQ,IAE7Bo/D,EAAc,CAChBC,iBAAkB,CAAC,eAAgB,iBACnCC,kBAAmB,CAAC,QAAS,UAC7BC,YAAa,CAAC,QAAS,WAczB,SAASnmC,EAAY7B,GACnB,IAAIioC,GAAY,EAChB,IAAK,IAAItuE,KAAQkuE,EACf,GAAIhhE,EAAOlN,IAASqmC,aAAmBn5B,EAAOlN,GAAO,CACnDsuE,GAAY,EACZhuE,KAAKiuE,WAAaL,EAAYluE,GAAM,GACpCM,KAAKkuE,YAAcN,EAAYluE,GAAM,GACrC,KACF,CAEF,IAAKsuE,EACH,MAAM,IAAIxsE,MAAM,4BAGlBxB,KAAK29C,SAAW5X,CAClB,CAEAjtB,EAAa8uB,GAKbA,EAAYtqC,UAAUihD,QAAU,WAC9BnV,EAAmBppC,KACrB,EAEA4nC,EAAYtqC,UAAUyoC,QAAU,WAC9B,OAAO/lC,KAAK29C,QACd,EAEA/V,EAAYtqC,UAAUizB,MAAQ,WAC5B,OAAOvwB,KAAK29C,SAAS39C,KAAKiuE,WAC5B,EAEArmC,EAAYtqC,UAAUkzB,OAAS,WAC7B,OAAOxwB,KAAK29C,SAAS39C,KAAKkuE,YAC5B,EAEAtmC,EAAYtqC,UAAU6wE,UAAY,WAChC,OAAO,CACT,EAEAvmC,EAAYtqC,UAAU8wE,UAAY,WAChC,OAAO,CACT,EAEAzyD,EAAOxe,QAAUyqC,C,gBCpFjB,IAAItlB,EAGJA,EAAK,WACJ,OAAOtiB,IACR,CAFK,GAIL,IAECsiB,EAAIA,GAAK,IAAI8f,SAAS,cAAb,EAIV,CAHE,MAAO51B,GAEc,kBAAXrF,SAAqBmb,EAAInb,OACrC,CAMAwU,EAAOxe,QAAUmlB,C,kBCbhB,IAAsBuuC,IAIL,WAKhB,IAAInwC,GAAI,EAER,SAASsrD,EAAOqC,GAEd,SAASC,EAAcpmD,GACrB,IAAIjhB,EAAQonE,EAAGpnE,MAAMihB,GACrB,OAAQjhB,GAASA,EAAM1D,OAAS,GAAK0D,EAAM,IAAO,EACpD,CAEA,SAASsnE,EAAermD,GACtB,IAAIjhB,EAAQonE,EAAGpnE,MAAMihB,GACrB,OAAQjhB,GAASA,EAAM1D,OAAS,GAAK0D,EAAM,IAAO,EACpD,CAEA,IAoBIjG,EApBAwtE,EAAYF,EAAc,uBAAuBn3D,cAEjDs3D,GADc,gBAAgBtrD,KAAKkrD,IACT,WAAWlrD,KAAKkrD,GAC1CK,EAAc,oBAAoBvrD,KAAKkrD,GACvCM,GAAeD,GAAe,kBAAkBvrD,KAAKkrD,GACrDO,EAAW,OAAOzrD,KAAKkrD,GACvBQ,EAAO,QAAQ1rD,KAAKkrD,GACpBS,EAAW,YAAY3rD,KAAKkrD,GAC5BU,EAAQ,SAAS5rD,KAAKkrD,GACtBW,EAAQ,mBAAmB7rD,KAAKkrD,GAChCY,EAAe,iBAAiB9rD,KAAKkrD,GAErCa,GADiB,kBAAkB/rD,KAAKkrD,IAC7BY,GAAgB,WAAW9rD,KAAKkrD,IAC3Cc,GAAOX,IAAcK,GAAQ,aAAa1rD,KAAKkrD,GAC/Ce,GAASX,IAAYK,IAAaC,IAAUC,GAAS,SAAS7rD,KAAKkrD,GACnEgB,EAAcd,EAAe,iCAC7Be,EAAoBhB,EAAc,2BAClCiB,EAAS,UAAUpsD,KAAKkrD,KAAQ,aAAalrD,KAAKkrD,GAClDmB,GAAUD,GAAU,YAAYpsD,KAAKkrD,GACrCoB,EAAO,QAAQtsD,KAAKkrD,GAGpB,SAASlrD,KAAKkrD,GAEhBrtE,EAAS,CACP8C,KAAM,QACN4rE,MAAOhvD,EACP9U,QAAS0jE,GAAqBhB,EAAc,4CAErC,eAAenrD,KAAKkrD,GAE7BrtE,EAAS,CACP8C,KAAM,QACJ4rE,MAAOhvD,EACP9U,QAAS0iE,EAAc,sCAAwCgB,GAG5D,kBAAkBnsD,KAAKkrD,GAC9BrtE,EAAS,CACP8C,KAAM,+BACJ6rE,eAAgBjvD,EAChB9U,QAAS0jE,GAAqBhB,EAAc,2CAGzC,SAASnrD,KAAKkrD,GACrBrtE,EAAS,CACP8C,KAAM,sBACJ8rE,MAAOlvD,EACP9U,QAAS0iE,EAAc,oCAGpB,aAAanrD,KAAKkrD,GACzBrtE,EAAS,CACP8C,KAAM,aACJ+rE,UAAWnvD,EACX9U,QAAS0iE,EAAc,wCAGpB,SAASnrD,KAAKkrD,GACrBrtE,EAAS,CACP8C,KAAM,cACJgsE,MAAOpvD,EACP9U,QAAS0jE,GAAqBhB,EAAc,kCAGzC,SAASnrD,KAAKkrD,GACrBrtE,EAAS,CACP8C,KAAM,QACJisE,MAAOrvD,EACP9U,QAAS0iE,EAAc,oCAGpB,aAAanrD,KAAKkrD,GACzBrtE,EAAS,CACP8C,KAAM,iBACNksE,cAAetvD,EACf9U,QAAS0jE,GAAqBhB,EAAc,sCAGvC,aAAanrD,KAAKkrD,GACzBrtE,EAAS,CACL8C,KAAM,aACNmsE,UAAWvvD,EACX9U,QAAS0iE,EAAc,wCAGpB,SAASnrD,KAAKkrD,GACrBrtE,EAAS,CACP8C,KAAM,UACJosE,QAASxvD,EACT9U,QAAS0iE,EAAc,oCAGpB,YAAYnrD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJqsE,SAAUzvD,EACV9U,QAAS0iE,EAAc,uCAGpB,UAAUnrD,KAAKkrD,GACtBrtE,EAAS,CACP8C,KAAM,SACJssE,OAAQ1vD,EACR9U,QAAS0iE,EAAc,qCAGpB,YAAYnrD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJusE,SAAU3vD,EACV9U,QAAS0iE,EAAc,uCAGpB,YAAYnrD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJwsE,QAAS5vD,EACT9U,QAAS0iE,EAAc,uCAGpBW,GACPjuE,EAAS,CACP8C,KAAM,gBACNysE,OAAQ,gBACRtB,aAAcvuD,GAEZ2uD,GACFruE,EAAOwvE,OAAS9vD,EAChB1f,EAAO4K,QAAUyjE,IAGjBruE,EAAOyvE,KAAO/vD,EACd1f,EAAO4K,QAAU0iE,EAAc,8BAG1B,gBAAgBnrD,KAAKkrD,GAC5BrtE,EAAS,CACP8C,KAAM,oBACN2sE,KAAM/vD,EACN9U,QAAS0iE,EAAc,gCAEhBM,EACT5tE,EAAS,CACP8C,KAAM,SACNysE,OAAQ,YACR3B,SAAUluD,EACVgwD,WAAYhwD,EACZqH,OAAQrH,EACR9U,QAAS0iE,EAAc,0CAEhB,iBAAiBnrD,KAAKkrD,GAC/BrtE,EAAS,CACP8C,KAAM,iBACN0sE,OAAQ9vD,EACR9U,QAASyjE,GAGJ,WAAWlsD,KAAKkrD,GACvBrtE,EAAS,CACP8C,KAAM,UACJ6sE,QAASjwD,EACT9U,QAAS0iE,EAAc,4BAA8BgB,GAGlDR,EACP9tE,EAAS,CACP8C,KAAM,WACNysE,OAAQ,cACRzB,SAAUpuD,EACV9U,QAAS0iE,EAAc,uCAGlB,eAAenrD,KAAKkrD,GAC3BrtE,EAAS,CACP8C,KAAM,YACN8sE,UAAWlwD,EACX9U,QAAS0iE,EAAc,8BAGlB,2BAA2BnrD,KAAKkrD,IACvCrtE,EAAS,CACP8C,KAAM,UACNkkB,QAAStH,EACT9U,QAAS0iE,EAAc,mDAErB,wCAAwCnrD,KAAKkrD,KAC/CrtE,EAAO6vE,UAAYnwD,EACnB1f,EAAOuvE,OAAS,eAGX1B,EACP7tE,EAAU,CACR8C,KAAM,cACN+qE,KAAMnuD,EACN9U,QAAU0iE,EAAc,yBAGnB,WAAWnrD,KAAKkrD,GACvBrtE,EAAS,CACP8C,KAAM,YACNgtE,QAASpwD,EACT9U,QAAS0iE,EAAc,8BAGlB,YAAYnrD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJitE,OAAQrwD,EACR9U,QAAS0iE,EAAc,6BAGpB,sBAAsBnrD,KAAKkrD,IAAO,eAAelrD,KAAKkrD,GAC7DrtE,EAAS,CACP8C,KAAM,aACNysE,OAAQ,gBACRS,WAAYtwD,EACZ9U,QAAS0jE,GAAqBhB,EAAc,oCAGvCU,GACPhuE,EAAS,CACP8C,KAAM,QACNysE,OAAQ,QACRvB,MAAOtuD,EACP9U,QAAS0jE,GAAqBhB,EAAc,sCAE9C,cAAcnrD,KAAKkrD,KAAQrtE,EAAOiwE,SAAWvwD,IAEtC,QAAQyC,KAAKkrD,GACpBrtE,EAAS,CACP8C,KAAM,OACNysE,OAAQ,OACRW,KAAMxwD,EACN9U,QAAS0iE,EAAc,2BAGlBS,EACP/tE,EAAS,CACP8C,KAAM,QACNysE,OAAQ,QACRxB,MAAOruD,EACP9U,QAAS0iE,EAAc,yCAA2CgB,GAG7D,YAAYnsD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJqtE,SAAUzwD,EACV9U,QAAS0iE,EAAc,uCAAyCgB,GAG7D,YAAYnsD,KAAKkrD,GACxBrtE,EAAS,CACP8C,KAAM,WACJstE,SAAU1wD,EACV9U,QAAS0iE,EAAc,uCAAyCgB,GAG7D,qBAAqBnsD,KAAKkrD,GACjCrtE,EAAS,CACP8C,KAAM,SACJikB,OAAQrH,EACR9U,QAAS0iE,EAAc,0CAGpBG,EACPztE,EAAS,CACP8C,KAAM,UACJ8H,QAAS0jE,GAGN,sBAAsBnsD,KAAKkrD,IAClCrtE,EAAS,CACP8C,KAAM,SACNmkB,OAAQvH,GAEN4uD,IACFtuE,EAAO4K,QAAU0jE,IAGZd,GACPxtE,EAAS,CACP8C,KAAoB,UAAb0qE,EAAwB,SAAwB,QAAbA,EAAsB,OAAS,QAGvEc,IACFtuE,EAAO4K,QAAU0jE,IAInBtuE,EADM,aAAamiB,KAAKkrD,GACf,CACPvqE,KAAM,YACNutE,UAAW3wD,EACX9U,QAAS0iE,EAAc,6BAA+BgB,GAI/C,CACPxrE,KAAMwqE,EAAc,gBACpB1iE,QAAS2iE,EAAe,kBAKvBvtE,EAAOwvE,QAAU,kBAAkBrtD,KAAKkrD,IACvC,2BAA2BlrD,KAAKkrD,IAClCrtE,EAAO8C,KAAO9C,EAAO8C,MAAQ,QAC7B9C,EAAOswE,MAAQ5wD,IAEf1f,EAAO8C,KAAO9C,EAAO8C,MAAQ,SAC7B9C,EAAOuwE,OAAS7wD,IAEb1f,EAAO4K,SAAW0jE,IACrBtuE,EAAO4K,QAAU0jE,KAETtuE,EAAO0uE,OAAS,WAAWvsD,KAAKkrD,KAC1CrtE,EAAO8C,KAAO9C,EAAO8C,MAAQ,QAC7B9C,EAAOwwE,MAAQ9wD,EACf1f,EAAO4K,QAAU5K,EAAO4K,SAAW0iE,EAAc,0BAI9CttE,EAAOiuE,eAAiBR,IAAWztE,EAAO6tE,MAGnC7tE,EAAOiuE,cAAgBT,GACjCxtE,EAAOwtE,GAAa9tD,EACpB1f,EAAOywE,IAAM/wD,EACb1f,EAAOuvE,OAAS,OACPpB,GACTnuE,EAAOmuE,IAAMzuD,EACb1f,EAAOuvE,OAAS,SACPd,GACTzuE,EAAOyuE,KAAO/uD,EACd1f,EAAOuvE,OAAS,QACPrB,GACTluE,EAAOkuE,QAAUxuD,EACjB1f,EAAOuvE,OAAS,WACPnB,IACTpuE,EAAOouE,MAAQ1uD,EACf1f,EAAOuvE,OAAS,UAjBhBvvE,EAAOytE,QAAU/tD,EACjB1f,EAAOuvE,OAAS,WAoClB,IAAImB,EAAY,GACZ1wE,EAAOkuE,QACTwC,EAnBF,SAA4B3jE,GAC1B,OAAQA,GACN,IAAK,KAAM,MAAO,KAClB,IAAK,KAEL,IAAK,SAAU,MAAO,KADtB,IAAK,SAAU,MAAO,OAEtB,IAAK,SAAU,MAAO,OACtB,IAAK,SAAU,MAAO,QACtB,IAAK,SAAU,MAAO,IACtB,IAAK,SAAU,MAAO,IACtB,IAAK,SAAU,MAAO,MACtB,IAAK,UAAW,MAAO,KACvB,QAAS,OAEb,CAKc4jE,CAAkBrD,EAAc,mCACnCttE,EAAOiuE,aAChByC,EAAYpD,EAAc,0CACjBttE,EAAOmuE,IAEhBuC,GADAA,EAAYpD,EAAc,iCACJn2D,QAAQ,SAAU,KAC/Bq2D,EAETkD,GADAA,EAAYpD,EAAc,uCACJn2D,QAAQ,SAAU,KAC/Bs2D,EACTiD,EAAYpD,EAAc,+BACjBttE,EAAOguE,MAChB0C,EAAYpD,EAAc,iCACjBttE,EAAOgwE,WAChBU,EAAYpD,EAAc,mCACjBttE,EAAOkwE,KAChBQ,EAAYpD,EAAc,wBACjBttE,EAAO+tE,QAChB2C,EAAYpD,EAAc,8BAExBoD,IACF1wE,EAAO4wE,UAAYF,GAIrB,IAAIG,GAAkB7wE,EAAOkuE,SAAWwC,EAAUxlE,MAAM,KAAK,GAqD7D,OAnDKqjE,GACAZ,GACa,QAAbH,GACCC,IAA8B,GAAlBoD,GAAwBA,GAAkB,IAAMrC,IAC7DxuE,EAAO6tE,KAEV7tE,EAAOuuE,OAAS7uD,GAEb8uD,GACa,UAAbhB,GACa,QAAbA,GACAC,GACAC,GACA1tE,EAAOgwE,YACPhwE,EAAOguE,OACPhuE,EAAOkwE,QAEVlwE,EAAOwuE,OAAS9uD,GAKd1f,EAAOwvE,QACNxvE,EAAOyvE,MAAQzvE,EAAO4K,SAAW,IACjC5K,EAAOgvE,eAAiBhvE,EAAO4K,SAAW,IAC5C5K,EAAO2vE,SAAW3vE,EAAO4K,SAAW,GAClC5K,EAAO+mB,QAAU/mB,EAAO4K,SAAW,IACnC5K,EAAO2uE,gBAAkB3uE,EAAO4K,SAAW,GAC3C5K,EAAO4uE,OAAsD,IAA7CkC,EAAgB,CAAC9wE,EAAO4K,QAAS,SACjD5K,EAAO6uE,WAA0D,IAA7CiC,EAAgB,CAAC9wE,EAAO4K,QAAS,SACrD5K,EAAO+uE,OAAsD,IAA7C+B,EAAgB,CAAC9wE,EAAO4K,QAAS,SACjD5K,EAAOgnB,SAAWhnB,EAAO4K,SAAW,IACpC5K,EAAOinB,QAAUjnB,EAAO4K,SAAW,GACnC5K,EAAO0uE,OAAS1uE,EAAO4K,SAAW,IAClC5K,EAAOywE,KAAOzwE,EAAO4wE,WAAa5wE,EAAO4wE,UAAU1lE,MAAM,KAAK,IAAM,GACpElL,EAAOgwE,YAAchwE,EAAO4K,SAAW,MACpC5K,EAAOowE,UAAYpwE,EAAO4K,SAAW,GAE3C5K,EAAO4f,EAAIF,EAEH1f,EAAOyvE,MAAQzvE,EAAO4K,QAAU,IACrC5K,EAAO+mB,QAAU/mB,EAAO4K,QAAU,IAClC5K,EAAOgnB,SAAWhnB,EAAO4K,QAAU,IACnC5K,EAAOinB,QAAUjnB,EAAO4K,QAAU,GAClC5K,EAAO0uE,OAAS1uE,EAAO4K,QAAU,IACjC5K,EAAOywE,KAAOzwE,EAAO4wE,WAAa5wE,EAAO4wE,UAAU1lE,MAAM,KAAK,GAAK,GAChElL,EAAOowE,UAAYpwE,EAAO4K,QAAU,GAE1C5K,EAAOuX,EAAImI,EACN1f,EAAO6hB,EAAInC,EAEX1f,CACT,CAEA,IAAIwpC,EAASwhC,EAA4B,qBAAdl9D,WAA4BA,UAAU9C,WAAkB,IAuBnF,SAAS+lE,EAAoBnmE,GAC3B,OAAOA,EAAQM,MAAM,KAAK3I,MAC5B,CASA,SAASoM,EAAIsQ,EAAKhiB,GAChB,IAAiBuF,EAAbxC,EAAS,GACb,GAAI4M,MAAMtQ,UAAUqS,IAClB,OAAO/B,MAAMtQ,UAAUqS,IAAIhQ,KAAKsgB,EAAKhiB,GAEvC,IAAKuF,EAAI,EAAGA,EAAIyc,EAAI1c,OAAQC,IAC1BxC,EAAOgC,KAAK/E,EAASgiB,EAAIzc,KAE3B,OAAOxC,CACT,CAcA,SAAS8wE,EAAgBzlE,GAgBvB,IAdA,IAAI2lE,EAAY35D,KAAKJ,IAAI85D,EAAoB1lE,EAAS,IAAK0lE,EAAoB1lE,EAAS,KACpF4lE,EAAStiE,EAAItD,GAAU,SAAUT,GACnC,IAAIsmE,EAAQF,EAAYD,EAAoBnmE,GAM5C,OAAO+D,GAHP/D,GAAoB,IAAIgC,MAAMskE,EAAQ,GAAG50D,KAAK,OAG3BpR,MAAM,MAAM,SAAUimE,GACvC,OAAO,IAAIvkE,MAAM,GAAKukE,EAAM5uE,QAAQ+Z,KAAK,KAAO60D,CAClD,IAAG1tE,SACL,MAGSutE,GAAa,GAAG,CAEvB,GAAIC,EAAO,GAAGD,GAAaC,EAAO,GAAGD,GACnC,OAAO,EAEJ,GAAIC,EAAO,GAAGD,KAAeC,EAAO,GAAGD,GAO1C,OAAQ,EANR,GAAkB,IAAdA,EAEF,OAAO,CAMb,CACF,CAoBA,SAASI,EAAqBC,EAAaC,EAAYjE,GACrD,IAAIkE,EAAU/nC,EAGY,kBAAf8nC,IACTjE,EAAKiE,EACLA,OAAa,QAGI,IAAfA,IACFA,GAAa,GAEXjE,IACFkE,EAAUvG,EAAOqC,IAGnB,IAAIziE,EAAU,GAAK2mE,EAAQ3mE,QAC3B,IAAK,IAAIgoC,KAAWy+B,EAClB,GAAIA,EAAY70E,eAAeo2C,IACzB2+B,EAAQ3+B,GAAU,CACpB,GAAoC,kBAAzBy+B,EAAYz+B,GACrB,MAAM,IAAIpyC,MAAM,6DAA+DoyC,EAAU,KAAOryB,OAAO8wD,IAIzG,OAAOP,EAAgB,CAAClmE,EAASymE,EAAYz+B,KAAa,CAC5D,CAIJ,OAAO0+B,CACT,CA8BA,OAvKA9nC,EAAOrnB,KAAO,SAAUqvD,GACtB,IAAK,IAAIhvE,EAAI,EAAGA,EAAIgvE,EAAYjvE,SAAUC,EAAG,CAC3C,IAAIivE,EAAcD,EAAYhvE,GAC9B,GAA0B,kBAAfivE,GACLA,KAAejoC,EACjB,OAAO,CAGb,CACA,OAAO,CACT,EA6IAA,EAAO4nC,qBAAuBA,EAC9B5nC,EAAOsnC,gBAAkBA,EACzBtnC,EAAOkoC,MANP,SAAeL,EAAaC,EAAYjE,GACtC,OAAQ+D,EAAqBC,EAAaC,EAAYjE,EACxD,EAWA7jC,EAAOmoC,QAAU3G,EAMjBxhC,EAAOwhC,OAASA,EACTxhC,CACT,EA5nBsC7uB,EAAOxe,QAASwe,EAAOxe,QAAU0zD,IACjBvyD,OAE9C,SAF2DuyD,E,+BCSnE,SAAS+hB,EAAMC,GACb7yE,KAAK84C,gBAAkB+5B,EAAgBC,YACzC,CAEAF,EAAMt1E,UAAUy1E,mBAAqB,WACnC,OAAO16D,KAAK2J,KAAKhiB,KAAKuwB,QAAUvwB,KAAKgzE,YACvC,EAEAJ,EAAMt1E,UAAU21E,iBAAmB,WACjC,OAAO56D,KAAK2J,KAAKhiB,KAAKwwB,SAAWxwB,KAAKkzE,aACxC,EAEAN,EAAMt1E,UAAUw1E,aAAe,WAC7B,OAAO9yE,KAAK84C,aACd,EAEAn9B,EAAOxe,QAAUy1E,C,+BCZjBj3D,EAAOxe,QAJP,SAAc0lB,GACZ,MAAoB,kBAANA,GAAkBswD,SAAStwD,EAC3C,C,+BCIAlH,EAAOxe,QALP,SAAiB0lB,GAEf,OAAOA,EAAEuwD,YAAY,GACvB,C,+BCJA,IAAIppC,EAAOx7B,EAAQ,IAmGnBmN,EAAOxe,QA5FP,WAGE,IAAIk2E,EAAUzlE,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GAEpD,OAAO,WAKL,IAAIwsE,EAASD,EAAQvuE,MAAM,GAGvBtF,EAAK,KAGL+zE,EAAM,KAGN1sE,EAAOC,UAAUvD,OAASqK,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,EAAGA,UAAUvD,OAAS,GAAK,GAG3FtB,EAAO6E,UAAUvD,OAASuD,UAAUA,UAAUvD,OAAS,GAAKymC,EAIhE,SAASu6B,IAGP,IAAI7lE,EAAMoI,UAAU,GAGpB,GAAIpI,EAGF,OAFAc,EAAK+zE,EAAM,UACXtxE,EAAK8E,MAAM,KAAMD,WAKnB,IAAKwsE,EAAO/vE,OAGV,OAFA/D,EAAK+zE,EAAM,UACXtxE,EAAK8E,MAAM,KAAMD,WAMnB,IAAI2tC,EADJj1C,EAAK8zE,EAAOpuC,QAIRf,EAAMv2B,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GAGhDq9B,EAAInhC,KAAKuhE,GACT,IAAIiP,EAAOh0E,EAAGuH,MAAM,KAAMo9B,GAI1B,GAAIsQ,IAAQj1C,EAAZ,CAMA,GAAoB,oBAATg0E,EACT,MAAM,IAAIhyE,MAAM,+CAEhB+xE,EAAMC,CAPR,CAUF,CAGA,SAASC,IACHF,GACFA,EAAIxsE,MAAM,KAAMD,UAEpB,CASA,OAHAD,EAAK28B,QAAQ,MACb+gC,EAAKx9D,MAAM,KAAMF,GAEV4sE,CAET,CAEF,C,+BChHA,IAAI/zD,EAAelR,EAAQ,IAAUkR,aAMrC,SAASg0D,IACPr2E,OAAOkQ,iBAAiB,KAAM,CAC5BomE,cAAe,CACb91E,MAAO,IAAI6hB,IAGjB,CAMAg0D,EAAYp2E,UAAUwc,cAAgB,SAAuBnE,GAC3D,OAAO,KAAKg+D,cAAc7zD,KAAKnK,EAAMjW,KAAMiW,EAC7C,EAKA+9D,EAAYp2E,UAAUuc,iBAAmB,WACvC,OAAO,KAAK85D,cAAc9uC,YAAY99B,MAAM,KAAK4sE,cAAe7sE,UAClE,EAKA4sE,EAAYp2E,UAAUge,oBAAsB,WAC1C,OAAO,KAAKq4D,cAAc19D,eAAelP,MAAM,KAAK4sE,cAAe7sE,UACrE,EAEA6U,EAAOxe,QAAUu2E,C,ohBCpCXh0D,EAAelR,EAAQ,IACvB,EAAkCA,EAAQ,GAAxCyL,EAAc,iBAAErK,EAAW,cAC7B4M,EAAoBhO,EAAQ,IAAwBgO,kBACpDivB,EAAMj9B,EAAQ,IAEhB6oC,EAAa,EAQjB,cAOE,WAAYU,EAAIjlC,EAAMjK,GAAtB,MACEA,EAAUxL,OAAOgT,OAAO,CACtBvM,KAAMi0C,EACN9uC,IAAK,KACL6B,SAAU0R,GACT3T,GAEHyO,gBAAO,KAEP,IAAMxT,EAAOyd,OAAO1Y,EAAQ/E,MAEtBinC,EAAY9wB,EAAepR,EAAQiC,UACnC7B,EAAMJ,EAAQI,IAChBJ,EAAQI,IAAIyuC,UAAU,QAASpgC,GAC/B,IAAIm0B,EAAI,QAASn0B,EAAMyzB,EAAWliC,EAAQmiC,Y,OAE9C3tC,OAAOkQ,iBAAiB+J,EAAM,CAC5BkgC,YAAa,CACX35C,QAASw5C,GAEXI,KAAM,CACJ55C,MAAOoL,GAET6J,KAAM,CACJvU,YAAY,EACZV,MAAOiV,GAEThP,KAAM,CACJvF,YAAY,EACZV,MAAOiG,K,CAGb,CAKF,OA5CoByT,OAyClBq8D,mBAAA,WACE,OAAOhkE,EAAY,KACrB,EACF,EA5CA,CAAoB8P,GA4FpB/D,EAAOxe,QAAUy2E,C,+BCrGjB,iBAKE,WAAYC,GAAZ,gBAAY,QAAAA,KACVx2E,OAAOkQ,iBAAiB,KAAM,CAC5By2B,WAAY,CACVnmC,MAAO,IAETi2E,oBAAqB,CACnBj2E,MAAO,WACLyZ,EAAKy8D,aAA0C,YAA7B3sE,SAAS4sE,gBAC7B,KAIJ,IAAK,IAAIxwE,EAAI,EAAGA,EAAIqwE,EAASrwE,IAC3B,KAAKwgC,WAAWhhC,KAAK,GAEzB,CAiGF,OA3FEixE,kBAAA,WAEE,IADA,IAAMJ,EAAU,KAAK7vC,WAAWzgC,OACvBC,EAAI,EAAGA,EAAIqwE,EAASrwE,IAC3B,KAAKwgC,WAAWxgC,GAAK,EAEzB,EAEAywE,2BAAA,WACE,OAAO,KAAKjwC,WAAW/zB,QAAO,SAACurB,EAAO04C,GAAmB,SAAQA,EAAe3wE,MAAvB,GAA+B,EAC1F,EAOA0wE,yBAAA,SAAaE,GAEX,IAFF,WACM16D,EAAUrV,QAAQvD,U,WACbuzE,GACP36D,EAAUA,EAAQvY,MAAK,WAAM,SAAKmzE,kBAAkBD,EAAOD,EAA9B,G,EADtBC,EAAQ,EAAGA,GAAS,KAAKpwC,WAAWzgC,OAAQ6wE,I,EAA5CA,GAGT,OAAO36D,CACT,EAMAw6D,8BAAA,SAAkBG,EAAOD,GACvB,IAAMD,EAAiB,KAAKlwC,WAAWowC,EAAQ,GAC/C,OAAOhwE,QAAQ6P,IAAIigE,EAAevkE,KAAI,YACpC,IAAMw0B,EAAMlB,EAASkxC,GACrB,OAAOhwC,aAAe//B,QAAU+/B,EAAM//B,QAAQvD,QAAQsjC,EACxD,IACF,EAMA8vC,mBAAA,WACE7sE,SAASyS,iBAAiB,mBAAoB,KAAKi6D,oBACrD,EAMAG,kBAAA,WACE7sE,SAASkU,oBAAoB,mBAAoB,KAAKw4D,oBACxD,EAQAG,+BAAA,SAAmBG,EAAOnxC,GACxB,GAAqB,kBAAVmxC,GAAsBA,GAAS,GAAKA,EAAQ,KAAKpwC,WAAWzgC,OACrE,MAAM,IAAI/B,MAAM,kBAAmB4yE,GAOrC,OALuB,KAAKpwC,WAAWowC,EAAQ,GAChCpxE,KAAKigC,GACU,IAA1B,KAAKqxC,kBACP,KAAKC,SAEA,IACT,EAQAN,gCAAA,SAAoBG,EAAOnxC,GACzB,GAAqB,kBAAVmxC,GAAsBA,GAAS,GAAKA,EAAQ,KAAKpwC,WAAWzgC,OACrE,MAAM,IAAI/B,MAAM,kBAAmB4yE,GAGrC,IAAMF,EAAiB,KAAKlwC,WAAWowC,EAAQ,GACzCjqE,EAAQ+pE,EAAe7pE,QAAQ44B,GAOrC,OANe,IAAX94B,IACF+pE,EAAe5pE,OAAOH,EAAO,GACC,IAA1B,KAAKmqE,kBACP,KAAKE,SAGF,IACT,EACF,EArHA,GAuHA74D,EAAOxe,QAAU,IAAI82E,EAA0B,E,6bCvH/C,aAeE,WAAYQ,EAAUC,GAAtB,WAEEr3E,OAAOkQ,iBAAiB,KAAM,CAC5BonE,cAAe,CACbl2E,UAAU,EACVZ,OAAO,GAET+2E,YAAa,CACXn2E,UAAU,EACVZ,OAAO,GAETg3E,UAAW,CACTh3E,MAAO62E,KAIXr3E,OAAOI,eAAe,KAAM,WAAY,CACtCI,MAAO,IAAIuG,SAAQ,SAACvD,EAASC,GAC3B2zE,GAAS,YACPn9D,EAAKq9D,eAAgB,EACrB9zE,EAAQhD,EACV,IAAG,YACDyZ,EAAKq9D,eAAgB,EACrB7zE,EAAOg0E,EACT,IAAG,WAAM,SAAKF,WAAL,GACX,KAEJ,CA4EF,OArESG,SAAP,SAAcD,GACZ,OAAO,IAAIC,GAAkB,SAAkBl0E,EAASC,GACtDA,EAAOg0E,EACT,IAAG,WACD,GAEJ,EAOOC,UAAP,SAAe/zE,GACb,OAAO,IAAI+zE,GAAkB,SAAkBl0E,GAC7CA,EAAQG,EACV,IAAG,WACD,GAEJ,EAMA+zE,mBAAA,WAKE,OAJI,KAAKJ,gBACP,KAAKC,aAAc,EACnB,KAAKC,aAEA,IACT,EAMAE,kBAAA,WACE,IAAMluE,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrB2S,EAAU,KAAKu7D,SACrB,OAAO,IAAID,GAAkB,SAAkBl0E,EAASC,GACtD2Y,EAAQjP,MAAK,MAAbiP,EAAO,OAAU5S,KAAM3F,KAAKL,EAASC,EACvC,GAAG,KAAK+zE,UACV,EAOAE,iBAAA,WACE,IAAMluE,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrB2S,EAAU,KAAKu7D,SACrB,OAAO,IAAID,GAAkB,SAAkBl0E,EAASC,GACtD2Y,EAAQvY,KAAI,MAAZuY,EAAO,OAAS5S,KAAM3F,KAAKL,EAASC,EACtC,GAAG,KAAK+zE,UACV,EAMAE,oBAAA,WACE,IAAMluE,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrB2S,EAAU,KAAKu7D,SACrB,OAAO,IAAID,GAAkB,SAAkBl0E,EAASC,GACtD2Y,EAAQw7D,QAAO,MAAfx7D,EAAO,OAAY5S,KAAM3F,KAAKL,EAASC,EACzC,GAAG,KAAK+zE,UACV,EACF,EAtHA,GAwHAl5D,EAAOxe,QAAU43E,C,86BC3HXG,EAAmB1mE,EAAQ,KAC3B,EAAmCA,EAAQ,IAA7BC,EAAC,aAAEC,EAAa,gBAcpC,cAWE,WAAYiG,EAAWP,EAAOQ,EAAW/L,GAAzC,MACE4lC,YAAMr6B,EAAMtQ,KAAM6Q,EAAUwgE,IAAKtsE,IAAQ,K,OAEzCxL,OAAOkQ,iBAAiB+J,EAAM,CAC5B89D,sBAAuB,CACrBv3E,MAAO,W,IAAC,aAAAqR,uBAAArI,kBAAY,SAAKiZ,KAAI,MAATxI,EAAI,GACtBzQ,GAAQA,EAAKtD,OAAS,UAAY,mBAAiB,EAChDsD,IAFe,GAKtBwuE,kBAAmB,CACjBx3E,MAAO,WAAM,SAAKiiB,KAAKxI,EAAKg+D,eACxB,eACA,gBAFS,GAIfC,WAAY,CACV13E,MAAO8W,GAET6gE,WAAY,CACV33E,MAAO+W,GAET0gE,eAAgB,CACd/2E,YAAY,EACZuX,IAAG,WACD,MAA2B,SAApB,KAAK1B,MAAMtB,MAAyB,KAAKsB,MAAMqhE,SACxD,GAEF3iE,KAAM,CACJvU,YAAY,EACZV,MAAOuW,EAAMtB,MAEf4iE,SAAU,CACRn3E,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAUghE,eACnB,GAEFvhE,MAAO,CACL7V,YAAY,EACZV,MAAOuW,KAIX,CAAC,WAAY,WAAW7T,SAAQ,YAC9B,SAAMkV,GAAG3R,EAAMwT,EAAK+9D,kBAApB,IAEF,CAAC,UAAW,mBAAmB90E,SAAQ,YACrC,SAAUkV,GAAG3R,EAAMwT,EAAK89D,sBAAxB,I,CACJ,CAqCF,OAhGoC79D,OA6DlC1C,qBAAA,WACE,MAAO,2BAA2B,KAAK2iC,YAAW,KAAK,KAAKo+B,SAAQ,GACtE,EAQA/gE,wBAAA,SAAY6gE,GACV,IAAMG,EAAiBx4E,OAAO+C,OAAOsO,GACrC,IAAKmnE,EAAe14D,SAASu4D,GAC3B,MAAMjnE,EAAE2O,cAAc,WAAYy4D,GAGpC,OADA,KAAKN,WAAWO,YAAYJ,GACrB,IACT,EAQA7gE,sBAAA,sBAQE,MAPA,CAAC,WAAY,WAAWtU,SAAQ,YAC9B,SAAK6T,MAAM6B,eAAenS,EAAMwT,EAAK+9D,kBAArC,IAEF,CAAC,UAAW,mBAAmB90E,SAAQ,YACrC,SAAKg1E,WAAWt/D,eAAenS,EAAMwT,EAAK89D,sBAA1C,IAEF,KAAKI,WAAW,MACT,IACT,EACF,EAhGA,CAAoCN,GA+GpCv5D,EAAOxe,QAAU0X,C,ohBCtGjB,cAOE,WAAYF,EAAW9L,GAAvB,MACE4lC,YAAM95B,EAAU7Q,KAAM6Q,EAAUwgE,IAAKtsE,IAAQ,KAE7CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi+D,WAAY,CACV13E,MAAO8W,GAETohE,OAAQ,CACNl4E,MAAO,KACPY,UAAU,GAEZu3E,aAAc,CACZz3E,YAAY,EACZuX,IAAG,WACD,QAAS,KAAKigE,MAChB,GAEFT,eAAgB,CACd/2E,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU8gE,SACnB,GAEF3iE,KAAM,CACJvU,YAAY,EACZV,MAAO8W,EAAU7B,MAEnBmjE,gBAAiB,CACf13E,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU+gE,QACnB,GAEFthE,MAAO,CACL7V,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKigE,MACd,KAMF,MAIEphE,EAAS,MAHX8gE,EAGE9gE,EAAS,UAFXuhE,EAEEvhE,EAAS,cADX+gE,EACE/gE,EAAS,S,OAEbA,EAAUc,GAAG,WAAW,WACtB,GAAIrU,IAAUuT,EAAUvT,MAGtB,OAFAA,EAAQuT,EAAUvT,WAClBkW,EAAKwI,KAAK,qBAAsBnL,EAAUvT,OAGxCq0E,IAAc9gE,EAAU8gE,YAC1BA,EAAY9gE,EAAU8gE,UAClBn+D,EAAKlD,OACPkD,EAAKlD,MAAM+hE,YAAYxhE,EAAU8gE,WAEnCn+D,EAAKwI,KAAKnL,EAAU8gE,UAAY,eAAiB,kBAE/CS,IAAkBvhE,EAAUuhE,gBAC9B5+D,EAAKmgC,KAAK2c,MAAS98C,EAAKs+D,SAAQ,MAAKM,EAAgB,MAAQ,MAAI,QAAOvhE,EAAUuhE,cAAgB,MAAQ,OAC1GA,EAAgBvhE,EAAUuhE,cACtB5+D,EAAKlD,OACPkD,EAAKlD,MAAMgiE,gBAAgBzhE,EAAUuhE,eACrC5+D,EAAKwI,KAAKo2D,EAAgB,mBAAqB,kBAAoB5+D,EAAKlD,QAC/D8hE,GACT5+D,EAAKmgC,KAAKpsC,KAAK,gDAGfqqE,IAAa/gE,EAAU+gE,WACzBA,EAAW/gE,EAAU+gE,SACrBp+D,EAAKwI,KAAK,yBAA0B41D,GAExC,I,CACF,CA2BF,OA/GqCn+D,OAsFnC8+D,qBAAA,WACE,MAAO,4BAA4B,KAAK7+B,YAAW,KAAK,KAAKo+B,SAAQ,GACvE,EAMAS,wBAAA,SAAYjiE,IACL,KAAK2hE,QAAU3hE,IAClB,KAAK2hE,OAAS3hE,EACd,KAAK0L,KAAK,aAAc1L,GAE5B,EAKAiiE,yBAAA,WACE,GAAI,KAAKN,OAAQ,CACf,IAAM3hE,EAAQ,KAAK2hE,OACnB,KAAKA,OAAS,KACd,KAAKj2D,KAAK,eAAgB1L,E,CAE9B,EACF,EA/GA,CAzByB5F,EAAQ,MAkMjCmN,EAAOxe,QAAUk5E,C,iVClMX,EAA0B7nE,EAAQ,GAAhC0H,EAAU,aAAEO,EAAO,UACrB6/D,EAA6B9nE,EAAQ,KAErC+nE,EAAiC,CACrC,EAAG,OACH,EAAG,QAkBL,SAASC,EAA8BC,GACrC,OAAO7oE,MAAMiJ,KAAK6/D,EAAoBD,IAAUxmE,QAAO,SAAC0mE,EAAUC,GAChE,IAAMC,EAAKD,EAAK,GACVE,EAAYF,EAAK,GACjBG,EAAMJ,EAAS7gE,IAAIghE,IAAc,GACvC,OAAOH,EAAS5xD,IAAI+xD,EAAWC,EAAI//D,OAAO6/D,GAC5C,GAAG,IAAI/mE,IACT,CAOA,SAASknE,EAA2Bj9B,GAClC,OAAOK,EAAiBL,GAAK9pC,QAAO,SAACgnE,EAAqB38B,GACxD,IAAM48B,EAAMC,EAAsB78B,GAClC,OAAO48B,EAAMD,EAAoBlyD,IAAImyD,EAAK58B,GAAgB28B,CAC5D,GAAG,IAAInnE,IACT,CAOA,SAAS4mE,EAAoBp8B,GAC3B,OAAO88B,EAA8B98B,GAAcrqC,QAAO,SAAConE,EAAeR,GACxE,IAAMS,EAAgB,IAAInvD,OAAO,YAAY0uD,EAAE,YACzC7iC,EAAUsG,EAAarzC,MAAMqwE,GAC7BR,EAAY9iC,EACdA,EAAQ,GAAG78B,cACXo/D,EAA+BM,GAC7BN,EAA+BM,GAAI1/D,cACnC,GACN,OAAOkgE,EAActyD,IAAI8xD,EAAIC,EAC/B,GAAG,IAAIhnE,IACT,CAQA,SAASynE,EAAuBV,EAAIv8B,GAGlC,IAAMk9B,EAAY,IAAIrvD,OAAO,WAAW0uD,EAAE,SAAU,KAC9C7iC,EAAUsG,EAAarzC,MAAMuwE,GACnC,OAAOxjC,GAAWA,EAAQ,GAAG9nC,MAAM,KAAK+D,QAAO,SAACwnE,EAAOC,GAC/C,QAAgBA,EAAOxrE,MAAM,KAAI,GAAhCpI,EAAI,KAAEjG,EAAK,KAElB,OADA45E,EAAM3zE,GAAQR,MAAMzF,GAASA,EAAQ+tC,SAAS/tC,EAAO,IAC9C45E,CACT,GAAG,GACL,CAOA,SAASN,EAAsB78B,GAE7B,IAAMq9B,EAAar9B,EAAarzC,MAAM,iBACtC,OAAO0wE,GAAcA,EAAW,EAClC,CASA,SAASv9B,EAAiBL,EAAKjnC,EAAMunC,GACnC,OAAON,EAAI5hC,QAAQ,YAAa,QAAQjM,MAAM,UAAUpH,MAAM,GAAG6K,KAAI,YAAgB,WAAK2qC,CAAL,IAAqBrtC,QAAO,YAC/G,IAAMstC,EAAc,IAAIpyB,OAAO,MAAKrV,GAAQ,MAAQ,MAC9C0nC,EAAmB,IAAIryB,OAAO,MAAKkyB,GAAa,MAAQ,MAC9D,OAAOE,EAAYp3B,KAAKm3B,IAAiBE,EAAiBr3B,KAAKm3B,EACjE,GACF,CAOA,SAAS88B,EAA8BX,GACrC,IAIMziC,EAJQyiC,EAAQvqE,MAAM,QAAQ,GAIdjF,MAAM,aAI5B,OAAK+sC,EAKEA,EAAQlvC,MAAM,GAAG6K,KAAI,YAAS,gBAAS1I,EAAO,GAAhB,IAJ5B,EAKX,CAsBA,SAAS2wE,EAA8BC,EAAcpB,GACnD,IAAM98B,EAAQ88B,EAAQvqE,MAAM,QACxB4rE,EAAQn+B,EAAM,GACZo+B,EAAap+B,EAAM70C,MAAM,GAE/B,MAAO,CADPgzE,EAAQA,EAAM3/D,QAAQ,gBAAiB0/D,EAAav6D,KAAK,OAC1CtG,OAAO+gE,GAAYz6D,KAAK,OACzC,CA4GA,SAAS06D,EAA2BvB,EAASwB,EAAyBC,GAEpE,IAAK,mBAAmB/0D,KAAKszD,GAC3B,OAAOA,EAIT,IAAMS,EAAMC,EAAsBV,GAC5B0B,EAAcjB,GAAOe,EAAwBniE,IAAIohE,GACvD,IAAKiB,EACH,OAAO1B,EAIT,IAAM2B,EAAiB1B,EAAoByB,GAErCE,EAAc7B,EAA8BC,GAE9CM,EAAMtgE,EAAQ7I,MAAMiJ,KAAKuhE,IAAiB,SAACjoE,G,IAAA8C,SAACqlE,EAAM,KAAEC,EAAS,KAC/D,MAAc,QAAd,GAAwBL,EAAe/6D,SAASo7D,GAO5C,GA/DR,SAAiCA,EAAWD,EAAQD,EAAa5B,EAAS0B,GAExE,IAAMK,EAAcH,EAAYviE,IAAIyiE,IAAc,GAClD,GAAIC,EAAYj1E,QAAU,EACxB,OAAOi1E,EAMT,IAAMC,EAAgBlB,EAAuBe,EAAQH,GACrD,IAAKM,EACH,OAAOD,EAKT,IAAME,EAAaF,EAAY1kC,MAAK,YAClC,IAAM6kC,EAAYpB,EAAuBV,EAAIJ,GAC7C,OAAOkC,GAAat7E,OAAOiH,KAAKm0E,GAAe9gE,OAAM,YACnD,OAAO8gE,EAAczrB,KAAU2rB,EAAU3rB,EAC3C,GACF,IAKA,MAA6B,kBAAf0rB,EAA0B,CAACA,GAAcF,CACzD,CA6BQI,CACAL,EACAD,EACAD,EACA5B,EACA0B,EANJ,IAWIU,EAASR,EAAYviE,IAAI,QAAU,GAEzCihE,EAAMA,EAAI//D,OAAO6hE,EAAO5rE,QAAO,YAC7B,IAAM0rE,EAAYpB,EAAuBuB,EAAOrC,GAChD,OAAOkC,GAAa5B,EAAI55D,SAASw7D,EAAUI,IAC7C,KAOA,IAAMp/B,EAAQ88B,EAAQvqE,MAAM,QAAQe,QAAO,YACzC,IAAM+rE,EAAYn/B,EAAK5yC,MAAM,qCACvB4vE,EAAKmC,GAAaA,EAAU,GAClC,OAAQA,GAAcnC,GAAME,EAAI55D,SAASyuB,SAASirC,EAAI,IACxD,IAIA,OAAOe,EADYR,EAA8BX,GAASxpE,QAAO,YAAM,SAAIkQ,SAAS05D,EAAb,IACtBl9B,EAAMr8B,KAAK,QAC9D,CAmFA,SAAS27D,EAAqBl/B,EAAKm/B,GACjC,IAAMv+B,EAAgBP,EAAiBL,GAEvC,MAAO,CADSA,EAAI7tC,MAAM,UAAU,IACnB8K,OAAO2jC,EAAchrC,KAAI,YAExC,IAAK,mBAAmBwT,KAAKm3B,GAC3B,OAAOA,EAGT,IAAM48B,EAAMC,EAAsB78B,GAClC,IAAK48B,EACH,OAAO58B,EAGT,IAAMH,EAAU++B,EAAepjE,IAAIohE,GACnC,IAAK/8B,EACH,OAAOG,EAGT,IAAM+L,GAAc/L,EAAarzC,MAAM,mBAAqB,IAAI,GAChE,IAAKo/C,EACH,OAAO/L,EAIH,QAA2B+L,EAAWn6C,MAAM,KAAI,GAA/CitE,EAAI,KAAEC,EAAgB,KACvBC,EAAY,IAAIlxD,OAAO,QAAQgxD,GAAOC,EAAmB,IAAIA,EAAqB,IAAE,IAAK,MAC/F,OAAO9+B,EAAaniC,QAAQkhE,EAAW,QAAQF,EAAI,IAAIh/B,EACzD,KAAI78B,KAAK,OACX,CA0EA,SAASg8D,EAAoCzC,EAAI8B,GAC/C,IAAMY,EAAsBl8E,OAAO2S,QAAQ2oE,GAAWhpE,KAAI,SAACQ,G,IAAA8C,SACzD,OAD8D,KAChD,IADuD,IAEvE,IAAGqK,KAAK,KACR,MAAO,UAAUu5D,EAAE,IAAI0C,CACzB,CAuDAp8E,EAAQq8E,wBAxLR,SAAiCz/B,EAAK0/B,EAAsBC,GAI1D,IAAMC,EAAoB/rE,MAAMiJ,KAAK6iE,GAAgBzpE,QAAO,SAACipE,EAAgB/oE,G,IAAA8C,SAACH,EAAI,KAAE8mE,EAAQ,KAI1F,OAHsBx/B,EAAiBL,EAAKjnC,EAAM,mBACpBnD,IAAIwnE,GAAuBlqE,QAAO,YAAO,OAACwsE,EAAqB7jE,IAAIshE,EAA1B,IAC/D32E,SAAQ,SAAC22E,EAAK1zE,GAAM,SAAeuhB,IAAImyD,EAAK0C,EAASp2E,GAAjC,IACrB01E,CACT,GAAG,IAAIppE,KACP,OAAOmpE,EAAqBl/B,EAAK4/B,EACnC,EA8KAx8E,EAAQ87E,qBAAuBA,EAC/B97E,EAAQq5E,8BAAgCA,EACxCr5E,EAAQu5E,oBAAsBA,EAC9Bv5E,EAAQ08E,WAvHR,SAAoB9/B,GAClB,IAAMY,EAAgBP,EAAiBL,GAEvC,MAAO,CADSA,EAAI7tC,MAAM,UAAU,IACnB8K,OAAO2jC,EAAchrC,KAAI,YAExC,IAAK,WAAWwT,KAAKm3B,GACnB,OAAOA,EAIT,IAEMu+B,EAFcrC,EAA8Bl8B,GAEvBxkC,IAAI,OAG/B,IAAK+iE,EACH,OAAOv+B,EAIT,IAAMy8B,EAAM,IAAIlnE,IAAIunE,EAA8B98B,IAClDu+B,EAAOt4E,SAAQ,YAAS,SAAIw1C,OAAO+iC,EAAX,IAGxB,IAAMgB,EAAiBx/B,EAAarzC,MAAM,oCACpC8yE,EAAUD,GAAkBA,EAAe,GAO3CE,EAAgB,CACpB,qBACA,wBACA,qBACAhjE,OAAO+iE,EACL,CAAC,IAAI5xD,OAAO,WAAW4xD,EAAO,SAC9B,IAOJ,OALAz/B,EAAeA,EAAapuC,MAAM,QAC/Be,QAAO,YAAQ,SAAc0K,OAAM,YAAS,OAACuQ,EAAM/E,KAAK02B,EAAZ,GAA7B,IACfv8B,KAAK,QAGDs6D,EAA8BhqE,MAAMiJ,KAAKkgE,GAAMz8B,EACxD,KAAIh9B,KAAK,OACX,EAyEAngB,EAAQ88E,iBAnDR,SAA0BlgC,EAAKmgC,GAC7B,IAAMv/B,EAAgBP,EAAiBL,GACjCogC,EAAUpgC,EAAI7tC,MAAM,UAAU,GAMpC,OAJAguE,EAAOA,GAAQv/B,EACZ1tC,QAAO,YAAW,iBAAWkW,KAAKszD,EAAhB,IAClB9mE,IAAIwnE,GAEA,CAACgD,GAASnjE,OAAO2jC,EAAchrC,KAAI,YAExC,IAAK,WAAWwT,KAAKszD,GACnB,OAAOA,EAIT,IAGM2D,EAHc5D,EAA8BC,GAGvB3gE,IAAI,QAC/B,IAAKskE,EACH,OAAO3D,EAIT,IAAM4D,EAAgB9C,EAAuB6C,EAAQ3D,GACrD,IAAK4D,EACH,OAAO5D,EAIT,IAAM6D,EAAmBhB,EAAoCc,EAAQC,GAC/DE,EAAoB,IAAIpyD,OAAOmyD,GAG/BpD,EAAMC,EAAsBV,GAC9ByD,EAAK/8D,SAAS+5D,GAChBmD,EAAcG,OAAS,SAEhBH,EAAcG,OAGvB,IAAMC,EAAsBnB,EAAoCc,EAAQC,GACxE,OAAO5D,EAAQt+D,QAAQoiE,EAAmBE,EAC5C,KAAIn9D,KAAK,OACX,EAQAngB,EAAQu9E,kBApPR,SAA2BC,EAAUC,GACnC,IAAMC,EAAqBzgC,EAAiBugC,GACtCG,EAAeH,EAASzuE,MAAM,UAAU,GACxC6uE,EAA4B/D,EAA2B4D,GAC7D,MAAO,CAACE,GAAc9jE,OAAO6jE,EAAmBlrE,KAAI,YAClD,OAAOqoE,EAA2BgD,EAAcD,EAA2B,GAC7E,KAAIz9D,KAAK,OACX,EA8OAngB,EAAQi9C,iBAAmBA,EAC3Bj9C,EAAQ89E,qBAtIR,SAA8BlhC,EAAKmhC,GACjC,OAAOnhC,EAAI7tC,MAAM,QAAQe,QAAO,YAC9B,OAACiuE,EAAuBpnC,MAAK,YAAgB,WAAI3rB,OAAO,YAAcgzD,EAAe,IAAK,KAAKh4D,KAAK02B,EAAvD,GAA7C,IACAv8B,KAAK,OACT,EAmIAngB,EAAQi+E,gBArOR,SAAyBT,EAAUU,EAA0BT,EAAWU,QAAA,QAAAA,MACtE,IAAMC,EAA2BvE,EAA2B4D,GACtDY,EAA0CxE,EAA2BqE,GACrE1gC,EAAgBP,EAAiBugC,GAEvC,MAAO,CADSA,EAASzuE,MAAM,UAAU,IACxB8K,OAAO2jC,EAAchrC,KAAI,YAExC,GADA8mE,EAAUA,EAAQt+D,QAAQ,QAAS,KAC9B,WAAWgL,KAAKszD,GACnB,OAAOA,EAET,IAAMkB,EAAalB,EAAQxvE,MAAM,iBAC3BiwE,EAAMS,GAAcA,EAAW,GACrC,IAAKT,EACH,OAAOT,EAGT,IAAMgF,EAAgBF,EAAyBzlE,IAAIohE,GAC7CwE,EAAmBhF,EAAoB+E,GACvCE,EAAqBvE,EAA8BqE,GAEnDG,EAAyBD,EAAmBp4E,QAA0D,QAAhDm4E,EAAiB5lE,IAAI6lE,EAAmB,IAEpG,OAD8BL,IAAiBM,EAChBJ,EAAwC1lE,IAAIohE,GAAK/+D,QAAQ,QAAS,IAAMs+D,CACzG,KAAIz/D,OAAO,IAAIsG,KAAK,OACtB,EA8MAngB,EAAQ0+E,oBApZR,SAA6B9hC,EAAK+hC,EAAsBC,GACtD,IAAMphC,EAAgBP,EAAiBL,GAEvC,MAAO,CADSA,EAAI7tC,MAAM,UAAU,IACnB8K,OAAO2jC,EAAchrC,KAAI,YAExC,IAAK,mBAAmBwT,KAAKszD,GAC3B,OAAOA,EAET,IAAM3jE,EAAO2jE,EAAQxvE,MAAM,oBAAoB,GACzC0vE,EAAWH,EAA8BC,GAEzCoB,EA1CV,SAAkClB,EAAUqF,GAC1CA,EAAkBA,EAAgBrsE,KAAI,SAACQ,GAAc,OAAP,QAAagH,aAAN,IACrD,IAAM8kE,EAAwBxlE,EAAQulE,GAAiB,YAAa,SAASlmE,IAAIghE,IAAc,EAA3B,IAC9DoF,EAAkBhmE,EAAWtI,MAAMiJ,KAAK8/D,EAASryE,QAAS03E,GAC1DG,EAAwB1lE,EAAQylE,GAAiB,YAAa,SAASpmE,IAAIghE,EAAb,IACpE,OAAOmF,EAAsBjlE,OAAOmlE,EACtC,CAoCyBC,CAAyBzF,EADb,UAAT7jE,EAAmBgpE,EAAuBC,GAE5DM,EAAazE,EAA8BC,EAAcpB,GAEzD6F,EAAmB3F,EAAS7gE,IAAI,SAAW,GAC3CymE,EAAmB5F,EAAS7gE,IAAI,SAAW,GAKjD,OAJ0C,UAAThD,EAC7B,IAAIjD,IAAIysE,EAAiBtlE,OAAOulE,IAChC,IAAI1sE,KAEwB+F,IAAIiiE,EAAa,IAC7CwE,EAAWlkE,QAAQ,4BAA6B,IAChDkkE,CACN,KAAI/+D,KAAK,OACX,EA6XAngB,EAAQq/E,aArXR,SAAsBziC,EAAK0iC,GACzB,IAAM9hC,EAAgBP,EAAiBL,GAEvC,MAAO,CADSA,EAAI7tC,MAAM,UAAU,IACnB8K,OAAO2jC,EAAchrC,KAAI,YAExC,GADA8mE,EAAUA,EAAQt+D,QAAQ,QAAS,KAC9B,WAAWgL,KAAKszD,GACnB,OAAOA,EAET,IAAME,EAAWH,EAA8BC,GACzCoB,EAAeT,EAA8BX,GAC7CiG,EAAkB,IAAI7sE,IAAI8mE,EAAS7gE,IAAI,QAAU,IAGvD,OAD0B+hE,EAAa8E,MAAK,YAAe,SAAgB/mE,IAAIgnE,EAApB,IAEvDtG,EAA2BG,EAASgG,GACpChG,CACN,KAAIz/D,OAAO,IAAIsG,KAAK,OACtB,C,ohBCtNMw4B,EAAetnC,EAAQ,IACvBquE,EAAsBruE,EAAQ,KAmB9BwmC,EAAS,CACb8nC,WAAY,CACV,aAEFC,UAAW,CACT,eACA,gBAEFC,aAAc,CACZ,YACA,gBAEFC,aAAc,IAchB,cAIE,mBACExuC,YAAM,aAAcuG,IAAO,K,OAE3B33C,OAAOkQ,iBAAiB+J,EAAM,CAC5B4lE,UAAW,CACTz+E,UAAU,EACVZ,MAAO,MAETs/E,qBAAsB,CACpBt/E,MAAO,KACPY,UAAU,GAEZ2+E,qBAAsB,CACpBv/E,MAAO,KACPY,UAAU,GAEZ4+E,KAAM,CACJ5+E,UAAU,EACVZ,MAAO,MAET6rB,SAAU,CACRnrB,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKonE,SACd,GAEF/H,IAAK,CACH52E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKunE,IACd,GAEFxqE,OAAQ,CACNtU,YAAY,EACZV,MAAO,IAAIiS,O,CAGjB,CA0GF,OAnJmCyH,OA+CjCla,sBAAIigF,kCAAmB,C,IAAvB,WACE,OAAO,KAAKH,oBACd,E,gCAMA9/E,sBAAIigF,kCAAmB,C,IAAvB,WACE,OAAO,KAAKF,oBACd,E,gCASAE,qBAAA,SAASlpE,GAGP,OAFA,KAAKvB,OAAOkS,IAAI3Q,EAAM2jC,IAAM3jC,EAAM+gE,IAAK/gE,GACvC,KAAK0L,KAAK,aAAc1L,GACjB,IACT,EAMAkpE,uBAAA,WACE,MAAmB,iBAAf,KAAK/7E,QACP,KAAKg8E,QAAQ,iBACN,EAGX,EASAD,wBAAA,SAAYlpE,GACV,IAAMO,EAAY,KAAK9B,OAAOiD,IAAI1B,EAAM2jC,IAAM3jC,EAAM+gE,KAKpD,OAJA,KAAKtiE,OAAOkjC,OAAO3hC,EAAM2jC,IAAM3jC,EAAM+gE,KACjCxgE,GACF,KAAKmL,KAAK,eAAgB1L,GAErBO,GAAa,IACtB,EAOA2oE,mCAAA,SAAuBE,EAAqBC,GACtC,KAAKN,uBAAyBK,IAChC,KAAKL,qBAAuBK,EAC5B,KAAKJ,qBAAuBK,IACxBA,EAAqB3oE,OAAS2oE,EAAqBhqE,OACnD,IAAIopE,EAAoBY,GACxB,KACJ,KAAK39D,KAAK,8BAEd,EAQAw9D,oBAAA,SAAQnI,EAAKzrD,GACX,OAAmB,eAAf,KAAKnoB,OAAyC,iBAAf,KAAKA,SACjC,KAAK87E,OACR,KAAKA,KAAOlI,GAET,KAAK+H,YACR,KAAKA,UAAYxzD,GAEnB,KAAK6zD,QAAQ,cACN,EAGX,EAMAD,yBAAA,WACE,OAAmB,eAAf,KAAK/7E,OAAyC,cAAf,KAAKA,SACtC,KAAKg8E,QAAQ,iBACN,EAGX,EACF,EAnJA,CAAmCznC,GAqKnCn6B,EAAOxe,QAAUmgF,C,+BCpMjB,IAAII,EAAQlvE,EAAQ,KAChBmvE,EAAkBnvE,EAAQ,KAC1BolC,EAAUplC,EAAQ,IAClBs7B,EAAWt7B,EAAQ,IACnB07B,EAAa17B,EAAQ,IACrBovE,EAAQpvE,EAAQ,KAChB63B,EAAc73B,EAAQ,IAAe63B,YACrCI,EAAcj4B,EAAQ,IAAei4B,YACrC2C,EAAqB56B,EAAQ,IAK7BqvE,EAKkBjqC,EAAQ7rB,OA0D9B,SAASif,EAAWmlC,GAClBA,EAAOA,GAAQ,CAAC,EAEhB,IAAIrtE,EAAOkB,KAEXA,KAAK6D,YAAYupC,OAAOztC,KAAKK,KAAMmsE,GAEnCnsE,KAAK89E,iBAA2C,MAAxB3R,EAAK4R,iBAC3B5R,EAAK4R,gBAEP/9E,KAAKg+E,QAAU,IAAIL,EAAgB39E,MAEnCA,KAAKi+E,YAAc72E,SAASq5C,cAAc,UAE1Cpa,EAAYrmC,KAAKi+E,aACjBx3C,EAAYzmC,KAAKi+E,aAEjBj+E,KAAKk+E,IAvEP,SAA0BC,EAAQhS,GAChC,IAAItjE,EAAU,CACZu1E,OAAO,EACPC,oBAAoB,EACpBC,aAAcnS,IAAQA,EAAKmS,WAC3BC,yBAA0BpS,IAAQA,EAAKoS,wBAGrCC,EAAML,EAAOM,aAAgBN,EAAOM,WAAW,QAAS51E,IAAYs1E,EAAOM,WAAW,qBAAsB51E,IAEhH,IAAK21E,EACH,MAAM,IAAIh9E,MAAM,+BAOlB,OAJI2qE,EAAKuS,cACPF,EAAKrS,EAAKuS,YAAYF,IAGjBA,CACT,CAoDaG,CAAiB3+E,KAAKi+E,YAAa9R,GAE9CnsE,KAAK4+E,mBAAqB,WACxB9/E,EAAKghB,KAAK,oBACVhhB,EAAKo/E,IAAM,IACb,EAGAl+E,KAAKi+E,YAAYpkE,iBAAiB,mBAAoB7Z,KAAK4+E,oBAK3D5+E,KAAK6+E,mBAAqB,EAC5B,CA2JA,SAASC,EAAaC,EAAOC,EAAMC,GACjCj/E,KAAKk/E,OAASH,EACd/+E,KAAKk+E,IAAMa,EAAMb,IACjBl+E,KAAKm/E,SAAW,KAChBn/E,KAAKo/E,WAAa,KAClBp/E,KAAKq/E,OAASr/E,KAAKs/E,QAAU,KAC7Bt/E,KAAKu/E,QAAQP,EAAMC,EACrB,CAhKAn1C,EAAS9C,EAAY02C,GAMrB12C,EAAW1pC,UAAUihD,QAAU,WAC7Bv+C,KAAKi+E,YAAY3iE,oBAAoB,mBAAoBtb,KAAK4+E,oBAE9D5+E,KAAK6D,YAAYupC,OAAO9vC,UAAUihD,QAAQ5+C,KAAKK,KACjD,EAQAgnC,EAAW1pC,UAAUkiF,WAAa,WAChC,OAAOx/E,KAAKi+E,WACd,EAQAj3C,EAAW1pC,UAAUmiF,aAAe,WAClC,OAAOz/E,KAAKk+E,GACd,EAGAl3C,EAAW1pC,UAAUoiF,eAAiB,WAUpC,IAAIC,EAAQz1C,IACZlqC,KAAKi+E,YAAY1tD,MAAQovD,EAAQ3/E,KAAKq/E,OACtCr/E,KAAKi+E,YAAYztD,OAASmvD,EAAQ3/E,KAAKs/E,OACzC,EAGAt4C,EAAW1pC,UAAUsiF,UAAY,SAASl3E,EAAKm3E,EAAM59E,GACnD,OAAOjC,KAAKg+E,QAAQ4B,UAAUl3E,EAAKm3E,EAAM59E,EAC3C,EAGA+kC,EAAW1pC,UAAUwiF,eAAiB,WACpC,OAAO9/E,KAAKk+E,IAAI6B,aAAa//E,KAAKk+E,IAAI8B,iBACxC,EAGAh5C,EAAW1pC,UAAU2iF,cAAgB,SAASntB,GAC5C,IAAIotB,EAAWptB,EAAMqtB,WAAWC,cAC5BN,EAAiB9/E,KAAK8/E,iBAC1B,GAAII,EAAWJ,EACb,MAAM,IAAIt+E,MAAM,oEAAsE0+E,EAAW,QAAUJ,EAAiB,IAEhI,EAGA94C,EAAW1pC,UAAU+iF,eAAiB,SAASC,GAE7C,IADA,IAAIC,EAAoBvgF,KAAK6+E,mBACpBr7E,EAAI,EAAGA,EAAI+8E,EAAkBh9E,OAAQC,IAC5C,GAAI+8E,EAAkB/8E,aAAc88E,EAClC,OAAOC,EAAkB/8E,GAG7B,IAAIg9E,EAAW,IAAIF,EAAStgF,KAAKk+E,KAEjC,OADAqC,EAAkBv9E,KAAKw9E,GAChBA,CACT,EAGAx5C,EAAW1pC,UAAUmjF,gBAAkB,SAASD,GAC9C,IAAID,EAAoBvgF,KAAK6+E,mBAC7B,GAAI7+E,KAAK0gF,WAAWr2E,QAAQm2E,GAAY,EAAG,CACzCA,EAASjiC,UACT,IAAIp0C,EAAQo2E,EAAkBl2E,QAAQm2E,GAClCr2E,GAAS,GACXo2E,EAAkBj2E,OAAOH,EAAO,EAEpC,CACF,EAGA68B,EAAW1pC,UAAUqjF,WAAa,WAEhC,IAAInC,EAAKx+E,KAAKk+E,IAEd,IAAKM,EACH,MAAM,IAAIh9E,MAAM,+CAIlBg9E,EAAGoC,SAAS,EAAG,EAAGpC,EAAGqC,mBAAoBrC,EAAGsC,qBAG5CtC,EAAGuC,WAAW,EAAK,EAAK,EAAK,GAC7BvC,EAAG1pC,MAAM0pC,EAAGwC,iBAAmBxC,EAAGyC,kBAGlCzC,EAAG0C,OAAO1C,EAAG2C,YAIb3C,EAAG0C,OAAO1C,EAAG4C,OACb5C,EAAG6C,UAAU7C,EAAG8C,IAAK9C,EAAG+C,oBAE1B,EAGAv6C,EAAW1pC,UAAUkkF,SAAW,WAAY,EAG5Cx6C,EAAW1pC,UAAUmkF,aAAe,SAAS54E,GAGpB,kBAAZA,GAAmC,MAAXA,IACjCA,EAAU,CAAC,GAGb,IAAI64E,EAAU74E,EAAQ64E,QAQtB,GALsB,oBAAXA,IACTA,EAAU,IAIW,kBAAZA,GAAwBA,EAAU,GAAKA,EAAU,IAC1D,MAAM,IAAIlgF,MAAM,uEAQlB,OAHAxB,KAAK2hF,SAGE3hF,KAAKi+E,YAAY2D,UAAU,aAAcF,EAAU,IAC5D,EAGA16C,EAAWtnC,KAAOsnC,EAAW1pC,UAAUoC,KAAO,QAa9Co/E,EAAaxhF,UAAUiiF,QAAU,SAASP,EAAMC,GAE9C,IAEI4C,EAFArD,EAAKx+E,KAAKk+E,IACVa,EAAQ/+E,KAAKk/E,OAIb/Q,EAAY8Q,EAAM9Q,YACtB,GAAIA,IAAcnuE,KAAKo/E,WAAvB,CAKA,IAAIr5C,EAAUk5C,EAAMl5C,UAGhBxV,EAAQ0uD,EAAM1uD,QACdC,EAASyuD,EAAMzuD,SAEnB,GAAID,IAAUvwB,KAAKq/E,QAAU7uD,IAAWxwB,KAAKs/E,QAAS,CAMpD,IAAIwC,EAAU/C,EAAMe,iBACpB,GAAIvvD,EAAQuxD,EACV,MAAM,IAAItgF,MAAM,uCAAyC+uB,EAAQ,QAAUuxD,EAAU,KAEvF,GAAItxD,EAASsxD,EACX,MAAM,IAAItgF,MAAM,wCAA0CgvB,EAAS,QAAUsxD,EAAU,KAMrF9hF,KAAKm/E,UACPX,EAAGuD,cAAcF,GAMnBA,EAAU7hF,KAAKm/E,SAAWX,EAAGwD,gBAC7BxD,EAAGyD,YAAYzD,EAAG0D,WAAYL,GAC9BrD,EAAG2D,YAAY3D,EAAG4D,qBAAqB,GACvC5D,EAAG2D,YAAY3D,EAAG6D,gCAAgC,GAClD7D,EAAG8D,WAAW9D,EAAG0D,WAAY,EAAG1D,EAAG+D,KAAM/D,EAAG+D,KAAM/D,EAAGgE,cAAez8C,EAEtE,MAME87C,EAAU7hF,KAAKm/E,SACfX,EAAGyD,YAAYzD,EAAG0D,WAAYL,GAC9BrD,EAAG2D,YAAY3D,EAAG4D,qBAAqB,GACvC5D,EAAG2D,YAAY3D,EAAG6D,gCAAgC,GAE9Ct8C,aAAmB08C,kBAAoB5E,EACzCW,EAAG8D,WAAW9D,EAAG0D,WAAY,EAAG1D,EAAG+D,KAAM/D,EAAG+D,KAAM/D,EAAGgE,cAAez8C,GAEpEy4C,EAAGkE,cAAclE,EAAG0D,WAAY,EAAG,EAAG,EAAG1D,EAAG+D,KAAM/D,EAAGgE,cAAez8C,GAOpEg5C,EAAMjB,kBAAoBF,EAAMrtD,IAAUqtD,EAAMptD,IAClDguD,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAGoE,mBAAoBpE,EAAGqE,QAC1DrE,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAGsE,mBAAoBtE,EAAGuE,sBAC1DvE,EAAGwE,eAAexE,EAAG0D,cAErB1D,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAGoE,mBAAoBpE,EAAGqE,QAC1DrE,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAGsE,mBAAoBtE,EAAGqE,SAI5DrE,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAGyE,eAAgBzE,EAAG0E,eACtD1E,EAAGmE,cAAcnE,EAAG0D,WAAY1D,EAAG2E,eAAgB3E,EAAG0E,eAGtD1E,EAAGyD,YAAYzD,EAAG0D,WAAY,MAG9BliF,KAAKo/E,WAAajR,EAClBnuE,KAAKq/E,OAAS9uD,EACdvwB,KAAKs/E,QAAU9uD,CA/Ef,CAiFF,EAGAsuD,EAAaxhF,UAAUihD,QAAU,WAC3Bv+C,KAAKm/E,UACPn/E,KAAKk+E,IAAI6D,cAAc/hF,KAAKm/E,UAE9B/1C,EAAmBppC,KACrB,EAGAgnC,EAAWo8C,aAAep8C,EAAW1pC,UAAU8lF,aAAetE,EAG9DnjE,EAAOxe,QAAU6pC,C,+BCzXjB,IAAIiD,EAAMz7B,EAAQ,IAGlB,SAAS60E,EAAS7jF,EAAI8jF,GACpBtjF,KAAKR,GAAKA,EACVQ,KAAKsjF,GAAKA,EACVtjF,KAAKuzE,IAAM,IACb,CAGA,SAASgQ,EAAUpX,GACjBnsE,KAAKwjF,OAAS,GACdxjF,KAAKw0C,OAAS23B,GAAQA,EAAKxiC,OAAS,EACpC3pC,KAAKyjF,QAAUtX,KAAUA,EAAKuX,SAAU,EACxC1jF,KAAK2jF,aAAe,KACpB3jF,KAAK4jF,cAAgB,IACvB,CAGAL,EAAUjmF,UAAUiG,OAAS,WAC3B,OAAOvD,KAAKwjF,OAAOjgF,MACrB,EAGAggF,EAAUjmF,UAAU0F,KAAO,SAASxD,EAAI8jF,GAEtC,IAAIO,EAAO,IAAIR,EAAS7jF,EAAI8jF,GAExB7P,EAASzzE,KAAK8jF,QAAQ//C,KAAK/jC,KAAM6jF,GAQrC,OALA7jF,KAAKwjF,OAAOxgF,KAAK6gF,GAGjB7jF,KAAK0G,QAEE+sE,CAET,EAGA8P,EAAUjmF,UAAUymF,MAAQ,WACrB/jF,KAAKyjF,UACRzjF,KAAKyjF,SAAU,EAEnB,EAGAF,EAAUjmF,UAAU0mF,OAAS,WACvBhkF,KAAKyjF,UACPzjF,KAAKyjF,SAAU,EACfzjF,KAAK0G,QAET,EAGA68E,EAAUjmF,UAAUi3E,OAAS,SAASsP,GAGpC,GAAI7jF,KAAK2jF,aACP,MAAM,IAAIniF,MAAM,8CAIlBxB,KAAK2jF,aAAeE,EAGpB,IAAIn+E,EAAS1F,KAAKikF,QAAQlgD,KAAK/jC,KAAM6jF,GAIrC,GAHAA,EAAKtQ,IAAMsQ,EAAKrkF,GAAGkG,GAGK,oBAAbm+E,EAAKtQ,IACd,MAAM,IAAI/xE,MAAM,yCAGpB,EAGA+hF,EAAUjmF,UAAU2mF,QAAU,SAASJ,GAErC,IAAIh9E,EAAO+G,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GAGjD,GAAI9G,KAAK2jF,eAAiBE,EACxB,MAAM,IAAIriF,MAAM,0CAIlBqiF,EAAKP,GAAGv8E,MAAM,KAAMF,GAGpB7G,KAAK2jF,aAAe,KACpB3jF,KAAK4jF,cAAgB35C,IACrBjqC,KAAK0G,OAEP,EAGA68E,EAAUjmF,UAAUwmF,QAAU,SAASD,GAErC,IAAIh9E,EAAO+G,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GAEjD,GAAI9G,KAAK2jF,eAAiBE,EAIxBA,EAAKtQ,IAAIxsE,MAAM,KAAMF,OAEhB,CAGL,IAAIioD,EAAM9uD,KAAKwjF,OAAOn5E,QAAQw5E,GAC1B/0B,GAAO,IACT9uD,KAAKwjF,OAAOl5E,OAAOwkD,EAAK,GACxB+0B,EAAKP,GAAGv8E,MAAM,KAAMF,GAGxB,CAEF,EAGA08E,EAAUjmF,UAAUoJ,MAAQ,WAE1B,IAAI1G,KAAKyjF,SAKJzjF,KAAKwjF,OAAOjgF,SAKbvD,KAAK2jF,aAAT,CAKA,GAA0B,MAAtB3jF,KAAK4jF,cAAuB,CAC9B,IAAI91C,EAAU7D,IAAQjqC,KAAK4jF,cACvBM,EAAYlkF,KAAKw0C,OAAS1G,EAC9B,GAAIo2C,EAAY,EAGd,YADAvrE,WAAW3Y,KAAK0G,MAAMq9B,KAAK/jC,MAAOkkF,EAGtC,CAGA,IAAIL,EAAO7jF,KAAKwjF,OAAOt+C,QACvBllC,KAAKu0E,OAAOsP,EAdZ,CAgBF,EAGAloE,EAAOxe,QAAUomF,C,+BC3FjB5nE,EAAOxe,QAhDP,SAAkBgnF,EAAYC,EAAaC,EAAMrjF,GAI/C,IAAIuvB,EASAC,EASA3N,EASA5B,EAcJ,OA3CAjgB,EAASA,GAAU,CAAC,EAIlBuvB,EADU,MAAR8zD,GAAsC,MAAtBA,EAAKC,cACfD,EAAKC,cAAgBH,EACZ,MAARE,GAAsC,MAAtBA,EAAKE,cACtBF,EAAKE,cAEL,EAKR/zD,EADE6zD,GAA+B,MAAvBA,EAAKG,eACNH,EAAKG,eAAiBJ,EACd,MAARC,GAAuC,MAAvBA,EAAKI,eACrBJ,EAAKI,eAEL,EAKT5hE,EADU,MAARwhE,GAAkC,MAAlBA,EAAKK,UACnBL,EAAKK,UAAYP,EACJ,MAARE,GAAkC,MAAlBA,EAAKM,UAC1BN,EAAKM,UAEL,EAKJ1jE,EADU,MAARojE,GAAkC,MAAlBA,EAAKO,UACnBP,EAAKO,UAAYR,EACJ,MAARC,GAAkC,MAAlBA,EAAKQ,UAC1BR,EAAKQ,UAEL,EAGN7jF,EAAO6hB,EAAIA,EACX7hB,EAAOigB,EAAIA,EACXjgB,EAAOuvB,MAAQA,EACfvvB,EAAOwvB,OAASA,EAETxvB,CACT,C,+BC7CA2a,EAAOxe,QAjBP,SAAeqC,GACb,OAAO,SAAiByC,GACtB,IAAIvD,EAAKylC,EACT,IACEA,EAAM3kC,GASR,CARE,MAAOgN,GACP9N,EAAM8N,CACR,CAAE,QACI9N,EACFuD,EAAKvD,GAELuD,EAAK,KAAMkiC,EAEf,CACF,CACF,C,+BChBA,IAAIhrB,EAAO3K,EAAQ,IAmCnBmN,EAAOxe,QAlBP,SAAmBqC,GACjB,OAAO,WACL,IAAKsH,UAAUvD,OACb,MAAM,IAAI/B,MAAM,8CAElB,IAAIqF,EAAO+G,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,GAC7C7E,EAAO4E,EAAKA,EAAKtD,OAAS,GAAK4V,EAAKtS,EAAKA,EAAKtD,OAAS,IAE3D,SAASkwE,IACPxxE,EAAK8E,MAAM,KAAMD,UACnB,CAIA,OAFAtH,EAAGuH,MAAM,KAAMF,GAER4sE,CACT,CACF,C,gCClDA,YAkBA,IAAIqR,EACoB,qBAAX39E,OACFA,OAEW,qBAATrI,KACFA,KAEa,qBAAX8N,EACFA,EAEF,KAGT+O,EAAOxe,QAAU2nF,C,kDCJjB,SAASC,EAAah6E,GAEpB/K,KAAK6D,YAAYupC,OAAOrmC,MAAM/G,KAAM8G,WACpC9G,KAAK+K,QAAUA,CACjB,CAdeyD,EAAQ,GAgBvBs7B,CAASi7C,EAAcvjF,OAEvBma,EAAOxe,QAAU4nF,C,+BClBjB,IAAIC,EAAoBx2E,EAAQ,IAchC,SAASy4B,IACPjnC,KAAK6D,YAAYupC,OAAOrmC,MAAM/G,KAAM8G,UACtC,CAfe0H,EAAQ,GAiBvBs7B,CAAS7C,EAAmB+9C,GAE5BrpE,EAAOxe,QAAU8pC,C,+BCpBjB,IAAIvH,EAAOlxB,EAAQ,IAAakxB,KAC5Bd,EAAOpwB,EAAQ,IAAaowB,KAC5BwK,EAAqB56B,EAAQ,IAE7By2E,EAAcz2E,EAAQ,IACtB02E,EAAwBD,EAAYC,sBACpCC,EAAyBF,EAAYE,uBACrCC,EAAsBH,EAAYG,oBAClCC,EAAuBJ,EAAYI,qBACnCC,EAAmBL,EAAYK,iBAC/BC,EAAoBN,EAAYM,kBAChCC,EAAcP,EAAYO,YAC1BC,EAA2BR,EAAYQ,yBAEvCC,EAAWT,EAAYS,SACvBC,EAAaV,EAAYU,WAEzBC,EAAYp3E,EAAQ,KACpBq3E,EAAcr3E,EAAQ,KAEtBs3E,EAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAkB,EAAE,IAAM,GAAK,EAAK,IAAM,GAAK,EAAK,GAAK,GAAK,GAAM,GAAK,GAAK,GAC9EC,EAAgB,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GAEpDC,EAAa,CAAC,kBAAmB,iBACjCC,EAAc,CAChB,SAAU,WAAY,WAAY,cAAe,kBACjD,eAAgB,gBAIlB,SAASlB,EAAkBxG,GACzBx+E,KAAKw+E,GAAKA,EAKVx+E,KAAKmmF,WAAazmD,EAAKvgC,SAIvBa,KAAKomF,eAAiB1mD,EAAKvgC,SAG3Ba,KAAKqmF,gBAAkBznD,EAAKz/B,SAC5Ba,KAAKsmF,YAAc1nD,EAAKz/B,SAExBa,KAAKumF,gBAAkBrB,EAAsB1G,EAAIsH,EAAeC,EAAiBC,GAEjFhmF,KAAKwmF,cAAgBpB,EAAoB5G,EAAIoH,EAAWC,EAAaI,EAAYC,EACnF,CAEAlB,EAAkB1nF,UAAUihD,QAAU,WACpC4mC,EAAuBnlF,KAAKw+E,GAAIx+E,KAAKumF,iBACrClB,EAAqBrlF,KAAKw+E,GAAIx+E,KAAKwmF,eACnCp9C,EAAmBppC,KACrB,EAEAglF,EAAkB1nF,UAAUmpF,WAAa,SAAS3zB,EAAO+sB,GACvD,IAAIrB,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACrBD,EAAkBvmF,KAAKumF,gBACvBH,EAAiBpmF,KAAKomF,eAE1B5H,EAAGkI,WAAWF,GAEdlB,EAAiB9G,EAAIgI,GAErBhB,EAAYhH,EAAI1rB,EAAO+sB,EAAMuG,GAC7B5H,EAAGmI,iBAAiBH,EAAcI,iBAAiB,EAAOR,GAE1D5H,EAAGqI,WAAWrI,EAAGsI,aAAcP,EAAgBR,iBAC/CvH,EAAGuI,oBAAoBP,EAAcQ,gBAAiB,EAAGxI,EAAGyI,MAAOzI,EAAG0I,MAAO,EAAG,GAChF1I,EAAGqI,WAAWrI,EAAGsI,aAAcP,EAAgBP,eAC/CxH,EAAGuI,oBAAoBP,EAAcW,cAAe,EAAG3I,EAAGyI,MAAOzI,EAAG0I,MAAO,EAAG,GAE9EzB,EAAyBjH,EAAI1rB,EAAMs0B,UAAW,CAC5Cx5B,QAAS44B,EAAca,SACvBC,YAAad,EAAce,aAC3BC,YAAahB,EAAciB,cAE/B,EAGAzC,EAAkB1nF,UAAUoqF,SAAW,SAAS50B,EAAO+sB,GACrD,IAAIrB,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACzBjB,EAAkB/G,EAAIgI,EACxB,EAGAxB,EAAkB1nF,UAAUqqF,WAAa,SAAS3I,EAAM6C,EAAS/uB,EAAO80B,GACtE,IAAIpJ,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACrBD,EAAkBvmF,KAAKumF,gBACvBJ,EAAanmF,KAAKmmF,WAClBE,EAAkBrmF,KAAKqmF,gBACvBC,EAActmF,KAAKsmF,YAEvBD,EAAgB,GAAKrH,EAAK6I,UAC1BxB,EAAgB,GAAKrH,EAAK8I,UAC1BzB,EAAgB,IAAM,GAEtBC,EAAY,GAAKtH,EAAK+I,SACtBzB,EAAY,GAAKtH,EAAKgJ,SACtB1B,EAAY,GAAK,EAEjB5mD,EAAKjW,KAAK08D,EAAYrzB,EAAMhrD,OAAOwoB,cACnCoP,EAAKlO,QAAQ20D,EAAYA,EAAYnH,EAAKiJ,QAC1CvoD,EAAKjO,QAAQ00D,EAAYA,EAAYnH,EAAKkJ,QAC1CxoD,EAAK5S,UAAUq5D,EAAYA,EAAYE,GACvC3mD,EAAKxU,MAAMi7D,EAAYA,EAAYG,GAEnC9H,EAAGmI,iBAAiBH,EAAc2B,aAAa,EAAOhC,GAEtDT,EAASlH,EAAIgI,EAAeoB,EAAQ5I,EAAKv9D,GAEzCkkE,EAAWnH,EAAIgI,EAAe3E,GAE9BrD,EAAGqI,WAAWrI,EAAG4J,qBAAsB7B,EAAgBT,eACvDtH,EAAG6J,aAAa7J,EAAG8J,UAAWxC,EAAcviF,OAAQi7E,EAAG+J,eAAgB,EACzE,EAGA5sE,EAAOxe,QAAU6nF,C,+BC3HjB,IAGI77C,EAAQ36B,EAAQ,IAChBiwB,EAAOjwB,EAAQ,IAAaiwB,KAC5BG,EAAOpwB,EAAQ,IAAaowB,KAC5Bc,EAAOlxB,EAAQ,IAAakxB,KAGhC,SAAS8oD,EAAahK,EAAI9+E,EAAM+oF,GAC9B,IAAIC,EAASlK,EAAGgK,aAAa9oF,GAG7B,GAFA8+E,EAAGmK,aAAaD,EAAQD,GACxBjK,EAAGoK,cAAcF,IACZlK,EAAGqK,mBAAmBH,EAAQlK,EAAGsK,gBACpC,MAAMtK,EAAGuK,iBAAiBL,GAE5B,OAAOA,CACT,CAiDA,SAASM,EAAqBxK,EAAIt4E,EAAQ+iF,EAAOprF,GAC/C,IAAIqrF,EAAS1K,EAAG2K,eAGhB,OAFA3K,EAAGqI,WAAW3gF,EAAQgjF,GACtB1K,EAAG4K,WAAWljF,EAAQrI,EAAOorF,GACtBC,CACT,CAgDA,IACIG,EAAqB5qD,EAAKt/B,SAC1BmqF,EAAqB5pD,EAAKvgC,SAC9BugC,EAAKhW,SAAS4/D,GAwBd,IAAIjD,EAAkBznD,EAAKz/B,SACvBmnF,EAAc1nD,EAAKz/B,SAuDvBwc,EAAOxe,QAAU,CACfioF,oBAvLF,SAA6B5G,EAAIoH,EAAWC,EAAaI,EAAYC,GAEnE,IAAIqD,EAAef,EAAahK,EAAIA,EAAGgL,cAAe5D,GAClD6D,EAAiBjB,EAAahK,EAAIA,EAAGkL,gBAAiB7D,GAEtDW,EAAgBhI,EAAGmL,gBAMvB,GAJAnL,EAAGoL,aAAapD,EAAe+C,GAC/B/K,EAAGoL,aAAapD,EAAeiD,GAC/BjL,EAAGqL,YAAYrD,IAEVhI,EAAGsL,oBAAoBtD,EAAehI,EAAGuL,aAC5C,MAAMvL,EAAGwL,kBAAkBxD,GAG7B,IAAK,IAAIhjF,EAAI,EAAGA,EAAIyiF,EAAW1iF,OAAQC,IAAK,CAC1C,IAAIymF,EAAShE,EAAWziF,GAExB,GADAgjF,EAAcyD,GAAUzL,EAAG0L,kBAAkB1D,EAAeyD,IAC7B,IAA3BzD,EAAcyD,GAChB,MAAM,IAAIzoF,MAAM,yBAA2ByoF,EAAS,aAExD,CAEA,IAAK,IAAI/rD,EAAI,EAAGA,EAAIgoD,EAAY3iF,OAAQ26B,IAAK,CAC3C,IAAIisD,EAAUjE,EAAYhoD,GAE1B,GADAsoD,EAAc2D,GAAW3L,EAAG4L,mBAAmB5D,EAAe2D,IAC9B,IAA5B3D,EAAc2D,GAChB,MAAM,IAAI3oF,MAAM,yBAA2B2oF,EAAU,WAEzD,CAEA,OAAO3D,CACT,EAwJEnB,qBArJF,SAA8B7G,EAAIgI,GAEhC,IADA,IAAI6D,EAAa7L,EAAG8L,mBAAmB9D,GAC9BhjF,EAAI,EAAGA,EAAI6mF,EAAW9mF,OAAQC,IAAK,CAC1C,IAAIklF,EAAS2B,EAAW7mF,GACxBg7E,EAAG+L,aAAa/D,EAAekC,GAC/BlK,EAAGgM,aAAa9B,EAClB,CACAlK,EAAGiM,cAAcjE,EACnB,EA8IEtB,sBAnIF,SAA+B1G,EAAIsH,EAAeC,EAAiBC,GACjE,MAAO,CACLF,cAAekD,EAAqBxK,EAAIA,EAAG4J,qBAAsB5J,EAAGkM,YAAa,IAAIC,YAAY7E,IACjGC,gBAAiBiD,EAAqBxK,EAAIA,EAAGsI,aAActI,EAAGkM,YAAa,IAAI1hE,aAAa+8D,IAC5FC,cAAegD,EAAqBxK,EAAIA,EAAGsI,aAActI,EAAGkM,YAAa,IAAI1hE,aAAag9D,IAE9F,EA8HEb,uBA3HF,SAAgC3G,EAAI+H,GAClC/H,EAAGoM,aAAarE,EAAgBT,eAChCtH,EAAGoM,aAAarE,EAAgBR,iBAChCvH,EAAGoM,aAAarE,EAAgBP,cAClC,EAwHEV,iBArHF,SAA0B9G,EAAIgI,GAE5B,IADA,IAAIqE,EAAWrM,EAAGsL,oBAAoBtD,EAAehI,EAAGsM,mBAC/CtnF,EAAI,EAAGA,EAAIqnF,EAAUrnF,IAC5Bg7E,EAAGuM,wBAAwBvnF,EAE/B,EAiHE+hF,kBA9GF,SAA2B/G,EAAIgI,GAE7B,IADA,IAAIqE,EAAWrM,EAAGsL,oBAAoBtD,EAAehI,EAAGsM,mBAC/CtnF,EAAI,EAAGA,EAAIqnF,EAAUrnF,IAC5Bg7E,EAAGwM,yBAAyBxnF,EAEhC,EA0GEmiF,WAvGF,SAAoBnH,EAAIgI,EAAe3E,GACrCrD,EAAGyM,cAAczM,EAAG0M,UACpB1M,EAAGyD,YAAYzD,EAAG0D,WAAYL,EAAQ1C,UACtCX,EAAG2M,UAAU3E,EAAc4E,SAAU,EACvC,EAoGE1F,SAjGF,SAAkBlH,EAAIgI,EAAeoB,EAAQyD,GAC3C,IAAIz0C,GAjHW,KAiHAgxC,EAAS,GAAmByD,GAAS,MACpD7M,EAAG8M,UAAU9E,EAAc+E,OAAQ30C,EACrC,EA+FE4uC,YArDF,SAAqBhH,EAAI1rB,EAAO+sB,EAAMuG,GACpC,GAAe,IAAXvG,EAAKh9D,GAA0B,IAAfg9D,EAAKtvD,OAA0B,IAAXsvD,EAAK5+D,GAA2B,IAAhB4+D,EAAKrvD,OAI3D,OAFAguD,EAAGoC,SAAS,EAAG,EAAGpC,EAAGqC,mBAAoBrC,EAAGsC,0BAC5CphD,EAAKhW,SAAS08D,GAIhB,IAAIoF,EAAU3L,EAAKh9D,EACf4oE,EAAiBtiD,EAAMqiD,EAAS,EAAG,GACnCE,EAAaD,EAAiBD,EAC9BG,EAAkB,EAAIF,EACtBG,EAAeziD,EAAM02C,EAAKtvD,MAAQm7D,EAAY,EAAGC,GACjDE,EAAchM,EAAKtvD,MAAQq7D,EAE3BE,EAAU,EAAIjM,EAAKrvD,OAASqvD,EAAK5+D,EACjC8qE,EAAiB5iD,EAAM2iD,EAAS,EAAG,GACnCE,EAAeD,EAAiBD,EAChCG,EAAmB,EAAIF,EACvBG,EAAgB/iD,EAAM02C,EAAKrvD,OAASw7D,EAAc,EAAGC,GACrDE,EAAYtM,EAAKrvD,OAAS07D,EAE9BttD,EAAK7Z,IACHuhE,EACAzG,EAAKtvD,MAAQq7D,EACb/L,EAAKrvD,OAAS07D,EACd,GAEFttD,EAAK7Z,IACHshE,GACCwF,EAAcH,GAAcE,GAC5BO,EAAYH,GAAgBE,EAC7B,GAEFxsD,EAAKhW,SAAS08D,GACd1mD,EAAK5S,UAAUs5D,EAAgBA,EAAgBC,GAC/C3mD,EAAKxU,MAAMk7D,EAAgBA,EAAgBE,GAE3C9H,EAAGoC,SAASpC,EAAGqC,mBAAqB4K,EACxBjN,EAAGsC,oBAAsBiL,EACzBvN,EAAGqC,mBAAqB+K,EACxBpN,EAAGsC,oBAAsBoL,EACvC,EAYEzG,yBAxFF,SAAkCjH,EAAI4I,EAASgF,GAC7C,IAAIx+B,EANe,EAOfw5B,GAA8B,MAAnBA,EAAQx5B,UACrBA,EAAUw5B,EAAQx5B,SAEpB4wB,EAAG8M,UAAUc,EAASx+B,QAASA,GAE/B,IAAI05B,EAAc+B,EACdjC,GAAWA,EAAQE,cACrBA,EAAcF,EAAQE,aAExB9I,EAAG6N,WAAWD,EAAS9E,YAAaA,GAEpC,IAAIE,EAAc8B,EACdlC,GAAWA,EAAQI,cACrBA,EAAcJ,EAAQI,aAExBhJ,EAAGmI,iBAAiByF,EAAS5E,aAAa,EAAOA,EACnD,E,+BC/IA,IAAIxC,EAAoBx2E,EAAQ,IAchC,SAAS04B,IACPlnC,KAAK6D,YAAYupC,OAAOrmC,MAAM/G,KAAM8G,UACtC,CAfe0H,EAAQ,GAiBvBs7B,CAAS5C,EAAmB89C,GAE5BrpE,EAAOxe,QAAU+pC,C,+BCpBjB,IAAIxH,EAAOlxB,EAAQ,IAAakxB,KAC5B0J,EAAqB56B,EAAQ,IAE7By2E,EAAcz2E,EAAQ,IACtB02E,EAAwBD,EAAYC,sBACpCC,EAAyBF,EAAYE,uBACrCC,EAAsBH,EAAYG,oBAClCC,EAAuBJ,EAAYI,qBACnCC,EAAmBL,EAAYK,iBAC/BC,EAAoBN,EAAYM,kBAChCC,EAAcP,EAAYO,YAC1BC,EAA2BR,EAAYQ,yBAEvCC,EAAWT,EAAYS,SACvBC,EAAaV,EAAYU,WAEzBC,EAAYp3E,EAAQ,KACpBq3E,EAAcr3E,EAAQ,KAEtBs3E,EAAgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAkB,EAAE,GAAM,EAAK,EAAK,GAAM,EAAK,EAAK,EAAK,EAAK,GAAM,EAAK,EAAK,GAC9EC,EAAgB,CAAC,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,GAEpDC,EAAa,CAAC,mBACdC,EAAc,CAChB,SAAU,WAAY,WAAY,iBAAkB,kBACpD,eAAgB,eAAgB,YAAa,YAAa,gBAC1D,kBAeF,SAAS/+C,EAAsBq3C,GAC7Bx+E,KAAKw+E,GAAKA,EAGVx+E,KAAKssF,cAAgB5sD,EAAKvgC,SAI1Ba,KAAKomF,eAAiB1mD,EAAKvgC,SAE3Ba,KAAKumF,gBAAkBrB,EAAsB1G,EAAIsH,EAAeC,EAAiBC,GAEjFhmF,KAAKwmF,cAAgBpB,EAAoB5G,EAAIoH,EAAWC,EAAaI,EAAYC,EACnF,CAEA/+C,EAAsB7pC,UAAUihD,QAAU,WACxC4mC,EAAuBnlF,KAAKw+E,GAAIx+E,KAAKumF,iBACrClB,EAAqBrlF,KAAKw+E,GAAIx+E,KAAKwmF,eACnCp9C,EAAmBppC,KACrB,EAGAmnC,EAAsB7pC,UAAUmpF,WAAa,SAAS3zB,EAAO+sB,GAC3D,IAAIrB,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACrBD,EAAkBvmF,KAAKumF,gBACvB+F,EAAgBtsF,KAAKssF,cACrBlG,EAAiBpmF,KAAKomF,eAE1B5H,EAAGkI,WAAWF,GAEdlB,EAAiB9G,EAAIgI,GAErBhB,EAAYhH,EAAI1rB,EAAO+sB,EAAMuG,GAC7B5H,EAAGmI,iBAAiBH,EAAcI,iBAAiB,EAAOR,GAE1D5H,EAAGqI,WAAWrI,EAAGsI,aAAcP,EAAgBR,iBAC/CvH,EAAGuI,oBAAoBP,EAAcQ,gBAAiB,EAAGxI,EAAGyI,MAAOzI,EAAG0I,MAAO,EAAG,GAChF1I,EAAGqI,WAAWrI,EAAGsI,aAAcP,EAAgBP,eAG/CtmD,EAAKjW,KAAK6iE,EAAex5B,EAAMhrD,OAAOwoB,cACtCoP,EAAKxV,OAAOoiE,EAAeA,GAE3B9N,EAAGmI,iBAAiBH,EAAc+F,gBAAgB,EAAOD,GAGzD,IAAIE,EAAc15B,EAAMs0B,UAAUoF,aAAe,CAAC,EAC9CC,EAA4B,MAAjBD,EAAY3pE,EAAY2pE,EAAY3pE,EAAI,EACnD6pE,EAA4B,MAAjBF,EAAYvrE,EAAYurE,EAAYvrE,EAAI,EACnD0rE,EAAoC,MAArBH,EAAYj8D,MAAgBi8D,EAAYj8D,MAAQ,EAC/Dq8D,EAAsC,MAAtBJ,EAAYh8D,OAAiBg8D,EAAYh8D,OAAS,EAEtEguD,EAAG8M,UAAU9E,EAAcqG,UAAWJ,GACtCjO,EAAG8M,UAAU9E,EAAcsG,UAAWJ,GACtClO,EAAG8M,UAAU9E,EAAcuG,cAAeJ,GAC1CnO,EAAG8M,UAAU9E,EAAcwG,eAAgBJ,GAE3CnH,EAAyBjH,EAAI1rB,EAAMs0B,UAAW,CAC5Cx5B,QAAS44B,EAAca,SACvBC,YAAad,EAAce,aAC3BC,YAAahB,EAAciB,cAE/B,EAGAtgD,EAAsB7pC,UAAUoqF,SAAW,SAAS50B,EAAO+sB,GACzD,IAAIrB,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACzBjB,EAAkB/G,EAAIgI,EACxB,EAGAr/C,EAAsB7pC,UAAUqqF,WAAa,SAAS3I,EAAM6C,EAAS/uB,EAAO80B,GAC1E,IAAIpJ,EAAKx+E,KAAKw+E,GACVgI,EAAgBxmF,KAAKwmF,cACrBD,EAAkBvmF,KAAKumF,gBAE3Bb,EAASlH,EAAIgI,EAAeoB,EAAQ5I,EAAKv9D,GAEzCkkE,EAAWnH,EAAIgI,EAAe3E,GAE9BrD,EAAGqI,WAAWrI,EAAG4J,qBAAsB7B,EAAgBT,eACvDtH,EAAG6J,aAAa7J,EAAG8J,UAAWxC,EAAcviF,OAAQi7E,EAAG+J,eAAgB,EACzE,EAGA5sE,EAAOxe,QAAUgqC,C,+BCjIjB,IAAI8lD,EAAYz+E,EAAQ,IACpB0+E,EAAY1+E,EAAQ,IACpB2+E,EAAgB3+E,EAAQ,IAsB5BmN,EAAOxe,QAZP,SAAkC4hF,GAChC,GACO,UADCA,EAAMr/E,KAOV,MAAM,IAAI8B,MAAM,uBAAyBu9E,EAAMr/E,MAL/Cq/E,EAAMqO,iBAAiB,OAAQ,OAAQF,GACvCnO,EAAMqO,iBAAiB,OAAQ,cAAeH,GAC9ClO,EAAMqO,iBAAiB,WAAY,cAAeD,EAKxD,C,+BCtBA,IAAIt9E,EAAMrB,EAAQ,KAQlB,SAAS6+E,IAEPrtF,KAAKstF,OAAS,GAGdttF,KAAKutF,SAAW,IAAI19E,EAGpB7P,KAAKwtF,UAAY,IACnB,CAYAH,EAAa/vF,UAAUmwF,OAAS,SAAS3lF,EAAM4lF,EAAc1sF,GAC3D,IAAIyL,EAAQzM,KAAKstF,OACbK,EAAU3tF,KAAKutF,SACfK,EAAW5tF,KAAKwtF,UAEhBhyD,EAAQ,EAOZ,IAJAx7B,KAAK6tF,SAELphF,EAAMzJ,KAAK0qF,GAEJjhF,EAAMlJ,OAAS,GAAG,CACvB,IAAIy7E,EAAOvyE,EAAM/H,MAEjB,IAAIipF,EAAQ/3E,IAAIopE,IAKXl3E,EAAKgmF,WAAW9O,EAAK4O,SAASA,IAAnC,CAMAD,EAAQ53E,IAAIipE,GAIZ,IADA,IAAI+O,EAAY/O,EAAK+O,YACZvqF,EAAI,EAAGA,EAAIuqF,EAAUxqF,OAAQC,IACpCiJ,EAAMzJ,KAAK+qF,EAAUvqF,IAIvBxC,EAAOgC,KAAKg8E,GAEZxjD,GAdA,CAeF,CAQA,OALAx7B,KAAKwtF,UAAYI,EAGjB5tF,KAAK6tF,SAEEryD,CACT,EAEA6xD,EAAa/vF,UAAUuwF,OAAS,WAC9B7tF,KAAKstF,OAAO/pF,OAAS,EACrBvD,KAAKutF,SAASz4C,OAChB,EAEAn5B,EAAOxe,QAAUkwF,C,+BCnFjB,IAAItjD,EAAMv7B,EAAQ,IAOlB,SAASqB,EAAIm+E,GACX,GAAgB,MAAZA,KACE7a,SAAS6a,IAAa31E,KAAKsC,MAAMqzE,KAAcA,GAAYA,EAAW,GAC1E,MAAM,IAAIxsF,MAAM,yBAElBxB,KAAKiuF,UAAYjuF,KAAKiuF,WAVF,GAYpBjuF,KAAKkuF,SAAW,GAChB,IAAK,IAAI1qF,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAClCxD,KAAKkuF,SAASlrF,KAAK,IAErBhD,KAAKmuF,MAAQ,CACf,CAIAt+E,EAAIvS,UAAUyY,IAAM,SAASgwB,GAG3B,IAFA,IAAIllB,EAAIkpB,EAAIhE,EAAQ8D,OAAQ7pC,KAAKiuF,WAC7BG,EAASpuF,KAAKkuF,SAASrtE,GAClBrd,EAAI,EAAGA,EAAI4qF,EAAO7qF,OAAQC,IAAK,CACtC,IAAI6qF,EAAkBD,EAAO5qF,GAC7B,GAAIuiC,EAAQzc,OAAO+kE,GAEjB,OADAD,EAAO5qF,GAAKuiC,EACLsoD,CAEX,CAGA,OAFAD,EAAOprF,KAAK+iC,GACZ/lC,KAAKmuF,QACE,IACT,EAIAt+E,EAAIvS,UAAUoxD,OAAS,SAAS3oB,GAG9B,IAFA,IAAIllB,EAAIkpB,EAAIhE,EAAQ8D,OAAQ7pC,KAAKiuF,WAC7BG,EAASpuF,KAAKkuF,SAASrtE,GAClBrd,EAAI,EAAGA,EAAI4qF,EAAO7qF,OAAQC,IAAK,CACtC,IAAI6qF,EAAkBD,EAAO5qF,GAC7B,GAAIuiC,EAAQzc,OAAO+kE,GAAkB,CAEnC,IAAK,IAAInwD,EAAI16B,EAAG06B,EAAIkwD,EAAO7qF,OAAS,EAAG26B,IACrCkwD,EAAOlwD,GAAKkwD,EAAOlwD,EAAE,GAIvB,OAFAkwD,EAAO7qF,OAAS6qF,EAAO7qF,OAAS,EAChCvD,KAAKmuF,QACEE,CACT,CACF,CACA,OAAO,IACT,EAGAx+E,EAAIvS,UAAUsY,IAAM,SAASmwB,GAG3B,IAFA,IAAIllB,EAAIkpB,EAAIhE,EAAQ8D,OAAQ7pC,KAAKiuF,WAC7BG,EAASpuF,KAAKkuF,SAASrtE,GAClBrd,EAAI,EAAGA,EAAI4qF,EAAO7qF,OAAQC,IAAK,CACtC,IAAI6qF,EAAkBD,EAAO5qF,GAC7B,GAAIuiC,EAAQzc,OAAO+kE,GACjB,OAAO,CAEX,CACA,OAAO,CACT,EAGAx+E,EAAIvS,UAAU0Y,KAAO,WACnB,OAAOhW,KAAKmuF,KACd,EAGAt+E,EAAIvS,UAAUw3C,MAAQ,WACpB,IAAK,IAAItxC,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAClCxD,KAAKkuF,SAAS1qF,GAAGD,OAAS,EAE5BvD,KAAKmuF,MAAQ,CACf,EAKAt+E,EAAIvS,UAAUiD,QAAU,SAASf,GAE/B,IADA,IAAIg8B,EAAQ,EACHh4B,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAElC,IADA,IAAI4qF,EAASpuF,KAAKkuF,SAAS1qF,GAClB06B,EAAI,EAAGA,EAAIkwD,EAAO7qF,OAAQ26B,IACjC1+B,EAAG4uF,EAAOlwD,IACV1C,GAAS,EAGb,OAAOA,CACT,EAEA7f,EAAOxe,QAAU0S,C,+BCnGjB,IAAIk6B,EAAMv7B,EAAQ,IAUlB,SAAS8/E,EAAON,GACd,IAAK7a,SAAS6a,IAAa31E,KAAKsC,MAAMqzE,KAAcA,GAAYA,EAAW,EACzE,MAAM,IAAIxsF,MAAM,4BAElBxB,KAAKiuF,UAAYD,EAKjBhuF,KAAKuuF,MAAQ,IAAI3gF,MAAM5N,KAAKiuF,WAC5BjuF,KAAKwuF,QAAU,IAAI5gF,MAAM5N,KAAKiuF,WAC9BjuF,KAAKu0E,OAAS,EACdv0E,KAAKmuF,MAAQ,CACf,CAEAG,EAAOhxF,UAAUmxF,OAAS,SAASjrF,GACjC,OAAOumC,EAAI/pC,KAAKu0E,OAAS/wE,EAAGxD,KAAKiuF,UACnC,EAGAK,EAAOhxF,UAAUwY,IAAM,SAASnY,GAC9B,IAAK,IAAI6F,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAAK,CACnC,IAAIkrF,EAAc1uF,KAAKuuF,MAAMvuF,KAAKyuF,OAAOjrF,IACzC,GAAI7F,EAAI2rB,OAAOolE,GACb,OAAO1uF,KAAKwuF,QAAQxuF,KAAKyuF,OAAOjrF,GAEpC,CACA,OAAO,IACT,EAOA8qF,EAAOhxF,UAAUynB,IAAM,SAASpnB,EAAKE,GACnC,GAAuB,IAAnBmC,KAAKiuF,UACP,OAAOtwF,EAETqC,KAAK2uF,IAAIhxF,GACT,IAAIixF,EACA5uF,KAAKmuF,QAAUnuF,KAAKiuF,UAAYjuF,KAAKuuF,MAAMvuF,KAAKyuF,OAAO,IAAM,KAQjE,OAPAzuF,KAAKuuF,MAAMvuF,KAAKyuF,OAAOzuF,KAAKmuF,QAAUxwF,EACtCqC,KAAKwuF,QAAQxuF,KAAKyuF,OAAOzuF,KAAKmuF,QAAUtwF,EACpCmC,KAAKmuF,MAAQnuF,KAAKiuF,UACpBjuF,KAAKmuF,QAELnuF,KAAKu0E,OAASv0E,KAAKyuF,OAAO,GAErBG,CACT,EAIAN,EAAOhxF,UAAUqxF,IAAM,SAAShxF,GAC9B,IAAK,IAAI6F,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAC9B,GAAI7F,EAAI2rB,OAAOtpB,KAAKuuF,MAAMvuF,KAAKyuF,OAAOjrF,KAAM,CAE1C,IADA,IAAIqrF,EAAgB7uF,KAAKwuF,QAAQxuF,KAAKyuF,OAAOjrF,IACpC06B,EAAI16B,EAAG06B,EAAIl+B,KAAKmuF,MAAQ,EAAGjwD,IAClCl+B,KAAKuuF,MAAMvuF,KAAKyuF,OAAOvwD,IAAMl+B,KAAKuuF,MAAMvuF,KAAKyuF,OAAOvwD,EAAI,IACxDl+B,KAAKwuF,QAAQxuF,KAAKyuF,OAAOvwD,IAAMl+B,KAAKwuF,QAAQxuF,KAAKyuF,OAAOvwD,EAAI,IAG9D,OADAl+B,KAAKmuF,QACEU,CACT,CAEF,OAAO,IACT,EAGAP,EAAOhxF,UAAUsY,IAAM,SAASjY,GAC9B,IAAK,IAAI6F,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAC9B,GAAI7F,EAAI2rB,OAAOtpB,KAAKuuF,MAAMvuF,KAAKyuF,OAAOjrF,KACpC,OAAO,EAGX,OAAO,CACT,EAGA8qF,EAAOhxF,UAAU0Y,KAAO,WACtB,OAAOhW,KAAKmuF,KACd,EAGAG,EAAOhxF,UAAUw3C,MAAQ,WACvB90C,KAAKuuF,MAAMhrF,OAAS,EACpBvD,KAAKwuF,QAAQjrF,OAAS,EACtBvD,KAAKu0E,OAAS,EACdv0E,KAAKmuF,MAAQ,CACf,EAKAG,EAAOhxF,UAAUiD,QAAU,SAASf,GAElC,IADA,IAAIg8B,EAAQ,EACHh4B,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAC9BhE,EAAGQ,KAAKuuF,MAAMvuF,KAAKyuF,OAAOjrF,IAAKxD,KAAKwuF,QAAQxuF,KAAKyuF,OAAOjrF,KACxDg4B,GAAS,EAEX,OAAOA,CACT,EAEA7f,EAAOxe,QAAUmxF,C,+BCtGjB,SAASQ,EAAQ94D,EAAK+4D,EAAeC,GACnC,OAAO,EAAI32E,KAAK42E,KAAKD,EAAc32E,KAAKwd,IAAIG,EAAM,GAAK+4D,EACzD,CAuEApzE,EAAOxe,QAAU,CACf2xF,QAASA,EACTI,KAhEF,SAAcl5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAKzF,EAAOC,EAC7B,EA+DE2+D,KAtDF,SAAcn5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAKzF,EAAOlY,KAAK0T,KAAKwE,EAAQA,EAAQC,EAASA,GAChE,EAqDE4+D,KA5CF,SAAcp5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAKxF,EAAQD,EAC9B,EA2CE8+D,KAlCF,SAAcr5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAKxF,EAAQnY,KAAK0T,KAAKwE,EAAQA,EAAQC,EAASA,GACjE,EAiCE8+D,KAxBF,SAAct5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAK3d,KAAK0T,KAAKwE,EAAQA,EAAQC,EAASA,GAASD,EAClE,EAuBEg/D,KAdF,SAAcv5D,EAAKzF,EAAOC,GACxB,OAAOs+D,EAAQ94D,EAAK3d,KAAK0T,KAAKwE,EAAQA,EAAQC,EAASA,GAASA,EAClE,E,+BC3DA7U,EAAOxe,QAZP,WACE,IAAIm2E,EAASxsE,UACb,OAAO,SAAkB0oF,GAEvB,IADA,IAAIrrD,EAAMqrD,EACDhsF,EAAI,EAAGA,EAAI8vE,EAAO/vE,OAAQC,IAAK,CAEtC2gC,EADSmvC,EAAO9vE,GACP7D,KAAK,KAAMwkC,EACtB,CACA,OAAOA,CACT,CACF,C,+BCUAxoB,EAAOxe,QA3BP,SAAeilB,EAAIngB,GAIjB,IAAIwtF,EAAQ,KAmBZ,OAFAA,EAAQ92E,YAfR,WACe,MAAT82E,IACFA,EAAQ,KACRxtF,EAAK,MAET,GAU2BmgB,GAR3B,WACe,MAATqtE,IACF/2E,aAAa+2E,GACbA,EAAQ,KACRxtF,EAAK8E,MAAM,KAAMD,WAErB,CAMF,C,+BC3BA,IAAIgJ,EAAMtB,EAAQ,KACdqB,EAAMrB,EAAQ,KACdkhF,EAASlhF,EAAQ,KACjBsK,EAAetK,EAAQ,IACvBi7B,EAAWj7B,EAAQ,IACnB67B,EAAQ77B,EAAQ,KAChB06B,EAAQ16B,EAAQ,IAChBs7B,EAAWt7B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAE7B4lD,EAAkC,qBAAnBu7B,gBAAkCA,eAAeC,aAgBhEC,EACI,EADJA,EAEK,EAFLA,EAGI,EAHJA,EAIG,EAIHC,EAAiB,CAEnBC,2BAA4B,KAO1B9yC,EAAS,EAIb,SAAS+yC,IAAe,CAiBxB,SAASC,EAAiBzoB,EAAOwX,GAE/B,IAAIlgF,EAAOkB,KAEP+3C,EAAKkF,IAETn+C,EAAKoxF,IAAMn4C,EACXj5C,EAAKqxF,OAAS3oB,EACd1oE,EAAKsxF,MAAQpR,EAEblgF,EAAKuxF,OAAS,KACdvxF,EAAKqgF,SAAW,KAEhBrgF,EAAKwxF,eAAiB,WACpB9oB,EAAM1nD,KAAK,iBAAkBk/D,EAC/B,EAEA,IAAI3xE,EAASm6D,EAAMn6D,SACf0xE,EAAQvX,EAAMuX,QAEdwR,EAAYljF,EAAOkjF,UAAUxsD,KAAK12B,GAClC20E,EAAgBjD,EAAMiD,cAAcj+C,KAAKg7C,GAIzCv/E,EAAK0pC,EAAMmB,EAAMkmD,GAAYvO,GAEjCxa,EAAM1nD,KAAK,mBAAoBk/D,GAC3B5qB,GACFvpD,QAAQ5B,IAAI,UAAW8uC,EAAIinC,GAG7BlgF,EAAKglF,QAAUtkF,EAAGu/E,EAAOC,GAAM,SAAStgF,EAAK0xF,EAAOnR,EAAO4C,GAKzD,GAFA/iF,EAAKglF,QAAU,KAEXplF,EA0BF,OApBIugF,GACFA,EAAM1gC,UAEJsjC,GACFA,EAAQtjC,eAIN7/C,aAAesxF,GACjBxoB,EAAM1nD,KAAK,gBAAiBk/D,GACxB5qB,GACFvpD,QAAQ5B,IAAI,SAAU8uC,EAAIinC,KAG5BxX,EAAM1nD,KAAK,eAAgBk/D,EAAMtgF,GAC7B01D,GACFvpD,QAAQ5B,IAAI,QAAS8uC,EAAIinC,KAQ/BlgF,EAAKqgF,SAAW0C,EAKZ5C,EAAM7Q,aACRtvE,EAAKuxF,OAASpR,EACdA,EAAMplE,iBAAiB,SAAU/a,EAAKwxF,iBAEtCrR,EAAM1gC,UAIRipB,EAAM1nD,KAAK,cAAek/D,GACtB5qB,GACFvpD,QAAQ5B,IAAI,OAAQ8uC,EAAIinC,EAE5B,GAEF,CAiIA,SAASl3C,EAAaz6B,EAAQ0xE,EAAO5S,GACnCA,EAAO1iC,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAE5B9vF,KAAKwwF,QAAUnjF,EACfrN,KAAKk/E,OAASH,EAGd/+E,KAAKy1C,OAASo6C,EAId7vF,KAAKywF,YAAc,EAGnBzwF,KAAK0wF,SAAW,IAAI5gF,EAGpB9P,KAAK2wF,SAAW,IAAI9gF,EAIpB7P,KAAK4wF,mBAAqB,IAAIlB,EAAOvjB,EAAK4jB,4BAI1C/vF,KAAK6wF,QAAU,IAAI/gF,EAGnB9P,KAAK8wF,YAAc,IAAIjhF,EACvB7P,KAAK+wF,iBAAmB,GACxB/wF,KAAKgxF,cAAgB,GACrBhxF,KAAKixF,SAAW,EAClB,CAvQAnnD,EAASkmD,EAAaxuF,OAyGtByuF,EAAiB3yF,UAAU2hF,MAAQ,WACjC,OAAOj/E,KAAKqwF,MACd,EAGAJ,EAAiB3yF,UAAUukF,QAAU,WACnC,OAAO7hF,KAAKm/E,QACd,EAGA8Q,EAAiB3yF,UAAUihD,QAAU,WACnC,IAAIxG,EAAK/3C,KAAKkwF,IACV1oB,EAAQxnE,KAAKmwF,OACbnR,EAAOh/E,KAAKowF,MACZnR,EAAQj/E,KAAKqwF,OACbxO,EAAU7hF,KAAKm/E,SACf1L,EAASzzE,KAAK8jF,QAEdrQ,EAEFA,EAAO,IAAIuc,EAAY,4BAKrB/Q,IACFA,EAAM3jE,oBAAoB,SAAUtb,KAAKswF,gBACzCrR,EAAM1gC,WAIJsjC,GACFA,EAAQtjC,UAIVipB,EAAM1nD,KAAK,gBAAiBk/D,GACxB5qB,GACFvpD,QAAQ5B,IAAI,SAAU8uC,EAAIinC,GAG5B51C,EAAmBppC,MACrB,EAEA8Y,EAAam3E,GAoHbn3E,EAAagvB,GAMbA,EAAaxqC,UAAUihD,QAAU,WAC/Bv+C,KAAK80C,QACL1L,EAAmBppC,KACrB,EAOA8nC,EAAaxqC,UAAUyhF,MAAQ,WAC7B,OAAO/+E,KAAKk/E,MACd,EAOAp3C,EAAaxqC,UAAU+P,OAAS,WAC9B,OAAOrN,KAAKwwF,OACd,EAMA1oD,EAAaxqC,UAAUw3C,MAAQ,WAC7B,IAAIh2C,EAAOkB,KAGXlB,EAAKmyF,SAAS1tF,OAAS,EACvBzE,EAAK4xF,SAASnwF,SAAQ,SAASy+E,GAC7BlgF,EAAKmyF,SAASjuF,KAAKg8E,EACrB,IAGAlgF,EAAKmyF,SAAS1wF,SAAQ,SAASy+E,GAC7BlgF,EAAKoyF,YAAYlS,EACnB,IAGAlgF,EAAK4xF,SAAS57C,QACdh2C,EAAK6xF,SAAS77C,QACdh2C,EAAK8xF,mBAAmB97C,QACxBh2C,EAAK+xF,QAAQ/7C,QACbh2C,EAAKgyF,YAAYh8C,QACjBh2C,EAAKiyF,iBAAiBxtF,OAAS,EAC/BzE,EAAKkyF,cAAcztF,OAAS,EAC5BzE,EAAKmyF,SAAS1tF,OAAS,CACzB,EAMAukC,EAAaxqC,UAAU6zF,eAAiB,WACtC,IAAIryF,EAAOkB,KAGXlB,EAAKmyF,SAAS1tF,OAAS,EACvBzE,EAAK4xF,SAASnwF,SAAQ,SAASy+E,GACxBlgF,EAAK+xF,QAAQj7E,IAAIopE,IACpBlgF,EAAKmyF,SAASjuF,KAAKg8E,EAEvB,IAGAlgF,EAAKmyF,SAAS1wF,SAAQ,SAASy+E,GAC7BlgF,EAAKoyF,YAAYlS,EACnB,IAGAlgF,EAAK6xF,SAAS77C,QACdh2C,EAAK8xF,mBAAmB97C,QAGxBh2C,EAAKmyF,SAAS1tF,OAAS,CACzB,EAMAukC,EAAaxqC,UAAUqjF,WAAa,WAElC,GAAI3gF,KAAKy1C,SAAWo6C,GAAc7vF,KAAKy1C,SAAWo6C,EAChD,MAAM,IAAIruF,MAAM,mDAIlBxB,KAAKy1C,OAASo6C,EAGd7vF,KAAKywF,aACP,EAOA3oD,EAAaxqC,UAAU8zF,SAAW,SAASpS,GAEzC,GAAIh/E,KAAKy1C,SAAWo6C,GAAe7vF,KAAKy1C,SAAWo6C,EACjD,MAAM,IAAIruF,MAAM,iDAIlBxB,KAAKy1C,OAASo6C,EAGd,IAAIx5E,EAAOrW,KAAK0wF,SAAS56E,IAAIkpE,GACzB6C,EAAUxrE,GAAQA,EAAKwrE,UACvB5C,EAAQ5oE,GAAQA,EAAK4oE,QACrB4C,GAAW5C,GACb4C,EAAQtC,QAAQP,EAAMC,GAIxBj/E,KAAK8wF,YAAY/6E,IAAIipE,EACvB,EAMAl3C,EAAaxqC,UAAUkkF,SAAW,WAEhC,GAAIxhF,KAAKy1C,SAAWo6C,GAAe7vF,KAAKy1C,SAAWo6C,GAAc7vF,KAAKy1C,SAAWo6C,EAC/E,MAAM,IAAIruF,MAAM,iDAIlBxB,KAAKy1C,OAASo6C,EAGd7vF,KAAKywF,cAGAzwF,KAAKywF,cACRzwF,KAAKqxF,UACLrxF,KAAKy1C,OAASo6C,EAElB,EAGA/nD,EAAaxqC,UAAU+zF,QAAU,WAC/B,IAAIvyF,EAAOkB,KAGXlB,EAAKiyF,iBAAiBxtF,OAAS,EAC/BzE,EAAK6xF,SAASpwF,SAAQ,SAASy+E,GACxBlgF,EAAKgyF,YAAYl7E,IAAIopE,IACxBlgF,EAAKiyF,iBAAiB/tF,KAAKg8E,EAE/B,IAIAlgF,EAAKkyF,cAAcztF,OAAS,EAC5BzE,EAAKgyF,YAAYvwF,SAAQ,SAASy+E,GAC5BlgF,EAAK8xF,mBAAmBh7E,IAAIopE,IAC9BlgF,EAAKkyF,cAAchuF,KAAKg8E,EAE5B,IAIAlgF,EAAKkyF,cAAczwF,SAAQ,SAASy+E,GAClClgF,EAAK8xF,mBAAmBliC,OAAOswB,EACjC,IAKAlgF,EAAKmyF,SAAS1tF,OAAS,EACvBzE,EAAKiyF,iBAAiBxwF,SAAQ,SAASy+E,GACrC,IAAI3oE,EAAOvX,EAAK4xF,SAAS56E,IAAIkpE,GAE7B,GADc3oE,GAAQA,EAAKwrE,UACd,CACX,IAAIyP,EAAYxyF,EAAK8xF,mBAAmB76E,IAAIipE,GAC3B,MAAbsS,GACFxyF,EAAKmyF,SAASjuF,KAAKsuF,EAEvB,MAAWj7E,GACTvX,EAAKoyF,YAAYlS,EAErB,IAGAlgF,EAAKmyF,SAAS1wF,SAAQ,SAASy+E,GACxBlgF,EAAK+xF,QAAQj7E,IAAIopE,IACpBlgF,EAAKoyF,YAAYlS,EAErB,IAIAlgF,EAAKgyF,YAAYvwF,SAAQ,SAASy+E,GACrBlgF,EAAK4xF,SAAS56E,IAAIkpE,IAE3BlgF,EAAKyyF,UAAUvS,EAEnB,IAGA,IAAIwS,EAAM1yF,EAAK6xF,SACf7xF,EAAK6xF,SAAW7xF,EAAKgyF,YACrBhyF,EAAKgyF,YAAcU,EAGnB1yF,EAAKgyF,YAAYh8C,QAGjBh2C,EAAKiyF,iBAAiBxtF,OAAS,EAC/BzE,EAAKkyF,cAAcztF,OAAS,EAC5BzE,EAAKmyF,SAAS1tF,OAAS,CACzB,EAGAukC,EAAaxqC,UAAUi0F,UAAY,SAASvS,GAC1C,GAAIh/E,KAAK0wF,SAAS96E,IAAIopE,GACpB,MAAM,IAAIx9E,MAAM,kDAElB,IAAI6U,EAAO,IAAI45E,EAAiBjwF,KAAMg/E,GACtCh/E,KAAK0wF,SAAS3rE,IAAIi6D,EAAM3oE,EAC1B,EAGAyxB,EAAaxqC,UAAU4zF,YAAc,SAASlS,GAC5C,IAAI3oE,EAAOrW,KAAK0wF,SAAS/B,IAAI3P,GAC7B,IAAK3oE,EACH,MAAM,IAAI7U,MAAM,gDAElB6U,EAAKkoC,SACP,EAGAzW,EAAaxqC,UAAU2hF,MAAQ,SAASD,GACtC,IAAI3oE,EAAOrW,KAAK0wF,SAAS56E,IAAIkpE,GAC7B,OAAI3oE,EACKA,EAAK4oE,QAEP,IACT,EAGAn3C,EAAaxqC,UAAUukF,QAAU,SAAS7C,GACxC,IAAI3oE,EAAOrW,KAAK0wF,SAAS56E,IAAIkpE,GAC7B,OAAI3oE,EACKA,EAAKwrE,UAEP,IACT,EAaA/5C,EAAaxqC,UAAUm0F,IAAM,SAASzS,GAEpC,IAAIxjD,GAASx7B,KAAK6wF,QAAQ/6E,IAAIkpE,IAAS,GAAK,EAM5C,OALAh/E,KAAK6wF,QAAQ9rE,IAAIi6D,EAAMxjD,GAElBx7B,KAAK0wF,SAAS96E,IAAIopE,IACrBh/E,KAAKuxF,UAAUvS,GAEVxjD,CACT,EASAsM,EAAaxqC,UAAUo0F,MAAQ,SAAS1S,GACtC,IAAIxjD,EAAQx7B,KAAK6wF,QAAQ/6E,IAAIkpE,GAE7B,IAAKxjD,EACH,MAAM,IAAIh6B,MAAM,uCAelB,QAZEg6B,EACY,EACVx7B,KAAK6wF,QAAQ9rE,IAAIi6D,EAAMxjD,IAEvBx7B,KAAK6wF,QAAQlC,IAAI3P,GAGZh/E,KAAK2wF,SAAS/6E,IAAIopE,IAAUh/E,KAAK4wF,mBAAmBh7E,IAAIopE,IAC3Dh/E,KAAKkxF,YAAYlS,IAIhBxjD,CACT,EAqBAsM,EAAaxqC,UAAUq0F,MAAQ,SAAS3S,GACtC,IAAI3oE,EAAOrW,KAAK0wF,SAAS56E,IAAIkpE,GACzB4S,EAAW5xF,KAAK6wF,QAAQ/6E,IAAIkpE,IAAS,EACzC,MAAO,CACL6S,QAAS7xF,KAAK2wF,SAAS/6E,IAAIopE,GAC3B8S,kBAAmB9xF,KAAK4wF,mBAAmBh7E,IAAIopE,GAC/C+S,SAAkB,MAAR17E,GAAgC,MAAhBA,EAAK4oE,QAC/B+S,WAAoB,MAAR37E,GAAkC,MAAlBA,EAAKwrE,UACjCoQ,OAAqB,IAAbL,EACRA,SAAUA,EAEd,EAGAj2E,EAAOxe,QAAU2qC,C,+BCnpBjB,IAAIkC,EAAOx7B,EAAQ,IAmCnBmN,EAAOxe,QA/BP,SAAeqC,GAEb,OAAO,WAEL,IAAIqH,EAAOC,UAAUvD,OAASqK,MAAMtQ,UAAUwH,MAAMnF,KAAKmH,UAAW,EAAGA,UAAUvD,OAAS,GAAK,GAC3FtB,EAAO6E,UAAUvD,OAASuD,UAAUA,UAAUvD,OAAS,GAAKymC,EAE5DupC,EAAM,KACN2e,GAAW,EAEf,SAAS3tB,IACP,IAAI7lE,EAAMoI,UAAU,IACfpI,GAAOwzF,EACVjwF,EAAK8E,MAAM,KAAMD,WAEjBysE,EAAM/zE,EAAGuH,MAAM,KAAMF,EAEzB,CAKA,OAHAA,EAAK7D,KAAKuhE,GACVA,GAAK,GAEE,WACL2tB,GAAW,EACX3e,EAAIxsE,MAAM,KAAMD,UAClB,CAEF,CAEF,C,+BChCA,IAAIgS,EAAetK,EAAQ,IACvB8Y,EAAS9Y,EAAQ,KACjB46B,EAAqB56B,EAAQ,IAyBjC,SAASu5B,EAAM16B,EAAQ8yE,EAAUr4E,EAAM8nF,EAAczjB,GACnDA,EAAOA,GAAQ,CAAC,EAEhB,IAAIrtE,EAAOkB,KAEXA,KAAKwwF,QAAUnjF,EACfrN,KAAKmyF,UAAYhS,EACjBngF,KAAKoyF,MAAQtqF,EACb9H,KAAKqyF,cAAgBzC,EAErB5vF,KAAKsyF,SAAWnmB,EAAKib,SAAW,CAAC,EAEjCpnF,KAAKuyF,iBAAmB,KAExBvyF,KAAKwyF,mBAAqB,WACxB1zF,EAAKghB,KAAK,aAAchhB,EAAKgJ,OAC/B,EAEA9H,KAAKoyF,MAAMv4E,iBAAiB,SAAU7Z,KAAKwyF,oBAE3CxyF,KAAKyyF,2BAA6B,WAChC3zF,EAAKghB,KAAK,qBAAsBhhB,EAAK8wF,eACvC,EAEA5vF,KAAKqyF,cAAcx4E,iBAAiB,cAClC7Z,KAAKyyF,4BACPzyF,KAAKqyF,cAAcx4E,iBAAiB,eAClC7Z,KAAKyyF,4BACPzyF,KAAKqyF,cAAcx4E,iBAAiB,iBAClC7Z,KAAKyyF,2BACT,CAEA35E,EAAaivB,GAMbA,EAAMzqC,UAAUihD,QAAU,WACxBv+C,KAAKoyF,MAAM92E,oBAAoB,SAAUtb,KAAKwyF,oBAC9CxyF,KAAKqyF,cAAc/2E,oBAAoB,cACrCtb,KAAKyyF,4BACPzyF,KAAKqyF,cAAc/2E,oBAAoB,eACrCtb,KAAKyyF,4BACPzyF,KAAKqyF,cAAc/2E,oBAAoB,iBACrCtb,KAAKyyF,4BACPrpD,EAAmBppC,KACrB,EAOA+nC,EAAMzqC,UAAU+P,OAAS,WACvB,OAAOrN,KAAKwwF,OACd,EAOAzoD,EAAMzqC,UAAU6iF,SAAW,WACzB,OAAOngF,KAAKmyF,SACd,EAOApqD,EAAMzqC,UAAUwK,KAAO,WACrB,OAAO9H,KAAKoyF,KACd,EAOArqD,EAAMzqC,UAAUsyF,aAAe,WAC7B,OAAO5vF,KAAKqyF,aACd,EAOAtqD,EAAMzqC,UAAU8pF,QAAU,WACxB,OAAOpnF,KAAKsyF,QACd,EAOAvqD,EAAMzqC,UAAUo1F,WAAa,SAAStL,GACpCpnF,KAAKsyF,SAAWlL,EAChBpnF,KAAK8f,KAAK,gBAAiB9f,KAAKsyF,SAClC,EAWAvqD,EAAMzqC,UAAUq1F,aAAe,SAASvL,GACtC9/D,EAAOtnB,KAAKsyF,SAAUlL,GACtBpnF,KAAK8f,KAAK,gBAAiB9f,KAAKsyF,SAClC,EAOAvqD,EAAMzqC,UAAUs1F,WAAa,WAC3B,OAAO5yF,KAAKuyF,gBACd,EAUAxqD,EAAMzqC,UAAUu1F,cAAgB,SAASC,GACvC,GAAIA,IAAe9yF,KAAKuyF,iBAAkB,CACxC,GAAkB,MAAdO,IAAuBA,GAAc9yF,KAAKmyF,UAAUt5C,UAAUt1C,QAC9DuvF,EAAa,GACf,MAAM,IAAItxF,MAAM,6BAA+BsxF,GAEjD9yF,KAAKuyF,iBAAmBO,EACxB9yF,KAAK8f,KAAK,mBAAoB9f,KAAKuyF,iBACrC,CACF,EAGAxqD,EAAMzqC,UAAUy1F,aAAe,WAO7B,OAL6B,MAAzB/yF,KAAKuyF,iBACCvyF,KAAKmyF,UAAUt5C,UAAU74C,KAAKuyF,kBAE9BvyF,KAAKoyF,MAAMY,YAAYhzF,KAAKmyF,UAAUc,oBAGlD,EAGAlrD,EAAMzqC,UAAU41F,aAAe,SAASlyF,GACtC,IAAI6S,EAAQ7T,KAAK+yF,eACjB,OAAO/yF,KAAKmyF,UAAUe,aAAalzF,KAAKoyF,MAAOv+E,EAAO7S,EACxD,EAOA+mC,EAAMzqC,UAAU61F,SAAW,SAASL,GAGlC,IAFA,IAAIj/E,EAAQ7T,KAAKmyF,UAAUt5C,UAAUi6C,GACjCM,EAAQpzF,KAAKmyF,UAAUkB,WAAWx/E,GAC7BrQ,EAAI,EAAGA,EAAI4vF,EAAM7vF,OAAQC,IAChCxD,KAAKqyF,cAAcZ,IAAI2B,EAAM5vF,GAEjC,EAOAukC,EAAMzqC,UAAUg2F,WAAa,SAASR,GAGpC,IAFA,IAAIj/E,EAAQ7T,KAAKmyF,UAAUt5C,UAAUi6C,GACjCM,EAAQpzF,KAAKmyF,UAAUkB,WAAWx/E,GAC7BrQ,EAAI,EAAGA,EAAI4vF,EAAM7vF,OAAQC,IAChCxD,KAAKqyF,cAAcX,MAAM0B,EAAM5vF,GAEnC,EAMAukC,EAAMzqC,UAAUi2F,cAAgB,WAC9B,OAAOvzF,KAAKmzF,SAAS,EACvB,EAMAprD,EAAMzqC,UAAUk2F,gBAAkB,WAChC,OAAOxzF,KAAKszF,WAAW,EACzB,EAGA33E,EAAOxe,QAAU4qC,C,+BCnOjBpsB,EAAOxe,QAPP,SAAgBO,EAAK+1F,GACnB,IAAK,IAAI91F,KAAO81F,EACd/1F,EAAIC,GAAO81F,EAAU91F,GAEvB,OAAOD,CACT,C,+BCLA,IAAIob,EAAetK,EAAQ,IACvB46B,EAAqB56B,EAAQ,IAyBjC,SAASw5B,EAAW+2C,GAElB,IAAIjgF,EAAOkB,KAGXA,KAAKk/E,OAASH,EAGd/+E,KAAK0zF,UAAW,EAGhB1zF,KAAK2zF,YAAa,EAGlB3zF,KAAK4zF,eAAiB,KAGtB5zF,KAAK6zF,WAAa7zF,KAAK8zF,MAAM/vD,KAAK/jC,MAGlCA,KAAK+zF,sBAAwB,WAGtBj1F,EAAK60F,YACR70F,EAAKk1F,mBAET,EAGAh0F,KAAKk/E,OAAOrlE,iBAAiB,gBAAiB7Z,KAAK+zF,sBAErD,CAEAj7E,EAAakvB,GAMbA,EAAW1qC,UAAUihD,QAAU,WAC7Bv+C,KAAK+E,OACL/E,KAAKk/E,OAAO5jE,oBAAoB,gBAAiBtb,KAAK+zF,uBACtD3qD,EAAmBppC,KACrB,EAOAgoC,EAAW1qC,UAAUyhF,MAAQ,WAC3B,OAAO/+E,KAAKk/E,MACd,EAMAl3C,EAAW1qC,UAAUq3C,MAAQ,WAC3B30C,KAAK0zF,UAAW,EAChB1zF,KAAKg0F,mBACP,EAMAhsD,EAAW1qC,UAAUyH,KAAO,WACtB/E,KAAK4zF,iBACPzsF,OAAO8sF,qBAAqBj0F,KAAK4zF,gBACjC5zF,KAAK4zF,eAAiB,MAExB5zF,KAAK0zF,UAAW,CAClB,EAOA1rD,EAAW1qC,UAAU02F,kBAAoB,WACnCh0F,KAAK0zF,WAAa1zF,KAAK4zF,iBACzB5zF,KAAK4zF,eAAiBzsF,OAAOokD,sBAAsBvrD,KAAK6zF,YAE5D,EAGA7rD,EAAW1qC,UAAUw2F,MAAQ,WAC3B,IAAK9zF,KAAK0zF,SACR,MAAM,IAAIlyF,MAAM,8CAElBxB,KAAK4zF,eAAiB,KACtB5zF,KAAK2zF,YAAa,EAClB3zF,KAAK8f,KAAK,gBACV9f,KAAK2zF,YAAa,EAClB3zF,KAAKk/E,OAAOyC,SACZ3hF,KAAK8f,KAAK,cACZ,EAGAnE,EAAOxe,QAAU6qC,C,+BC9HjB,IAAIlvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAiBjC,SAASy5B,EAAiBisD,EAASC,EAAW3mD,EAAUC,EAAU1H,GAChE,IAAImuD,EACF,MAAM,IAAI1yF,MAAM,6CAElB,IAAI2yF,EACF,MAAM,IAAI3yF,MAAM,+CAElB,IAAIgsC,EACF,MAAM,IAAIhsC,MAAM,8CAElB,IAAIisC,EACF,MAAM,IAAIjsC,MAAM,8CAGlBukC,EAAUA,GAAW3+B,SAErBpH,KAAKo0F,SAAWF,EAChBl0F,KAAKq0F,WAAaF,EAClBn0F,KAAKs0F,UAAY9mD,EACjBxtC,KAAKu0F,UAAY9mD,EACjBztC,KAAK29C,SAAW5X,EAEhB/lC,KAAKw0F,gBAAkBx0F,KAAKy0F,aAAa1wD,KAAK/jC,MAC9CA,KAAK00F,cAAgB10F,KAAK20F,eAAe5wD,KAAK/jC,MAC9CA,KAAK40F,aAAe50F,KAAK60F,YAAY9wD,KAAK/jC,MAE1CA,KAAK29C,SAAS9jC,iBAAiB,UAAW7Z,KAAKw0F,iBAC/Cx0F,KAAK29C,SAAS9jC,iBAAiB,QAAS7Z,KAAK00F,eAC7CvtF,OAAO0S,iBAAiB,OAAQ7Z,KAAK40F,cAErC50F,KAAK80F,UAAY,IAAIrsD,EACrBzoC,KAAK+0F,WAAY,CACnB,CACAj8E,EAAamvB,GAKbA,EAAiB3qC,UAAUihD,QAAU,WACnCv+C,KAAK29C,SAASriC,oBAAoB,UAAWtb,KAAKw0F,iBAClDx0F,KAAK29C,SAASriC,oBAAoB,QAAStb,KAAK00F,eAChDvtF,OAAOmU,oBAAoB,OAAQtb,KAAK40F,cACxCxrD,EAAmBppC,KACrB,EAEAioC,EAAiB3qC,UAAUm3F,aAAe,SAASjoF,GAC9CA,EAAE0nF,UAAYl0F,KAAKo0F,WAEtBp0F,KAAK+0F,WAAY,EAEjB/0F,KAAK80F,UAAUtnD,SAAWxtC,KAAKs0F,UAC/Bt0F,KAAK80F,UAAUrnD,SAAW,EAC1BztC,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,WACrD90F,KAAK8f,KAAK,UACZ,EAEAmoB,EAAiB3qC,UAAUq3F,eAAiB,SAASnoF,GAChDA,EAAE0nF,UAAYl0F,KAAKo0F,WAEnBp0F,KAAK+0F,YACN/0F,KAAK80F,UAAUrnD,SAAWztC,KAAKu0F,UAC/Bv0F,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,WACrD90F,KAAK8f,KAAK,aAGZ9f,KAAK+0F,WAAY,EACnB,EAEA9sD,EAAiB3qC,UAAUu3F,YAAc,WACvC70F,KAAK80F,UAAUtnD,SAAW,EAC1BxtC,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,WACrD90F,KAAK8f,KAAK,YAEV9f,KAAK+0F,WAAY,CACnB,EAEAp5E,EAAOxe,QAAU8qC,C,+BC/FjB,IAAInvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB4uC,EAAiB5uC,EAAQ,IACzBi7B,EAAWj7B,EAAQ,IACnBwmF,EAAcxmF,EAAQ,KAAUwmF,YAChC5rD,EAAqB56B,EAAQ,IAE7BshF,EAAiB,CACnBriD,SAAU,EACVwnD,gBAAiB,GACjBC,YAAa,OAGX9gC,EAAkC,qBAAnBu7B,gBAAkCA,eAAewF,SAiBpE,SAASjtD,EAAkBnC,EAAS0Y,EAAa0tB,GAmB/C,GAlBAnsE,KAAK29C,SAAW5X,EAEhB/lC,KAAKo1F,MAAQ3rD,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAElC9vF,KAAKq1F,YAAc,KACnBr1F,KAAKs1F,WAAa,KAElBt1F,KAAKu1F,SAAU,EAEfv1F,KAAK80F,UAAY,CACfjyE,EAAG,IAAI4lB,EACPxnB,EAAG,IAAIwnB,GAGTzoC,KAAKw1F,QAAUp4C,EAAetnC,IAAIiwB,EAAS0Y,GAE3Cz+C,KAAKw1F,QAAQ//E,GAAG,eAAgBzV,KAAKy1F,mBAAmB1xD,KAAK/jC,OAE/B,OAA1BA,KAAKo1F,MAAMF,aAAkD,SAA1Bl1F,KAAKo1F,MAAMF,YAChD,MAAM,IAAI1zF,MAAMxB,KAAKo1F,MAAMF,YAAc,sDAG3Cl1F,KAAKw1F,QAAQ//E,GAAGzV,KAAKo1F,MAAMF,YAAc,QAASl1F,KAAK01F,aAAa3xD,KAAK/jC,OACzEA,KAAKw1F,QAAQ//E,GAAGzV,KAAKo1F,MAAMF,YAAc,OAAQl1F,KAAK21F,YAAY5xD,KAAK/jC,OACvEA,KAAKw1F,QAAQ//E,GAAGzV,KAAKo1F,MAAMF,YAAc,MAAOl1F,KAAK41F,WAAW7xD,KAAK/jC,OACrEA,KAAKw1F,QAAQ//E,GAAGzV,KAAKo1F,MAAMF,YAAc,SAAUl1F,KAAK41F,WAAW7xD,KAAK/jC,MAC1E,CAEA8Y,EAAaovB,GAKbA,EAAkB5qC,UAAUihD,QAAU,WACpCv+C,KAAKw1F,QAAQ92C,UACbtV,EAAmBppC,KACrB,EAEAkoC,EAAkB5qC,UAAUm4F,mBAAqB,SAASjpF,GACxD,GAAIA,EAAEqpF,QAAS,CACb,GAAIzhC,GAASp0D,KAAKu1F,QAChB,MAAM,IAAI/zF,MAAM,yDAElBxB,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,SACZ,CACA,GAAItT,EAAEspF,QAAS,CACb,GAAI1hC,IAAUp0D,KAAKu1F,QACjB,MAAM,IAAI/zF,MAAM,6DAElBxB,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,WACZ,CACF,EAEAooB,EAAkB5qC,UAAUo4F,aAAe,SAASlpF,GAGlDA,EAAEupF,iBAEF/1F,KAAKq1F,YAAc7oF,CACrB,EAGA07B,EAAkB5qC,UAAUq4F,YAAc,SAASnpF,GAGjDA,EAAEupF,iBAEE/1F,KAAKq1F,cACPr1F,KAAKg2F,oBAAoBxpF,GACzBxM,KAAK8f,KAAK,oBAAqB,cAAe9f,KAAK80F,UAAUjyE,GAC7D7iB,KAAK8f,KAAK,oBAAqB,cAAe9f,KAAK80F,UAAU7zE,GAEjE,EAGAinB,EAAkB5qC,UAAUs4F,WAAa,SAASppF,GAGhDA,EAAEupF,iBAEE/1F,KAAKq1F,cACPr1F,KAAKi2F,uBAAuBzpF,GAC5BxM,KAAK8f,KAAK,oBAAqB,cAAe9f,KAAK80F,UAAUjyE,GAC7D7iB,KAAK8f,KAAK,oBAAqB,cAAe9f,KAAK80F,UAAU7zE,IAG/DjhB,KAAKq1F,aAAc,EACnBr1F,KAAKs1F,YAAa,CACpB,EAGAptD,EAAkB5qC,UAAU04F,oBAAsB,SAASxpF,GACzD,IAAIqW,EAAIrW,EAAE0pF,OACNj1E,EAAIzU,EAAE2pF,OAINC,EAAkBp2F,KAAKs1F,YAAct1F,KAAKq1F,YAE1Ce,IACFvzE,GAAKuzE,EAAgBF,OACrBj1E,GAAKm1E,EAAgBD,QAGvB,IAAIE,EAAcr2F,KAAK29C,SAAS4Q,wBAIhC1rC,GAHYwzE,EAAYnhE,MAAQmhE,EAAYphE,KAI5ChU,GAHao1E,EAAYlhE,OAASkhE,EAAYjhE,IAK9Cp1B,KAAK80F,UAAUjyE,EAAE1f,QACjBnD,KAAK80F,UAAU7zE,EAAE9d,QACjBnD,KAAK80F,UAAUjyE,EAAE0Y,QAAU1Y,EAC3B7iB,KAAK80F,UAAU7zE,EAAEsa,QAAUta,EAE3BjhB,KAAKs1F,WAAa9oF,CACpB,EAGA,IAAI8pF,EAAqB,CAAE,KAAM,MACjCpuD,EAAkB5qC,UAAU24F,uBAAyB,SAASzpF,GAC5D,IAAI6pF,EAAcr2F,KAAK29C,SAAS4Q,wBAC5Bh+B,EAAQ8lE,EAAYnhE,MAAQmhE,EAAYphE,KACxCzE,EAAS6lE,EAAYlhE,OAASkhE,EAAYjhE,IAE1CvS,EAAI,IAAOrW,EAAE+pF,UAAYhmE,EACzBtP,EAAI,IAAOzU,EAAEgqF,UAAYhmE,EAE7BxwB,KAAK80F,UAAUjyE,EAAE1f,QACjBnD,KAAK80F,UAAU7zE,EAAE9d,QACjBnD,KAAK80F,UAAUjyE,EAAE2qB,SAAW3qB,EAC5B7iB,KAAK80F,UAAU7zE,EAAEusB,SAAWvsB,EAE5B+zE,EAAYh1F,KAAKo1F,MAAM3nD,SAAUztC,KAAK80F,UAAUjyE,EAAE2qB,SAAUxtC,KAAK80F,UAAU7zE,EAAEusB,SAAUxtC,KAAKo1F,MAAMH,gBAAiBqB,GACnHt2F,KAAK80F,UAAUjyE,EAAE4qB,SAAW6oD,EAAmB,GAC/Ct2F,KAAK80F,UAAU7zE,EAAEwsB,SAAW6oD,EAAmB,EACjD,EAGA36E,EAAOxe,QAAU+qC,C,kBC9LjB,OAKA,SAAU/gC,EAAQC,EAAUqvF,EAAYv0F,GACtC,aAEF,IAAIw0F,EAAkB,CAAC,GAAI,SAAU,MAAO,KAAM,KAAM,KACpDC,EAAevvF,EAASq5C,cAAc,OAEtCm2C,EAAgB,WAEhBpxE,EAAQnN,KAAKmN,MACb7D,EAAMtJ,KAAKsJ,IACXsoB,EAAMh/B,KAAKg/B,IASf,SAAS4sD,EAAkBr3F,EAAI8J,EAASlK,GACpC,OAAOuZ,WAAWm+E,EAAOt3F,EAAIJ,GAAUkK,EAC3C,CAWA,SAASytF,EAAet3F,EAAKD,EAAIJ,GAC7B,QAAIwO,MAAMC,QAAQpO,KACd8yC,EAAK9yC,EAAKL,EAAQI,GAAKJ,IAChB,EAGf,CAQA,SAASmzC,EAAK70C,EAAKO,EAAUmB,GACzB,IAAIoE,EAEJ,GAAK9F,EAIL,GAAIA,EAAI6C,QACJ7C,EAAI6C,QAAQtC,EAAUmB,QACnB,GAAI1B,EAAI6F,SAAWrB,EAEtB,IADAsB,EAAI,EACGA,EAAI9F,EAAI6F,QACXtF,EAAS0B,KAAKP,EAAS1B,EAAI8F,GAAIA,EAAG9F,GAClC8F,SAGJ,IAAKA,KAAK9F,EACNA,EAAIF,eAAegG,IAAMvF,EAAS0B,KAAKP,EAAS1B,EAAI8F,GAAIA,EAAG9F,EAGvE,CAUA,SAAS4pB,EAAO0vE,EAAMvO,EAAKwO,GAGvB,IAFA,IAAI3yF,EAAOjH,OAAOiH,KAAKmkF,GACnBjlF,EAAI,EACDA,EAAIc,EAAKf,UACP0zF,GAAUA,GAASD,EAAK1yF,EAAKd,MAAQtB,KACtC80F,EAAK1yF,EAAKd,IAAMilF,EAAInkF,EAAKd,KAE7BA,IAEJ,OAAOwzF,CACX,CASA,SAASC,EAAMD,EAAMvO,GACjB,OAAOnhE,EAAO0vE,EAAMvO,GAAK,EAC7B,CAQA,SAASyO,EAAQpzC,EAAOqzC,EAAMC,GAC1B,IACIC,EADAC,EAAQH,EAAK75F,WAGjB+5F,EAASvzC,EAAMxmD,UAAYD,OAAO8B,OAAOm4F,IAClCzzF,YAAcigD,EACrBuzC,EAAO5oD,OAAS6oD,EAEZF,GACA9vE,EAAO+vE,EAAQD,EAEvB,CAQA,SAASN,EAAOt3F,EAAIJ,GAChB,OAAO,WACH,OAAOI,EAAGuH,MAAM3H,EAAS0H,UAC7B,CACJ,CASA,SAASywF,EAAShzF,EAAKsC,GACnB,cAAWtC,GAAOqyF,EACPryF,EAAIwC,MAAMF,GAAOA,EAAK,IAAkB3E,EAAW2E,GAEvDtC,CACX,CAQA,SAASizF,EAAY//E,EAAMC,GACvB,OAAQD,IAASvV,EAAawV,EAAOD,CACzC,CAQA,SAASggF,EAAkBvxF,EAAQwxF,EAAOj1D,GACtC8P,EAAKolD,EAASD,IAAQ,SAASh4F,GAC3BwG,EAAO2T,iBAAiBna,EAAM+iC,GAAS,EAC3C,GACJ,CAQA,SAASm1D,EAAqB1xF,EAAQwxF,EAAOj1D,GACzC8P,EAAKolD,EAASD,IAAQ,SAASh4F,GAC3BwG,EAAOoV,oBAAoB5b,EAAM+iC,GAAS,EAC9C,GACJ,CASA,SAASo1D,EAAUvrF,EAAMwrF,GACrB,KAAOxrF,GAAM,CACT,GAAIA,GAAQwrF,EACR,OAAO,EAEXxrF,EAAOA,EAAKk+C,UAChB,CACA,OAAO,CACX,CAQA,SAASutC,EAAM/vF,EAAK8rC,GAChB,OAAO9rC,EAAIqC,QAAQypC,IAAS,CAChC,CAOA,SAAS6jD,EAAS3vF,GACd,OAAOA,EAAIkP,OAAOhL,MAAM,OAC5B,CASA,SAAS8rF,EAAQvP,EAAK30C,EAAMmkD,GACxB,GAAIxP,EAAIp+E,UAAY4tF,EAChB,OAAOxP,EAAIp+E,QAAQypC,GAGnB,IADA,IAAItwC,EAAI,EACDA,EAAIilF,EAAIllF,QAAQ,CACnB,GAAK00F,GAAaxP,EAAIjlF,GAAGy0F,IAAcnkD,IAAWmkD,GAAaxP,EAAIjlF,KAAOswC,EACtE,OAAOtwC,EAEXA,GACJ,CACA,OAAQ,CAEhB,CAOA,SAAS2gD,EAAQzmD,GACb,OAAOkQ,MAAMtQ,UAAUwH,MAAMnF,KAAKjC,EAAK,EAC3C,CASA,SAASw6F,EAAYzP,EAAK9qF,EAAKka,GAK3B,IAJA,IAAI+hC,EAAU,GACVx5C,EAAS,GACToD,EAAI,EAEDA,EAAIilF,EAAIllF,QAAQ,CACnB,IAAIgB,EAAM5G,EAAM8qF,EAAIjlF,GAAG7F,GAAO8qF,EAAIjlF,GAC9Bw0F,EAAQ53F,EAAQmE,GAAO,GACvBq1C,EAAQ52C,KAAKylF,EAAIjlF,IAErBpD,EAAOoD,GAAKe,EACZf,GACJ,CAYA,OAVIqU,IAII+hC,EAHCj8C,EAGSi8C,EAAQ/hC,MAAK,SAAyB+I,EAAG2I,GAC/C,OAAO3I,EAAEjjB,GAAO4rB,EAAE5rB,EACtB,IAJUi8C,EAAQ/hC,QAQnB+hC,CACX,CAQA,SAASu+C,EAASz6F,EAAK+nC,GAKnB,IAJA,IAAI3d,EAAQrX,EACR2nF,EAAY3yD,EAAS,GAAGrwB,cAAgBqwB,EAAS3gC,MAAM,GAEvDtB,EAAI,EACDA,EAAIkzF,EAAgBnzF,QAAQ,CAI/B,IAFAkN,GADAqX,EAAS4uE,EAAgBlzF,IACPskB,EAASswE,EAAY3yD,KAE3B/nC,EACR,OAAO+S,EAEXjN,GACJ,CACA,OAAOtB,CACX,CAMA,IAAI+hD,EAAY,EAUhB,SAASo0C,EAAoBtyD,GACzB,IAAIuyD,EAAMvyD,EAAQwyD,cAClB,OAAQD,EAAIE,aAAeF,EAAIG,YACnC,CAEA,IAEIC,EAAiB,iBAAkBvxF,EACnCwxF,EAAyBR,EAAShxF,EAAQ,kBAAoBjF,EAC9D02F,EAAqBF,GAJN,wCAIoCv1E,KAAKrU,UAAU9C,WAElE6sF,EAAmB,QAEnBC,EAAmB,QAiBnBC,EAAqBC,GAGrBC,EAAW,CAAC,IAAK,KACjBC,EAAkB,CAAC,UAAW,WASlC,SAASC,EAAM17C,EAAS4N,GACpB,IAAIvsD,EAAOkB,KACXA,KAAKy9C,QAAUA,EACfz9C,KAAKqrD,SAAWA,EAChBrrD,KAAK+lC,QAAU0X,EAAQ1X,QACvB/lC,KAAKkG,OAASu3C,EAAQ50C,QAAQuwF,YAI9Bp5F,KAAKq5F,WAAa,SAASC,GACnB/B,EAAS95C,EAAQ50C,QAAQq4E,OAAQ,CAACzjC,KAClC3+C,EAAK2jC,QAAQ62D,EAErB,EAEAt5F,KAAKsjB,MAET,CA0DA,SAASi2E,EAAa97C,EAAS+7C,EAAWC,GACtC,IAAIC,EAAcD,EAAMr7C,SAAS76C,OAC7Bo2F,EAAqBF,EAAMG,gBAAgBr2F,OAC3CsyF,EAvGU,EAuGC2D,GAA4BE,EAAcC,IAAuB,EAC5E7D,EAAuB,GAAZ0D,GAA2CE,EAAcC,IAAuB,EAE/FF,EAAM5D,UAAYA,EAClB4D,EAAM3D,UAAYA,EAEdD,IACAp4C,EAAQ08B,QAAU,CAAC,GAKvBsf,EAAMD,UAAYA,EAiBtB,SAA0B/7C,EAASg8C,GAC/B,IAAItf,EAAU18B,EAAQ08B,QAClB/7B,EAAWq7C,EAAMr7C,SACjBy7C,EAAiBz7C,EAAS76C,OAGzB42E,EAAQ2f,aACT3f,EAAQ2f,WAAaC,EAAqBN,IAI1CI,EAAiB,IAAM1f,EAAQ6f,cAC/B7f,EAAQ6f,cAAgBD,EAAqBN,GACnB,IAAnBI,IACP1f,EAAQ6f,eAAgB,GAG5B,IAAIF,EAAa3f,EAAQ2f,WACrBE,EAAgB7f,EAAQ6f,cACxBC,EAAeD,EAAgBA,EAAchjE,OAAS8iE,EAAW9iE,OAEjEA,EAASyiE,EAAMziE,OAASkjE,EAAU97C,GACtCq7C,EAAMU,UAAYlwD,IAClBwvD,EAAMW,UAAYX,EAAMU,UAAYL,EAAWK,UAE/CV,EAAM7+D,MAAQ8B,EAASu9D,EAAcjjE,GACrCyiE,EAAM9gE,SAAW0hE,EAAYJ,EAAcjjE,GAkB/C,SAAwBmjD,EAASsf,GAC7B,IAAIziE,EAASyiE,EAAMziE,OACfuE,EAAS4+C,EAAQmgB,aAAe,CAAC,EACjCC,EAAYpgB,EAAQogB,WAAa,CAAC,EAClCC,EAAYrgB,EAAQqgB,WAAa,CAAC,EApLxB,IAsLVf,EAAMD,WApLE,IAoL2BgB,EAAUhB,YAC7Ce,EAAYpgB,EAAQogB,UAAY,CAC5B13E,EAAG23E,EAAUtE,QAAU,EACvBj1E,EAAGu5E,EAAUrE,QAAU,GAG3B56D,EAAS4+C,EAAQmgB,YAAc,CAC3Bz3E,EAAGmU,EAAOnU,EACV5B,EAAG+V,EAAO/V,IAIlBw4E,EAAMvD,OAASqE,EAAU13E,GAAKmU,EAAOnU,EAAI0Y,EAAO1Y,GAChD42E,EAAMtD,OAASoE,EAAUt5E,GAAK+V,EAAO/V,EAAIsa,EAAOta,EACpD,CApCIw5E,CAAetgB,EAASsf,GACxBA,EAAMiB,gBAAkBC,EAAalB,EAAMvD,OAAQuD,EAAMtD,QAEzDsD,EAAMvuE,MAAQ8uE,GA+MArlD,EA/MyBqlD,EAAc57C,SA+MhCkK,EA/M0ClK,EAgNxDi8C,EAAY/xC,EAAI,GAAIA,EAAI,GAAI4wC,GAAmBmB,EAAY1lD,EAAM,GAAIA,EAAM,GAAIukD,IAhNX,EAC3EO,EAAMmB,SAAWZ,EAmMrB,SAAqBrlD,EAAO2T,GACxB,OAAO5rB,EAAS4rB,EAAI,GAAIA,EAAI,GAAI4wC,GAAmBx8D,EAASiY,EAAM,GAAIA,EAAM,GAAIukD,EACpF,CArMqClmE,CAAYgnE,EAAc57C,SAAUA,GAAY,EAuCrF,SAAkC+7B,EAASsf,GACvC,IAEIjsD,EAAU+oD,EAAWC,EAAWn8C,EAFhCwgD,EAAO1gB,EAAQ2gB,cAAgBrB,EAC/BW,EAAYX,EAAMU,UAAYU,EAAKV,UAGvC,GA7Me,GA6MXV,EAAMD,YAA8BY,EAlNrB,IAkNqDS,EAAKrtD,WAAatrC,GAAY,CAClG,IAAIg0F,EAAS2E,EAAK3E,OAASuD,EAAMvD,OAC7BC,EAAS0E,EAAK1E,OAASsD,EAAMtD,OAE7B30E,EAoFZ,SAAqB44E,EAAWv3E,EAAG5B,GAC/B,MAAO,CACH4B,EAAGA,EAAIu3E,GAAa,EACpBn5E,EAAGA,EAAIm5E,GAAa,EAE5B,CAzFgBW,CAAYX,EAAWlE,EAAQC,GACvCI,EAAY/0E,EAAEqB,EACd2zE,EAAYh1E,EAAEP,EACdusB,EAAY7rB,EAAIH,EAAEqB,GAAKlB,EAAIH,EAAEP,GAAMO,EAAEqB,EAAIrB,EAAEP,EAC3Co5B,EAAYsgD,EAAazE,EAAQC,GAEjChc,EAAQ2gB,aAAerB,CAC3B,MAEIjsD,EAAWqtD,EAAKrtD,SAChB+oD,EAAYsE,EAAKtE,UACjBC,EAAYqE,EAAKrE,UACjBn8C,EAAYwgD,EAAKxgD,UAGrBo/C,EAAMjsD,SAAWA,EACjBisD,EAAMlD,UAAYA,EAClBkD,EAAMjD,UAAYA,EAClBiD,EAAMp/C,UAAYA,CACtB,CAjEI2gD,CAAyB7gB,EAASsf,GA4MtC,IAAkB9kD,EAAO2T,EAzMrB,IAAIpiD,EAASu3C,EAAQ1X,QACjB8xD,EAAU4B,EAAMwB,SAAS/0F,OAAQA,KACjCA,EAASuzF,EAAMwB,SAAS/0F,QAE5BuzF,EAAMvzF,OAASA,CACnB,CAxDIg1F,CAAiBz9C,EAASg8C,GAG1Bh8C,EAAQ39B,KAAK,eAAgB25E,GAE7Bh8C,EAAQ09C,UAAU1B,GAClBh8C,EAAQ08B,QAAQqgB,UAAYf,CAChC,CAiHA,SAASM,EAAqBN,GAK1B,IAFA,IAAIr7C,EAAW,GACX56C,EAAI,EACDA,EAAIi2F,EAAMr7C,SAAS76C,QACtB66C,EAAS56C,GAAK,CACV43F,QAAS51E,EAAMi0E,EAAMr7C,SAAS56C,GAAG43F,SACjCC,QAAS71E,EAAMi0E,EAAMr7C,SAAS56C,GAAG63F,UAErC73F,IAGJ,MAAO,CACH22F,UAAWlwD,IACXmU,SAAUA,EACVpnB,OAAQkjE,EAAU97C,GAClB83C,OAAQuD,EAAMvD,OACdC,OAAQsD,EAAMtD,OAEtB,CAOA,SAAS+D,EAAU97C,GACf,IAAIy7C,EAAiBz7C,EAAS76C,OAG9B,GAAuB,IAAnBs2F,EACA,MAAO,CACHh3E,EAAG2C,EAAM44B,EAAS,GAAGg9C,SACrBn6E,EAAGuE,EAAM44B,EAAS,GAAGi9C,UAK7B,IADA,IAAIx4E,EAAI,EAAG5B,EAAI,EAAGzd,EAAI,EACfA,EAAIq2F,GACPh3E,GAAKu7B,EAAS56C,GAAG43F,QACjBn6E,GAAKm9B,EAAS56C,GAAG63F,QACjB73F,IAGJ,MAAO,CACHqf,EAAG2C,EAAM3C,EAAIg3E,GACb54E,EAAGuE,EAAMvE,EAAI44E,GAErB,CAsBA,SAASc,EAAa93E,EAAG5B,GACrB,OAAI4B,IAAM5B,EAjTO,EAqTbU,EAAIkB,IAAMlB,EAAIV,GACP4B,EAAI,EArTE,EACC,EAsTX5B,EAAI,EArTI,EACE,EAqTrB,CASA,SAASo5E,EAAYx4D,EAAIy5D,EAAIn1F,GACpBA,IACDA,EAAQ8yF,GAEZ,IAAIp2E,EAAIy4E,EAAGn1F,EAAM,IAAM07B,EAAG17B,EAAM,IAC5B8a,EAAIq6E,EAAGn1F,EAAM,IAAM07B,EAAG17B,EAAM,IAEhC,OAAOkS,KAAK0T,KAAMlJ,EAAIA,EAAM5B,EAAIA,EACpC,CASA,SAASyb,EAASmF,EAAIy5D,EAAIn1F,GACjBA,IACDA,EAAQ8yF,GAEZ,IAAIp2E,EAAIy4E,EAAGn1F,EAAM,IAAM07B,EAAG17B,EAAM,IAC5B8a,EAAIq6E,EAAGn1F,EAAM,IAAM07B,EAAG17B,EAAM,IAChC,OAA0B,IAAnBkS,KAAK2kB,MAAM/b,EAAG4B,GAAWxK,KAAK+Q,EACzC,CAnTA+vE,EAAM77F,UAAY,CAKdmlC,QAAS,WAAa,EAKtBnf,KAAM,WACFtjB,KAAKu7F,MAAQ9D,EAAkBz3F,KAAK+lC,QAAS/lC,KAAKu7F,KAAMv7F,KAAKq5F,YAC7Dr5F,KAAKw7F,UAAY/D,EAAkBz3F,KAAKkG,OAAQlG,KAAKw7F,SAAUx7F,KAAKq5F,YACpEr5F,KAAKy7F,OAAShE,EAAkBY,EAAoBr4F,KAAK+lC,SAAU/lC,KAAKy7F,MAAOz7F,KAAKq5F,WACxF,EAKA96C,QAAS,WACLv+C,KAAKu7F,MAAQ3D,EAAqB53F,KAAK+lC,QAAS/lC,KAAKu7F,KAAMv7F,KAAKq5F,YAChEr5F,KAAKw7F,UAAY5D,EAAqB53F,KAAKkG,OAAQlG,KAAKw7F,SAAUx7F,KAAKq5F,YACvEr5F,KAAKy7F,OAAS7D,EAAqBS,EAAoBr4F,KAAK+lC,SAAU/lC,KAAKy7F,MAAOz7F,KAAKq5F,WAC3F,GAmTJ,IAAIqC,EAAkB,CAClBC,UAvXc,EAwXdC,UAvXa,EAwXbC,QAvXY,GA0XZC,EAAuB,YACvBC,EAAsB,oBAO1B,SAASC,IACLh8F,KAAKu7F,KAAOO,EACZ97F,KAAKy7F,MAAQM,EAEb/7F,KAAKi8F,OAAQ,EACbj8F,KAAKk8F,SAAU,EAEf/C,EAAMpyF,MAAM/G,KAAM8G,UACtB,CAEAowF,EAAQ8E,EAAY7C,EAAO,CAKvB12D,QAAS,SAAmB62D,GACxB,IAAIE,EAAYkC,EAAgBpC,EAAG55F,MApZzB,EAuZN85F,GAAyC,IAAdF,EAAG6C,SAC9Bn8F,KAAKk8F,SAAU,GAvZV,EA0ZL1C,GAAuC,IAAbF,EAAG8C,QAC7B5C,EA1ZI,GA8ZHx5F,KAAKk8F,SAAYl8F,KAAKi8F,QA9ZnB,EAkaJzC,IACAx5F,KAAKk8F,SAAU,GAGnBl8F,KAAKqrD,SAASrrD,KAAKy9C,QAAS+7C,EAAW,CACnCp7C,SAAU,CAACk7C,GACXM,gBAAiB,CAACN,GAClB76C,YAAaq6C,EACbmC,SAAU3B,IAElB,IAGJ,IAAI+C,EAAoB,CACpBC,YAlbc,EAmbdC,YAlba,EAmbbC,UAlbY,EAmbZC,cAlbe,EAmbfC,WAnbe,GAubfC,GAAyB,CACzB,EAAG9D,EACH,EAlciB,MAmcjB,EAAGC,EACH,EAlcoB,UAqcpB8D,GAAyB,cACzBC,GAAwB,sCAa5B,SAASC,KACL98F,KAAKu7F,KAAOqB,GACZ58F,KAAKy7F,MAAQoB,GAEb1D,EAAMpyF,MAAM/G,KAAM8G,WAElB9G,KAAKwnE,MAASxnE,KAAKy9C,QAAQ08B,QAAQrzC,cAAgB,EACvD,CAjBI3/B,EAAO41F,iBACPH,GAAyB,gBACzBC,GAAwB,6CAiB5B3F,EAAQ4F,GAAmB3D,EAAO,CAK9B12D,QAAS,SAAmB62D,GACxB,IAAI9xB,EAAQxnE,KAAKwnE,MACbw1B,GAAgB,EAEhBC,EAAsB3D,EAAG55F,KAAKyX,cAAcgB,QAAQ,KAAM,IAC1DqhF,EAAY6C,EAAkBY,GAC9Bx+C,EAAck+C,GAAuBrD,EAAG76C,cAAgB66C,EAAG76C,YAE3Dy+C,EAAWz+C,GAAeo6C,EAG1BsE,EAAanF,EAAQxwB,EAAO8xB,EAAG8D,UAAW,aAxepC,EA2eN5D,IAA0C,IAAdF,EAAG6C,QAAgBe,GAC3CC,EAAa,IACb31B,EAAMxkE,KAAKs2F,GACX6D,EAAa31B,EAAMjkE,OAAS,GAEb,GAAZi2F,IACPwD,GAAgB,GAIhBG,EAAa,IAKjB31B,EAAM21B,GAAc7D,EAEpBt5F,KAAKqrD,SAASrrD,KAAKy9C,QAAS+7C,EAAW,CACnCp7C,SAAUopB,EACVoyB,gBAAiB,CAACN,GAClB76C,YAAaA,EACbw8C,SAAU3B,IAGV0D,GAEAx1B,EAAMl9D,OAAO6yF,EAAY,GAEjC,IAGJ,IAAIE,GAAyB,CACzBC,WA3gBc,EA4gBdC,UA3gBa,EA4gBbC,SA3gBY,EA4gBZC,YA3gBe,GA8gBfC,GAA6B,aAC7BC,GAA6B,4CAOjC,SAASC,KACL59F,KAAKw7F,SAAWkC,GAChB19F,KAAKy7F,MAAQkC,GACb39F,KAAK69F,SAAU,EAEf1E,EAAMpyF,MAAM/G,KAAM8G,UACtB,CAqCA,SAASg3F,GAAuBxE,EAAI55F,GAChC,IAAIuU,EAAMkwC,EAAQm1C,EAAGyE,SACjBC,EAAU75C,EAAQm1C,EAAG2E,gBAMzB,OAJW,GAAPv+F,IACAuU,EAAMikF,EAAYjkF,EAAI+C,OAAOgnF,GAAU,cAAc,IAGlD,CAAC/pF,EAAK+pF,EACjB,CA5CA9G,EAAQ0G,GAAkBzE,EAAO,CAC7B12D,QAAS,SAAmB62D,GACxB,IAAI55F,EAAO29F,GAAuB/D,EAAG55F,MAOrC,GA1iBU,IAsiBNA,IACAM,KAAK69F,SAAU,GAGd79F,KAAK69F,QAAV,CAIA,IAAIE,EAAUD,GAAuBn+F,KAAKK,KAAMs5F,EAAI55F,GAGzC,GAAPA,GAAqCq+F,EAAQ,GAAGx6F,OAASw6F,EAAQ,GAAGx6F,SAAW,IAC/EvD,KAAK69F,SAAU,GAGnB79F,KAAKqrD,SAASrrD,KAAKy9C,QAAS/9C,EAAM,CAC9B0+C,SAAU2/C,EAAQ,GAClBnE,gBAAiBmE,EAAQ,GACzBt/C,YAAao6C,EACboC,SAAU3B,GAbd,CAeJ,IAoBJ,IAAI4E,GAAkB,CAClBZ,WAhlBc,EAilBdC,UAhlBa,EAilBbC,SAhlBY,EAilBZC,YAhlBe,GAmlBfU,GAAsB,4CAO1B,SAASC,KACLp+F,KAAKw7F,SAAW2C,GAChBn+F,KAAKq+F,UAAY,CAAC,EAElBlF,EAAMpyF,MAAM/G,KAAM8G,UACtB,CAyBA,SAASw3F,GAAWhF,EAAI55F,GACpB,IAAI6+F,EAAap6C,EAAQm1C,EAAGyE,SACxBM,EAAYr+F,KAAKq+F,UAGrB,GAAW,EAAP3+F,GAA2D,IAAtB6+F,EAAWh7F,OAEhD,OADA86F,EAAUE,EAAW,GAAGC,aAAc,EAC/B,CAACD,EAAYA,GAGxB,IAAI/6F,EACAi7F,EACAR,EAAiB95C,EAAQm1C,EAAG2E,gBAC5BS,EAAuB,GACvBx4F,EAASlG,KAAKkG,OAQlB,GALAu4F,EAAgBF,EAAWtxF,QAAO,SAAS0xF,GACvC,OAAO9G,EAAU8G,EAAMz4F,OAAQA,EACnC,IA9oBc,IAipBVxG,EAEA,IADA8D,EAAI,EACGA,EAAIi7F,EAAcl7F,QACrB86F,EAAUI,EAAcj7F,GAAGg7F,aAAc,EACzCh7F,IAMR,IADAA,EAAI,EACGA,EAAIy6F,EAAe16F,QAClB86F,EAAUJ,EAAez6F,GAAGg7F,aAC5BE,EAAqB17F,KAAKi7F,EAAez6F,IAIlC,GAAP9D,UACO2+F,EAAUJ,EAAez6F,GAAGg7F,YAEvCh7F,IAGJ,OAAKk7F,EAAqBn7F,OAInB,CAEH20F,EAAYuG,EAAcznF,OAAO0nF,GAAuB,cAAc,GACtEA,QAPJ,CASJ,CAWA,SAASE,KACLzF,EAAMpyF,MAAM/G,KAAM8G,WAElB,IAAI27B,EAAUq0D,EAAO92F,KAAKyiC,QAASziC,MACnCA,KAAK2+F,MAAQ,IAAIP,GAAWp+F,KAAKy9C,QAAShb,GAC1CziC,KAAK6+F,MAAQ,IAAI7C,EAAWh8F,KAAKy9C,QAAShb,EAC9C,CA7FAy0D,EAAQkH,GAAYjF,EAAO,CACvB12D,QAAS,SAAoB62D,GACzB,IAAI55F,EAAOw+F,GAAgB5E,EAAG55F,MAC1Bq+F,EAAUO,GAAW3+F,KAAKK,KAAMs5F,EAAI55F,GACnCq+F,GAIL/9F,KAAKqrD,SAASrrD,KAAKy9C,QAAS/9C,EAAM,CAC9B0+C,SAAU2/C,EAAQ,GAClBnE,gBAAiBmE,EAAQ,GACzBt/C,YAAao6C,EACboC,SAAU3B,GAElB,IAiFJpC,EAAQ0H,GAAiBzF,EAAO,CAO5B12D,QAAS,SAAoBgb,EAASqhD,EAAYC,GAC9C,IAAI7B,EAAW6B,EAAUtgD,aAAeo6C,EACpCmG,EAAWD,EAAUtgD,aAAeq6C,EAIxC,GAAIoE,EACAl9F,KAAK6+F,MAAM5C,OAAQ,OAChB,GAAI+C,IAAYh/F,KAAK6+F,MAAM5C,MAC9B,OAIa,GAAb6C,IACA9+F,KAAK6+F,MAAM5C,OAAQ,GAGvBj8F,KAAKqrD,SAAS5N,EAASqhD,EAAYC,EACvC,EAKAxgD,QAAS,WACLv+C,KAAK2+F,MAAMpgD,UACXv+C,KAAK6+F,MAAMtgD,SACf,IAGJ,IAAI0gD,GAAwB9G,EAASxB,EAAajxD,MAAO,eACrDw5D,GAAsBD,KAA0B/8F,EAGhDi9F,GAAuB,UACvBC,GAAoB,OACpBC,GAA4B,eAC5BC,GAAoB,OACpBC,GAAqB,QACrBC,GAAqB,QASzB,SAASC,GAAYhiD,EAAS5/C,GAC1BmC,KAAKy9C,QAAUA,EACfz9C,KAAK+kB,IAAIlnB,EACb,CAEA4hG,GAAYniG,UAAY,CAKpBynB,IAAK,SAASlnB,GAENA,GAASshG,KACTthG,EAAQmC,KAAK0/F,WAGbR,KACAl/F,KAAKy9C,QAAQ1X,QAAQL,MAAMu5D,IAAyBphG,GAExDmC,KAAK2/F,QAAU9hG,EAAMsZ,cAAcD,MACvC,EAKA22B,OAAQ,WACJ7tC,KAAK+kB,IAAI/kB,KAAKy9C,QAAQ50C,QAAQ+2F,YAClC,EAMAF,QAAS,WACL,IAAIC,EAAU,GAMd,OALAptD,EAAKvyC,KAAKy9C,QAAQoiD,aAAa,SAASC,GAChCvI,EAASuI,EAAWj3F,QAAQq4E,OAAQ,CAAC4e,MACrCH,EAAUA,EAAQ3oF,OAAO8oF,EAAWC,kBAE5C,IAkDR,SAA2BJ,GAEvB,GAAI5H,EAAM4H,EAASL,IACf,OAAOA,GAGX,IAAIU,EAAUjI,EAAM4H,EAASJ,IACzBU,EAAUlI,EAAM4H,EAASH,IAG7B,GAAIQ,GAAWC,EACX,MAAOV,cAIX,GAAIS,GAAWC,EACX,OAAOD,EAAUT,GAAqBC,GAI1C,GAAIzH,EAAM4H,EAASN,IACf,OAAOA,GAGX,OAAOD,EACX,CA1Eec,CAAkBP,EAAQriF,KAAK,KAC1C,EAMA6iF,gBAAiB,SAAS1G,GAEtB,IAAIyF,GAAJ,CAIA,IAAIjE,EAAWxB,EAAMwB,SACjB5gD,EAAYo/C,EAAMiB,gBAGtB,IAAI16F,KAAKy9C,QAAQ08B,QAAQimB,UAAzB,CAKA,IAAIT,EAAU3/F,KAAK2/F,QACfU,EAAUtI,EAAM4H,EAASL,IACzBW,EAAUlI,EAAM4H,EAASH,IACzBQ,EAAUjI,EAAM4H,EAASJ,IAE7B,OAAIc,GACCJ,GAlzBcK,EAkzBHjmD,GACX2lD,GAAW3lD,EAAY0+C,EACjB/4F,KAAKugG,WAAWtF,QAH3B,CAPA,CAFIA,EAASlF,gBAPb,CAqBJ,EAMAwK,WAAY,SAAStF,GACjBj7F,KAAKy9C,QAAQ08B,QAAQimB,WAAY,EACjCnF,EAASlF,gBACb,GA8DJ,IAKIyK,GAAkB,GAClBC,GAAe,GAQnB,SAASC,GAAW73F,GAChB7I,KAAK+3C,GAj7BEkM,IAm7BPjkD,KAAKy9C,QAAU,KACfz9C,KAAK6I,QAAUouF,EAAMpuF,GAAW,CAAC,EAAG7I,KAAKypC,UAGzCzpC,KAAK6I,QAAQq4E,OAASsW,EAAYx3F,KAAK6I,QAAQq4E,QAAQ,GAEvDlhF,KAAKuB,MAvBY,EAyBjBvB,KAAK2gG,aAAe,CAAC,EACrB3gG,KAAK4gG,YAAc,EACvB,CAkPA,SAASC,GAAaxmD,GAClB,OA7oCiB,IA6oCbA,EACO,OA/oCI,GAgpCJA,EACA,KAnpCM,GAopCNA,EACA,OAppCO,GAqpCPA,EACA,QAEJ,EACX,CAQA,SAASymD,GAA6BC,EAAiBjB,GACnD,IAAIriD,EAAUqiD,EAAWriD,QACzB,OAAIA,EACOA,EAAQ3nC,IAAIirF,GAEhBA,CACX,CAOA,SAASC,KACLN,GAAW35F,MAAM/G,KAAM8G,UAC3B,CA4DA,SAASm6F,KACLD,GAAej6F,MAAM/G,KAAM8G,WAE3B9G,KAAKkhG,GAAK,KACVlhG,KAAKmhG,GAAK,IACd,CA0EA,SAASC,KACLJ,GAAej6F,MAAM/G,KAAM8G,UAC/B,CAqCA,SAASu6F,KACLX,GAAW35F,MAAM/G,KAAM8G,WAEvB9G,KAAKshG,OAAS,KACdthG,KAAKuhG,OAAS,IAClB,CAkEA,SAASC,KACLR,GAAej6F,MAAM/G,KAAM8G,UAC/B,CA6BA,SAAS26F,KACLT,GAAej6F,MAAM/G,KAAM8G,UAC/B,CAyDA,SAAS46F,KACLhB,GAAW35F,MAAM/G,KAAM8G,WAIvB9G,KAAK2hG,OAAQ,EACb3hG,KAAK4hG,SAAU,EAEf5hG,KAAKshG,OAAS,KACdthG,KAAKuhG,OAAS,KACdvhG,KAAKw7B,MAAQ,CACjB,CAoGA,SAASwhB,GAAOjX,EAASl9B,GAGrB,OAFAA,EAAUA,GAAW,CAAC,GACdg3F,YAAcrI,EAAY3uF,EAAQg3F,YAAa7iD,GAAOvT,SAASo4D,QAChE,IAAI7jD,GAAQjY,EAASl9B,EAChC,CAxtBA63F,GAAWpjG,UAAY,CAKnBmsC,SAAU,CAAC,EAOX1kB,IAAK,SAASlc,GAKV,OAJAye,EAAOtnB,KAAK6I,QAASA,GAGrB7I,KAAKy9C,SAAWz9C,KAAKy9C,QAAQmiD,YAAY/xD,SAClC7tC,IACX,EAOA8hG,cAAe,SAASf,GACpB,GAAIhK,EAAegK,EAAiB,gBAAiB/gG,MACjD,OAAOA,KAGX,IAAI2gG,EAAe3gG,KAAK2gG,aAMxB,OAJKA,GADLI,EAAkBD,GAA6BC,EAAiB/gG,OAC9B+3C,MAC9B4oD,EAAaI,EAAgBhpD,IAAMgpD,EACnCA,EAAgBe,cAAc9hG,OAE3BA,IACX,EAOA+hG,kBAAmB,SAAShB,GACxB,OAAIhK,EAAegK,EAAiB,oBAAqB/gG,QAIzD+gG,EAAkBD,GAA6BC,EAAiB/gG,aACzDA,KAAK2gG,aAAaI,EAAgBhpD,KAJ9B/3C,IAMf,EAOAgiG,eAAgB,SAASjB,GACrB,GAAIhK,EAAegK,EAAiB,iBAAkB/gG,MAClD,OAAOA,KAGX,IAAI4gG,EAAc5gG,KAAK4gG,YAMvB,OAJ+C,IAA3C5I,EAAQ4I,EADZG,EAAkBD,GAA6BC,EAAiB/gG,SAE5D4gG,EAAY59F,KAAK+9F,GACjBA,EAAgBiB,eAAehiG,OAE5BA,IACX,EAOAiiG,mBAAoB,SAASlB,GACzB,GAAIhK,EAAegK,EAAiB,qBAAsB/gG,MACtD,OAAOA,KAGX+gG,EAAkBD,GAA6BC,EAAiB/gG,MAChE,IAAImK,EAAQ6tF,EAAQh4F,KAAK4gG,YAAaG,GAItC,OAHI52F,GAAS,GACTnK,KAAK4gG,YAAYt2F,OAAOH,EAAO,GAE5BnK,IACX,EAMAkiG,mBAAoB,WAChB,OAAOliG,KAAK4gG,YAAYr9F,OAAS,CACrC,EAOA4+F,iBAAkB,SAASpB,GACvB,QAAS/gG,KAAK2gG,aAAaI,EAAgBhpD,GAC/C,EAOAj4B,KAAM,SAAS25E,GACX,IAAI36F,EAAOkB,KACPuB,EAAQvB,KAAKuB,MAEjB,SAASue,EAAKsiF,GACVtjG,EAAK2+C,QAAQ39B,KAAKhhB,EAAK+J,QAAQ8M,OAASysF,EAwGpD,SAAkB7gG,GACd,GAAIA,EAAQi/F,GACR,MAAO,SACJ,GA3PO,EA2PHj/F,EACP,MAAO,MACJ,GA9PS,EA8PLA,EACP,MAAO,OACJ,GAjQO,EAiQHA,EACP,MAAO,QAEX,MAAO,EACX,CAnHgE8gG,CAAS9gG,GAAS,IAAKk4F,EAC/E,CAGIl4F,EApJM,GAqJNue,GAAK,GAGTA,IAGIve,GA3JM,GA4JNue,GAAK,EAEb,EAQAwiF,QAAS,SAAS7I,GACd,GAAIz5F,KAAKuiG,UACL,OAAOviG,KAAK8f,KAAK25E,GAGrBz5F,KAAKuB,MAAQk/F,EACjB,EAMA8B,QAAS,WAEL,IADA,IAAI/+F,EAAI,EACDA,EAAIxD,KAAK4gG,YAAYr9F,QAAQ,CAChC,KAAkC,GAA5BvD,KAAK4gG,YAAYp9F,GAAGjC,OACtB,OAAO,EAEXiC,GACJ,CACA,OAAO,CACX,EAMA23F,UAAW,SAAS4D,GAGhB,IAAIyD,EAAiBl7E,EAAO,CAAC,EAAGy3E,GAGhC,IAAKxH,EAASv3F,KAAK6I,QAAQq4E,OAAQ,CAAClhF,KAAMwiG,IAGtC,OAFAxiG,KAAKmD,aACLnD,KAAKuB,MAAQk/F,IAKA,GAAbzgG,KAAKuB,QACLvB,KAAKuB,MAlNI,GAqNbvB,KAAKuB,MAAQvB,KAAKmM,QAAQq2F,GAIT,GAAbxiG,KAAKuB,OACLvB,KAAKsiG,QAAQE,EAErB,EASAr2F,QAAS,SAAS4yF,GAAa,EAO/BgB,eAAgB,WAAa,EAO7B58F,MAAO,WAAa,GA8DxB+zF,EAAQ8J,GAAgBN,GAAY,CAKhCj3D,SAAU,CAKN2U,SAAU,GASdqkD,SAAU,SAAShJ,GACf,IAAIiJ,EAAiB1iG,KAAK6I,QAAQu1C,SAClC,OAA0B,IAAnBskD,GAAwBjJ,EAAMr7C,SAAS76C,SAAWm/F,CAC7D,EAQAv2F,QAAS,SAASstF,GACd,IAAIl4F,EAAQvB,KAAKuB,MACbi4F,EAAYC,EAAMD,UAElBmJ,EAAuB,EAARphG,EACfijB,EAAUxkB,KAAKyiG,SAAShJ,GAG5B,OAAIkJ,IA5tCO,EA4tCUnJ,IAA6Bh1E,GACvCjjB,EAAQi/F,GACRmC,GAAgBn+E,EA/tCnB,EAguCAg1E,EAvVE,EAwVKj4F,EA1VL,EA2VOA,EA1VL,EA6VDA,EA9VD,EAgWHk/F,EACX,IAgBJvJ,EAAQ+J,GAAeD,GAAgB,CAKnCv3D,SAAU,CACN9zB,MAAO,MACPwoC,UAAW,GACXC,SAAU,EACV/D,UAtvCYuoD,IAyvChB7C,eAAgB,WACZ,IAAI1lD,EAAYr6C,KAAK6I,QAAQwxC,UACzBslD,EAAU,GAOd,OApwCmBW,EA8vCfjmD,GACAslD,EAAQ38F,KAAKw8F,IAEbnlD,EAAY0+C,GACZ4G,EAAQ38F,KAAKu8F,IAEVI,CACX,EAEAkD,cAAe,SAASpJ,GACpB,IAAI5wF,EAAU7I,KAAK6I,QACfi6F,GAAW,EACXnqE,EAAW8gE,EAAM9gE,SACjB0hB,EAAYo/C,EAAMp/C,UAClBx3B,EAAI42E,EAAMvD,OACVj1E,EAAIw4E,EAAMtD,OAed,OAZM97C,EAAYxxC,EAAQwxC,YAhxCPimD,EAixCXz3F,EAAQwxC,WACRA,EAAmB,IAANx3B,EAxxCR,EAwxCqCA,EAAI,EAvxCzC,EACC,EAuxCNigF,EAAWjgF,GAAK7iB,KAAKkhG,GACrBvoE,EAAWtgB,KAAKsJ,IAAI83E,EAAMvD,UAE1B77C,EAAmB,IAANp5B,EA5xCR,EA4xCqCA,EAAI,EAzxC3C,EACE,GAyxCL6hF,EAAW7hF,GAAKjhB,KAAKmhG,GACrBxoE,EAAWtgB,KAAKsJ,IAAI83E,EAAMtD,UAGlCsD,EAAMp/C,UAAYA,EACXyoD,GAAYnqE,EAAW9vB,EAAQs1C,WAAa9D,EAAYxxC,EAAQwxC,SAC3E,EAEAooD,SAAU,SAAShJ,GACf,OAAOuH,GAAe1jG,UAAUmlG,SAAS9iG,KAAKK,KAAMy5F,KAla1C,EAmaLz5F,KAAKuB,SAnaA,EAma0BvB,KAAKuB,QAAwBvB,KAAK6iG,cAAcpJ,GACxF,EAEA35E,KAAM,SAAS25E,GACXz5F,KAAKkhG,GAAKzH,EAAMvD,OAChBl2F,KAAKmhG,GAAK1H,EAAMtD,OAEhB,IAAI97C,EAAYwmD,GAAapH,EAAMp/C,WAC/BA,GACAr6C,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAQ0kC,EAAWo/C,GAGtDz5F,KAAKyuC,OAAO3uB,KAAKngB,KAAKK,KAAMy5F,EAChC,IAaJvC,EAAQkK,GAAiBJ,GAAgB,CAKrCv3D,SAAU,CACN9zB,MAAO,QACPwoC,UAAW,EACXC,SAAU,GAGd2hD,eAAgB,WACZ,MAAO,CAACT,GACZ,EAEAmD,SAAU,SAAShJ,GACf,OAAOz5F,KAAKyuC,OAAOg0D,SAAS9iG,KAAKK,KAAMy5F,KAClCphF,KAAKsJ,IAAI83E,EAAMvuE,MAAQ,GAAKlrB,KAAK6I,QAAQs1C,WA9cpC,EA8ciDn+C,KAAKuB,MACpE,EAEAue,KAAM,SAAS25E,GAEX,GADAz5F,KAAKyuC,OAAO3uB,KAAKngB,KAAKK,KAAMy5F,GACR,IAAhBA,EAAMvuE,MAAa,CACnB,IAAI63E,EAAQtJ,EAAMvuE,MAAQ,EAAI,KAAO,MACrClrB,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAQotF,EAAOtJ,EAClD,CACJ,IAgBJvC,EAAQmK,GAAiBX,GAAY,CAKjCj3D,SAAU,CACN9zB,MAAO,QACPyoC,SAAU,EACV4kD,KAAM,IACN7kD,UAAW,GAGf4hD,eAAgB,WACZ,MAAO,CAACX,GACZ,EAEAjzF,QAAS,SAASstF,GACd,IAAI5wF,EAAU7I,KAAK6I,QACfo6F,EAAgBxJ,EAAMr7C,SAAS76C,SAAWsF,EAAQu1C,SAClD8kD,EAAgBzJ,EAAM9gE,SAAW9vB,EAAQs1C,UACzCglD,EAAY1J,EAAMW,UAAYvxF,EAAQm6F,KAM1C,GAJAhjG,KAAKuhG,OAAS9H,GAITyJ,IAAkBD,GAAoC,GAAlBxJ,EAAMD,YAA2C2J,EACtFnjG,KAAKmD,aACF,GA54CG,EA44CCs2F,EAAMD,UACbx5F,KAAKmD,QACLnD,KAAKshG,OAASzK,GAAkB,WAC5B72F,KAAKuB,MApgBH,EAqgBFvB,KAAKsiG,SACT,GAAGz5F,EAAQm6F,KAAMhjG,WACd,GAh5CC,EAg5CGy5F,EAAMD,UACb,OAxgBM,EA0gBV,OAAOiH,EACX,EAEAt9F,MAAO,WACHuV,aAAa1Y,KAAKshG,OACtB,EAEAxhF,KAAM,SAAS25E,GAjhBD,IAkhBNz5F,KAAKuB,QAILk4F,GA/5CI,EA+5CMA,EAAMD,UAChBx5F,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAQ,KAAM8jF,IAE7Cz5F,KAAKuhG,OAAOpH,UAAYlwD,IACxBjqC,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAO3V,KAAKuhG,SAEnD,IAaJrK,EAAQsK,GAAkBR,GAAgB,CAKtCv3D,SAAU,CACN9zB,MAAO,SACPwoC,UAAW,EACXC,SAAU,GAGd2hD,eAAgB,WACZ,MAAO,CAACT,GACZ,EAEAmD,SAAU,SAAShJ,GACf,OAAOz5F,KAAKyuC,OAAOg0D,SAAS9iG,KAAKK,KAAMy5F,KAClCphF,KAAKsJ,IAAI83E,EAAMmB,UAAY56F,KAAK6I,QAAQs1C,WA5jBnC,EA4jBgDn+C,KAAKuB,MACnE,IAaJ21F,EAAQuK,GAAiBT,GAAgB,CAKrCv3D,SAAU,CACN9zB,MAAO,QACPwoC,UAAW,GACX3Q,SAAU,IACV6M,UAAWuoD,GACXxkD,SAAU,GAGd2hD,eAAgB,WACZ,OAAOkB,GAAc3jG,UAAUyiG,eAAepgG,KAAKK,KACvD,EAEAyiG,SAAU,SAAShJ,GACf,IACIjsD,EADA6M,EAAYr6C,KAAK6I,QAAQwxC,UAW7B,OARgB,GAAZA,EACA7M,EAAWisD,EAAMjsD,SA99CF8yD,EA+9CRjmD,EACP7M,EAAWisD,EAAMlD,UACVl8C,EAAY0+C,IACnBvrD,EAAWisD,EAAMjD,WAGdx2F,KAAKyuC,OAAOg0D,SAAS9iG,KAAKK,KAAMy5F,IACnCp/C,EAAYo/C,EAAMp/C,WAClBo/C,EAAM9gE,SAAW34B,KAAK6I,QAAQs1C,WAC9Bx8B,EAAI6rB,GAAYxtC,KAAK6I,QAAQ2kC,UAj/CzB,EAi/CqCisD,EAAMD,SACvD,EAEA15E,KAAM,SAAS25E,GACX,IAAIp/C,EAAYwmD,GAAapH,EAAMp/C,WAC/BA,GACAr6C,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAQ0kC,EAAWo/C,GAGtDz5F,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAO8jF,EAC1C,IA0BJvC,EAAQwK,GAAehB,GAAY,CAK/Bj3D,SAAU,CACN9zB,MAAO,MACPyoC,SAAU,EACVglD,KAAM,EACNC,SAAU,IACVL,KAAM,IACN7kD,UAAW,EACXmlD,aAAc,IAGlBvD,eAAgB,WACZ,MAAO,CAACV,GACZ,EAEAlzF,QAAS,SAASstF,GACd,IAAI5wF,EAAU7I,KAAK6I,QAEfo6F,EAAgBxJ,EAAMr7C,SAAS76C,SAAWsF,EAAQu1C,SAClD8kD,EAAgBzJ,EAAM9gE,SAAW9vB,EAAQs1C,UACzColD,EAAiB9J,EAAMW,UAAYvxF,EAAQm6F,KAI/C,GAFAhjG,KAAKmD,QAjjDK,EAmjDLs2F,EAAMD,WAA4C,IAAfx5F,KAAKw7B,MACzC,OAAOx7B,KAAKwjG,cAKhB,GAAIN,GAAiBK,GAAkBN,EAAe,CAClD,GAxjDI,GAwjDAxJ,EAAMD,UACN,OAAOx5F,KAAKwjG,cAGhB,IAAIC,GAAgBzjG,KAAK2hG,OAASlI,EAAMU,UAAYn6F,KAAK2hG,MAAQ94F,EAAQw6F,SACrEK,GAAiB1jG,KAAK4hG,SAAWvH,EAAYr6F,KAAK4hG,QAASnI,EAAMziE,QAAUnuB,EAAQy6F,aAgBvF,GAdAtjG,KAAK2hG,MAAQlI,EAAMU,UACnBn6F,KAAK4hG,QAAUnI,EAAMziE,OAEhB0sE,GAAkBD,EAGnBzjG,KAAKw7B,OAAS,EAFdx7B,KAAKw7B,MAAQ,EAKjBx7B,KAAKuhG,OAAS9H,EAKG,IADFz5F,KAAKw7B,MAAQ3yB,EAAQu6F,KAIhC,OAAKpjG,KAAKkiG,sBAGNliG,KAAKshG,OAASzK,GAAkB,WAC5B72F,KAAKuB,MA3sBX,EA4sBMvB,KAAKsiG,SACT,GAAGz5F,EAAQw6F,SAAUrjG,MA/sBvB,GAEA,CAitBV,CACA,OAAOygG,EACX,EAEA+C,YAAa,WAIT,OAHAxjG,KAAKshG,OAASzK,GAAkB,WAC5B72F,KAAKuB,MAAQk/F,EACjB,GAAGzgG,KAAK6I,QAAQw6F,SAAUrjG,MACnBygG,EACX,EAEAt9F,MAAO,WACHuV,aAAa1Y,KAAKshG,OACtB,EAEAxhF,KAAM,WAhuBQ,GAiuBN9f,KAAKuB,QACLvB,KAAKuhG,OAAOoC,SAAW3jG,KAAKw7B,MAC5Bx7B,KAAKy9C,QAAQ39B,KAAK9f,KAAK6I,QAAQ8M,MAAO3V,KAAKuhG,QAEnD,IAkBJvkD,GAAO4mD,QAAU,QAMjB5mD,GAAOvT,SAAW,CAOdo6D,WAAW,EAQXjE,YAAaT,GAMbje,QAAQ,EASRkY,YAAa,KAOb0K,WAAY,KAOZjC,OAAQ,CAEJ,CAACL,GAAkB,CAAEtgB,QAAQ,IAC7B,CAACkgB,GAAiB,CAAElgB,QAAQ,GAAS,CAAC,WACtC,CAACugB,GAAgB,CAAEpnD,UA7qDAimD,IA8qDnB,CAACW,GAAe,CAAE5mD,UA9qDCimD,GA8qDkC,CAAC,UACtD,CAACoB,IACD,CAACA,GAAe,CAAE/rF,MAAO,YAAaytF,KAAM,GAAK,CAAC,QAClD,CAAC/B,KAQL0C,SAAU,CAMNC,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,kBAa3B,SAASrmD,GAAQjY,EAASl9B,GAjrD1B,IAA6B40C,EAkrDzB50C,EAAUA,GAAW,CAAC,EAEtB7I,KAAK6I,QAAUouF,EAAMpuF,EAASm0C,GAAOvT,UACrCzpC,KAAK6I,QAAQuwF,YAAcp5F,KAAK6I,QAAQuwF,aAAerzD,EAEvD/lC,KAAKskG,SAAW,CAAC,EACjBtkG,KAAKm6E,QAAU,CAAC,EAChBn6E,KAAK6/F,YAAc,GAEnB7/F,KAAK+lC,QAAUA,EACf/lC,KAAKy5F,MA7qDE,KAfkBh8C,EA4rDQz9C,MA1rDR6I,QAAQi7F,aAItBnL,EACAmE,GACAlE,EACAwF,GACC1F,EAGDkG,GAFA5C,IAIOv+C,EAAS87C,GA8qD3Bv5F,KAAK4/F,YAAc,IAAIH,GAAYz/F,KAAMA,KAAK6I,QAAQ+2F,aAEtD2E,GAAevkG,MAAM,GAErBuyC,EAAK1pC,EAAQg3F,aAAa,SAASxpF,GAC/B,IAAIypF,EAAa9/F,KAAK+V,IAAI,IAAKM,EAAK,GAAIA,EAAK,KAC7CA,EAAK,IAAMypF,EAAWgC,cAAczrF,EAAK,IACzCA,EAAK,IAAMypF,EAAWkC,eAAe3rF,EAAK,GAC9C,GAAGrW,KACP,CAwOA,SAASukG,GAAe9mD,EAAS1nC,GAC7B,IAAIgwB,EAAU0X,EAAQ1X,QACtBwM,EAAKkL,EAAQ50C,QAAQk7F,UAAU,SAASlmG,EAAOiG,GAC3CiiC,EAAQL,MAAMyyD,EAASpyD,EAAQL,MAAO5hC,IAASiS,EAAMlY,EAAQ,EACjE,GACJ,CA3OAmgD,GAAQ1gD,UAAY,CAMhBynB,IAAK,SAASlc,GAaV,OAZAye,EAAOtnB,KAAK6I,QAASA,GAGjBA,EAAQ+2F,aACR5/F,KAAK4/F,YAAY/xD,SAEjBhlC,EAAQuwF,cAERp5F,KAAKy5F,MAAMl7C,UACXv+C,KAAKy5F,MAAMvzF,OAAS2C,EAAQuwF,YAC5Bp5F,KAAKy5F,MAAMn2E,QAERtjB,IACX,EAQA+E,KAAM,SAASy/F,GACXxkG,KAAKm6E,QAAQsqB,QAAUD,EA5Db,EADP,CA8DP,EAQArJ,UAAW,SAAS4D,GAChB,IAAI5kB,EAAUn6E,KAAKm6E,QACnB,IAAIA,EAAQsqB,QAAZ,CAOA,IAAI3E,EAFJ9/F,KAAK4/F,YAAYO,gBAAgBpB,GAGjC,IAAIc,EAAc7/F,KAAK6/F,YAKnB6E,EAAgBvqB,EAAQuqB,gBAIvBA,GAAkBA,GAl8Bb,EAk8B8BA,EAAcnjG,SAClDmjG,EAAgBvqB,EAAQuqB,cAAgB,MAI5C,IADA,IAAIlhG,EAAI,EACDA,EAAIq8F,EAAYt8F,QACnBu8F,EAAaD,EAAYr8F,GA9FnB,IAsGF22E,EAAQsqB,SACHC,GAAiB5E,GAAc4E,IAChC5E,EAAWqC,iBAAiBuC,GAGhC5E,EAAW38F,QAFX28F,EAAW3E,UAAU4D,IAOpB2F,GAAoC,GAAnB5E,EAAWv+F,QAC7BmjG,EAAgBvqB,EAAQuqB,cAAgB5E,GAE5Ct8F,GA1CJ,CA4CJ,EAOAsS,IAAK,SAASgqF,GACV,GAAIA,aAAsBY,GACtB,OAAOZ,EAIX,IADA,IAAID,EAAc7/F,KAAK6/F,YACdr8F,EAAI,EAAGA,EAAIq8F,EAAYt8F,OAAQC,IACpC,GAAIq8F,EAAYr8F,GAAGqF,QAAQ8M,OAASmqF,EAChC,OAAOD,EAAYr8F,GAG3B,OAAO,IACX,EAQAuS,IAAK,SAAS+pF,GACV,GAAI/I,EAAe+I,EAAY,MAAO9/F,MAClC,OAAOA,KAIX,IAAIsjC,EAAWtjC,KAAK8V,IAAIgqF,EAAWj3F,QAAQ8M,OAS3C,OARI2tB,GACAtjC,KAAK0uD,OAAOprB,GAGhBtjC,KAAK6/F,YAAY78F,KAAK88F,GACtBA,EAAWriD,QAAUz9C,KAErBA,KAAK4/F,YAAY/xD,SACViyD,CACX,EAOApxC,OAAQ,SAASoxC,GACb,GAAI/I,EAAe+I,EAAY,SAAU9/F,MACrC,OAAOA,KAGX,IAAI6/F,EAAc7/F,KAAK6/F,YAKvB,OAJAC,EAAa9/F,KAAK8V,IAAIgqF,GACtBD,EAAYv1F,OAAO0tF,EAAQ6H,EAAaC,GAAa,GAErD9/F,KAAK4/F,YAAY/xD,SACV7tC,IACX,EAQAyV,GAAI,SAASF,EAAQktB,GACjB,IAAI6hE,EAAWtkG,KAAKskG,SAKpB,OAJA/xD,EAAKolD,EAASpiF,IAAS,SAASI,GAC5B2uF,EAAS3uF,GAAS2uF,EAAS3uF,IAAU,GACrC2uF,EAAS3uF,GAAO3S,KAAKy/B,EACzB,IACOziC,IACX,EAQAolC,IAAK,SAAS7vB,EAAQktB,GAClB,IAAI6hE,EAAWtkG,KAAKskG,SAQpB,OAPA/xD,EAAKolD,EAASpiF,IAAS,SAASI,GACvB8sB,EAGD6hE,EAAS3uF,GAAOrL,OAAO0tF,EAAQsM,EAAS3uF,GAAQ8sB,GAAU,UAFnD6hE,EAAS3uF,EAIxB,IACO3V,IACX,EAOA8f,KAAM,SAASnK,EAAOlO,GAEdzH,KAAK6I,QAAQg7F,WAqDzB,SAAyBluF,EAAOlO,GAC5B,IAAIk9F,EAAev9F,EAASw9F,YAAY,SACxCD,EAAaE,UAAUlvF,GAAO,GAAM,GACpCgvF,EAAaG,QAAUr9F,EACvBA,EAAKvB,OAAO4T,cAAc6qF,EAC9B,CAzDYI,CAAgBpvF,EAAOlO,GAI3B,IAAI68F,EAAWtkG,KAAKskG,SAAS3uF,IAAU3V,KAAKskG,SAAS3uF,GAAO7Q,QAC5D,GAAKw/F,GAAaA,EAAS/gG,OAA3B,CAIAkE,EAAK/H,KAAOiW,EACZlO,EAAKsuF,eAAiB,WAClBtuF,EAAKwzF,SAASlF,gBAClB,EAGA,IADA,IAAIvyF,EAAI,EACDA,EAAI8gG,EAAS/gG,QAChB+gG,EAAS9gG,GAAGiE,GACZjE,GAVJ,CAYJ,EAMA+6C,QAAS,WACLv+C,KAAK+lC,SAAWw+D,GAAevkG,MAAM,GAErCA,KAAKskG,SAAW,CAAC,EACjBtkG,KAAKm6E,QAAU,CAAC,EAChBn6E,KAAKy5F,MAAMl7C,UACXv+C,KAAK+lC,QAAU,IACnB,GA2BJze,EAAO01B,GAAQ,CACXgoD,YA9gEc,EA+gEdC,WA9gEa,EA+gEbC,UA9gEY,EA+gEZC,aA9gEe,EAghEfC,eA3oCiB,EA4oCjBC,YA3oCc,EA4oCdC,cA3oCgB,EA4oChBC,YA3oCc,EA4oCdC,iBA5oCc,EA6oCdhF,gBAAiBA,GACjBC,aAAcA,GAEdgF,eAthEiB,EAuhEjBnF,eAthEiB,EAuhEjBoF,gBAthEkB,EAuhElB1M,aAthEe,EAuhEf2M,eAthEiB,GAuhEjB/C,qBArhEuBtC,EAshEvBvH,mBAAoBA,EACpB76C,cArhEgB0kD,GAuhEhB5kD,QAASA,GACTm7C,MAAOA,EACPsG,YAAaA,GAEbrB,WAAYA,GACZpC,WAAYA,EACZc,kBAAmBA,GACnB8B,gBAAiBA,GACjBhB,iBAAkBA,GAElB8C,WAAYA,GACZM,eAAgBA,GAChB4E,IAAKlE,GACLzjD,IAAKgjD,GACL4E,MAAOpE,GACPpjD,MAAO+iD,GACP0E,OAAQtE,GACRuE,MAAO1E,GAEP5rF,GAAIgiF,EACJryD,IAAKwyD,EACLrlD,KAAMA,EACN0kD,MAAOA,EACP3vE,OAAQA,EACR4vE,QAASA,EACTJ,OAAQA,EACRqB,SAAUA,IAGwB75F,QAClCA,aACI,OAAO0+C,EACV,oCACsCrhC,EAAOxe,QAC9Cwe,EAAOxe,QAAU6/C,GAEjB71C,EAAiB,OAAI61C,EAGxB,CAz5ED,CAy5EG71C,OAAQC,S,+BCr4EX,SAAS4+F,EAAiBnjF,EAAG5B,EAAGjT,EAAGhN,GACjC,IAAIilG,EAAQ5tF,KAAK42E,KAAKhuE,EAAE4B,GACxB7hB,EAAO,GAAKgN,EAAIqK,KAAK4S,IAAIg7E,GACzBjlG,EAAO,GAAKgN,EAAIqK,KAAK2S,IAAIi7E,EAC3B,CAEAtqF,EAAOxe,QAAU,CACf63F,YAfF,SAAqBvnD,EAAU8oD,EAAWC,EAAWvB,EAAiBj0F,GACpE,IAAIwsC,EAAWn1B,KAAK0T,KAAK1T,KAAK4kB,IAAIs5D,EAAU,GAAKl+E,KAAK4kB,IAAIu5D,EAAU,IAEpEwP,EAAiBzP,EAAWC,EAD5B/oD,EAAWp1B,KAAKJ,IAAIw1B,EAAUD,EAASynD,GACUj0F,GACjDA,EAAO,GAAKqX,KAAKsJ,IAAI3gB,EAAO,IAC5BA,EAAO,GAAKqX,KAAKsJ,IAAI3gB,EAAO,GAC9B,EAUEglG,iBAAkBA,E,+BChBpB,IAAIltF,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB4uC,EAAiB5uC,EAAQ,IACzBi7B,EAAWj7B,EAAQ,IACnBwmF,EAAcxmF,EAAQ,KAAUwmF,YAChC5rD,EAAqB56B,EAAQ,IAG7BshF,EAAiB,CACnBoW,MAAO,EACPz4D,SAAU,EACVwnD,gBAAiB,IAsBnB,SAAS9sD,EAAkBpC,EAAS0Y,EAAa0tB,GAC/CnsE,KAAK29C,SAAW5X,EAEhB/lC,KAAKo1F,MAAQ3rD,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAElC9vF,KAAKu1F,SAAU,EAEfv1F,KAAKw1F,QAAUp4C,EAAetnC,IAAIiwB,EAAS0Y,GAE3Cz+C,KAAK80F,UAAY,CACfjyE,EAAG,IAAI4lB,EACPxnB,EAAG,IAAIwnB,GAGTzoC,KAAKw1F,QAAQ//E,GAAG,WAAYzV,KAAK01F,aAAa3xD,KAAK/jC,OACnDA,KAAKw1F,QAAQ//E,GAAG,UAAWzV,KAAK21F,YAAY5xD,KAAK/jC,OACjDA,KAAKw1F,QAAQ//E,GAAG,SAAUzV,KAAK20F,eAAe5wD,KAAK/jC,OACnDA,KAAKw1F,QAAQ//E,GAAG,YAAazV,KAAK20F,eAAe5wD,KAAK/jC,MACxD,CAEA8Y,EAAaqvB,GAKbA,EAAkB7qC,UAAUihD,QAAU,WACpCv+C,KAAKw1F,QAAQ92C,UACbtV,EAAmBppC,KACrB,EAGAmoC,EAAkB7qC,UAAUo4F,aAAe,SAASlpF,GAElDA,EAAEupF,iBAEG/1F,KAAKu1F,UACRv1F,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,UAEd,EAGAqoB,EAAkB7qC,UAAUq4F,YAAc,SAASnpF,GAEjDA,EAAEupF,iBAEF/1F,KAAKmmG,gBAAgB35F,GAAG,EAC1B,EAGA27B,EAAkB7qC,UAAUq3F,eAAiB,SAASnoF,GAEpDA,EAAEupF,iBAEF/1F,KAAKmmG,gBAAgB35F,GAAG,GAEpBxM,KAAKu1F,UACPv1F,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,YAEd,EAGA,IAAIw2E,EAAqB,CAAE,KAAM,MACjCnuD,EAAkB7qC,UAAU6oG,gBAAkB,SAAS35F,EAAGkyC,GACxD,IAAI23C,EAAcr2F,KAAK29C,SAAS4Q,wBAC5Bh+B,EAAQ8lE,EAAYnhE,MAAQmhE,EAAYphE,KACxCzE,EAAS6lE,EAAYlhE,OAASkhE,EAAYjhE,IAC1CgxE,EAAS/tF,KAAKJ,IAAIsY,EAAOC,GAEzB3N,EAAIrW,EAAE0pF,OAASkQ,EAASpmG,KAAKo1F,MAAM8Q,MACnCjlF,EAAIzU,EAAE2pF,OAASiQ,EAASpmG,KAAKo1F,MAAM8Q,MAEvClmG,KAAK80F,UAAUjyE,EAAE1f,QACjBnD,KAAK80F,UAAU7zE,EAAE9d,QACjBnD,KAAK80F,UAAUjyE,EAAE2qB,SAAW3qB,EAC5B7iB,KAAK80F,UAAU7zE,EAAEusB,SAAWvsB,EAExBy9B,IACFs2C,EAAYh1F,KAAKo1F,MAAM3nD,SAAUztC,KAAK80F,UAAUjyE,EAAE2qB,SAAUxtC,KAAK80F,UAAU7zE,EAAEusB,SAAUxtC,KAAKo1F,MAAMH,gBAAiBqB,GACnHt2F,KAAK80F,UAAUjyE,EAAE4qB,SAAW6oD,EAAmB,GAC/Ct2F,KAAK80F,UAAU7zE,EAAEwsB,SAAW6oD,EAAmB,IAGjDt2F,KAAK8f,KAAK,oBAAqB,IAAK9f,KAAK80F,UAAUjyE,GACnD7iB,KAAK8f,KAAK,oBAAqB,IAAK9f,KAAK80F,UAAU7zE,EACrD,EAGAtF,EAAOxe,QAAUgrC,C,+BC1HjB,IAAIrvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnBi7B,EAAWj7B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAE7BshF,EAAiB,CACnBuW,aAAc,GACdC,UAAW,MAeb,SAASl+D,EAAwBrC,EAASomC,GACxCnsE,KAAK29C,SAAW5X,EAChB/lC,KAAKo1F,MAAQ3rD,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAClC9vF,KAAK80F,UAAY,IAAIrsD,EACrBzoC,KAAKumG,WAAa,GAElB,IAAI/mG,EAAKQ,KAAKo1F,MAAMiR,aAAermG,KAAKwmG,cAAgBxmG,KAAKymG,iBAC7DzmG,KAAK0mG,eAAiBlnG,EAAGukC,KAAK/jC,MAE9B+lC,EAAQlsB,iBAAiB,QAAS7Z,KAAK0mG,eACzC,CAuDA,SAASC,EAAgBn6F,GACvB,IAAIo6F,EAA4B,GAAfp6F,EAAEq6F,UAAiB,GAAK,EACzC,OAAOr6F,EAAE2pF,OAASyQ,CACpB,CAxDA9tF,EAAasvB,GAKbA,EAAwB9qC,UAAUihD,QAAU,WAC1Cv+C,KAAK29C,SAASriC,oBAAoB,QAAStb,KAAK0mG,gBAChDt9D,EAAmBppC,KACrB,EAGAooC,EAAwB9qC,UAAUmpG,iBAAmB,SAASj6F,GAC5DxM,KAAK80F,UAAUv5D,OAASorE,EAAgBn6F,GAAKxM,KAAKo1F,MAAMkR,UACxDtmG,KAAK8f,KAAK,oBAAqB,OAAQ9f,KAAK80F,WAE5CtoF,EAAEupF,iBAEF/1F,KAAK8f,KAAK,UACV9f,KAAK8f,KAAK,WACZ,EAGAsoB,EAAwB9qC,UAAUkpG,cAAgB,SAASh6F,GACzD,IAAIs6F,EAAct6F,EAAE2tF,UAMpB,IAHAn6F,KAAKumG,WAAWvjG,KAAKwJ,GAGdxM,KAAKumG,WAAW,GAAGpM,UAAY2M,EAAsC,IAAxB9mG,KAAKo1F,MAAMiR,cAC7DrmG,KAAKumG,WAAWrhE,MAAM,GAMxB,IADA,IAAIsI,EAAW,EACNhqC,EAAI,EAAGA,EAAIxD,KAAKumG,WAAWhjG,OAAQC,IAAK,CAE/CgqC,GAD0Bm5D,EAAgB3mG,KAAKumG,WAAW/iG,IAAMxD,KAAKo1F,MAAMkR,UACzCtmG,KAAKo1F,MAAMiR,YAC/C,CAEArmG,KAAK80F,UAAUtnD,SAAWA,EAC1BxtC,KAAK80F,UAAUrnD,SAAWp1B,KAAKsJ,IAAI6rB,GAAYxtC,KAAKo1F,MAAMiR,aAE1DrmG,KAAK8f,KAAK,oBAAqB,OAAQ9f,KAAK80F,WAE5CtoF,EAAEupF,iBAEF/1F,KAAK8f,KAAK,UACV9f,KAAK8f,KAAK,WACZ,EASAnE,EAAOxe,QAAUirC,C,+BC7FjB,IAAItvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB4uC,EAAiB5uC,EAAQ,IACzB46B,EAAqB56B,EAAQ,IAajC,SAAS65B,EAAuBtC,EAAS0Y,EAAa0tB,GACpDnsE,KAAKw1F,QAAUp4C,EAAetnC,IAAIiwB,EAAS0Y,GAE3Cz+C,KAAKs1F,WAAa,KAElBt1F,KAAKu1F,SAAU,EAEfv1F,KAAK80F,UAAY,IAAIrsD,EAErBzoC,KAAKw1F,QAAQ//E,GAAG,aAAczV,KAAK01F,aAAa3xD,KAAK/jC,OACrDA,KAAKw1F,QAAQ//E,GAAG,QAASzV,KAAK+mG,aAAahjE,KAAK/jC,OAChDA,KAAKw1F,QAAQ//E,GAAG,WAAYzV,KAAK41F,WAAW7xD,KAAK/jC,OACjDA,KAAKw1F,QAAQ//E,GAAG,cAAezV,KAAK41F,WAAW7xD,KAAK/jC,MACtD,CAEA8Y,EAAauvB,GAKbA,EAAuB/qC,UAAUihD,QAAU,WACzCv+C,KAAKw1F,QAAQ92C,UACbtV,EAAmBppC,KACrB,EAGAqoC,EAAuB/qC,UAAUo4F,aAAe,WACzC11F,KAAKu1F,UACRv1F,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,UAEd,EAGAuoB,EAAuB/qC,UAAUs4F,WAAa,WAC5C51F,KAAKs1F,WAAa,KAEdt1F,KAAKu1F,UACPv1F,KAAKu1F,SAAU,EACfv1F,KAAK8f,KAAK,YAEd,EAGAuoB,EAAuB/qC,UAAUypG,aAAe,SAASv6F,GACvD,IAAI0e,EAAQ1e,EAAE0e,MAEVlrB,KAAKs1F,aACPpqE,GAASlrB,KAAKs1F,WAAWpqE,OAG3BlrB,KAAK80F,UAAUv5D,QAAwB,GAAdrQ,EAAQ,GACjClrB,KAAK8f,KAAK,oBAAqB,OAAQ9f,KAAK80F,WAE5C90F,KAAKs1F,WAAa9oF,CACpB,EAGAmP,EAAOxe,QAAUkrC,C,+BC1EjB,IAAIvvB,EAAetK,EAAQ,IACvBw4F,EAAWx4F,EAAQ,KACnB46B,EAAqB56B,EAAQ,IAE7B4lD,EAAkC,qBAAnBu7B,gBAAkCA,eAAewF,SAqBpE,SAAS3sD,EAAS2jC,GAChBA,EAAOA,GAAQ,CAAC,EAEhBnsE,KAAKinG,SAAW,CAAC,EACjBjnG,KAAKknG,cAAgB,CAAC,EACtBlnG,KAAKmnG,UAAY,IAAIH,EAGrBhnG,KAAKonG,UAAYj7B,IAAQA,EAAKk7B,WAAal7B,EAAKk7B,QAGhDrnG,KAAKsnG,aAAe,EAEpBtnG,KAAKunG,cAAgB,GAErBvnG,KAAKwnG,oBAAsB,IAC7B,CAEA1uF,EAAa0vB,GAKbA,EAASlrC,UAAUihD,QAAU,WAC3Bv+C,KAAKynG,SACLznG,KAAKmnG,UAAU5oD,UACfnV,EAAmBppC,KACrB,EAMAwoC,EAASlrC,UAAUoqG,QAAU,WAC3B,IAAIhqG,EAAM,CAAC,EACX,IAAK,IAAIq6C,KAAM/3C,KAAKinG,SAClBvpG,EAAIq6C,GAAM/3C,KAAKinG,SAASlvD,GAE1B,OAAOr6C,CACT,EAMA8qC,EAASlrC,UAAUkD,OAAS,SAASu3C,GACnC,OAAO/3C,KAAKinG,SAASlvD,EACvB,EAOAvP,EAASlrC,UAAUqqG,eAAiB,SAAS5vD,EAAIhyC,EAAUm7E,GACzD,GAAIlhF,KAAKinG,SAASlvD,GAChB,MAAM,IAAIv2C,MAAM,6CAA+Cu2C,GAGjE/3C,KAAKinG,SAASlvD,GAAM,CAClBhyC,SAAUA,EACVshG,SAAS,EACTO,QAAQ,EACRC,cAAe7nG,KAAK8nG,cAAc/jE,KAAK/jC,KAAM+3C,GAC7CgwD,gBAAiB/nG,KAAKgoG,gBAAgBjkE,KAAK/jC,KAAM+3C,IAGhDmpC,GACDlhF,KAAKioG,aAAalwD,EAAIhyC,EAE1B,EAMAyiC,EAASlrC,UAAU4qG,iBAAmB,SAASnwD,GAC7C,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,wCAA0Cu2C,GAExDv3C,EAAO6mG,SACTrnG,KAAKmoG,cAAcpwD,UAEd/3C,KAAKinG,SAASlvD,EACvB,EAKAvP,EAASlrC,UAAU2qG,aAAe,SAASlwD,GACzC,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,wCAA0Cu2C,GAExDv3C,EAAO6mG,UAGX7mG,EAAO6mG,SAAU,EACb7mG,EAAOonG,QACT5nG,KAAKooG,wBAEPpoG,KAAKqoG,QAAQtwD,GACb/3C,KAAKsoG,kBACLtoG,KAAK8f,KAAK,gBAAiBi4B,GAC7B,EAMAvP,EAASlrC,UAAU6qG,cAAgB,SAASpwD,GAC1C,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,wCAA0Cu2C,GAEvDv3C,EAAO6mG,UAGZ7mG,EAAO6mG,SAAU,EACb7mG,EAAOonG,QACT5nG,KAAKuoG,wBAEPvoG,KAAKwoG,UAAUzwD,GACf/3C,KAAKsoG,kBACLtoG,KAAK8f,KAAK,iBAAkBi4B,GAC9B,EASAvP,EAASlrC,UAAUmrG,eAAiB,SAASC,EAASC,GACpD3oG,KAAKknG,cAAcwB,GAAWC,CAChC,EAKAngE,EAASlrC,UAAUsrG,kBAAoB,SAAS7wD,UACvC/3C,KAAKknG,cAAcnvD,EAC5B,EAKAvP,EAASlrC,UAAUurG,aAAe,WAChC,IAAInrG,EAAM,CAAC,EACX,IAAK,IAAIq6C,KAAM/3C,KAAKknG,cAClBxpG,EAAIq6C,GAAM/3C,KAAKknG,cAAcnvD,GAE/B,OAAOr6C,CACT,EAMA8qC,EAASlrC,UAAUwrG,kBAAoB,SAAS/wD,GAC9C,IAAIj5C,EAAOkB,KACXlB,EAAKooG,cAAcnvD,GAAIx3C,SAAQ,SAASwoG,GACtCjqG,EAAKmpG,aAAac,EACpB,GACF,EAMAvgE,EAASlrC,UAAU0rG,mBAAqB,SAASjxD,GAC/C,IAAIj5C,EAAOkB,KACXlB,EAAKooG,cAAcnvD,GAAIx3C,SAAQ,SAASwoG,GACtCjqG,EAAKqpG,cAAcY,EACrB,GACF,EAKAvgE,EAASlrC,UAAU+pG,QAAU,WAC3B,OAAOrnG,KAAKonG,QACd,EAKA5+D,EAASlrC,UAAU4jF,OAAS,WACtBlhF,KAAKonG,WAGTpnG,KAAKonG,UAAW,EACZpnG,KAAKsnG,aAAe,GACtBtnG,KAAK8f,KAAK,UAEZ9f,KAAK8f,KAAK,WACV9f,KAAKsoG,kBACP,EAMA9/D,EAASlrC,UAAU2rG,QAAU,WACtBjpG,KAAKonG,WAGVpnG,KAAKonG,UAAW,EACZpnG,KAAKsnG,aAAe,GACtBtnG,KAAK8f,KAAK,YAEZ9f,KAAK8f,KAAK,YACV9f,KAAKsoG,kBACP,EAUA9/D,EAASlrC,UAAU4rG,OAAS,SAASC,GAC/BnpG,KAAKwnG,qBACPxnG,KAAKynG,SAGPznG,KAAKwnG,oBAAsB2B,EAC3BnpG,KAAKopG,qBAAuBppG,KAAKqpG,yBAAyBtlE,KAAK/jC,MAC/DA,KAAKswF,eAAiB6Y,EAAWnV,kBAAkBjwD,KAAKolE,GAExDnpG,KAAKwnG,oBAAoB3tF,iBAAiB,eAAgB7Z,KAAKopG,sBAC/DppG,KAAKmnG,UAAUttF,iBAAiB,SAAU7Z,KAAKswF,eACjD,EAKA9nD,EAASlrC,UAAUmqG,OAAS,WACrBznG,KAAKwnG,sBAIVxnG,KAAKwnG,oBAAoBlsF,oBAAoB,eAAgBtb,KAAKopG,sBAClEppG,KAAKmnG,UAAU7rF,oBAAoB,SAAUtb,KAAKswF,gBAElDtwF,KAAKopG,qBAAuB,KAC5BppG,KAAKswF,eAAiB,KACtBtwF,KAAKwnG,oBAAsB,KAC7B,EAKAh/D,EAASlrC,UAAUgsG,SAAW,WAC5B,OAAmC,MAA5BtpG,KAAKwnG,mBACd,EAGAh/D,EAASlrC,UAAU+qG,QAAU,SAAStwD,GACpC,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,iBAElBhB,EAAOuF,SAAS8T,iBAAiB,SAAUrZ,EAAOqnG,eAClDrnG,EAAOuF,SAAS8T,iBAAiB,WAAYrZ,EAAOunG,gBACtD,EAGAv/D,EAASlrC,UAAUkrG,UAAY,SAASzwD,GACtC,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,iBAElBhB,EAAOuF,SAASuV,oBAAoB,SAAU9a,EAAOqnG,eACrDrnG,EAAOuF,SAASuV,oBAAoB,WAAY9a,EAAOunG,gBACzD,EAGAv/D,EAASlrC,UAAUwqG,cAAgB,SAAS/vD,GAC1C,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,iBAElB,IAAKhB,EAAO6mG,QACV,MAAM,IAAI7lG,MAAM,yDAEbhB,EAAOonG,SACVpnG,EAAOonG,QAAS,EAChB5nG,KAAKooG,wBAET,EAGA5/D,EAASlrC,UAAU0qG,gBAAkB,SAASjwD,GAC5C,IAAIv3C,EAASR,KAAKinG,SAASlvD,GAC3B,IAAKv3C,EACH,MAAM,IAAIgB,MAAM,iBAElB,IAAKhB,EAAO6mG,QACV,MAAM,IAAI7lG,MAAM,yDAEdhB,EAAOonG,SACTpnG,EAAOonG,QAAS,EAChB5nG,KAAKuoG,wBAET,EAGA//D,EAASlrC,UAAU8qG,sBAAwB,WACzCpoG,KAAKsnG,eACDlzC,GACFp0D,KAAKupG,oBAEHvpG,KAAKonG,UAAkC,IAAtBpnG,KAAKsnG,cACxBtnG,KAAK8f,KAAK,SAEd,EAGA0oB,EAASlrC,UAAUirG,sBAAwB,WACzCvoG,KAAKsnG,eACDlzC,GACFp0D,KAAKupG,oBAEHvpG,KAAKonG,UAAkC,IAAtBpnG,KAAKsnG,cACxBtnG,KAAK8f,KAAK,WAEd,EAGA0oB,EAASlrC,UAAUisG,kBAAoB,WACrC,IAAI/tE,EAAQ,EACZ,IAAK,IAAIuc,KAAM/3C,KAAKinG,SAAU,CAC5B,IAAIzmG,EAASR,KAAKinG,SAASlvD,GACvBv3C,EAAO6mG,SAAW7mG,EAAOonG,QAC3BpsE,GAEJ,CACA,GAAIA,GAASx7B,KAAKsnG,aAChB,MAAM,IAAI9lG,MAAM,oBAEpB,EAGAgnC,EAASlrC,UAAUgrG,gBAAkB,WACnC,IAAIkB,EAAWxpG,KAAKmnG,UAEpB,IAAK,IAAIpvD,KAAM/3C,KAAKinG,SAAU,CAC5B,IAAIzmG,EAASR,KAAKinG,SAASlvD,GACvBsvD,EAAUrnG,KAAKonG,UAAY5mG,EAAO6mG,QAElCA,IAAYmC,EAAS5zF,IAAIpV,EAAOuF,WAClCyjG,EAASzzF,IAAIvV,EAAOuF,WAEjBshG,GAAWmC,EAAS5zF,IAAIpV,EAAOuF,WAClCyjG,EAAS96C,OAAOluD,EAAOuF,SAE3B,CACF,EAGAyiC,EAASlrC,UAAU+rG,yBAA2B,WAC5C,IAAII,EAAczpG,KAAKmnG,UAAUuC,UAC7BD,EAAYE,UACd3pG,KAAKwnG,oBAAoBxT,oBAK3Bh0F,KAAKunG,cAAchkG,OAAS,EAG5B,IADA,IAAIqmG,EAAS5pG,KAAKwnG,oBAAoBzoB,QAAQ8qB,aACrCrmG,EAAI,EAAGA,EAAIomG,EAAOrmG,OAAQC,IAAK,CACtC,IAAIsE,EAAO8hG,EAAOpmG,GAAGsE,OACjB9H,KAAKunG,cAAcl9F,QAAQvC,GAAQ,IACrC8hG,EAAOpmG,GAAGsE,OAAOgiG,4BAA4BL,EAAYC,SACzD1pG,KAAKunG,cAAcvkG,KAAK8E,GAE5B,CACF,EAGA6T,EAAOxe,QAAUqrC,C,+BC3ZjB,IAAIT,EAAQv5B,EAAQ,KAChBs5B,EAAet5B,EAAQ,KACvBq6B,EAAmBr6B,EAAQ,KAC3BsK,EAAetK,EAAQ,IACvBy7B,EAAMz7B,EAAQ,IACdw7B,EAAOx7B,EAAQ,IACf9O,EAAO8O,EAAQ,IACfi7B,EAAWj7B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IA0BjC,SAASm6B,EAAMohE,EAAQjiG,GACrB9H,KAAKgqG,QAAUD,EACf/pG,KAAKoyF,MAAQtqF,EACb9H,KAAKiqG,QAAU,GAGfjqG,KAAKkqG,kBAAoB,IAAIrhE,EAC3BkhE,EAAOI,kBACPJ,EAAOhrB,QACP/+E,KAAKoyF,MACL2X,EAAOZ,cAGTnpG,KAAKoqG,UAAY,KACjBpqG,KAAKqqG,mBAAqB,KAC1BrqG,KAAKsqG,cAAgB,KACrBtqG,KAAKuqG,gBAAkB,KACvBvqG,KAAKwqG,kBAAoB,KAIzBxqG,KAAKyqG,uBAAyBzqG,KAAK0qG,gBAAgB3mE,KAAK/jC,MAGxDA,KAAK2qG,+BAAiC3qG,KAAK4qG,wBAAwB7mE,KAAK/jC,MACxEA,KAAKgqG,QAAQnwF,iBAAiB,cAAe7Z,KAAK2qG,gCAGlD3qG,KAAKwyF,mBAAqBxyF,KAAK8f,KAAKikB,KAAK/jC,KAAM,cAC/CA,KAAKoyF,MAAMv4E,iBAAiB,SAAU7Z,KAAKwyF,oBAG3CxyF,KAAK4qG,yBACP,CAEA9xF,EAAa6vB,GAMbA,EAAMrrC,UAAUihD,QAAU,WACxBv+C,KAAKoyF,MAAM92E,oBAAoB,SAAUtb,KAAKwyF,oBAC9CxyF,KAAKgqG,QAAQ1uF,oBAAoB,cAAetb,KAAK2qG,gCAEjD3qG,KAAKoqG,WACPpqG,KAAK6qG,eAGP7qG,KAAKkqG,kBAAkB3rD,UAEvBv+C,KAAK8qG,mBAEL1hE,EAAmBppC,KACrB,EAQA2oC,EAAMrrC,UAAUytG,iBAAmB,WACjC,OAAO/qG,KAAKkqG,iBACd,EAWAvhE,EAAMrrC,UAAUw1D,MAAQ,WACtB,OAAO9yD,KAAKiqG,QAAQ,EACtB,EAOAthE,EAAMrrC,UAAUusG,WAAa,WAC3B,MAAO,GAAG7yF,OAAOhX,KAAKiqG,QACxB,EAOAthE,EAAMrrC,UAAUwK,KAAO,WACrB,OAAO9H,KAAKoyF,KACd,EAOAzpD,EAAMrrC,UAAUysG,OAAS,WACvB,OAAO/pG,KAAKgqG,OACd,EAOArhE,EAAMrrC,UAAUu0F,QAAU,WACxB,OAAO7xF,KAAKgqG,QAAQgB,UAAYhrG,IAClC,EAkBA2oC,EAAMrrC,UAAU2tG,YAAc,SAAS9+B,GAGrC,IAAI++B,GAFJ/+B,EAAOA,GAAQ,CAAC,GAEY++B,kBAAoB,CAAC,EAC7CC,EAAYh/B,EAAKg/B,WAAa,CAAC,EAE/B99F,EAAS8+D,EAAK9+D,OACd8yE,EAAWhU,EAAKgU,SAChBr4E,EAAO9H,KAAKoyF,MACZrT,EAAQ/+E,KAAKgqG,QAAQjrB,QACrB6Q,EAAe,IAAI9nD,EAAaz6B,EAAQ0xE,EAAOmsB,GAC/Cp4C,EAAQ,IAAI/qB,EAAM16B,EAAQ8yE,EAAUr4E,EAAM8nF,EAAcub,GAW5D,OATAnrG,KAAKiqG,QAAQjnG,KAAK8vD,GAEdqZ,EAAKonB,eACPzgC,EAAMygC,gBAIRvzF,KAAK8f,KAAK,eAEHgzC,CACT,EAQAnqB,EAAMrrC,UAAU8tG,aAAe,SAASt4C,GACtC,IAAItvD,EAAIxD,KAAKiqG,QAAQ5/F,QAAQyoD,GAC7B,GAAItvD,EAAI,EACN,MAAM,IAAIhC,MAAM,0BAGlBxB,KAAKiqG,QAAQ3/F,OAAO9G,EAAG,GAGvBxD,KAAK8f,KAAK,eAEVgzC,EAAM88B,eAAerxC,UACrBuU,EAAMvU,SACR,EAMA5V,EAAMrrC,UAAUwtG,iBAAmB,WACjC,KAAO9qG,KAAKiqG,QAAQ1mG,OAAS,GAC3BvD,KAAKorG,aAAaprG,KAAKiqG,QAAQ,GAEnC,EAWAthE,EAAMrrC,UAAU+tG,SAAW,SAASl/B,EAAMlqE,GACxC,OAAOjC,KAAKgqG,QAAQsB,YAAYtrG,KAAMmsE,EAAMlqE,EAC9C,EAoBA0mC,EAAMrrC,UAAUiuG,OAAS,SAASjpD,EAAQ6pB,EAAMlqE,GAC9C,IAAInD,EAAOkB,KAKX,GAHAmsE,EAAOA,GAAQ,CAAC,EAChBlqE,EAAOA,GAAQ+nC,EAEM,WAAjBtqC,EAAK4iD,GACP,MAAM,IAAI9gD,MAAM,4CAIlB,IAOIgqG,EAAoB,MAAbr/B,EAAKq/B,KAAer/B,EAAKq/B,KAPhB,SAAUrtE,GAC5B,OAAKA,GAAK,GAAK,EACN,GAAMA,EAAIA,GAEX,MAASA,GAAKA,EAAI,GAAK,EACjC,EAGIstE,EAA8C,MAA1Bt/B,EAAKs/B,mBAA4Bt/B,EAAKs/B,kBAC1DC,EAAsC,MAA3Bv/B,EAAKw/B,mBAA6Bx/B,EAAKw/B,mBAAqB,IACvEC,EAA4B,MAAjBz/B,EAAKy/B,UAAmBz/B,EAAKy/B,SAExC9jG,EAAO9H,KAAKoyF,MAEZyZ,EAAgB/jG,EAAKgkG,aAErBC,EAAc,CAAC,EACnBtiE,EAASsiE,EAAazpD,GACtB7Y,EAASsiE,EAAaF,GAIlBD,GAAY9jG,EAAKkkG,oBACnBlkG,EAAKkkG,mBAAmBD,EAAaA,GAGvC,IAyBIE,EAAmBjsG,KAAKgqG,QAAQ7U,WAAWkS,UAE1CoE,GACHzrG,KAAKgqG,QAAQ7U,WAAW8T,UAG1BjpG,KAAKksG,eA/BU,WAEb,IAAIC,GAAc,EAElB,OAAO,SAAS7pD,EAAQxU,GAEtB,GAAIA,GAAW49D,GAAYS,EACzB,OAAO,KAGT,IAAIj6B,EAAQ75D,KAAKL,IAAI81B,EAAU49D,EAAU,GAEzC,IAAK,IAAIU,KAAS9pD,EAAQ,CACxB,IAAI3N,EAAQk3D,EAAcO,GACtB9jD,EAAMyjD,EAAYK,GACtB9pD,EAAO8pD,GAASz3D,EAAQ62D,EAAKt5B,IAAU5pB,EAAM3T,EAC/C,CAIA,OAFAw3D,EAAcr+D,GAAW49D,EAElBppD,CAET,CACF,IAQ6B,WACvB2pD,GACFntG,EAAKkrG,QAAQ7U,WAAWjU,SAE1Bj/E,GACF,GAEF,EAUA0mC,EAAMrrC,UAAU4uG,cAAgB,SAAS1sG,EAAIyC,GAE3C,IAAIknG,EAAanpG,KAAKgqG,QAAQb,aAE1BnpG,KAAKoqG,WACPpqG,KAAK6qG,eAGP,IAAIx8F,EAAO7O,IACX,GAAoB,oBAAT6O,EACT,MAAM,IAAI7M,MAAM,gBAGlBxB,KAAKoqG,UAAY5qG,EACjBQ,KAAKsqG,cAAgBj8F,EACrBrO,KAAKqqG,mBAAqBpgE,IAC1BjqC,KAAKuqG,gBAAkB,CAAC,EACxBvqG,KAAKwqG,kBAAoBvoG,EAEzBknG,EAAWtvF,iBAAiB,eAAgB7Z,KAAKyqG,wBACjDtB,EAAWnV,mBACb,EAMArrD,EAAMrrC,UAAUutG,aAAe,WAE7B,IAAI5oG,EAAOjC,KAAKwqG,kBACZrB,EAAanpG,KAAKgqG,QAAQb,aAEzBnpG,KAAKoqG,YAMVpqG,KAAKoqG,UAAY,KACjBpqG,KAAKsqG,cAAgB,KACrBtqG,KAAKqqG,mBAAqB,KAC1BrqG,KAAKuqG,gBAAkB,KACvBvqG,KAAKwqG,kBAAoB,KAEzBrB,EAAW7tF,oBAAoB,eAAgBtb,KAAKyqG,wBAEhDxoG,GACFA,IAEJ,EAOA0mC,EAAMrrC,UAAU+uG,SAAW,WACzB,OAAOrsG,KAAKoqG,SACd,EAGAzhE,EAAMrrC,UAAUotG,gBAAkB,WAEhC,IAAK1qG,KAAKoqG,UACR,MAAM,IAAI5oG,MAAM,0BAGlB,IAAI2nG,EAAanpG,KAAKgqG,QAAQb,aAC1BrhG,EAAO9H,KAAKoyF,MAEZtkD,EAAU7D,IAAQjqC,KAAKqqG,mBACvBh8F,EAAOrO,KAAKsqG,cACZhoD,EAAStiD,KAAKuqG,gBAIJ,OADdjoD,EAASj0C,EADTi0C,EAASx6C,EAAKgkG,WAAWxpD,GACHxU,IAEpB9tC,KAAK6qG,gBAEL/iG,EAAKwkG,cAAchqD,GACnB6mD,EAAWnV,oBAGf,EAGArrD,EAAMrrC,UAAUstG,wBAA0B,WACpC5qG,KAAK6xF,UACP7xF,KAAKkqG,kBAAkBqC,OAEvBvsG,KAAKkqG,kBAAkBsC,MAE3B,EAGA7wF,EAAOxe,QAAUwrC,C,+BChbjB,IAAI7vB,EAAetK,EAAQ,IACvBo6B,EAAUp6B,EAAQ,KAClBi+F,EAAWj+F,EAAQ,IACnBk+F,EAAqBl+F,EAAQ,KAC7B63B,EAAc73B,EAAQ,IAAc63B,YACpCK,EAAoBl4B,EAAQ,IAAck4B,kBAC1CE,EAAqBp4B,EAAQ,IAAco4B,mBAC3CJ,EAAch4B,EAAQ,IAAcg4B,YACpCD,EAAe/3B,EAAQ,IAAc+3B,aACrComE,EAAmBn+F,EAAQ,IAAcs3B,oBAAoB,kBAC7DsD,EAAqB56B,EAAQ,IAwBjC,SAASq6B,EAAiB+jE,EAAkB7tB,EAAOj3E,EAAMqhG,EAAYh9B,GACnEA,EAAOA,GAAQ,CAAC,EAEhBnsE,KAAK6sG,kBAAoBD,EACzB5sG,KAAKk/E,OAASH,EACd/+E,KAAKoyF,MAAQtqF,EACb9H,KAAK8sG,YAAc3D,EAGnBnpG,KAAK+sG,UAAY,GAGjB/sG,KAAK2wF,UAAW,EAGhB3wF,KAAKgtG,MAAQ7gC,EAAK0T,KAGlB7/E,KAAKitG,0BAA2B,EAGhCjtG,KAAKktG,YAAc,KACnBltG,KAAKmtG,aAAe,KAGpBntG,KAAKotG,SAAW,CAAC,EAKjBptG,KAAKqtG,yBAA2BjmG,SAASq5C,cAAc,OACvDpa,EAAYrmC,KAAKqtG,0BACjBV,EAAiB3sG,KAAKqtG,yBAA0B,QAChDrtG,KAAK6sG,kBAAkBx9C,YAAYrvD,KAAKqtG,0BAKxCrtG,KAAKkqG,kBAAoB9iG,SAASq5C,cAAc,OAChDpa,EAAYrmC,KAAKkqG,mBACjByC,EAAiB3sG,KAAKkqG,kBAAmB,OACzClqG,KAAKqtG,yBAAyBh+C,YAAYrvD,KAAKkqG,mBAG/ClqG,KAAKstG,eAAiBttG,KAAKqxF,QAAQttD,KAAK/jC,MACxCA,KAAK8sG,YAAYjzF,iBAAiB,cAAe7Z,KAAKstG,eACxD,CAEAx0F,EAAa+vB,GAMbA,EAAiBvrC,UAAUihD,QAAU,WACnC,KAAOv+C,KAAK+sG,UAAUxpG,QACpBvD,KAAKutG,eAAevtG,KAAK+sG,UAAU,IAGrC/sG,KAAK6sG,kBAAkBl+C,YAAY3uD,KAAKqtG,0BAExCrtG,KAAK8sG,YAAYxxF,oBAAoB,cAAetb,KAAKstG,gBAEzDlkE,EAAmBppC,KACrB,EAMA6oC,EAAiBvrC,UAAUkiF,WAAa,WACtC,OAAOx/E,KAAKkqG,iBACd,EAMArhE,EAAiBvrC,UAAUkwG,QAAU,SAAS3tB,GAC5C7/E,KAAKgtG,MAAQntB,EACb7/E,KAAKitG,0BAA2B,CAClC,EAMApkE,EAAiBvrC,UAAUuiF,KAAO,WAChC,OAAO7/E,KAAKgtG,KACd,EAcAnkE,EAAiBvrC,UAAUmwG,cAAgB,SAASjuB,EAAYkuB,EAAQvhC,GACtEuhC,EAASA,GAAU,CAAC,EAEpB,IAAIC,EAAU,IAAI/kE,EACd42C,EAAYx/E,KAAKkqG,kBAAmBlqG,KAAKoyF,MAAOsb,EAAQvhC,GAM5D,OALAnsE,KAAK+sG,UAAU/pG,KAAK2qG,GACpBA,EAAQtc,UAERrxF,KAAK8f,KAAK,kBAEH6tF,CACT,EAOA9kE,EAAiBvrC,UAAUswG,WAAa,SAASD,GAC/C,OAAO3tG,KAAK+sG,UAAU1iG,QAAQsjG,IAAY,CAC5C,EAMA9kE,EAAiBvrC,UAAUuwG,aAAe,WACxC,MAAO,GAAG72F,OAAOhX,KAAK+sG,UACxB,EAQAlkE,EAAiBvrC,UAAUiwG,eAAiB,SAASI,GACnD,IAAInqG,EAAIxD,KAAK+sG,UAAU1iG,QAAQsjG,GAC/B,GAAInqG,EAAI,EACN,MAAM,IAAIhC,MAAM,mBAElBxB,KAAK+sG,UAAUziG,OAAO9G,EAAG,GAEzBmqG,EAAQpvD,UACRv+C,KAAK8f,KAAK,iBACZ,EAOA+oB,EAAiBvrC,UAAUkvG,KAAO,WAC5BxsG,KAAK2wF,WACP3wF,KAAK2wF,UAAW,EAChB3wF,KAAKitG,0BAA2B,EAChCjtG,KAAKqxF,UAET,EAOAxoD,EAAiBvrC,UAAUivG,KAAO,WAC3BvsG,KAAK2wF,WACR3wF,KAAK2wF,UAAW,EAChB3wF,KAAKitG,0BAA2B,EAChCjtG,KAAKqxF,UAET,EAGAxoD,EAAiBvrC,UAAU+zF,QAAU,WACnC,IAAIriF,EAAUhP,KAAKqtG,yBACf98E,EAAQvwB,KAAKk/E,OAAO3uD,QACpBC,EAASxwB,KAAKk/E,OAAO1uD,SACrBs9E,EAAU9tG,KAAKotG,SAGnB,GAAIptG,KAAKitG,0BACJjtG,KAAKgtG,QAAUz8E,IAAUvwB,KAAKktG,aAAe18E,IAAWxwB,KAAKmtG,cAAgB,CAChF,IAAItb,EAAU7xF,KAAK2wF,SACnB3hF,EAAQ02B,MAAMqoE,QAAUlc,EAAU,QAAU,OAExCA,IACE7xF,KAAKgtG,OACPP,EAASl8E,EAAOC,EAAQxwB,KAAKgtG,MAAOc,GACpCpB,EAAmB19F,EAASuhB,EAAQu9E,EAAQjrF,EAAG2N,EAASs9E,EAAQ7sF,GAChEslB,EAAav3B,EAASuhB,EAAQu9E,EAAQv9E,MAAOC,EAASs9E,EAAQt9E,QAC9DkW,EAAkB13B,KAElB09F,EAAmB19F,EAAS,EAAG,GAC/Bw3B,EAAYx3B,GACZ43B,EAAmB53B,KAIvBhP,KAAKktG,YAAc38E,EACnBvwB,KAAKmtG,aAAe38E,EACpBxwB,KAAKitG,0BAA2B,CAClC,CAGA,IAAK,IAAIzpG,EAAI,EAAGA,EAAIxD,KAAK+sG,UAAUxpG,OAAQC,IACzCxD,KAAK+sG,UAAUvpG,GAAG6tF,SAEtB,EAGA11E,EAAOxe,QAAU0rC,C,+BCxPjB,IAAI/vB,EAAetK,EAAQ,IACvBk+F,EAAqBl+F,EAAQ,KAC7Bw3B,EAAex3B,EAAQ,IAAcw3B,aACrCoD,EAAqB56B,EAAQ,IAsCjC,SAASo6B,EAAQ42C,EAAYotB,EAAkB9kG,EAAM4lG,EAAQvhC,IAE3DA,EAAOA,GAAQ,CAAC,GACXz2C,YAAcy2C,EAAKz2C,aAAe,CAAC,EACxCy2C,EAAKz2C,YAAYs4E,gBACuB,MAApC7hC,EAAKz2C,YAAYs4E,gBAA0B7hC,EAAKz2C,YAAYs4E,gBAAkB,GAElFhuG,KAAKi+E,YAAcuB,EACnBx/E,KAAK6sG,kBAAoBD,EACzB5sG,KAAKoyF,MAAQtqF,EACb9H,KAAKiuG,QAAU,CAAC,EAChBjuG,KAAKkuG,aAAe,CAAC,EAErBluG,KAAKmuG,YAAYT,GAGjB1tG,KAAK6sG,kBAAkBx9C,YAAYrvD,KAAKi+E,aAExCj+E,KAAKouG,eAAejiC,EAAKz2C,aAIzB11B,KAAK2wF,UAAW,EAGhB3wF,KAAKquG,UAAY,CAAExrF,EAAG,EAAG5B,EAAG,EAC9B,CAEAnI,EAAa8vB,GAObA,EAAQtrC,UAAUihD,QAAU,WAC1Bv+C,KAAK6sG,kBAAkBl+C,YAAY3uD,KAAKi+E,aACxC70C,EAAmBppC,KACrB,EAMA4oC,EAAQtrC,UAAUkiF,WAAa,WAC7B,OAAOx/E,KAAKi+E,WACd,EAMAr1C,EAAQtrC,UAAU0nC,SAAW,WAC3B,OAAOhlC,KAAKiuG,OACd,EAMArlE,EAAQtrC,UAAU6wG,YAAc,SAAST,GACvC,IAAK,IAAI/vG,KAAO+vG,EACd1tG,KAAKiuG,QAAQtwG,GAAO+vG,EAAO/vG,GAE7BqC,KAAKqxF,SAGP,EAMAzoD,EAAQtrC,UAAUo4B,YAAc,WAC9B,OAAO11B,KAAKkuG,YACd,EAMAtlE,EAAQtrC,UAAU8wG,eAAiB,SAAS14E,GAC1C,IAAK,IAAI/3B,KAAO+3B,EACd11B,KAAKkuG,aAAavwG,GAAO+3B,EAAY/3B,GAEvCqC,KAAKqxF,SACP,EAMAzoD,EAAQtrC,UAAUivG,KAAO,WAClBvsG,KAAK2wF,WACR3wF,KAAK2wF,UAAW,EAChB3wF,KAAKqxF,UAET,EAMAzoD,EAAQtrC,UAAUkvG,KAAO,WACnBxsG,KAAK2wF,WACP3wF,KAAK2wF,UAAW,EAChB3wF,KAAKqxF,UAET,EAGAzoD,EAAQtrC,UAAU+zF,QAAU,WAC1B,IAIIxuE,EAAG5B,EAJH8kB,EAAU/lC,KAAKi+E,YAEf37B,EAAStiD,KAAKiuG,QACdjpE,EAAWhlC,KAAKquG,UAGhBl6B,GAAY,EAEhB,GAAIn0E,KAAK2wF,SAAU,CACjB,IAAI7oF,EAAO9H,KAAKoyF,MAEZpyF,KAAKkuG,aAAaI,QAGpBn6B,GAAY,EACZn0E,KAAKuuG,qBAAqBzmG,EAAMw6C,KAKhCx6C,EAAK0mG,oBAAoBlsD,EAAQtd,GACjCniB,EAAImiB,EAASniB,EACb5B,EAAI+jB,EAAS/jB,EAEJ,MAAL4B,GAAkB,MAAL5B,IACfkzD,GAAY,EACZn0E,KAAKyuG,aAAa5rF,EAAG5B,IAG3B,CAGIkzD,GACFpuC,EAAQL,MAAMqoE,QAAU,QACxBhoE,EAAQL,MAAMV,SAAW,aAGzBe,EAAQL,MAAMqoE,QAAU,OACxBhoE,EAAQL,MAAMV,SAAW,GAG7B,EAGA4D,EAAQtrC,UAAUixG,qBAAuB,SAASzmG,EAAMw6C,GACtD,IAAI3xC,EAAY7I,EAAK4mG,kCACjBpsD,EAAQtiD,KAAKkuG,aAAaI,OAAQtuG,KAAKkuG,aAAaF,iBACxDhoE,EAAahmC,KAAKi+E,YAAattE,EACjC,EAGAi4B,EAAQtrC,UAAUmxG,aAAe,SAAS5rF,EAAG5B,GAC3CyrF,EAAmB1sG,KAAKi+E,YAAap7D,EAAG5B,EAAGjhB,KAAKkuG,aAAaF,gBAC/D,EAGAryF,EAAOxe,QAAUyrC,C,+BCjNjB,IAAI5C,EAAex3B,EAAQ,IAASw3B,aAChCwD,EAAUh7B,EAAQ,IAUtBmN,EAAOxe,QARP,SAA4B4oC,EAASljB,EAAG5B,EAAG+sF,GACzCA,EAAkBA,GAAmB,GAGrC,IAAIr9F,EAAY,cAAgB64B,EAAQ3mB,GAAK,kBAAoB2mB,EAAQvoB,GAAK,qBAAuB+sF,EACrGhoE,EAAaD,EAASp1B,EACxB,C,+BCTA,IAAI84B,EAAWj7B,EAAQ,IACnB05B,EAAoB15B,EAAQ,KAC5B25B,EAAoB35B,EAAQ,KAC5B45B,EAA0B55B,EAAQ,KAClC65B,EAAyB75B,EAAQ,KACjCy5B,EAAmBz5B,EAAQ,KAE3BshF,EAAiB,CACnB6e,cAAe,OACfC,SAAU,OAiGZjzF,EAAOxe,QA3EP,SAAiCg4F,EAAUpvD,EAASomC,GAClDA,EAAO1iC,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAE5B,IAAI+e,EAAiB,CACnBC,cAAe,IAAI5mE,EAAkBnC,EAAS,SAC9CgpE,cAAe,IAAI5mE,EAAkBpC,EAAS,SAE9CipE,aAAc,IAAI/mE,EAAiB,GAAI,KAAM,GAAK,GAClDgnE,cAAe,IAAIhnE,EAAiB,GAAI,IAAK,GAAK,GAClDinE,WAAY,IAAIjnE,EAAiB,GAAI,KAAM,GAAK,GAChDknE,aAAc,IAAIlnE,EAAiB,GAAI,IAAK,GAAK,GACjDmnE,QAAS,IAAInnE,EAAiB,IAAK,QAAS,GAAK,GACjDonE,SAAU,IAAIpnE,EAAiB,IAAK,OAAQ,GAAK,GAEjDqnE,KAAM,IAAIrnE,EAAiB,GAAI,KAAM,GAAK,GAC1CsnE,KAAM,IAAItnE,EAAiB,GAAI,KAAM,GAAK,GAC1CunE,KAAM,IAAIvnE,EAAiB,GAAI,IAAK,GAAK,GACzCwnE,KAAM,IAAIxnE,EAAiB,GAAI,IAAK,GAAK,GACzCynE,KAAM,IAAIznE,EAAiB,GAAI,OAAQ,GAAK,GAC5C0nE,KAAM,IAAI1nE,EAAiB,GAAI,QAAS,GAAK,IAG3C2nE,EAAkB,CAAC,aAAc,YAAa,UAE1B,IAApBzjC,EAAK0jC,aACPhB,EAAegB,WAAa,IAAIznE,EAAwBrC,IAG1D,IAAI+pE,EAAsB,CACxBC,UAAW,CAAE,eAAgB,gBAAiB,aAAc,gBAC5DC,cAAe,CAAE,UAAW,YAC5BC,SAAU,CAAE,OAAQ,OAAQ,OAAQ,QACpCC,OAAQ,CAAE,OAAQ,SAIpB,OAAQ/jC,EAAKyiC,UACX,IAAK,QACFC,EAAesB,MAAQ,IAAIjoE,EAAkBnC,EAAS,QAAS,CAAEmvD,YAAa,UAC/E,MACF,IAAK,MACH2Z,EAAeuB,UAAY,IAAIloE,EAAkBnC,EAAS,SAC1D8oE,EAAesB,MAAQ,IAAI9nE,EAAuBtC,EAAS,SAC3D,MACF,QACE,MAAM,IAAIvkC,MAAM,sBAAwB2qE,EAAKyiC,UAGjD,OAAQziC,EAAKwiC,eACX,IAAK,OACHiB,EAAgB5sG,KAAK,iBACrB,MACF,IAAK,OACH4sG,EAAgB5sG,KAAK,iBACrB,MACF,QACE,MAAM,IAAIxB,MAAM,4BAA8B2qE,EAAKwiC,eAGvD,IAAK,IAAI52D,KAAM82D,EAAgB,CAC7B,IAAIruG,EAASquG,EAAe92D,GAC5Bo9C,EAASwS,eAAe5vD,EAAIv3C,GACxBovG,EAAgBvlG,QAAQ0tC,IAAO,GACjCo9C,EAAS8S,aAAalwD,EAE1B,CAEA,IAAK,IAAI2wD,KAAWoH,EAAqB,CACvC,IAAIO,EAAcP,EAAoBpH,GACtCvT,EAASsT,eAAeC,EAAS2H,EACnC,CAEA,OAAOxB,CACT,C,+BCxGA,IAAI5kE,EAAMz7B,EAAQ,IA6BlBmN,EAAOxe,QA3BP,SAAeuuG,EAAU79D,EAAQ5rC,GAC/B,IAAIquG,GAAY,EAEZC,EAAYtmE,IAkBhB,OAHA4D,EAAO,GACP0d,uBAdA,SAASilD,IACP,IAAGF,EAAH,CACA,IAAIG,GAAYxmE,IAAQsmE,GAAW7E,EAChC+E,EAAW,GACZ5iE,EAAO4iE,GACPllD,sBAAsBilD,KAGtB3iE,EAAO,GACP5rC,IARsB,CAU1B,IAKO,WACLquG,GAAY,EACZruG,EAAK8E,MAAM,KAAMD,UACnB,CACF,C,gBC9BA,IAAIkjC,EAAO,WAAY,EACnB0mE,EAAgB,YAChBC,SAAexpG,SAAWupG,UAA0BvpG,OAAO2H,YAAc4hG,GACzE,kBAAkBvtF,KAAKhc,OAAO2H,UAAU9C,WAGxC4kG,EAAa,CACb,QACA,QACA,OACA,OACA,SAIJ,SAASC,EAAWnzG,EAAKuR,GACrB,IAAIzO,EAAS9C,EAAIuR,GACjB,GAA2B,oBAAhBzO,EAAOujC,KACd,OAAOvjC,EAAOujC,KAAKrmC,GAEnB,IACI,OAAO0kC,SAAS9kC,UAAUymC,KAAKpkC,KAAKa,EAAQ9C,E,CAC9C,MAAO8O,GAEL,OAAO,WACH,OAAO41B,SAAS9kC,UAAUyJ,MAAMA,MAAMvG,EAAQ,CAAC9C,EAAKoJ,WACxD,C,CAGZ,CAGA,SAASgqG,IACDjmG,QAAQ5B,MACJ4B,QAAQ5B,IAAIlC,MACZ8D,QAAQ5B,IAAIlC,MAAM8D,QAAS/D,WAG3Bs7B,SAAS9kC,UAAUyJ,MAAMA,MAAM8D,QAAQ5B,IAAK,CAAC4B,QAAS/D,aAG1D+D,QAAQipB,OAAOjpB,QAAQipB,OAC/B,CAIA,SAASi9E,EAAW9hG,GAKhB,MAJmB,UAAfA,IACAA,EAAa,cAGNpE,UAAY6lG,IAEG,UAAfzhG,GAA0B0hG,EAC1BG,OACwB5uG,IAAxB2I,QAAQoE,GACR4hG,EAAWhmG,QAASoE,QACJ/M,IAAhB2I,QAAQ5B,IACR4nG,EAAWhmG,QAAS,OAEpBm/B,EAEf,CAIA,SAASgnE,EAAsBn9F,EAAOm3B,GAElC,IAAK,IAAIxnC,EAAI,EAAGA,EAAIotG,EAAWrtG,OAAQC,IAAK,CACxC,IAAIyL,EAAa2hG,EAAWptG,GAC5B,KAAKyL,GAAezL,EAAIqQ,EACpBm2B,EACA,KAAKinE,cAAchiG,EAAY4E,EAAOm3B,E,CAI9C,KAAK/hC,IAAM,KAAKmrD,KACpB,CAIA,SAAS88C,EAAgCjiG,EAAY4E,EAAOm3B,GACxD,OAAO,kBACQngC,UAAY6lG,IACnBM,EAAsBrxG,KAAK,KAAMkU,EAAOm3B,GACxC,KAAK/7B,GAAYlI,MAAM,KAAMD,WAErC,CACJ,CAIA,SAASqqG,EAAqBliG,EAAY4E,EAAOm3B,GAE7C,OAAO+lE,EAAW9hG,IACXiiG,EAAgCnqG,MAAM,KAAMD,UACvD,CAEA,SAAS01C,EAAO14C,EAAMstG,EAAcC,GAClC,IACIC,EADAxyG,EAAO,KAGPyyG,EAAa,WAyBjB,SAASC,IACL,IAAIC,EAEJ,UAAWtqG,SAAWupG,GAAkBa,EAAxC,CAEA,IACIE,EAActqG,OAAOuqG,aAAaH,EACrB,CAAf,MAAOI,GAAQ,CAGjB,UAAWF,IAAgBf,EACvB,IACI,IAAIkB,EAASzqG,OAAOC,SAASwqG,OACzBC,EAAWD,EAAOvnG,QAClBwS,mBAAmB00F,GAAc,MACnB,IAAdM,IACAJ,EAAc,WAAWltC,KAAKqtC,EAAO9sG,MAAM+sG,IAAW,GAE7C,CAAf,MAAOF,GAAQ,CAQrB,YAJiCzvG,IAA7BpD,EAAKgtC,OAAO2lE,KACZA,OAAcvvG,GAGXuvG,CAvB6C,CAwBxD,CAnDoB,kBAAT3tG,EACTytG,GAAc,IAAMztG,EACK,kBAATA,IAChBytG,OAAarvG,GAwDfpD,EAAKgF,KAAOA,EAEZhF,EAAKgtC,OAAS,CAAE,MAAS,EAAG,MAAS,EAAG,KAAQ,EAAG,KAAQ,EACvD,MAAS,EAAG,OAAU,GAE1BhtC,EAAKmyG,cAAgBI,GAAWF,EAEhCryG,EAAKgzG,SAAW,WACZ,OAAOR,CACX,EAEAxyG,EAAKizG,SAAW,SAAUl+F,EAAOm+F,GAI7B,GAHqB,kBAAVn+F,QAA2D3R,IAArCpD,EAAKgtC,OAAOj4B,EAAMuB,iBAC/CvB,EAAQ/U,EAAKgtC,OAAOj4B,EAAMuB,kBAET,kBAAVvB,GAAsBA,GAAS,GAAKA,GAAS/U,EAAKgtC,OAAOmmE,QAUhE,KAAM,6CAA+Cp+F,EAJrD,GALAy9F,EAAez9F,GACC,IAAZm+F,GAtEZ,SAAgCE,GAC5B,IAAIC,GAAavB,EAAWsB,IAAa,UAAU98F,cAEnD,UAAWjO,SAAWupG,GAAkBa,EAAxC,CAGA,IAEI,YADApqG,OAAOuqG,aAAaH,GAAcY,EAErB,CAAf,MAAOR,GAAQ,CAGjB,IACIxqG,OAAOC,SAASwqG,OACd/0F,mBAAmB00F,GAAc,IAAMY,EAAY,GACxC,CAAf,MAAOR,GAAQ,CAZmC,CAaxD,CAuDYS,CAAuBv+F,GAE3Bm9F,EAAsBrxG,KAAKb,EAAM+U,EAAO/P,UAC7B+G,UAAY6lG,GAAiB78F,EAAQ/U,EAAKgtC,OAAOmmE,OACxD,MAAO,kCAKnB,EAEAnzG,EAAK0sC,gBAAkB,SAAU33B,GACxB29F,KACD1yG,EAAKizG,SAASl+F,GAAO,EAE7B,EAEA/U,EAAKuzG,UAAY,SAASL,GACtBlzG,EAAKizG,SAASjzG,EAAKgtC,OAAOwmE,MAAON,EACrC,EAEAlzG,EAAKyzG,WAAa,SAASP,GACvBlzG,EAAKizG,SAASjzG,EAAKgtC,OAAOmmE,OAAQD,EACtC,EAGA,IAAIQ,EAAehB,IACC,MAAhBgB,IACAA,EAA+B,MAAhBpB,EAAuB,OAASA,GAEnDtyG,EAAKizG,SAASS,GAAc,EAC9B,CAQA,IAAIC,EAAgB,IAAIj2D,EAEpBk2D,EAAiB,GACrBD,EAAc7nE,UAAY,SAAmB9mC,GACzC,GAAqB,kBAATA,GAAqC,kBAATA,GAA+B,KAATA,EAC5D,MAAM,IAAI3B,UAAU,kDAGtB,IAAIoG,EAASmqG,EAAe5uG,GAK5B,OAJKyE,IACHA,EAASmqG,EAAe5uG,GAAQ,IAAI04C,EAClC14C,EAAM2uG,EAAcX,WAAYW,EAAcxB,gBAE3C1oG,CACX,EAGA,IAAIkvC,SAAetwC,SAAWupG,EAAiBvpG,OAAO8B,SAAM/G,EAC5DuwG,EAAcE,WAAa,WAMvB,cALWxrG,SAAWupG,GACfvpG,OAAO8B,MAAQwpG,IAClBtrG,OAAO8B,IAAMwuC,GAGVg7D,CACX,EAEAA,EAAcG,WAAa,WACvB,OAAOF,CACX,EAGAD,EAAuB,QAAIA,EAE3B92F,EAAOxe,QAAUs1G,C,wjNC3QjB,IAAMI,EAAY,mBASlB,SAASC,EAAUhrF,GAEjB,IADA,IAAI9mB,EAAS,GACJwC,EAAI,EAAGA,EAVM,GAUeA,IACnCxC,GAAU6xG,EAAUhuG,OAAOwT,KAAKsC,MAAMtC,KAAKC,SAAWu6F,EAAUtvG,SAElE,MAAO,GAAGukB,EAAS9mB,CACrB,CAEA7D,EAAQuV,WAAaogG,EAAU,MAC/B31G,EAAQ21G,UAAYA,C,+BCNpBn3F,EAAOxe,QAJe,CACpBkV,mBAAoB,uB,+BCNK,oBAAhB2gC,YACTr3B,EAAOxe,QAAU61C,YAEjBr3B,EAAOxe,QAAU,WACf,MAAM,IAAIqE,MAAM,+BAClB,C,+BC8BFma,EAAOxe,QA7BP,SAAS41G,EAA4BC,GACnC,KAAM,gBAAgBD,GACpB,OAAO,IAAIA,EAA4BC,GAMzC,IAAIC,EAAcD,GAAoD,aAA7BA,EAAoBtzG,KACzD,KACA,IAAIwzC,sBAAsB8/D,GAE9B31G,OAAOkQ,iBAAiB,KAAM,CAC5B2lG,aAAc,CACZp9F,IAAK,WACH,OAAOm9F,CACT,GAEFl5D,IAAK,CACHx7C,YAAY,EACZV,MAAOo1G,EAAcA,EAAYl5D,IAAMi5D,EAAoBj5D,KAE7Dr6C,KAAM,CACJnB,YAAY,EACZV,MAAOo1G,EAAcA,EAAYvzG,KAAOszG,EAAoBtzG,OAGlE,C,+BClCA,IAAI6Z,EAAQ/K,EAAQ,IAAM+K,MAEtBy7B,EAAS,CACXm+D,KAAM,IAAItjG,IAAI,CAAC,QACfujG,IAAK,IAAIvjG,IAAI,CAAC,UAUhB,SAASwjG,EAAMt+D,GACb,KAAM,gBAAgBs+D,GACpB,OAAO,IAAIA,EAAMt+D,GAEnB,IAAIxzC,EAAQwzC,GAAgB,MAC5B13C,OAAOkQ,iBAAiB,KAAM,CAC5BkoC,OAAQ,CACN1wB,IAAK,SAAS0wB,GACZ,GAAIl0C,IAAUk0C,EAAQ,CACpBl0C,EAAQk0C,EACR,IAAI69D,EAAgB,KAAK39D,eAAe7/B,IAAIvU,GAC5C+xG,EAAc/yG,SAAQ,SAASiZ,GAC7BA,EAAS3Y,QAAQ,KACnB,GAAG,MACHyyG,EAAcx+D,O,CAElB,EACAh/B,IAAK,WACH,OAAOvU,CACT,GAEFo0C,eAAgB,CACd93C,MAAO,IAAIiS,IAAI,CACb,CAAC,OAAQ,IAAID,KACb,CAAC,MAAO,IAAIA,QAGhBtO,MAAO,CACLhD,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK2/B,MACd,IAGN,CA0DA,SAAS89D,EAA4B18F,EAAMqgC,GACzC,OAAO,IAAI11C,MAAM,2BAA6BqV,EAAO,SAAWqgC,EAAK,IACvE,CArDAm8D,EAAM/1G,UAAUk2G,MAAQ,WACtB,OAAO,KAAK78D,WAAW,MACzB,EAOA08D,EAAM/1G,UAAUm2G,MAAQ,WACtB,OAAO,KAAK98D,WAAW,OACzB,EAQA08D,EAAM/1G,UAAUq5C,WAAa,SAAoBL,GAC/C,IAAKtB,EAAO,KAAKzzC,OAAOqU,IAAI0gC,GAC1B,MAAMi9D,EAA4B,KAAKhyG,MAAO+0C,GAGhD,OADA,KAAKb,OAASa,EACP,IACT,EAQA+8D,EAAM/1G,UAAUu4C,KAAO,SAAct0C,GACnC,GAAI,KAAKA,QAAUA,EACjB,OAAO6C,QAAQvD,QAAQ,MAEzB,IAAKm0C,EAAO,KAAKzzC,OAAOqU,IAAIrU,GAC1B,OAAO6C,QAAQtD,OAAOyyG,EAA4B,KAAKhyG,MAAOA,IAEhE,IAAIiY,EAAWD,IAEf,OADA,KAAKo8B,eAAe7/B,IAAIvU,GAAOwU,IAAIyD,GAC5BA,EAASC,OAClB,EAYAkC,EAAOxe,QAAUk2G,C,+BC7GjB13F,EAAOxe,QAAU+1C,qB,ohBCiBjB,cAME,WAAYwgE,EAAuB7qG,G,OACjC4lC,YAAMilE,EAAuB7qG,IAAQ,IACvC,CA8FF,OAtGyB0O,OAwEvBo8F,mBAAA,WACE,OAAOllE,YAAMy6D,OAAOniG,MAAM,KAAMD,UAClC,EAyBA6sG,mBAAA,WACE,OAAOllE,YAAMg5D,OAAO1gG,MAAM,KAAMD,UAClC,EACF,EAtGA,CAlBmB0H,EAAQ,MA6I3BmN,EAAOxe,QAAUw2G,C,ohBC7IT,EAAUnlG,EAAQ,IAA8B,MAChD,EAAgBA,EAAQ,IAAe,YAEzC,EAAoCA,EAAQ,GAA1C2M,EAAY,eAAEF,EAAe,kBAC/B24F,EAA6BplG,EAAQ,KAoB3C,cAME,WAAYklG,EAAuB7qG,GAAnC,WACEA,EAAUxL,OAAOgT,OAAO,CACtBwjG,oCAAqCpgE,KACZ,kBAAbrsC,UAC8B,oBAA9BA,SAASyS,kBACoB,kBAA7BzS,SAAS4sE,iBACpBnrE,GAEHyO,cAAMo8F,EAAsB37D,GAAI27D,EAAsB5gG,KAAMjK,IAAQ,KACpE,IAAIirG,GAAY,E,OAEhBjrG,EAAUxL,OAAOgT,OAAO,CACtB2iC,YAAW,GACVnqC,GAGHxL,OAAOkQ,iBAAiB+J,EAAM,CAC5By8F,aAAc,CACZl2G,MAAO,IAAIgS,KAEbmkG,SAAU,CACRn2G,MAAO,KACPY,UAAU,GAEZw1G,SAAU,CACRp2G,MAAO,IAAIq2G,SAEbC,WAAY,CACVr+F,IAAG,WACD,OAAOg+F,CACT,EACA/uF,IAAG,SAACovF,GACFL,EAAYK,CACd,GAEFC,qCAAsC,CACpCv2G,MAAOgL,EAAQgrG,qCAEjBQ,4BAA6B,CAC3Bx2G,MAAOgL,EAAQyrG,2BACVzrG,EAAQgrG,qCAEfU,kBAAmB,CACjB12G,MAAO,KACPY,UAAU,GAEZ+1G,aAAc,CACZ32G,MAAOgL,EAAQmqC,aAEjB8gE,UAAW,CACTv1G,YAAY,EACZuX,IAAG,WACD,OAAOg+F,CACT,GAEFW,iBAAkB,CAChBl2G,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKy+F,mBAAqBb,EAAsBt/F,KACzD,GAEFsgG,eAAgB,CACdn2G,YAAY,EACZV,MAAO,KACPY,UAAU,KAId6Y,EAAKq9F,c,CACP,CAmMF,OA9QyBp9F,OAgFvBq9F,mBAAA,WACE,KAAKn9D,KAAK2c,MAAM,WAChB,KAAK+/C,YAAa,EACd,KAAKH,WACP,KAAKA,SAASa,UAAY,MAG5B,KAAK/0F,KAAK,UAAW,KACvB,EAKA80F,wBAAA,WACE,IAAM91G,EAAO,KAEb,KAAK24C,KAAK2c,MAAM,gBAChB,KAAK4/C,SAAW,KAAKc,iBAErB,KAAKL,iBAAiB56F,iBAAiB,SAAS,SAASk7F,IACvDj2G,EAAKk2G,OACLl2G,EAAK21G,iBAAiBn5F,oBAAoB,QAASy5F,EACrD,IAEI,KAAKf,WACP,KAAKA,SAASiB,OAAQ,EACtB,KAAKjB,SAASa,UAAY,KAAKtgC,OAAOxwC,KAAK,KAAM,KAAKiwE,UAGtD,KAAKkB,QAAQ,KAAKlB,SAAU,KAAKS,kBAEjC,KAAKV,aAAah+D,OAAO,KAAKi+D,UAElC,EAKAY,iBAAA,WACE,KAAKn9D,KAAK2c,MAAM,SACZ,KAAK4/C,WACP,KAAKA,SAAStlD,SACd,KAAKslD,SAASmB,UAAY,KAC1B,KAAKnB,SAASa,UAAY,KAC1B,KAAKb,SAAW,KAEpB,EAEAY,mBAAA,SAAOQ,GAAP,WASE,GARkB,kBAAPA,EACTA,EAAK,KAAKC,eAAeD,GACfA,IACVA,EAAK,KAAKN,kBAEZ,KAAKr9D,KAAK2c,MAAM,mCAAoCghD,GACpDA,EAAK,KAAKF,QAAQE,GAEd,KAAKf,8BAAgC,KAAKJ,SAASr+F,IAAIw/F,GAAK,CAC9D,IAAME,EAA0B,KAAKlB,qCACjC,WAAM,OA4IhB,SAAwCgB,EAAInsG,GAC1C,IAAMq9C,EAAM8uD,EAAGrxD,QAAQ5sC,cACvBlO,EAAIoC,KAAK,0BAA2B+pG,GAKpChxG,QAAQmxG,KAAK,CACXp6F,EAAa/T,SAAU,oBACvB6T,EAAgB,OACf/Z,MAAK,WAC2B,YAA7BkG,SAAS4sE,iBAMX4/B,EAA2B4B,aAAa,SAASt0G,MAAK,WAGpD,OAFA+H,EAAI7G,KAAK,mCAAmCkkD,EAAG,aAC/Cr9C,EAAImrD,MAAM,WAAYghD,GACfA,EAAGK,MACZ,IAAGv0G,MAAK,WACN+H,EAAI7G,KAAK,+CAA+CkkD,EAAG,aAC3Dr9C,EAAImrD,MAAM,WAAYghD,EACxB,IAAG5qG,OAAM,YACPvB,EAAIoC,KAAK,+CAA+Ci7C,EAAG,aAAc,CAAEllD,MAAK,EAAEg0G,GAAE,GACtF,GAEJ,GACF,CAzKgB,CAA+BA,EAAI99F,EAAKmgC,KAAxC,EACN,KACJ,KAAKw8D,SAASlvF,IAAIqwF,EAgLxB,SAA0BA,EAAIE,QAAA,QAAAA,QAC5B,IAAMI,EAAYN,EAAGrxB,MACf4xB,EAAWP,EAAGK,KAEhBG,GAAsB,EAE1BR,EAAGrxB,MAAQ,WAET,OADA6xB,GAAsB,EACfF,EAAU/1G,KAAKy1G,EACxB,EAEAA,EAAGK,KAAO,WAER,OADAG,GAAsB,EACfD,EAASh2G,KAAKy1G,EACvB,EAEA,IAAMS,EAAUP,EAA0B,WACnCM,GACHN,GAEJ,EAAI,KAEAO,GACFT,EAAGv7F,iBAAiB,QAASg8F,GAG/B,MAAO,CACLD,oBAAmB,WACjB,OAAOA,CACT,EACAE,OAAM,WACJV,EAAGrxB,MAAQ2xB,EACXN,EAAGK,KAAOE,EACNE,GACFT,EAAG95F,oBAAoB,QAASu6F,EAEpC,EAEJ,CAtN4BE,CAAiBX,EAAIE,G,CAE7C,OAAOF,CACT,EAUAR,oBAAA,SAAQQ,EAAIX,QAAA,QAAAA,EAAmB,KAAKC,gBAAkB,KAAKD,kBACzD,IAAIuB,EAAcZ,EAAGD,UACfa,aAAuB,KAAKxB,eAChCwB,EAAc,IAAI,KAAKxB,cAGzB,IAAMyB,EAAsC,UAA1BxB,EAAiB3hG,KAC/B,iBACA,iBAkBJ,OAhBAkjG,EAAYC,KAAa11G,SAAQ,YAC/By1G,EAAYE,YAAY9hG,EAC1B,IACA4hG,EAAYG,SAAS1B,GAKrBW,EAAGD,UAAYa,EACfZ,EAAGgB,UAAW,EACdhB,EAAGiB,aAAc,EAEZ,KAAKtC,aAAan+F,IAAIw/F,IACzB,KAAKrB,aAAah+F,IAAIq/F,GAGjBA,CACT,EAKAR,2BAAA,SAAe0B,GACb,IAAMlB,EAAKhuG,SAASmvG,cAAcD,GAElC,IAAKlB,EACH,MAAM,IAAI5zG,MAAM,gCAAgC80G,GAGlD,OAAOlB,CACT,EAKAR,4CAAA,sBACE,KAAKn9D,KAAK2c,MAAM,uDAChB,KAAKoiD,0BAA0Bj2G,SAAQ,YAAM,SAAK20G,QAAQE,EAAb,GAC/C,EAKAR,2BAAA,WACE,MAA2B,qBAAbxtG,SACVA,SAASq5C,cAAc,KAAK3tC,MAC5B,IACN,EAEA8hG,mBAAA,SAAOQ,GACL,IAAIqB,EAYJ,OATEA,EADgB,kBAAPrB,EACH,CAAC,KAAKC,eAAeD,IACjBA,EAGJ,CAACA,GAFD,KAAKoB,0BAKb,KAAK/+D,KAAK2c,MAAM,sCAAuCqiD,GACvD,KAAKC,gBAAgBD,GACdrB,EAAKqB,EAAI,GAAKA,CACvB,EAKA7B,4BAAA,SAAgB+B,GACd,OAAOA,EAAShnG,IAAI,KAAKinG,eAAe7yE,KAAK,MAC/C,EAKA6wE,2BAAA,SAAeQ,GACb,IAAK,KAAKrB,aAAan+F,IAAIw/F,GACzB,OAAOA,EAET,IAAMY,EAAcZ,EAAGD,WACnBa,aAAuB,KAAKxB,cAC9BwB,EAAYE,YAAY,KAAKxB,gBAAkB,KAAKD,kBAEtD,KAAKV,aAAah+D,OAAOq/D,GAErB,KAAKf,6BAA+B,KAAKJ,SAASr+F,IAAIw/F,MAC3C,KAAKnB,SAASn+F,IAAIs/F,GAC1BU,SACL,KAAK7B,SAASl+D,OAAOq/D,IAGvB,OAAOA,CACT,EAKAR,oCAAA,WACE,IAAM6B,EAAM,GAMZ,OAJA,KAAK1C,aAAaxzG,SAAQ,YACxBk2G,EAAIzzG,KAAKoyG,EACX,IAEOqB,CACT,EACF,EA9QA,CAnBcjoG,EAAQ,KAwXtBmN,EAAOxe,QAAUy3G,C,+BC7XT,MAAUpmG,EAAQ,GAAK,MAM/B,aAIE,aACEnR,OAAOkQ,iBAAiB,KAAM,CAC5BspG,OAAQ,CACNh5G,MAAO0b,IACP9a,UAAU,GAEZq4G,OAAQ,CACNj5G,MAAO0b,IACP9a,UAAU,KAKd,KAAKo4G,OAAOh2G,UACZ,KAAKi2G,OAAOj2G,SACd,CAkCF,OA5BEk2G,4BAAA,SAAgBjkG,GACD,UAATA,EACF,KAAK+jG,OAAOh2G,UAEZ,KAAKi2G,OAAOj2G,SAEhB,EAMAk2G,0BAAA,SAAcjkG,GACC,UAATA,EACF,KAAK+jG,OAASt9F,IAEd,KAAKu9F,OAASv9F,GAElB,EAOAw9F,yBAAA,SAAajkG,GACX,MAAgB,UAATA,EAAmB,KAAK+jG,OAAOp9F,QAAU,KAAKq9F,OAAOr9F,OAC9D,EACF,EArDA,GAuDAkC,EAAOxe,QAAU,IAAI45G,C,ohBC5Db,EAAiBvoG,EAAQ,IAAe,aACxC,EAAUA,EAAQ,IAA8B,MAElD,EAAyEA,EAAQ,GAA/E0G,EAAU,aAAEqE,EAAK,QAAEwB,EAAgB,mBAAEE,EAAe,kBAAEE,EAAY,eACpD,EAAqB3M,EAAQ,IAAuB,0BACpEwoG,EAAoBxoG,EAAQ,KAC5ByoG,EAAoBzoG,EAAQ,KAC5B0oG,EAA4B1oG,EAAQ,IACpColG,EAA6BplG,EAAQ,KACrC2oG,EAA2B3oG,EAAQ,KACnC4oG,EAAmB5oG,EAAQ,KAyPjC,SAAS6oG,EAAgCC,GAC/B,IAAMruG,EAAcquG,EAAe,KAAxBxkG,EAASwkG,EAAe,KACrCC,EAAgB,CAAEziG,MAAOkiG,EAAmBvjG,MAAOwjG,GAAoBnkG,GAE7DsiG,EAAyBkC,EAAe,SAApC7C,EAAqB6C,EAAe,iBACpDE,EAAwB,KAmB5B,SAASC,IAEL,MAGEH,EAAe,mCAFjBI,EAEEJ,EAAe,UADGrC,EAClBqC,EAAe,uBAEbK,EAAyBD,KAAeE,EAM9C,OAAOxzG,QAAQvD,UAAUK,MAAK,WAC5B,MAAoC,YAA7BkG,SAAS4sE,kBACVwjC,IACAvC,GAAS0C,GA/BVvC,EAAGK,OAAOv0G,MAAK,WAAM,SAAck0G,EAAd,IAAmBl0G,MAAK,YAMlD,OALI22G,EACF5uG,EAAIoC,KAAK,oBAETpC,EAAI7G,KAAK,wBAEJy1G,CACT,IAAGrtG,OAAM,YACPvB,EAAIoC,KAAK,4BAA6BjK,EACxC,IAAG6zE,SAAQ,WAETmgC,EAAGrxB,OACL,IAoBA,GACF,CAEA,SAAS+zB,IACP,OAAO1zG,QAAQmxG,KAAK,CAClBp6F,EAAas5F,EAAkB,UAC/Bx5F,EAAgB,MACf/Z,MAAK,WAAM,cAAwBA,MAAK,YAmBzC,OAlBI62G,IAAoBP,IACtBA,EAAwBj+F,IACxB+9F,EAAgBU,WAAW/iC,SAAQ,WACjCmgC,EAAKkC,EAAgBtD,SACrBiE,IACAxD,EAAmB6C,EAAgB7C,iBACnCyD,IACAV,EAAsB32G,UACtB22G,EAAwB,IAC1B,IAAGhtG,OAAM,YACPvB,EAAI7H,MAAM,4BAA6BA,EACzC,MAMeo2G,GAAyBA,EAAsB/9F,SAAYrV,QAAQvD,WACrEo0E,SAAQ,WAAM,SAA2BkjC,gBAAgBrlG,EAA3C,GAC/B,IAAGtI,OAAM,YACPvB,EAAI7H,MAAM,0BAA0B+2C,EAAGptC,QACzC,GACF,CAEA,SAASqtG,IACC,IAAMnvG,EAAcquG,EAAe,KAAxBxkG,EAASwkG,EAAe,KAC3CruG,EAAI7G,KAAK,SACT6G,EAAImrD,MAAM,mBAAoBkjD,GAU9B1D,EAA2ByE,cAAcvlG,EAC3C,CAEA,SAASolG,IACPzD,EAAiB56F,iBAAiB,QAASi+F,GAC3CrD,EAAiB56F,iBAAiB,OAAQu+F,GAC1C3D,EAAiB56F,iBAAiB,SAAUi+F,EAC9C,CAEA,SAASG,IACPxD,EAAiBn5F,oBAAoB,QAASw8F,GAC9CrD,EAAiBn5F,oBAAoB,OAAQ88F,GAC7C3D,EAAiBn5F,oBAAoB,SAAUw8F,EACjD,CAMA,IAAIQ,EAAqB,SAAAnkC,GACvB,QAAOA,GAAY2jC,GACrB,EAIA,OAHAZ,EAA0BoB,mBAAmB,EAAGA,GAChDJ,IAEO,WACLhB,EAA0BqB,oBAAoB,EAAGD,GACjDL,GACF,CACF,CAEAt8F,EAAOxe,QA5WP,SAA8Bq7G,GAS5B,mBAME,WAAY/D,EAAkB5rG,GAA9B,WACQ4vG,EAA6BhlE,KAC9B14B,EAAiB05F,IACG,kBAAbrtG,UAC8B,oBAA9BA,SAASyS,kBACoB,kBAA7BzS,SAAS4sE,gBAErBnrE,EAAUxL,OAAOgT,OAAO,CACtBsY,aAAY,EACZ+vF,8BAA8B,EAC9BD,2BAA0B,EAC1BtB,yBAAwB,GACvBtuG,GAEH,IAAM8vG,EAAmB,IAAIvB,EAAiB3C,GACtC,EAASkE,EAAgB,K,OAEjCrhG,cAAMqhG,EAAkB9vG,IAAQ,KAEhCxL,OAAOkQ,iBAAiB+J,EAAM,CAC5BshG,aAAc,CACZ/6G,MAAgC,kBAAlBgL,EAAQiK,GAClBjK,EAAQiK,GACR,GACJrU,UAAU,GAEZo6G,cAAe,CACbh7G,MAAOgL,EAAQ8f,cAEjBmwF,0BAA2B,CACzBj7G,MAAOgL,EAAQsuG,0BAEjB4B,4BAA6B,CAC3Bl7G,MAAOgL,EAAQ4vG,4BAEjBb,mCAAoC,CAClC/5G,MAAO,KACPY,UAAU,GAEZu6G,YAAa,CACXn7G,OAAO,EACPY,UAAU,GAEZw6G,8BAA+B,CAC7Bp7G,MAAOgL,EAAQ6vG,8BAEjBQ,aAAc,CACZr7G,MAAO86G,GAET5gE,GAAI,CACFx5C,YAAY,EACZV,MAAO86G,EAAiB5gE,IAE1B09B,UAAW,CACTl3E,YAAY,EACZuX,IAAG,WACD,OAAO6iG,EAAiBtR,OAC1B,GAEFqQ,UAAW,CACTn5G,YAAY,EACZuX,IAAG,WACD,MAAuC,UAAhC6iG,EAAiBx1D,UAC1B,KAMA7rC,EAAKyhG,8BACPzhG,EAAKsgG,mCAAqCP,EAAgC//F,I,CAE9E,CAuJF,OArOqCC,OAmFnC4hG,iBAAA,WACM,KAAKH,cAGTvqE,YAAMumE,KAAKr1G,KAAK,MAChB,KAAKq5G,aAAc,EACnB,KAAKl5F,KAAK,UAAW,MACvB,EAKAq5F,wBAAA,WACM,KAAKH,cACP,KAAKA,aAAc,GAErBvqE,YAAMkmE,YAAYh1G,KAAK,KACzB,EAKAw5G,4BAAA,SAAgBC,G,MACR,EAKF,KAJazwF,EAAY,gBACAwuF,EAAwB,4BAC7CluG,EAAG,OACW6J,EAAI,wBAG1B7J,EAAI7G,KAAK,qCACT6G,EAAImrD,MAAM,eAAgBglD,GAE1B,IAAMC,EAAiBh8G,OAAOgT,OAAO,CACnCyE,OAAO,EACPrB,OAAO,KACR,MAAKX,GAAOsmG,EAAW,IAMxB,OAJmB,KAAKxB,mCACpBT,EAAyBluG,EAAK0f,EAAc0wF,GAC5C1wF,EAAa0wF,IAECn4G,MAAK,YACrB,OAAO80G,EAAYC,YAAY,EACjC,GACF,EAKAkD,qBAAA,SAASC,GAAT,WACgBnwG,EAAQ,KAAI,KAS1B,OARAmwG,EAAcA,GAAe,KAAKR,aAMlC,KAAKpkC,QAEE,KAAK8kC,gBAAgBF,GAAa5uG,OAAM,YAE7C,MADAvB,EAAI7H,MAAM,6CAA8C,CAAEA,MAAK,EAAEg4G,YAAW,IACtEh4G,CACR,IAAGF,MAAK,YAIN,OAHA+H,EAAI7G,KAAK,oCACT6G,EAAImrD,MAAM,oBAAqBmlD,GAC/BjiG,EAAKshG,aAAev7G,OAAOgT,OAAO,GAAI+oG,GAC/B9hG,EAAKkiG,qBAAqBD,EACnC,GACF,EAKAJ,iCAAA,SAAqB1E,GAArB,WAUE,OARAA,EAAiBpN,QAAU,KAAKoN,iBAAiBpN,QAIjD,KAAK7yB,SAIG,KAAK+/B,kBAAoBnwG,QAAQvD,UAAUK,MAAK,WACtDoW,EAAKi9F,kBAAoBE,CAC3B,IAAK,KAAKyE,aAAaO,oBAAoBhF,GAAkBjqG,OAAM,YACjE8M,EAAKmgC,KAAKpsC,KAAK,8BAA+B,CAAEjK,MAAK,EAAEqzG,iBAAgB,GACzE,KAAIvzG,MAAK,WACPoW,EAAKq9F,cACLr9F,EAAKk/F,0BAA0Bj2G,SAAQ,YAAM,SAAK20G,QAAQE,EAAb,GAC/C,GACF,EAKA+D,kBAAA,WAGE,OAFA,KAAK1E,iBAAiB1vG,OACtB,KAAKiwG,OACE,IACT,EAEAmE,mBAAA,SAAO9R,GAOL,OANAA,EAA6B,mBAAZA,GAAwBA,KACzB,KAAKoN,iBAAiBpN,UACpC,KAAK5vD,KAAKr1C,MAAQilG,EAAU,KAAO,OAAK,UACxC,KAAKoN,iBAAiBpN,QAAUA,EAChC,KAAKvnF,KAAKunF,EAAU,UAAY,WAAY,OAEvC,IACT,EAEA8R,oBAAA,WACE,OAAO,KAAKj4B,QAAO,EACrB,EAEAi4B,oBAAA,SAAQC,GAAR,WACU,EAAS,KAAI,KACrB,IAAK,KAAKH,8BACR,OAAO70G,QAAQtD,OAAOoc,EAAe,UAAW,gCACnChI,EAAWpC,GADwB,+DAE1BoC,EAAWpC,GAAK,WAEpC,KAAK8kG,qCACP,KAAKA,qCACL,KAAKA,mCAAqC,MAE5C,IAAIn+F,EAAU,KAAKu+F,SAASoB,GAO5B,OALI,KAAKL,8BACPt/F,EAAUA,EAAQw7D,SAAQ,WACxB39D,EAAKsgG,mCAAqCP,EAAgC//F,EAC5E,KAEKmC,CACT,EAEA0/F,iBAAA,WAME,OALA,KAAK1hE,KAAKr1C,KAAK,YACX,KAAKw1G,qCACP,KAAKA,qCACL,KAAKA,mCAAqC,MAErC,KAAKpjC,OACd,EACF,EArOA,CAAqCgkC,EAsOvC,C,+BCpMA78F,EAAOxe,QAtCP,SAAuBu8G,EAAcC,EAAQrwG,GAC3CA,EAA6B,kBAAZA,EAAuBA,EAAU,IAElD,IAAM+D,EAASqsG,EAAaE,wBAAwBD,GAC9CE,EAAWH,EAAaI,iBAC9BD,EAASE,QAAU,KACnB1sG,EAAO+uC,QAAQy9D,GAEf,IAAMG,EAAU,IAAIjyG,WAAW8xG,EAASE,SAEpCE,GAAiB,EAmBrB,OAlBAthG,YAAW,WAAQshG,GAAiB,CAAM,GAAG3wG,GAM7C,SAAS4wG,IACP,OAAID,EACK71G,QAAQvD,SAAQ,IAEzBg5G,EAASM,sBAAsBH,GAGxBA,EAAQr9B,MAAK,YAAU,OAAW,MAAX,GAA6B,IAAXy9B,CAAlB,IAC1Bh2G,QAAQvD,SAAQ,GAtCxB,SAAeyI,GAEb,OADAA,EAA6B,kBAAZA,EAAuBA,EAAU,EAC3C,IAAIlF,SAAQ,YAAW,kBAAWvD,EAASyI,EAApB,GAChC,CAoCQqgC,GAAQzoC,KAAKg5G,GACnB,CAEOA,GAAkBh5G,MAAK,YAE5B,OADAmM,EAAOklD,aACAslD,CACT,IAAG,YAED,MADAxqG,EAAOklD,aACDnxD,CACR,GACF,C,+BCrDA,IAAI+8E,EAAS,KA2DbxiE,EAAOxe,QAvBP,SAA2Bi4G,GAQzB,OALAj3B,EAASA,GAAU/2E,SAASq5C,cAAc,UAKnC,IAAIr8C,SAAQ,YACjB,IAAIi2G,EA3CU,EA4Cd1hG,YAAW,SAAS2hG,IAElB,OADAD,IAhCN,SAAsBjF,GACpB,IACE,IAAMh2G,EAAU++E,EAAOM,WAAW,MAClCr/E,EAAQm7G,UAAUnF,EAAI,EAAG,EAbR,GAFC,IAgBlB,IACMoF,EADQp7G,EAAQq7G,aAAa,EAAG,EAdrB,GAFC,IAiBkBhzG,KAAKwF,QAAO,SAACoJ,EAAM7S,GAAM,OAACA,EAAI,GAAK,CAAV,IAE7D,OAAe,IADH6U,KAAKJ,IAAIlR,MAAMsR,KAAMmiG,E,CAEjC,MAAOriE,GAGP,OADAttC,QAAQ5B,IAAI,2BAA4BkvC,IACjC,C,CAGX,CAmBWuiE,CAAatF,GAGdiF,EAAc,EACT1hG,WAAW2hG,EAhDC,KAkDdz5G,GAAQ,GALNA,GAAQ,EAMnB,GAnDuB,IAoDzB,GACF,C,+BC1DA,IAAM02G,EAAgB/oG,EAAQ,KAwE9BmN,EAAOxe,QAlDP,SAAoB8L,EAAK0f,EAAcywF,EAAaprG,EAAG1E,GACrD0E,EAAiB,kBAANA,EAAiBA,EAAI,EAChC,IAAIq8B,EAAQ,EAIN6U,EAAsB1wC,EAAQ,IAC9B2wC,EAAS,GACTu6D,EAAex6D,EAAoBy7D,YAAYx7D,GAiCrD,OA3BA,SAASy7D,IACP,OAAOjyF,EAAaywF,GAAal4G,MAAK,YAOpC,OANwBk4G,EAAYtkG,MAChCyiG,EAAcmC,EAAcC,EAAQrwG,GAASkB,OAAM,YAEnD,OADAvB,EAAIoC,KAAK,+CAAgD3M,IAClD,CACT,IACE0F,QAAQvD,SAAQ,IACGK,MAAK,YAC1B,OAAK22G,EAGM7pG,GAAK,GACd/E,EAAIoC,KAAK,mIAEFsuG,IAET1wG,EAAIoC,KAAK,yHAEZg/B,EAAK,KACFsvE,EAAO1D,YAAY11G,SAAQ,YAAS,SAAMwE,MAAN,IACpCiJ,IACO4sG,MAZL3xG,EAAI7G,KAAK,0DACFu3G,EAYX,GACF,GACF,CAEOiB,GAAe15G,MAAK,YAEzB,OADAg+C,EAAoBR,QAAQS,GACrBw6D,CACT,IAAG,YAED,MADAz6D,EAAoBR,QAAQS,GACtB/9C,CACR,GACF,C,k0BC/DA,cAKE,WAAYqzG,GAAZ,MACEhmE,YAAMgmE,EAAiB18D,GAAI08D,IAAiB,K,OAC5Cp3G,OAAOkQ,iBAAiB+J,EAAM,CAC5BujG,QAAS,CACPh9G,MAAO,IAAIgS,KAEbirG,SAAU,CACRj9G,MAAO,IAAIgS,KAEbkrG,gCAAiC,CAC/Bl9G,MAAO,IAAIiS,KAEbkrG,aAAc,CACZllG,IAAG,WACD,QAAS,KAAK+kG,QAAQ7kG,IACxB,K,CAGN,CAkFF,OAzG+BuB,OA8B7B6/F,kBAAA,WACE,IAAMr1F,EAAQ,IAAIq1F,EAAiB,KAAKhjG,MAAM2N,SAE9C,OADA,KAAK84F,QAAQ9kG,IAAIgM,GACVA,CACT,EAMAq1F,wBAAA,SAAYr1F,GACV,KAAK84F,QAAQ9kE,OAAOh0B,EACtB,EAOAq1F,gCAAA,SAAoB3C,GAApB,WACQwG,EAASrtG,MAAMiJ,KAAK,KAAKgkG,SACzBK,EAAUttG,MAAMiJ,KAAK,KAAKikG,UAChC,OAAO12G,QAAQ6P,IAAIgnG,EAAOtrG,KAAI,YAC5B,OAAOoS,EAAM03F,oBAAoBhF,EAAiB1yF,QACpD,IAAG/K,OAAOkkG,EAAQvrG,KAAI,YACpB,OAAO2H,EAAK6jG,cAAcC,EAAQ3G,EACpC,MAAKx/B,SAAQ,WACX39D,EAAKy+D,OAAS0+B,CAChB,GACF,EAQA2C,sBAAA,SAAUgE,EAAQC,GAKhB,OAJA,KAAKP,SAAS/kG,IAAIqlG,GACdC,GACF,KAAKN,gCAAgCh2F,IAAIq2F,EAAQC,GAE5C,IACT,EAOAjE,yBAAA,SAAagE,GAGX,OAFA,KAAKN,SAAS/kE,OAAOqlE,GACrB,KAAKL,gCAAgChlE,OAAOqlE,GACrC,IACT,EAOAhE,6BAAA,SAAiBkE,GAET,IAACD,EAAD,EAA0BztG,MAAMiJ,KAAK,KAAKkkG,gCAAgC36G,UAAS,GAA7D,GAC5B,OAAOi7G,EAAwBA,EAAsBC,GAAal3G,QAAQvD,QAAQ,uBACpF,EAEAu2G,0BAAA,SAAcgE,EAAQ3G,GAAtB,WACE,OAAO2G,EAAOG,aAAa9G,GAAkBvzG,MAAK,YAIhD,OAFAoW,EAAKkkG,iBAAiB,MAAMhxG,OAAM,WAAO,IACzC8M,EAAKwI,KAAK,YACH27F,CACT,GACF,EACF,EAzGA,CAP8BjtG,EAAQ,MAuHtCmN,EAAOxe,QAAUi6G,C,ohBC/GjB,cAME,WAAYr/D,EAAI08D,GAAhB,MACEhmE,YAAMsJ,EAAI08D,EAAiB3hG,OAAK,K,OAChCzV,OAAOkQ,iBAAiB+J,EAAM,CAC5By+D,OAAQ,CACNl4E,MAAO42G,EACPh2G,UAAU,GAEZ4oG,QAAS,CACP9oG,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKigE,OAAOsxB,OACrB,GAEFlkD,WAAY,CACV5kD,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKigE,OAAO5yB,UACrB,GAEF/uC,MAAO,CACL7V,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKigE,MACd,K,CAGN,CAMF,OAtCoCx+D,OAkClCmkG,iBAAA,WACE,KAAKtnG,MAAMrP,OACX0pC,YAAM1pC,KAAI,UACZ,EACF,EAtCA,CARyByJ,EAAQ,MAgDjCmN,EAAOxe,QAAUu+G,C,ohBCvCjB,cAME,WAAY3jE,EAAIjlC,GAAhB,MACE27B,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5BygC,GAAI,CACFx5C,YAAY,EACZV,MAAOk6C,GAETjlC,KAAM,CACJvU,YAAY,EACZV,MAAOiV,K,CAGb,CAUF,OA5B+ByE,OAyB7BokG,iBAAA,WACE,KAAK77F,KAAK,UACZ,EACF,EA5BA,CATqBtR,EAAQ,IAAUkR,cA4CvC/D,EAAOxe,QAAUw+G,C,ohBC5CX/G,EAAapmG,EAAQ,KACrBotG,EAA8BptG,EAAQ,KACpC,EAAuBA,EAAQ,IAAuB,mBAuB9D,cAME,WAAYklG,EAAuB7qG,GAAnC,MACE4lC,YAAMilE,EAAuB7qG,IAAQ,KA0CrC,OAzCAxL,OAAOkQ,iBAAiB+J,EAAM,CAC5BukG,kBAAmB,CACjBh+G,MAAO,KACPY,UAAU,GAEZq9G,aAAc,CACZj+G,OAAO,EACPY,UAAU,GAEZs9G,YAAa,CACXl+G,MAAO,KACPY,UAAU,GAEZu9G,aAAc,CACZn+G,MAAO,KACPY,UAAU,GAEZw9G,wBAAyB,CACvBp+G,MAAO,KACPY,UAAU,GAEZy9G,eAAgB,CACdr+G,MAAO,KACPY,UAAU,GAEZqS,WAAY,CACVvS,YAAY,EACZV,MAAO,CACL0yB,MAAO,KACPC,OAAQ,OAGZ8nC,UAAW,CACT/5D,YAAY,EACZV,MAAO,KACPY,UAAU,KAId6Y,EAAK2kG,wBAA0B,IAAKpzG,EAAQ+yG,6BAA+BA,GAA6BtkG,EAAKmgC,MAEtGngC,CACT,CA0XF,OA5ayBC,OAuDvB4kG,qCAAA,SAAyBnB,QAAA,QAAAA,MACvB,IAAIoB,GAAmB,EACnBrxG,EAAU,GACR,EAA0B,KAAK0pG,iBAsBrC,OAtBe,YAGb2H,GAAmB,EACnBrxG,EAAU,gCAEO,UANQ,eAOzBqxG,GAAmB,EACnBrxG,EAAU,6BAEP,KAAKutD,YACR8jD,GAAmB,EACnBrxG,EAAU,gCAEP,KAAKgpG,aAAa/9F,MAASglG,IAC9BoB,GAAmB,EACnBrxG,EAAU,kEAGRA,GACF,KAAK0sC,KAAK2c,MAAMrpD,GAEX,CAAEqxG,iBAAgB,EAAErxG,QAAO,EACpC,EAKAoxG,2BAAA,sBACE,GAAI,KAAKL,aACP,KAAKrkE,KAAK2c,MAAM,mEADlB,CAIA,IAAK,KAAKioD,2BAA2BD,iBAGnC,OAFA,KAAKN,cAAe,OACpB,KAAKrkE,KAAK2c,MAAM,uDAGlB,KAAK0nD,cAAe,EACpB,KAAKG,wBAAwBn8F,KAAK,SAClC,KAAK23B,KAAK2c,MAAM,0BAEhB,IACIkoD,EADA/L,EAAYtlG,KAAKg/B,MAGrB,KAAK+pE,SAASyB,OAAOv0G,MAAK,WACxB,IAAMq7G,EAAe,SAAAj5B,GACnB5qE,aAAapB,EAAKukG,mBACV,MAAmCvkG,EAAKm9F,iBAAiB35F,cAAa,UAAtE0hG,OAAS,MAAGh/F,EAAkB,EAElCmsB,EADoBtxB,KAAKsC,MAAM,IAAO6hG,GACZF,GAC1B3yE,EAAQ,GAAqC,kBAAzB2yE,KACtB3yE,EAAQ,GAEVryB,EAAKukG,kBAAoBljG,WAAW2qE,EAAI35C,EAC1C,EA2CA4yE,GA1CgB,SAAVpwG,IACJ,IAAMswG,EAAcnlG,EAAK+kG,2BACzB,IAAKI,EAAYL,iBAIf,OAHA9kG,EAAKwkG,cAAe,EACpBxkG,EAAK2kG,wBAAwBn8F,KAAK,OAAQ28F,EAAY1xG,cACtDuM,EAAKmgC,KAAK2c,MAAM,qDAGlBm8C,EAAYtlG,KAAKg/B,MAEX,MAA4B3yB,EAAKm9F,iBAAiB35F,cAAhD7H,UAAAsd,OAAK,MAAG,EAAC,EAAEngB,WAAAogB,OAAM,MAAG,EAAC,EAGzBlZ,EAAKykG,YAAYxrF,QAAUA,IAC7BjZ,EAAKykG,YAAYxrF,MAAQA,EACzBjZ,EAAKykG,YAAYvrF,OAASA,EAEtBlZ,EAAK0kG,eACP1kG,EAAK0kG,aAAazrF,MAAQA,EAC1BjZ,EAAK0kG,aAAaxrF,OAASA,IAG/BlZ,EAAKykG,YAAYt9B,WAAW,MAAM87B,UAAUjjG,EAAK08F,SAAU,EAAG,EAAGzjF,EAAOC,GAExE,IAAIxvB,EAAS,KACb,IACEA,EAASsW,EAAKghD,UAAUokD,aAAaplG,EAAKykG,YAAazkG,EAAK0kG,a,CAC5D,MAAO7jE,GACP7gC,EAAKmgC,KAAK2c,MAAM,iDAAkDjc,E,EAElEn3C,aAAkBoD,QAAWpD,EAASoD,QAAQvD,QAAQG,IACrDE,MAAK,WACAoW,EAAK0kG,eACP1kG,EAAKo9F,eAAeiI,eACpBrlG,EAAK2kG,wBAAwBn8F,KAAK,SAEtC,IACCm1D,SAAQ,WACPqnC,EAAuBrxG,KAAKg/B,MAAQsmE,EACpCgM,EAAapwG,EACf,GACJ,GAEF,IAAG3B,OAAM,YAAS,SAAKitC,KAAKr2C,MAAM,iCAAkC,CAAEA,MAAK,EAAEgT,MAAOkD,GAAlE,G,CACpB,EAKA6kG,wBAAA,sBACE1tE,YAAMkmE,YAAW,WACb,KAAKX,WACP,KAAKA,SAAS4I,iBAAmB,WAC3BC,EAAkBvlG,EAAMA,EAAK08F,YAC/B18F,EAAKxG,WAAWyf,MAAQjZ,EAAK08F,SAAS8I,WACtCxlG,EAAKxG,WAAW0f,OAASlZ,EAAK08F,SAAS+I,YAE3C,EACA,KAAK/I,SAASgJ,SAAW,WACnBH,EAAkBvlG,EAAMA,EAAK08F,YAC/B18F,EAAKxG,WAAWyf,MAAQjZ,EAAK08F,SAAS8I,WACtCxlG,EAAKxG,WAAW0f,OAASlZ,EAAK08F,SAAS+I,YACnCzlG,EAAKw8F,YACPx8F,EAAKmgC,KAAK2c,MAAM,sBAAuB98C,EAAKxG,YAC5CwG,EAAKwI,KAAKq8F,EAAWc,mBAAoB3lG,IAG/C,EAEJ,EAKA6kG,8BAAA,WACE,IAAM7jD,EAAY,KAAKA,UACnBA,IACF,KAAK4kD,gBAAgB5kD,GACrB,KAAK6kD,aAAa7kD,GAEtB,EAKA6jD,mBAAA,SAAOiB,GAML,OALA,KAAKtsG,WAAWyf,MAAQ6sF,EAAQN,WAChC,KAAKhsG,WAAW0f,OAAS4sF,EAAQL,YAEjC,KAAKtlE,KAAK2c,MAAM,cAAe,KAAKtjD,YACpC,KAAKgP,KAAKq8F,EAAWc,mBAAoB,MAClCxuE,YAAM8lC,OAAO50E,KAAK,KAAMy9G,EACjC,EAuBAjB,yBAAA,SAAa7jD,GAAb,WACE,GAA+B,oBAApB+kD,gBACT,OAAO,KAAK5lE,KAAKpsC,KAAK,6DAExB,IAAKitD,GAA+C,oBAA3BA,EAAUokD,aACjC,MAAM,IAAIl7G,MAAM,yDAElB,GAAI,KAAK82D,UACP,MAAM,IAAI92D,MAAM,4CAElB,IAAK,KAAKwyG,SACR,MAAM,IAAIxyG,MAAM,wCAGlB,KAAKi2C,KAAK2c,MAAM,0CAA2CkE,GAEtD,KAAK4jD,iBACR,KAAKA,eAAiB,WACpB5kG,EAAKmgC,KAAK2c,MAAM,4BAIZ98C,EAAKo9F,eAAeO,QACtB39F,EAAKmgC,KAAK2c,MAAM,kFAChB98C,EAAKgmG,oBAET,EACA,KAAK7I,iBAAiB56F,iBAAiB,SAAU,KAAKqiG,iBAGlD,MAA4D,KAAKzH,iBAAiB35F,cAAhF7H,UAAAsd,OAAK,MAAG,EAAC,EAAEngB,WAAAogB,OAAM,MAAG,EAAC,EAAEtf,cAAAsrG,OAAS,MAAGh/F,EAAkB,EAmB7D,OAlBA,KAAKu+F,YAAc,IAAIsB,gBAAgB9sF,EAAOC,GAC9C,KAAKwrF,aAAe50G,SAASq5C,cAAc,UAC3C,KAAKu7D,aAAazrF,MAAQA,EAC1B,KAAKyrF,aAAaxrF,OAASA,EAE3B,KAAKkkF,eAAiB,KAAKsH,aAAauB,cAAc,GAAGtH,YAAY,GACrE,KAAKvB,eAAerN,QAAU,KAAKoN,iBAAiBpN,QACpD,KAAK/uC,UAAYA,EAEjB,KAAK2jD,wBAAwBn8F,KAAK,MAAO,CACvCw4C,UAAS,EACTklD,cAAehtF,EACfitF,aAAcltF,EACdmtF,eAAgBlB,EAChBmB,mBAAoB,KAAKz1G,WAAWiV,SAAS,sBAE/C,KAAKygG,kCACL,KAAKC,iBACE,IACT,EAgEA1B,mBAAA,WACE,IAAMn7G,EAASytC,YAAMy6D,OAAOniG,MAAM,KAAMD,WAIxC,OAHI,KAAKwxD,WACP,KAAKulD,iBAEA78G,CACT,EAyBAm7G,mBAAA,WACE,OAAO1tE,YAAMg5D,OAAO1gG,MAAM,KAAMD,UAClC,EAwBAq1G,4BAAA,SAAgB7jD,GACd,IAAKA,EACH,MAAM,IAAI92D,MAAM,4DAElB,IAAK,KAAK82D,UACR,MAAM,IAAI92D,MAAM,wCAElB,GAAI82D,IAAc,KAAKA,UACrB,MAAM,IAAI92D,MAAM,mEAkBlB,OAfA,KAAKy6G,wBAAwBn8F,KAAK,UAClC,KAAK23B,KAAK2c,MAAM,8CAA+CkE,GAC/D5/C,aAAa,KAAKmjG,mBAClB,KAAKpH,iBAAiBn5F,oBAAoB,SAAU,KAAK4gG,gBACzD,KAAKA,eAAiB,KACtB,KAAKJ,cAAe,EAEpB,KAAKxjD,UAAY,KACjB,KAAKo8C,eAAiB,KACtB,KAAKqH,YAAYt9B,WAAW,MAAMq/B,UAAU,EAAG,EAAG,KAAK/B,YAAYxrF,MAAO,KAAKwrF,YAAYvrF,QAC3F,KAAKwrF,aAAav9B,WAAW,MAAMq/B,UAAU,EAAG,EAAG,KAAK9B,aAAazrF,MAAO,KAAKyrF,aAAaxrF,QAC9F,KAAKurF,YAAc,KACnB,KAAKC,aAAe,KAEpB,KAAK4B,kCACE,IACT,EACF,EA5aA,CAAyBhJ,GAgbzB,SAASiI,EAAkBzoG,EAAOgxD,GAChC,OAAOhxD,EAAMtD,WAAWyf,QAAU60C,EAAK03C,YAClC1oG,EAAMtD,WAAW0f,SAAW40C,EAAK23C,WACxC,CALAZ,EAAWc,mBAAqB,oBAuEhCthG,EAAOxe,QAAUg/G,C,ohBCjgBjB,cAQE,WAAYpkE,EAAIgmE,EAAmBC,EAAgBC,GAAnD,MACExvE,YAAMsJ,EAAI,SAAO,K,OACjB16C,OAAOkQ,iBAAiB+J,EAAM,CAC5BymG,kBAAmB,CACjBx/G,YAAY,EACZV,MAAOkgH,GAETC,eAAgB,CACdz/G,YAAY,EACZV,MAAOmgH,GAETC,QAAS,CACP1/G,YAAY,EACZV,MAAOogH,K,CAGb,CACF,OAzBmC1mG,OAyBnC,EAzBA,CAbyB/I,EAAQ,MAwCjCmN,EAAOxe,QAAU+gH,C,86BCxCXpoE,EAAetnC,EAAQ,IACvB,EAA+BA,EAAQ,GAArCyL,EAAc,iBAAE/B,EAAQ,WAC1BuzB,EAAMj9B,EAAQ,IACd2vG,EAAiB3vG,EAAQ,KACzBomC,EAAUpmC,EAAQ,IAEpB6oC,EAAa,EAsBXrC,EAAS,CACbopE,OAAQ,GACRthC,WAAY,CAAC,SAAU,OAAQ,WAC/BuhC,MAAO,CAAC,SAAU,cAClBC,KAAM,CAAC,UACPC,QAAS,CAAC,SAAU,aAAc,QAAS,SAGvChpG,EAAS,CACb6oG,OAAQ,QACRE,KAAM,OACNC,QAAS,WAaLC,EAA2B,IAC3BC,EAA6B,KAC7BC,EAAwB,KACxBC,EAAuB,KAEvBC,EAAqB,KACrBC,EAAuB,KAGvBC,EAAWnyG,WACXoyG,EAAYD,EAASC,UAAYD,EAASC,UAAYvwG,EAAQ,KAE9DwwG,EAAc,CAClBC,KAAM,OACNC,OAAQ,SACRC,MAAO,QACPC,OAAQ,SACRC,QAAS,WAGLC,EAA6B,IAAIxvG,IAAI,CACzC,CAAC0uG,EAA0BQ,EAAYK,SACvC,CAACZ,EAA4BO,EAAYK,SACzC,CAACX,EAAuBM,EAAYE,QACpC,CAACP,EAAsBK,EAAYE,QACnC,CArB+B,KAqBJF,EAAYK,SACvC,CAACR,EAAsBG,EAAYC,MACnC,CApB4B,KAoBJD,EAAYK,WAYtC,cAME,WAAYE,EAAW12G,GAAvB,MACE4lC,YAAM,QAASuG,IAAO,KAEtBnsC,EAAUxL,OAAOgT,OAAO,CACtBmvG,UAAW,KACXC,2BAzDwC,EA0DxCC,+BA3D4C,EA4D5CC,0BA1D0C,IA2D1CC,YA1DuB,KA2DvBC,eA1D0B,IA2D1Bp0E,IAAG,EACHszE,UAAS,GACRl2G,GAEH,IAAMkiC,EAAY9wB,EAAepR,EAAQiC,UACnC7B,EAAM,IAAIJ,EAAQ4iC,IAAI,UAAWn0B,EAAMyzB,EAAWliC,EAAQmiC,YAE1D80E,EAAiBj3G,EAAQi3G,eAAiB,IAAI3B,GAAe,WACzD,MAAS2B,EAAc,KACzBhrC,EAAS,mBAAkBp1E,EAAO,OAAOA,EAAS,IACxDuJ,EAAImrD,MAAM0gB,GACVx9D,EAAKyoG,OAAO,CAAEvxE,KA9Da,KA8DmBsmC,OAAM,GACtD,IAAK,KAELz3E,OAAOkQ,iBAAiB+J,EAAM,CAC5B0oG,iBAAkB,CAChBniH,MAAO,KACPY,UAAU,GAEZwhH,6BAA8B,CAC5BpiH,MAAO,EACPY,UAAU,GAEZyhH,QAAS,CACPriH,MAAO,KACPY,UAAU,GAEZ0hH,eAAgB,CACdtiH,MAAOgL,EAAQu3G,eAEjBC,kBAAmB,CACjBxiH,MAAO,KACPY,UAAU,GAEZ6hH,YAAa,CACXziH,MAAOgL,EAAQ42G,2BACfhhH,UAAU,GAEZ+4C,YAAa,CACX35C,QAASw5C,GAEXI,KAAM,CACJ55C,MAAOoL,GAETs3G,cAAe,CACb1iH,MAAO,IAET2iH,gBAAiB,CACf3iH,MAAOiiH,GAETW,SAAU,CACR5iH,MAAOgL,GAET63G,aAAc,CACZ7iH,MAAO,KACPY,UAAU,GAEZkiH,sBAAuB,CACrB9iH,MAAO,KACPY,UAAU,GAEZmiH,WAAY,CACV/iH,MAAO0hH,GAETsB,gBAAiB,CACfhjH,MAAO,KACPY,UAAU,GAEZqiH,IAAK,CACHjjH,MAAO,KACPY,UAAU,KAId,IAAMsiH,EAAiB,CACrBjkC,WAAY,OACZuhC,MAAO,OACPC,KAAM,OACNC,QAAS,UACTH,OAAQ,Q,OAGV9mG,EAAK7B,GAAG,gBAAgB,SAAClU,G,IAAO,aAAA2N,uBAAArI,oBAC1BtF,KAASgU,GACX+B,EAAKwI,KAAI,MAATxI,EAAI,GAAM/B,EAAOhU,IAAM,EAAKsF,KAE9B,IAAM8O,EAAQ,CAAE7R,KAAMvC,EAAOqS,MAAO,YAAaC,MAAOktG,EAAezpG,EAAK/V,QAC5E,GAAc,WAAVA,EAAoB,CAChB,QAAWsF,EAAI,GAAdiuE,EAAM,KACbn/D,EAAM1E,QAAU,CAAE6jE,OAAM,GACxBn/D,EAAM9B,MAAQihE,IAAWkqC,EAAYG,MAAQ,OAAS,O,CAExD7nG,EAAK6oG,eAAergG,KAAK,QAASnK,EACpC,IAEA2B,EAAK6oG,eAAergG,KAAK,QAAS,CAAEhc,KAAMwT,EAAK/V,MAAOqS,MAAO,YAAaC,MAAOktG,EAAezpG,EAAK/V,SACrG+V,EAAK0pG,W,CACP,CA6YF,OA9f+BzpG,OAmH7B0pG,qBAAA,WACE,MAAO,sBAAsB,KAAKzpE,YAAW,KAAK,KAAKspE,IAAIp4G,IAAG,GAChE,EAOAu4G,mBAAA,SAAO9wG,G,IAAEq+B,EAAI,OAAEsmC,EAAM,SACnB,GAAmB,WAAf,KAAKvzE,MAAT,CAGI,KAAKm/G,cACP,KAAKA,aAAa5rE,QAEhB,KAAK+rE,iBACP,KAAKA,gBAAgB/rE,QAEnB,KAAKurE,mBACP,KAAKA,kBAAkBvrE,QAErB,KAAK6rE,uBACP,KAAKA,sBAAsB7rE,QAEzB,KAAK0rE,iBACP,KAAKA,gBAAgBz7G,OAEnB,KAAKi7G,kBAAoBxxE,IAASowE,GACpC,KAAKoB,iBAAiBlrE,QAExB,KAAKyrE,cAAcj2G,OAAO,GAC1B,IAAMrB,EAAM,KAAKwuC,KA3LG,MA6LhBjJ,GACFvlC,EAAImrD,MAAM,UACV,KAAKzd,WAAW,SAAU,KAAM,CAACqoE,EAAYG,UAE7Cl2G,EAAIoC,KAAK,WAAWmjC,EAAI,MAAMsmC,GAC1BtmC,IAASowE,GACX,KAAKjoE,WAAW,SAAU,KAAM,CAC9B2oE,EAA2BxpG,IAAI04B,IAASwwE,EAAYI,UAIlD,MAAe,KAAK0B,IAAG,WACvB,EAAc,KAAKL,SAAQ,UAE/Bt9D,IAAe47D,EAAUmC,SAAW/9D,IAAe47D,EAAUoC,QAC/D,KAAKL,IAAIvnE,MAAM/K,EAAMsmC,E,CAEzB,EAMAmsC,qBAAA,sBACQh4G,EAAM,KAAKwuC,KACjB,GAAmB,YAAf,KAAKl2C,MACP,KAAKo1C,WAAW,cACX,GAAmB,UAAf,KAAKp1C,MAGd,YAFA0H,EAAIoC,KAAK,qBAAqB,KAAK9J,MAA1B,wCAIX,KAAKu/G,IAAM,IAAI,KAAKL,SAAS1B,UAAU,KAAK6B,YAC5C,IAAMQ,EAAK,KAAKN,IAChB73G,EAAImrD,MAAM,2BAA4BgtD,GACtCA,EAAGvnG,iBAAiB,SAAS,YAAS,SAAKkmG,OAAOpqG,EAAZ,IAE9B,MAAgB,KAAK8qG,SAAQ,YAErC,KAAKC,aAAe,IAAI9rE,GAAQ,WAC9B,IAAMkgC,EAAS,qBAAqB8qC,EAAW,MAC/CtoG,EAAKyoG,OAAO,CAAEvxE,KA9NU,KA8NmBsmC,OAAM,GACnD,GAAG8qC,GAEHwB,EAAGvnG,iBAAiB,QAAQ,WAC1B5Q,EAAImrD,MAAM,oBAAqBgtD,GAC/B9pG,EAAKopG,aAAa5rE,QAClBx9B,EAAK+pG,kBACD/pG,EAAKkpG,iBACPlpG,EAAKkpG,gBAAgB7rE,OAEzB,IAEAysE,EAAGvnG,iBAAiB,WAAW,YAC7B5Q,EAAImrD,MAAM,aAAarpD,EAAQtD,MAC/B,IACEsD,EAAUqI,KAAK4P,MAAMjY,EAAQtD,K,CAC7B,MAAOrG,GAEP,YADAkW,EAAKwI,KAAK,QAAS1e,E,CAIrB,OAAQ2J,EAAQrL,MACd,IAAK,MACH4X,EAAKgqG,WAAWv2G,GAChB,MACF,IAAK,OACHuM,EAAKiqG,YAAYx2G,GACjB,MACF,IAAK,MAEH,MACF,IAAK,MACHuM,EAAKkqG,eAAez2G,GAItB,IAAK,YACHuM,EAAKmqG,mBACL,MACF,IAAK,UACHnqG,EAAKoqG,eAAe32G,GACpB,MACF,QACEuM,EAAKmgC,KAAK2c,MAAM,yBAAyBrpD,EAAQrL,MACjD4X,EAAKwI,KAAK,QAAS,IAAIte,MAAM,yBAAyBuJ,EAAQrL,OAGpE,GACF,EAOAuhH,uBAAA,SAAW9wG,G,IAAE2kE,EAAM,SACX7rE,EAAM,KAAKwuC,KACjB,GAAK,CAAC,aAAc,QAAQt6B,SAAS,KAAK5b,OAA1C,CAKA,GAAmB,eAAf,KAAKA,MAGP,OAFA0H,EAAIoC,KAAK,mBAAuCypE,QAChD,KAAKirC,OAAO,CAAEvxE,KAAMkwE,EAAuB5pC,OAAM,IAGnD7rE,EAAImrD,MAAM,UAAU0gB,GACpB,KAAKh1D,KAAK,QAAS,IAAIte,MAAMszE,G,MAV3B7rE,EAAIoC,KAAK,qBAAqB,KAAK9J,MAA1B,uDAWb,EAOA0/G,wBAAA,SAAY9wG,GAAZ,WAAcyhG,EAAM,SAAE+P,EAAS,YAAEC,EAAU,aACnC34G,EAAM,KAAKwuC,KACjB,GAAK,CAAC,aAAc,WAAWt6B,SAAS,KAAK5b,OAA7C,CAKI,KAAKy+G,kBACP,KAAKA,iBAAiBlrE,QAEpB,KAAK+rE,iBACP,KAAKA,gBAAgB/rE,QAEvB,IAAMggC,EAAS8sC,EAAa,EACxB,mCACA,2CAA2CA,EAAU,MAEzD,GAAIA,EAAa,EAGf,OAFA34G,EAAIoC,KAAK,mBAAsCypE,QAC/C,KAAKirC,OAAO,CAAEvxE,KAAMqwE,EAAsB/pC,OAAM,IAG1C,MAA+B,KAAK2rC,SAAQ,2BACpD,KAAKH,YAAcb,EACnB,KAAKS,QAAUtO,GAAU,KAErB+P,GACF14G,EAAIoC,KAAKypE,GACT,KAAKkrC,iBAAmB,IAAIprE,GAAQ,WAAM,SAAKysE,iBAAL,GAAwBO,KAElE34G,EAAIoC,KAAK,mBAAoCypE,GAC7C,KAAKirC,OAAO,CAAEvxE,KAAMowE,EAAoB9pC,OAAM,IAC9C,KAAKkrC,iBAAmB,IAAIprE,GAAQ,WAAM,SAAKosE,UAAL,GAAiBY,IAG7D,KAAKjrE,WAAW,UAAW,KAAM,CAACgrE,EAAWC,G,MAhC3C34G,EAAIoC,KAAK,qBAAqB,KAAK9J,MAA1B,wDAiCb,EAMA0/G,6BAAA,WACqB,SAAf,KAAK1/G,MAKT,KAAK8+G,kBAAkBl9G,QAJrB,KAAKs0C,KAAKpsC,KAAK,qBAAqB,KAAK9J,MAA1B,6DAKnB,EAMA0/G,oCAAA,WACE,GAAmB,SAAf,KAAK1/G,MAAT,CAGA,IAAM0H,EAAM,KAAKwuC,KACT,EAAmC,KAAKgpE,SAAQ,+BAExDx3G,EAAImrD,MAAM,kCAAkCsrD,GAC5C,IAAM5qC,EAAS,UAAU4qC,EAA8B,wBACvDz2G,EAAIoC,KAAK,mBAA4CypE,GACrD,KAAKirC,OAAO,CAAEvxE,KAAMiwE,EAA4B3pC,OAAM,G,CACxD,EAOAmsC,2BAAA,SAAe9wG,G,IAAE0xG,EAAI,OACA,SAAf,KAAKtgH,MAKT,KAAKue,KAAK,UAAW+hG,GAJnB,KAAKpqE,KAAKpsC,KAAK,qBAAqB,KAAK9J,MAA1B,uDAKnB,EAOA0/G,2BAAA,SAAe9wG,GAAf,WAAiB2xG,EAAiB,oBAC1B74G,EAAM,KAAKwuC,KAEjB,GAAK,CAAC,aAAc,WAAWt6B,SAAS,KAAK5b,OAA7C,CAMmB,YAAf,KAAKA,QACP0H,EAAImrD,MAAM,4DACV,KAAK4rD,iBAAiBlrE,SAGhB,IACFitE,EAAmBD,EADkB,KAAKrB,SAAQ,+BAElDuB,EAA2BF,EA3ZH,IA6Z9B,KAAKjB,gBAAgB/rE,QACrB,KAAKurE,kBAAoB,IAAIzrE,GAAQ,WAAM,SAAKqtE,yBAAL,GAAgCF,GAC3E,KAAKxB,cAAcj2G,OAAO,GAAG/J,SAAQ,YAAW,SAAK2hH,MAAMn3G,EAAX,IAChD,KAAK41G,sBAAwB,IAAI/rE,GAAQ,WAAM,SAAKutE,gBAAL,GAAuBH,GACtE,KAAKrrE,WAAW,O,MAlBd1tC,EAAIoC,KAAK,qBAAqB,KAAK9J,MAA1B,2DAmBb,EAMA0/G,kCAAA,WACE,GAAmB,eAAf,KAAK1/G,MAAT,CAGA,IAAM0H,EAAM,KAAKwuC,KAEjB,GAAI,KAAK6oE,aAAe,EAAG,CACzB,IAAMxrC,EAAS,gCAGf,OAFA7rE,EAAIoC,KAAK,mBAA0CypE,QACnD,KAAKirC,OAAO,CAAEvxE,KAAMgwE,EAA0B1pC,OAAM,G,CAI9C,MAA+B,KAAK2rC,SAAQ,2BACpDx3G,EAAIoC,KAAK,sBAAqBo0G,EAA6B,KAAKa,aAAW,WAC3E,KAAKe,iB,CACP,EAOAJ,kBAAA,SAAMl2G,GAGJ,GAFuB,KAAK+1G,IAAG,aACT,KAAKL,SAAQ,UACN2B,KAAM,CACjC,IAAM36G,EAAO2L,KAAKC,UAAUtI,GAC5B,KAAK0sC,KAAK2c,MAAM,aAAa3sD,GAC7B,IACE,KAAKq5G,IAAIvkD,KAAK90D,GACV,KAAKk5G,uBAEP,KAAKA,sBAAsBx9G,O,CAE7B,MAAO/B,GACP,IAAM0zE,EAAS,yBACf,KAAKr9B,KAAKpsC,KAAK,mBAAsCypE,GACrD,KAAKirC,OAAO,CAAEvxE,KAAMmwE,EAAsB7pC,OAAM,G,EAGtD,EAMAmsC,2BAAA,WACqB,WAAf,KAAK1/G,OAGT,KAAK2gH,MAAM,CAAExiH,KAAM,aACrB,EAMAuhH,uBAAA,WACQ,MAAoD,KAAKR,SAAvDjB,EAAS,YAA6Bl2G,EAAO,4BAC/C+4G,EAAQ,CACZtqE,GAAI7/B,IACJ5O,QAAO,EACP5J,KAAM,QACNkM,QA/ee,GAifb,KAAKs0G,UACPmC,EAAMzQ,OAAS,KAAKsO,SAElBV,IACF6C,EAAMR,KAAOrC,GAEf,KAAK0C,MAAMG,EACb,EAOApB,2BAAA,SAAel2G,GAAf,WACE,GAAmB,WAAf,KAAKxJ,MAAT,CAGA,IAAM+gH,EAA+B,SAAf,KAAK/gH,MACvB,YAAW,SAAK2gH,MAAMn3G,EAAX,EACX,YAAW,SAAKw1G,cAAcv9G,KAAK+H,EAAxB,EAEfu3G,EAAcv3G,E,CAChB,EAMAk2G,4BAAA,sBAIE,GAHI,CAAC,QAAS,WAAW9jG,SAAS,KAAK5b,QACrC,KAAKo1C,WAAW,cAEC,eAAf,KAAKp1C,MAAT,CAGA,KAAK++G,cACL,KAAKiC,aACG,MAAmB,KAAK9B,SAAQ,eACxC,KAAKI,gBAAkB,IAAIjsE,GAAQ,WAAM,SAAK4tE,uBAAL,GAA8B3C,E,CACzE,EAMAoB,kBAAA,WACqB,WAAf,KAAK1/G,QAGT,KAAKkhH,eAAe,CAAE/iH,KAAM,QAC5B,KAAKqgH,OAAO,CAAEvxE,KA3hBM,IA2hBiBsmC,OAAQ,WAC/C,EAOAmsC,wBAAA,SAAYY,GACV,KAAKY,eAAe,CAAEZ,KAAI,EAAEniH,KAAM,OACpC,EACF,EA9fA,CAA+Bo2C,GAogB/BmrE,EAAiBjC,YAAcA,EA4C/BrjG,EAAOxe,QAAU8jH,C,gBC7oBjBtlG,EAAOxe,QAAU4hH,S,+BCSjB,iBAIE,aACE1hH,OAAOkQ,iBAAiB,KAAM,CAC5Bm1G,SAAU,CACR7kH,MAAO,CACL,CAAE8kH,YAAa,EAAGC,UAAW,GAC7B,CAAED,YAAa,EAAGC,UAAW,MAIrC,CAuBF,OAjBEC,gBAAA,WACU,IAAU7I,EAAY,KAAI,SAC5B8I,EAAoB9I,EAAQ,GAAG2I,YAAc3I,EAAQ,GAAG2I,aAAgB7sF,IAE9E,OADuBkkF,EAAQ,GAAG4I,UAAY5I,EAAQ,GAAG4I,WACjCE,CAC1B,EAOAD,sBAAA,SAAUD,EAAWD,GACX,IAAU3I,EAAY,KAAI,SAClCA,EAAQ90E,QACR80E,EAAQh3G,KAAK,CAAE2/G,YAAW,EAAEC,UAAS,GACvC,EACF,EApCA,GAsCAjnG,EAAOxe,QAAU0lH,C,ohBC5CT,EAAiBr0G,EAAQ,IAAS,aAEpCu0G,EAAe,CACnB,YACA,OACA,QACA,UACA,kBACA,aAGIC,EAAe,CACnB,QACA,QACA,OACA,WASF,cAQE,WAAYC,EAAWC,EAAkBj6G,EAAKk6G,QAAA,QAAAA,QAA9C,MACE10E,cAAO,K,OACPn3B,EAAK7B,GAAG,SAAS,SAACtF,G,IAAErM,EAAI,OAAE8P,EAAK,QAAEC,EAAK,QAAE5C,EAAO,UAC7C,GAAoB,kBAATnN,EAET,MADAmF,EAAI7H,MAAM,oBAAqB0C,GACzB,IAAItC,MAAM,oBAAqBsC,GAGvC,IAAKi/G,EAAa5lG,SAASvJ,GAEzB,MADA3K,EAAI7H,MAAM,qBAAsBwS,GAC1B,IAAIpS,MAAM,qBAAsBoS,GAGxC,IAAKovG,EAAa7lG,SAAStJ,GAEzB,MADA5K,EAAI7H,MAAM,qBAAsByS,GAC1B,IAAIrS,MAAM,qBAAsBqS,GAGxC,IAAMs6D,EAAYljE,KAAKg/B,MACjBm5E,EAAcj1C,EAAY+0C,EAE1BG,EAAmBhmH,OAAOgT,OAAO,CAAE+yG,YAAW,EAAEvvG,MAAK,GAAI5C,GAAoB,IACnFgyG,EAAUK,QAAQ1vG,EAAO9P,EAAMu/G,GAE/B,IAAM1tG,EAAQtY,OAAOgT,OAAO,CAC1B+yG,YAAW,EACXxvG,MAAK,EACLC,MAAK,EACL/P,KAAI,EACJqqE,UAAS,GACRl9D,EAAU,CAAEA,QAAO,GAAK,IAQ3BhI,EANiB,CACfmrD,MAAO,QACPhzD,MAAO,QACPgB,KAAM,OACNmhC,QAAS,QACT1vB,IACY,QAAS8B,GAEnBwtG,GAA2B,cAAVvvG,GACnBuvG,EAAcrjG,KAAK,QAASnK,EAEhC,I,CACF,CACF,OArD4B4B,OAqD5B,EArDA,CAA4BmI,GA6D5B/D,EAAOxe,QAAUomH,C,yvBCrFX7jG,EAAelR,EAAQ,IAAUkR,aAE/B,EAAiBlR,EAAQ,GAAK,aAMhCswG,EAAWnyG,WACXoyG,EAAYD,EAASC,UAAYD,EAASC,UAAYvwG,EAAQ,KAC9D,EAAiEA,EAAQ,IAAvEuN,EAA2B,8BAAEK,EAA6B,gCAC5DzN,EAAOH,EAAQ,GACfg1G,EAAmBh1G,EAAQ,IASjC,cASE,WAAYzF,EAAO06G,EAASC,EAAY/mG,EAAagnG,EAAO96G,GAA5D,MACE4lC,cAAO,K,OAEP5lC,EAAUxL,OAAOgT,OAAO,CACtBuzG,QAAYC,EAAclnG,EAAagnG,GAAM,kBAC7CG,qBA/ByB,EAgCzBC,oBA/BwB,GAgCxB/3G,UAAW6C,IACXkwG,UAAS,GACRl2G,GAEHxL,OAAOkQ,iBAAiB+J,EAAM,CAC5B0sG,kBAAmB,CACjBnmH,MAAO,EACPY,UAAU,GAEZwlH,YAAa,CACXpmH,MAAO,IAETqmH,gBAAiB,CACfrmH,MAAO8Q,EAAK4K,SAEd4qG,uBAAwB,CACtBtmH,MAAOgL,EAAQi7G,qBACfrlH,UAAU,GAEZqiH,IAAK,CACHjjH,MAAO,KACPY,UAAU,GAEZ2lH,WAAY,CACVvmH,MAAOgL,EAAQk2G,aAInBznG,EAAK4sG,gBAAgBzqG,QAAQvY,MAAK,SAACiP,G,IAAEk0G,EAAO,UAAEC,EAAc,iBACpDxlH,EAAOwY,EACbA,EAAK7B,GAAG,gBAAgB,SAAS8uG,EAAenjH,GAE9C,GADAtC,EAAK0lH,SAAW,KACZpjH,GAAStC,EAAKqlH,uBAAyB,EAGzC,OAFArlH,EAAKghB,KAAK,qBAuLpB,SAAmBmjG,EAAWl6G,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,GACjF,IAAM47G,EAAkBx5G,KAAKg/B,MAAQg5E,EAAUe,kBACzCU,EAAa77G,EAAQk7G,oBAAsBU,EAEjD,GAAIC,EAAa,EAIf,YAHA/rG,YAAW,WACTyjC,EAAQ6mE,EAAWl6G,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,EAC1E,GAAG67G,GAILtoE,EAAQ6mE,EAAWl6G,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,EAC1E,CAlMU87G,CAAU7lH,EAAMiK,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,GAGvE/J,EAAKmX,eAAe,eAAgBsuG,EACtC,IACAnoE,EAAQ9kC,EAAMvO,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,EACrE,IAAG2B,OAAM,WACP,I,CAEJ,CAwEF,OAnIgC+M,OAmE9BqtG,oBAAA,SAAQP,EAASC,GACf,KAAKJ,gBAAgBrjH,QAAQ,CAAEwjH,QAAO,EAAEC,eAAc,GACxD,EAOAM,qBAAA,SAASjvG,GACPA,EAAMwkE,QAAU,KAAKqqC,SACrB,KAAK1D,IAAIvkD,KAAKnpD,KAAKC,UAAUsC,GAC/B,EAMAivG,uBAAA,WACE,GAAiB,OAAb,KAAK9D,KACJ,KAAKA,IAAI39D,aAAe,KAAKihE,WAAWlD,SACxC,KAAKJ,IAAI39D,aAAe,KAAKihE,WAAWjD,OAC3C,OAAO,EAGT,IACE,KAAKL,IAAIvnE,OAET,CADA,MAAOn4C,GACP,CAIF,OAFA,KAAK0e,KAAK,iBAEH,CACT,EASA8kG,oBAAA,SAAQC,EAAWC,EAAW7zG,GAC5B,OAAiB,OAAb,KAAK6vG,KACH,KAAKA,IAAI39D,aAAe,KAAKihE,WAAWlD,SACvC,KAAKJ,IAAI39D,aAAe,KAAKihE,WAAWjD,WAIG,kBAAlB,KAAKqD,SACjC,KAAKO,SAAShhF,KAAK,MACnB,KAAKkgF,YAAYjhH,KAAK+gC,KAAK,KAAKkgF,cAEnB,CACfrwG,MAAOixG,EACP/gH,KAAMghH,EACN7zG,QAAO,EACPk9D,UAAWljE,KAAKg/B,MAChBvqC,KAAM,QACNkM,QAAS,KAGJ,EACT,EACF,EAnIA,CAAgC8T,GAiJhC,SAAS08B,EAAQ6mE,EAAWl6G,EAAO06G,EAASC,EAAYW,EAASC,EAAgBz7G,GAC/Eo6G,EAAUe,kBAAoB/4G,KAAKg/B,MACnCg5E,EAAUkB,yBACVlB,EAAUnC,IAAM,IAAIj4G,EAAQk2G,UAAUl2G,EAAQ+6G,SAC9C,IAAMxC,EAAK6B,EAAUnC,IAErBM,EAAGvnG,iBAAiB,SAAS,YAtKP,MAuKhBlE,EAAM64B,KAIVy0E,EAAUnjG,KAAK,eAAgB,IAAIte,MAAM,mBAAmBmU,EAAM64B,KAAI,KAAK74B,EAAMm/D,SAH/EmuC,EAAUnjG,KAAK,eAInB,IAEAshG,EAAGvnG,iBAAiB,WAAW,aA8CjC,SAA+BopG,EAAWz5G,EAAUX,GAClD,OAAQW,EAAS9J,MACf,IAAK,YACHujH,EAAUuB,SAAWh7G,EAAS2wE,QAC9B8oC,EAAUkB,uBAAyBt7G,EAAQi7G,qBAC3Cb,EAAUgB,YAAY35G,OAAO,GAAG/J,QAAQ0iH,EAAU8B,SAAU9B,GAC5DA,EAAUnjG,KAAK,aACf,MACF,IAAK,QACHmjG,EAAUnC,IAAIvnE,QACd0pE,EAAUnjG,KAAK,eAAgB,IAAIte,MAAMgI,EAASuB,UAGxD,CA1DIi6G,CAAsB/B,EAAW7vG,KAAK4P,MAAMjY,EAAQtD,MAAOoB,EAC7D,IAEAu4G,EAAGvnG,iBAAiB,QAAQ,WAC1B,IAAMorG,EAAiB,CACrBvlH,KAAM,UACNqJ,MAAK,EACL6C,QAAS,GAGXq5G,EAAehC,UAAY,CACzBn/G,KAAM2/G,EACNC,WAAU,EACV13G,UAAWnD,EAAQmD,UACnBs4G,eAAgBA,EAChBD,QAASA,GAGPb,EAAiBnwE,SACnB4xE,EAAehC,UAAS,OAAQgC,EAAehC,WAAclnG,GACpDynG,EAAiBjwE,aAC1B0xE,EAAehC,UAAS,OAAQgC,EAAehC,WAAc7mG,IAG/DglG,EAAG7kD,KAAKnpD,KAAKC,UAAU4xG,GACzB,GACF,CAQA,SAASpB,EAAclnG,EAAagnG,GAClC,MAAuB,SAAhBhnG,EAAyB,eAAegnG,EAAK,cAChD,eAAehnG,EAAW,IAAIgnG,EAAK,aACzC,CAyEAhoG,EAAOxe,QAAUynH,C,+BCpST,MAAqBp2G,EAAQ,GAAK,iBACpC,EAAmIA,EAAQ,IAA7HC,EAAC,aAAEsQ,EAA2B,8BAAEG,EAA2B,8BAAEd,EAAgB,mBAAE1P,EAAa,gBAAE8P,EAAkB,qBAuEpI,SAAS0mG,EAAe1gH,EAAQV,EAAMqhH,GAIpC,YAJoC,QAAAA,MAId,qBAAX3gH,EACF,KAIM,OAAXA,GAAoB2K,EAAiB3K,GAKlC2gH,EAAWl1G,QAAO,SAAC7O,EAAO+O,G,IAAEM,EAAI,OAAE/Q,EAAI,OAAEU,EAAM,SACnD,GAAIgB,KAAWqP,KAAQjM,GACrB,OAAOpD,EAET,IAAMvD,EAAQ2G,EAAOiM,GACrB,OAAI/Q,UAAe7B,IAAU6B,GAGhB,WAATA,GAAqB4D,MAAMzF,GAFtB4Q,EAAEgG,aAAgB3Q,EAAI,IAAI2M,EAAQ/Q,GAKvCkO,MAAMC,QAAQzN,KAAYA,EAAO+c,SAAStf,GACrC4Q,EAAE2O,cAAiBtZ,EAAI,IAAI2M,EAAQrQ,GAErCgB,CACT,GAAG,MAnBMqN,EAAEgG,aAAa3Q,EAAM,SAoBhC,CAkBA3G,EAAQioH,yBAhHR,SAAkCh0G,GAChC,IAAIhQ,EAAQ8jH,EAAe9zG,EAAkB,4BAC7C,OAAKA,GAAoBhQ,EAChBA,GAETA,EAAQ8jH,EAAe9zG,EAAiBqC,MAAO,iCAAkC,CAC/E,CAAEhD,KAAM,yBAA0BrQ,OAAQ/C,OAAO+C,OAAO8e,IACxD,CAAEzO,KAAM,0BAA2BrQ,OAAQ/C,OAAO+C,OAAOsO,IACzD,CAAE+B,KAAM,yBAA0B/Q,KAAM,UACxC,CAAE+Q,KAAM,YAAa/Q,KAAM,UAC3B,CAAE+Q,KAAM,OAAQrQ,OAAQ/C,OAAO+C,OAAOge,IACtC,CAAE3N,KAAM,8BAA+BrQ,OAAQ/C,OAAO+C,OAAO2e,IAC7D,CAAEtO,KAAM,qBAAsBrQ,OAAQ/C,OAAO+C,OAAOoe,SAOlDpN,EAAiBqC,MAIf,cAAerC,EAAiBqC,OAAS,gCAAiCrC,EAAiBqC,MACtF,IAAItR,UAAU,mIAKnB,qBAAsBiP,EAAiBqC,OAAS,2BAA4BrC,EAAiBqC,MACxF,IAAItR,UAAU,qIAuE3B,SAAkC4O,GAChC,IAAMjN,EAAO,kDACT1C,EAAQ8jH,EAAen0G,EAAkBjN,GAC7C,OAAOiN,EAAmB3P,GAAS/D,OAAO+C,OAAOsO,GAAeuB,QAAO,SAAC7O,EAAOqP,GAC7E,OAAOrP,GAAS8jH,EAAen0G,EAAiBN,GAAU3M,EAAI,IAAI2M,EAAQ,CACxE,CAAEA,KAAM,SAAU/Q,KAAM,UACxB,CAAE+Q,KAAM,QAAS/Q,KAAM,WAE3B,GAAG,MAAQ0B,CACb,CA7EWikH,CAAyBj0G,EAAiBqC,MAAM1C,kBAGlD,KACT,EA4EA5T,EAAQmoH,mBApER,SAA4BlxG,EAAOvL,GACjC,KAAMuL,aAAiBvL,EAAQwL,iBAC1BD,aAAiBvL,EAAQ0L,gBACzBH,aAAiBvL,EAAQyL,iBACzBF,aAAiBvL,EAAQ2L,kBAE5B,MAAM/F,EAAEgG,aAAa,QAAS,wEAElC,EA6DAtX,EAAQ+nH,eAAiBA,C,ohBC1HnBxlG,EAAelR,EAAQ,IACvB,EAAkCA,EAAQ,GAAxCyL,EAAc,iBAAErK,EAAW,cAC3B,EAAsBpB,EAAQ,IAAuB,kBACvDi9B,EAAMj9B,EAAQ,IAChB6oC,EAAa,EAUjB,cAOE,WAAYkuE,EAAW3vC,EAAU/sE,GAAjC,MACE4lC,cAAO,KAEP5lC,EAAUxL,OAAOgT,OAAO,CACtBvF,SAAU0R,GACT3T,GAEH,IAAMkiC,EAAY9wB,EAAepR,EAAQiC,U,OAEzCzN,OAAOkQ,iBAAiB+J,EAAM,CAC5BkgC,YAAa,CACX35C,MAAOw5C,KAETI,KAAM,CACJ55C,MAAOgL,EAAQI,IAAMJ,EAAQI,IAAIyuC,UAAU,UAAWpgC,GAAQ,IAAIm0B,EAAI,UAAWn0B,EAAMyzB,EAAWliC,EAAQmiC,aAE5Gu6E,UAAW,CACThnH,YAAY,EACZV,MAAO0nH,GAET3vC,SAAU,CACRr3E,YAAY,EACZV,MAAO+3E,K,CAGb,CASF,OAzC+Br+D,OAkC7B29D,mBAAA,WACE,OAAOtlE,EAAY,KACrB,EAEAslE,qBAAA,WACE,MAAO,sBAAsB,KAAK19B,YAAW,KAAK,KAAKo+B,SAAQ,GACjE,EACF,EAzCA,CAA+Bl2D,GA0E/B/D,EAAOxe,QAAU+3E,C,86BCxFXx1D,EAAelR,EAAQ,IACvBg3G,EAAmBh3G,EAAQ,KAC3Bi3G,EAA8Bj3G,EAAQ,KACtCk3G,EAAkBl3G,EAAQ,KAC1Bm3G,EAA6Bn3G,EAAQ,KACrCo3G,EAAmBp3G,EAAQ,KAC3Bq3G,EAA8Br3G,EAAQ,KACtCG,EAAOH,EAAQ,GAEjB6oC,EAAa,EAgCjB,cAME,WAAY1iC,EAAW9L,GAAvB,MACE4lC,cAAO,KAYDq3E,EA0cV,SAAyBjzG,GACvB,IAAMkzG,EAAgBlzG,EAAOlD,KAAI,YAAS,OAACyE,EAAM2jC,GAAI3jC,EAAX,IACpC4xG,EAAqBD,EAAc94G,QAAO,YAAY,MAAqB,UAArB,EAAS,GAAG6F,IAAZ,IACtDmzG,EAAqBF,EAAc94G,QAAO,YAAY,MAAqB,UAArB,EAAS,GAAG6F,IAAZ,IACtDozG,EAAoBH,EAAc94G,QAAO,YAAY,MAAqB,SAArB,EAAS,GAAG6F,IAAZ,IAE3D,MAAO,CACLF,YAAaozG,EACbhzG,WAAYkzG,EACZrzG,OAAQkzG,EACRhzG,YAAakzG,EAEjB,CAtdoBE,EAVhBt9G,EAAUxL,OAAOgT,OAAO,CACtBm1G,iBAAgB,EAChBC,4BAA2B,EAC3BC,gBAAe,EACfC,2BAA0B,EAC1BC,iBAAgB,EAChBC,4BAA2B,EAC3BhzG,OAAQ,IACPhK,IAEqCgK,QAClC5J,EAAMJ,EAAQI,IAAIyuC,UAAU,UAAWpgC,GACvC1E,EAAc,IAAI9C,IAAIg2G,EAAQlzG,aAC9BI,EAAa,IAAIlD,IAAIg2G,EAAQ9yG,YAC7BH,EAAS,IAAI/C,IAAIg2G,EAAQjzG,QACzBE,EAAc,IAAIjD,IAAIg2G,EAAQ/yG,a,OAEpC1V,OAAOkQ,iBAAiB+J,EAAM,CAC5B8uG,kBAAmB,CACjBvoH,MAAOgL,EAAQ28G,kBAEjBa,6BAA8B,CAC5BxoH,MAAOgL,EAAQ48G,6BAEjBa,iBAAkB,CAChBzoH,MAAOgL,EAAQ68G,iBAEjBa,4BAA6B,CAC3B1oH,MAAOgL,EAAQ88G,4BAEjBa,kBAAmB,CACjB3oH,MAAOgL,EAAQ+8G,kBAEjBa,6BAA8B,CAC5B5oH,MAAOgL,EAAQg9G,6BAEjBa,aAAc,CACZ7oH,MAAO+U,GAET+zG,YAAa,CACX9oH,MAAOmV,GAETwkC,YAAa,CACX35C,QAASw5C,GAEXuvE,6BAA8B,CAC5B/oH,MAAOgL,EAAQkW,6BAEjB8nG,wBAAyB,CACvBhpH,MAAOgL,EAAQi+G,wBAEjBrvE,KAAM,CACJ55C,MAAOoL,GAETssE,WAAY,CACV13E,MAAO8W,GAEToyG,QAAS,CACPlpH,MAAOgV,GAETm0G,sBAAuB,CACrBnpH,MAAO,IAAIiS,KAEbm3G,iCAAkC,CAChCppH,MAAO,IAAIiS,KAEbo3G,qCAAsC,CACpCrpH,MAAO,IAAIiS,KAEbq3G,aAAc,CACZtpH,MAAOkV,GAETH,YAAa,CACXrU,YAAY,EACZV,MAAO,IAAIiS,KAEbkD,WAAY,CACVzU,YAAY,EACZV,MAAO,IAAIiS,KAEb4Z,SAAU,CACRnrB,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU+U,QACnB,GAEF8zD,oBAAqB,CACnBj/E,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU6oE,mBACnB,GAEF4pC,oBAAqB,CACnB7oH,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAUyyG,mBACnB,GAEFjyC,IAAK,CACH52E,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAUwgE,GACnB,GAEF5zE,MAAO,CACLhD,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAUpT,KACnB,GAEFsR,OAAQ,CACNtU,YAAY,EACZV,MAAO,IAAIiS,KAEbiD,YAAa,CACXxU,YAAY,EACZV,MAAO,IAAIiS,OAIfwH,EAAKyvG,QAAQxmH,QAAQ8mH,EAAkBtjF,KAAK,KAAMzsB,IAClD3C,EAAUc,GAAG,8BAA8B,WACzC,SAAKqK,KAAK,6BAA8BxI,EAAKkmE,oBAC3ClmE,EAAK8vG,sBACJ9vG,EAAK8vG,oBAAoBtyG,OAASwC,EAAK8vG,oBAAoB3zG,OACxD6D,EAAK8vG,oBACL,KAJN,IA8WN,SAA2CE,EAAa3yG,GACtD,IAAM1L,EAAMq+G,EAAY7vE,KAExB,GAA0B,iBAAtB6vE,EAAY/lH,MACd,OAIFoT,EAAUc,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACjD0H,EAAImrD,MAAM,yBAA0B7yD,GACpC+lH,EAAYxnG,KAAKve,EAAO+lH,GACV,iBAAV/lH,IACF0H,EAAImrD,MAAM,mCACVz/C,EAAUsB,eAAe,eAAgBsxG,GAEzCD,EAAYP,QAAQxmH,SAAQ,YAC1B,IAAMinH,EAAaF,EAAYN,sBAAsBlxG,IAAI1B,EAAM2jC,IAC3D3jC,GAASozG,GACXA,EAAWjnH,SAAQ,SAACknH,EAAW9xG,GAC7BvB,EAAM6B,eAAeN,EAAO8xG,EAC9B,GAEJ,IAKA9yG,EAAU9B,OAAOtS,SAAQ,YACvB,IAAM6T,EAAQkzG,EAAYP,QAAQjxG,IAAI4xG,EAAe3vE,IAC/CyvE,EAAaF,EAAYN,sBAAsBlxG,IAAI4xG,EAAe3vE,IACpE3jC,GAASozG,GACXA,EAAWjnH,SAAQ,SAACknH,EAAW9xG,GAC7BvB,EAAM6B,eAAeN,EAAO8xG,EAC9B,GAEJ,IAEAH,EAAYN,sBAAsBlyE,QAElCwyE,EAAYz0G,OAAOtS,SAAQ,YACzB+mH,EAAYL,iCAAiCnxG,IAAIyE,EAAYq7D,UAC1Dr1E,SAAQ,SAACknH,EAAW9xG,GACnB4E,EAAYtE,eAAeN,EAAO8xG,EACpC,GACJ,IACAH,EAAYL,iCAAiCnyE,QAEjD,GACF,CAzZI6yE,CAAkCrwG,EAAM3C,GACxC1L,EAAI7G,KAAK,6BAA4BkV,EAAKoS,SAAW,KAAKpS,EAAKoS,SAAa,K,CAC9E,CA4QF,OAtZ0BnS,OAiJxBqwG,4BAAA,WACE,MAAO,CACL,CAAC,oBAAqB,0BACtB,CAAC,UAAW,gBACZ,CAAC,UAAW,gBAEhB,EAKAA,uCAAA,WACE,MAAO,EACT,EAEAA,qBAAA,WACE,MAAO,iBAAiB,KAAKpwE,YAAW,KAAK,KAAK29B,IAAG,GACvD,EAQAyyC,sBAAA,SAAUxzG,EAAO2jC,GACf,IAAM9uC,EAAM,KAAKwuC,KACjB,OAAI,KAAKsvE,QAAQnxG,IAAImiC,GACZ,MAET,KAAKgvE,QAAQhiG,IAAIgzB,EAAI3jC,GAEA,CACnBU,MAAO,KAAK4xG,aACZjzG,MAAO,KAAK0zG,aACZ1/G,KAAM,KAAKk/G,aACXvyG,EAAMtB,MACKiS,IAAIgzB,EAAI3jC,GACrBizG,EAAkB,KAAMjzG,EAAO2jC,GAE/B9uC,EAAI7G,KAAK,eAAeuM,EAAK0L,WAAWjG,GAAM,IAAK2jC,GACnD9uC,EAAImrD,MAASzlD,EAAK0L,WAAWjG,GAAM,IAAKA,GAEjCA,EACT,EAQAwzG,iCAAA,SAAqBrtG,GACnB,IAAMtR,EAAM,KAAKwuC,KACjB,OAAI,KAAK5kC,OAAO+C,IAAI2E,EAAYq7D,UACvB,MAET,KAAK/iE,OAAOkS,IAAIxK,EAAYq7D,SAAUr7D,GAEN,CAC9BzF,MAAO,KAAKlC,YACZnL,KAAM,KAAKuL,WACXS,MAAO,KAAKV,aACZwH,EAAYzH,MACUiS,IAAIxK,EAAYq7D,SAAUr7D,GAqXtD,SAAsC+sG,EAAa/sG,GACjD,IAAMstG,EAA6B,IAAI/3G,IAEvC,GAA0B,iBAAtBw3G,EAAY/lH,MACd,OAGF+lH,EAAYQ,6BAA6BvnH,SAAQ,SAAC4P,G,IAAA8C,SAAC80G,EAAgB,KAAEC,EAAgB,KACnFH,EAA2B9iG,IAAIgjG,GAAkB,W,IAAC,aAAA74G,uBAAArI,kBAChDygH,EAAYxnG,KAAI,MAAhBwnG,EAAW,KAAMU,GAAgB,EAAKnhH,IAAI,CAAE0T,IAC9C,IACAA,EAAY9E,GAAGsyG,EAAkBF,EAA2B/xG,IAAIiyG,GAClE,IAEAT,EAAYL,iCAAiCliG,IAAIxK,EAAYq7D,SAAUiyC,EACzE,CAnYII,CAA6B,KAAM1tG,GAEnCtR,EAAI7G,KAAK,eAAeuM,EAAK2L,sBAAsBC,GAAY,IAAKA,EAAYq7D,UAChF3sE,EAAImrD,MAASzlD,EAAK2L,sBAAsBC,GAAY,IAAKA,GAClDA,EACT,EAKAqtG,wCAAA,WACQ,MAA4H,KAApH3+G,EAAG,OAAgC8V,EAA2B,+BAA2B+nG,EAAsB,0BACvHhoH,EAAO,KAEb,GAAmB,iBAAf,KAAKyC,MAAT,CAIA,IAAMikH,EAAmB,KAAKY,kBACxBX,EAA8B,KAAKY,6BACnCT,EAAmB,KAAKY,kBACxBX,EAA8B,KAAKY,6BACnCf,EAAkB,KAAKY,iBACvBX,EAA6B,KAAKY,4BAClC2B,EAAuB,KAAK3yC,WAoFlC2yC,EAAqBzyG,GAAG,aAAc0yG,GACtCD,EAAqBzyG,GAAG,eAAgB2yG,GAExCF,EAAqBr1G,OAAOtS,QAAQ4nH,GAEpCD,EAAqBzyG,GAAG,gBAAgB,SAAS8xG,EAAahmH,GAC9C,iBAAVA,GACF0H,EAAImrD,MAAM,4BACV8zD,EAAqBjyG,eAAe,eAAgBsxG,GACpDW,EAAqBjyG,eAAe,aAAckyG,GAClDD,EAAqBjyG,eAAe,eAAgBmyG,IACjC,cAAV7mH,IAIT0H,EAAI7G,KAAK,eAITuW,YAAW,WAAM,SAAKmH,KAAK,cAAV,GAA0B,GAG/C,G,CAxGA,SAASqoG,EAAoBxzG,GAC3B,IAMM4F,EAAc,IAAI87D,EANO,CAC7BvhE,MAAO2wG,EACPh+G,KAAMk+G,EACNlyG,MAAOoyG,GACPlxG,EAAU7B,OAEmC6B,EAAW,CAAE1L,IAAG,IAC/DnK,EAAKupH,qBAAqB9tG,GAE1B,IAAIy7D,EAAerhE,EAAUqhE,aACzBA,GACFsyC,EAAyB3zG,GAG3B7V,EAAKooH,qCAAqCniG,IAAIpQ,EAAUwgE,KAAK,WAC3D,GAAIa,IAAiBrhE,EAAUqhE,aAAc,CAE3C,GADAA,EAAerhE,EAAUqhE,aAGvB,YADAsyC,EAAyB3zG,IAuDjC,SAAoCA,GAC5B,QAAc/G,MAAMiJ,KAAK/X,EAAKioH,QAAQ/2G,WAAW8jC,MAAK,SAAC3jC,GAAc,OAAd8C,OAAQ,GAAYkiE,MAAQxgE,EAAUwgE,GAAxB,IAA4B,GAAhGp9B,EAAE,KAAE3jC,EAAK,KACVmG,EAAczb,EAAK+T,OAAOiD,IAAInB,EAAUwgE,KAC1C/gE,GACFtV,EAAKypH,aAAan0G,EAAOmG,EAAaw9B,EAE1C,CA1DMywE,CAA2B7zG,E,CAE/B,IACAA,EAAUc,GAAG,UAAW3W,EAAKooH,qCAAqCpxG,IAAInB,EAAUwgE,KAClF,CAEA,SAASizC,EAAsBzzG,GACzBA,EAAUqhE,cACZrhE,EAAU8zG,oBAAoB,MAEhC,IAAMC,EAAU5pH,EAAKooH,qCAAqCpxG,IAAInB,EAAUwgE,KACpEuzC,IACF/zG,EAAUsB,eAAe,UAAWyyG,GACpC5pH,EAAKooH,qCAAqCnxE,OAAOphC,EAAUwgE,MAE7D,IAAM56D,EAAczb,EAAK+T,OAAOiD,IAAInB,EAAUwgE,KAC1C56D,GACFzb,EAAK6pH,wBAAwBpuG,EAEjC,CAEA,SAAS+tG,EAAyB3zG,GACxB,MAAgEA,EAAS,UAA9D7Q,EAAqD6Q,EAAS,KAAxD7B,EAA+C6B,EAAS,KAAlDwgE,EAAyCxgE,EAAS,IAA7Ci0G,EAAoCj0G,EAAS,iBAA3BuhE,EAAkBvhE,EAAS,cAC3Ek0G,EAAc,CAClB/zG,MAAO0wG,EACP/xG,MAAOmyG,EACPn+G,KAAMi+G,GACN5yG,GAEIyH,EAAczb,EAAK+T,OAAOiD,IAAIq/D,GAKpC,GAAK0zC,GAAe/1G,IAAS81G,EAAiB91G,KAA9C,CAIA,IAAMjK,EAAU,CAAEI,IAAG,EAAEnF,KAAI,EAAEib,4BAA2B,EAAE+nG,uBAAsB,GAO1E1yG,EAAiB,SAATtB,EACV,IAAI+1G,EAAY1zC,EAAKyzC,EAAkB//G,GACvC,IAAIggH,EAAY1zC,EAAKyzC,EAAkBnzC,EAAWS,GARlC,SAAA4yC,GAAe,SAAqBC,8BAA8B5zC,EAAK2zC,EAAxD,IACb,SAAAE,GAChBr0G,EAAUqhE,cACZkyC,EAAqBe,sBAAsB9zC,EAAK6zC,EAEpD,GAGiGngH,GAEjG/J,EAAKoqH,UAAU90G,EAAOmG,EAAaquG,EAAiB7wE,G,CACtD,CAiCF,EAQA6vE,yBAAA,SAAaxzG,EAAO2jC,GAClB,IAAK,KAAKgvE,QAAQnxG,IAAImiC,GACpB,OAAO,KAET,KAAKgvE,QAAQhxE,OAAOgC,GAEC,CACnBjjC,MAAO,KAAK4xG,aACZjzG,MAAO,KAAK0zG,aACZ1/G,KAAM,KAAKk/G,aACXvyG,EAAMtB,MACKijC,OAAOgC,IAED,KAAKivE,sBAAsBlxG,IAAIiiC,IAAO,IAAIjoC,KAClDvP,SAAQ,SAACknH,EAAW9xG,GAC7BvB,EAAM6B,eAAeN,EAAO8xG,EAC9B,IAEA,IAAMx+G,EAAM,KAAKwuC,KAGjB,OAFAxuC,EAAI7G,KAAK,aAAauM,EAAK0L,WAAWjG,GAAM,IAAK2jC,GACjD9uC,EAAImrD,MAASzlD,EAAK0L,WAAWjG,GAAM,IAAKA,GACjCA,CACT,EAOAwzG,oCAAA,SAAwBrtG,GAEtB,KADAA,EAAc,KAAK1H,OAAOiD,IAAIyE,EAAYq7D,WAExC,OAAO,KAET,KAAK/iE,OAAOkjC,OAAOx7B,EAAYq7D,UAEC,CAC9B9gE,MAAO,KAAKlC,YACZnL,KAAM,KAAKuL,WACXS,MAAO,KAAKV,aACZwH,EAAYzH,MACUijC,OAAOx7B,EAAYq7D,WAExB,KAAKqxC,iCAAiCnxG,IAAIyE,EAAYq7D,WAAa,IAAI9lE,KAC/EvP,SAAQ,SAACknH,EAAW9xG,GAC7B4E,EAAYtE,eAAeN,EAAO8xG,EACpC,IAEA,IAAMx+G,EAAM,KAAKwuC,KAGjB,OAFAxuC,EAAI7G,KAAK,aAAauM,EAAK2L,sBAAsBC,GAAY,IAAKA,EAAYq7D,UAC9E3sE,EAAImrD,MAASzlD,EAAK2L,sBAAsBC,GAAY,IAAKA,GAClDA,CACT,EAEAqtG,mBAAA,WACE,OAAOj5G,EAAKiB,YAAY,KAC1B,EACF,EAtZA,CAA0B8P,GA0iB1B,SAAS2nG,EAAkBC,EAAalzG,EAAO2jC,GAC7C,IAAMoxE,EAAuB,IAAIr5G,IAEP,iBAAtBw3G,EAAY/lH,QAIhB+lH,EAAY8B,kBAAkB7oH,SAAQ,YACpC,IAAM8oH,EAAaC,EAAU,GACvBtB,EAAmBsB,EAAU,GAEnCH,EAAqBpkG,IAAIskG,GAAY,WACnC,IAAMxiH,EAAO,CAACmhH,GAAkBhxG,OAAO,GAAGlS,MAAMnF,KAAKmH,YACrD,OAAOwgH,EAAYxnG,KAAI,MAAhBwnG,EAAW,OAASzgH,IAC7B,IAEAuN,EAAMqB,GAAG4zG,EAAYF,EAAqBrzG,IAAIuzG,GAChD,IAEA/B,EAAYN,sBAAsBjiG,IAAIgzB,EAAIoxE,GAC5C,CAyBAxtG,EAAOxe,QAAUyqH,C,86BChoBX,EAAmCp5G,EAAQ,IAA7BC,EAAC,aAAEC,EAAa,gBAC5B,EAAUF,EAAQ,IAA8B,MAClD0oG,EAA4B1oG,EAAQ,IAoQ1CmN,EAAOxe,QAlQP,SAA+Bq7G,GAa7B,mBAYE,WAAYrjC,EAAKo0C,EAAoB9zC,EAAWS,EAAeJ,EAAa0zC,EAAe3gH,GAA3F,W,OACEA,EAAUxL,OAAOgT,OAAO,CAItBikG,0BAA2B7gE,KACF,kBAAbrsC,UAC8B,oBAA9BA,SAASyS,kBACoB,kBAA7BzS,SAAS4sE,iBACpBnrE,GAEHyO,cAAMiyG,EAAoB1gH,IAAQ,KAElCxL,OAAOkQ,iBAAiB+J,EAAM,CAC5BmyG,WAAY,CACV5rH,MAAO43E,EACPh3E,UAAU,GAEZirH,eAAgB,CACd7rH,MAAOq4E,EACPz3E,UAAU,GAEZkrH,UAAW,CACT9rH,MAAO,KACPY,UAAU,GAEZmrH,aAAc,CACZ/rH,MAAOi4E,GAET+zC,eAAgB,CACdhsH,MAAO,YACLyZ,EAAKmgC,KAAK2c,MAAM,wBAAyB40D,GACzCQ,EAAcR,EAChB,GAEFvzC,UAAW,CACTl3E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK2zG,UACd,GAEFvzC,cAAe,CACb33E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK4zG,cACd,GAEFh0C,SAAU,CACRn3E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK6zG,SACd,GAEFx0C,IAAK,CACH52E,YAAY,EACZV,MAAOs3E,GAET20C,2BAA4B,CAC1BjsH,MAAOgL,EAAQyrG,2BAEjByV,kCAAmC,CACjClsH,MAAO,KACPY,UAAU,K,CAGhB,CA4FF,OAzKsC8Y,OAuFpCyyG,wBAAA,SAAYt0C,GACV,IAAMG,EAAc,GAAI,MAAI,EAAKx4E,OAAO+C,OAAOsO,KAC/C,IAAKmnE,EAAe14D,SAASu4D,GAE3B,MAAMjnE,EAAE2O,cAAc,WAAYy4D,GAMpC,OAJI,KAAK8zC,YAAcj0C,IACrB,KAAKi0C,UAAYj0C,EACjB,KAAKk0C,aAAal0C,IAEb,IACT,EAMAs0C,wBAAA,SAAYv0C,GACN,KAAKg0C,aAAeh0C,IACtB,KAAKg0C,WAAah0C,EAClB,KAAK31D,KAAK,KAAK2pG,WAAa,UAAY,WAAY,MAExD,EAMAO,4BAAA,SAAgB9zC,GACV,KAAKwzC,iBAAmBxzC,IAC1B,KAAKwzC,eAAiBxzC,EACtB,KAAKp2D,KAAKo2D,EAAgB,cAAgB,aAAc,MAE5D,EAEA8zC,mBAAA,SAAO5U,GACL,IAAMp0G,EAASytC,YAAMy6D,OAAM,UAACkM,GAsB5B,OArBsC,IAAlC,KAAKX,iBAAiBpN,UAIxB,KAAKoN,iBAAiBpN,SAAU,EAC5B,KAAKqN,iBACP,KAAKA,eAAerN,SAAU,GAM5B,KAAK/uC,WACP,KAAKulD,kBAGL,KAAKiM,6BACP,KAAKC,kCAAoC,KAAKA,mCA+BtD,SAAuCE,GAC7B,IAAMhhH,EAAcghH,EAAgB,KAAzBn3G,EAASm3G,EAAgB,KAE5C,SAASC,EAAoB/1C,GACtBA,GAGL81C,EAAiBlW,aAAaxzG,SAAQ,YACpC,IAAM+oD,EAAO2gE,EAAiBhW,SAASn+F,IAAIs/F,GACbA,EAAG1xB,QAAUp6B,IAASA,EAAKssD,wBAEvD3sG,EAAI7G,KAAK,iCAAiC0Q,EAAI,aAC9C7J,EAAImrD,MAAM,WAAYghD,GACtBnsG,EAAImrD,MAAM,oBAAqB61D,GAC/B7U,EAAGK,OAAOv0G,MAAK,WACb+H,EAAI7G,KAAK,6CAA6C0Q,EAAI,aAC1D7J,EAAImrD,MAAM,WAAYghD,GACtBnsG,EAAImrD,MAAM,oBAAqB61D,EACjC,IAAGz/G,OAAM,YACPvB,EAAIoC,KAAK,6CAA6CyH,EAAI,aAAc,CAAEpU,IAAG,EAAE02G,GAAE,EAAE6U,iBAAgB,GACrG,IAEJ,GACF,CAOA,OADA/S,EAA0BoB,mBAAmB,EAAG4R,GACzC,WACLhT,EAA0BqB,oBAAoB,EAAG2R,EACnD,CACF,CA/DaC,CAA8B,OAG9BnpH,CACT,EAEAgpH,mBAAA,SAAO5U,GACL,IAAMp0G,EAASytC,YAAMg5D,OAAM,UAAC2N,GAkB5B,OAjB+B,IAA3B,KAAKrB,aAAa/9F,OAMpB,KAAKy+F,iBAAiBpN,SAAU,EAC5B,KAAKqN,iBACP,KAAKA,eAAerN,SAAU,GAG5B,KAAK0iB,oCAEP,KAAKA,oCACL,KAAKA,kCAAoC,OAGtC/oH,CACT,EACF,EAzKA,CAAsCw3G,EA0KxC,C,+BC3LA,IAAM4R,EAAuB57G,EAAQ,KAC/B67G,EAAuB77G,EAAQ,KAC/B87G,EAAwB97G,EAAQ,KAChC+7G,EAAwB/7G,EAAQ,KAUtC,EAME,SAAYg8G,EAAkBC,EAAeC,GAC3C,GAAgC,kBAArBF,EACT,MAAM,IAAIhpH,MAAM,yCAGlBnE,OAAOkQ,iBAAiB,KAAM,CAC5Bi9G,iBAAkB,CAChB3sH,MAAO2sH,EACPjsH,YAAY,GAEdosH,qBAAsB,CACpB9sH,MAAO4sH,EAAcE,qBAAqBh7G,KAAI,YAAU,WAAIy6G,EAAqBQ,EAAOzwE,QAASywE,EAAQF,EAAjD,IACxDnsH,YAAY,GAEdssH,qBAAsB,CACpBhtH,MAAO4sH,EAAcI,qBAAqBl7G,KAAI,YAAU,WAAI06G,EAAqBO,EAAOzwE,QAASywE,EAAQF,EAAjD,IACxDnsH,YAAY,GAEdusH,sBAAuB,CACrBjtH,MAAO4sH,EAAcK,sBAAsBn7G,KAAI,YAAU,WAAI26G,EAAsBM,EAAOzwE,QAASywE,EAA1C,IACzDrsH,YAAY,GAEdwsH,sBAAuB,CACrBltH,MAAO4sH,EAAcM,sBAAsBp7G,KAAI,YAAU,WAAI46G,EAAsBK,EAAOzwE,QAASywE,EAA1C,IACzDrsH,YAAY,IAGlB,EAGFod,EAAOxe,QAAU6tH,C,ohBCxCjB,cAME,WAAY7wE,EAAS8wE,EAAaP,GAAlC,MACEj8E,YAAM0L,EAAS8wE,IAAY,K,OAE3B5tH,OAAOkQ,iBAAiB+J,EAAM,CAC5B4zG,UAAW,CACTrtH,MAAwC,kBAA1BotH,EAAYC,UACtBD,EAAYC,UACZR,EAAqB,EAAI,KAC7BnsH,YAAY,GAEd4sH,YAAa,CACXttH,MAA0C,kBAA5BotH,EAAYE,YACtBF,EAAYE,YACZT,EAAqB,EAAI,KAC7BnsH,YAAY,GAEd6sH,cAAe,CACbvtH,MAA4C,kBAA9BotH,EAAYG,cACtBH,EAAYG,cACZV,EAAqB,EAAI,KAC7BnsH,YAAY,K,CAGlB,CACF,OA9B8BgZ,OA8B9B,EA9BA,CATmB/I,EAAQ,MAyC3BmN,EAAOxe,QAAUkuH,C,+BC5BjB,MAKE,SAAYlxE,EAAS8wE,GACnB,GAAuB,kBAAZ9wE,EACT,MAAM,IAAI34C,MAAM,6BAGlBnE,OAAOkQ,iBAAiB,KAAM,CAC5B4sC,QAAS,CACPt8C,MAAOs8C,EACP57C,YAAY,GAEdq3E,SAAU,CACR/3E,MAAOotH,EAAYr1C,SACnBr3E,YAAY,GAEd4vE,UAAW,CACTtwE,MAAOotH,EAAY98C,UACnB5vE,YAAY,GAEd+sH,KAAM,CACJztH,MAAOotH,EAAYK,KACnB/sH,YAAY,GAEdgtH,YAAa,CACX1tH,MAA0C,kBAA5BotH,EAAYM,YACtBN,EAAYM,YACZ,KACJhtH,YAAY,GAEditH,MAAO,CACL3tH,MAAwC,kBAA1BotH,EAAYn0C,UACtBm0C,EAAYn0C,UACZ,KACJv4E,YAAY,IAGlB,EAGFod,EAAOxe,QAAUsuH,C,ohBChDjB,cAKE,WAAYtxE,EAAS8wE,GAArB,MACEx8E,YAAM0L,EAAS8wE,IAAY,K,OAE3B5tH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bo0G,cAAe,CACb7tH,MAA4C,kBAA9BotH,EAAYS,cACtBT,EAAYS,cACZ,KACJntH,YAAY,GAEdotH,gBAAiB,CACf9tH,MAA8C,kBAAhCotH,EAAYU,gBACtBV,EAAYU,gBACZ,KACJptH,YAAY,K,CAGlB,CACF,OAvB+BgZ,OAuB/B,EAvBA,CARmB/I,EAAQ,MAiC3BmN,EAAOxe,QAAUyuH,C,gBC9BjB,iBASE,WAAY/iH,GACVxL,OAAOkQ,iBAAiB,KAAM,CAC5Bs+G,KAAM,CACJhuH,MAAOgL,EAAQmP,KAAO,KAExB8zG,KAAM,CACJjuH,MAAOgL,EAAQoP,KAAO,KAExB8zG,QAAS,CACPluH,MAAOgL,EAAQ4R,OAAS,GAAK5R,EAAQ4R,QAAU,EAAI5R,EAAQ4R,OAAS,GAEtEuxG,QAAS,CACPnuH,MAAOgL,EAAQqV,QAAU,GAE3B+tG,UAAW,CACTpuH,MAAO,EACPY,UAAU,GAEZytH,UAAW,CACT3tH,YAAY,EACZuX,IAAG,WACD,IAAIsM,EAAK,KAAKypG,KAAOxzG,KAAK4kB,IAAI,KAAK+uF,QAAS,KAAKC,WACjD,GAAI,KAAKF,QAAS,CAChB,IAAMrxG,EAAQrC,KAAKC,SACb6zG,EAAY9zG,KAAKsC,MAAMD,EAAO,KAAKqxG,QAAU3pG,GACnDA,EAAqC,KAAP,EAAxB/J,KAAKsC,MAAa,GAAPD,IAAyB0H,EAAK+pG,EAAY/pG,EAAK+pG,C,CAElE,OAAiC,EAA1B9zG,KAAKL,IAAIoK,EAAI,KAAK0pG,KAC3B,GAEFM,WAAY,CACVvuH,MAAO,KACPY,UAAU,IAGhB,CAiCF,OAzBE4tH,oBAAA,SAAQ7sH,GAAR,WACMksG,EAAW,KAAKwgB,UAChB,KAAKE,aACP1zG,aAAa,KAAK0zG,YAClB,KAAKA,WAAa,MAEpB,KAAKA,WAAazzG,YAAW,WAC3BrB,EAAK20G,YACLzsH,GACF,GAAGksG,EACL,EAQA2gB,kBAAA,WACE,KAAKJ,UAAY,EACb,KAAKG,aACP1zG,aAAa,KAAK0zG,YAClB,KAAKA,WAAa,KAEtB,EACF,EA7EA,GA+EAzwG,EAAOxe,QAAUkvH,C,ohBClFXC,EAAU99G,EAAQ,KAClB+9G,EAAyB/9G,EAAQ,KACjCg+G,EAAMh+G,EAAQ,KAiBpB,cAUE,WAAYupC,EAAIoC,EAASsyE,EAASC,EAAkBC,EAAsBC,EAAcnyG,GAAxF,MACEg0B,YAAMsJ,EAAIoC,EAASsyE,IAAQ,KACrBI,EAAoBF,EAAuB,EAC7CD,EAAmBC,EACnB,E,OACJtvH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bo1G,iBAAkB,CAChBnuH,YAAY,EACZV,MAAO6uH,GAETC,qBAAsB,CACpBpuH,YAAY,EACZV,MAAO8uH,GAETC,aAAc,CACZruH,YAAY,EACZV,MAAO+uH,GAETnyG,OAAQ,CACNlc,YAAY,EACZV,MAAO4c,GAEToyG,kBAAmB,CACjBtuH,YAAY,EACZV,MAAOgvH,K,CAGb,CAoDF,OAzF6Bt1G,OA8CpBu1G,KAAP,SAAU3yE,EAAS4yE,EAAYC,GAC7B,GAAID,EAAWh1E,KAAOi1E,EAAWj1E,GAC/B,MAAM,IAAIv2C,MAAM,2BAElB,IAAMyrH,GAAkBD,EAAW7+C,UAAY4+C,EAAW5+C,WAAa,IACjE++C,EAAqBF,EAAWtB,cAAgBqB,EAAWrB,cAC3De,EAAUQ,EAAiB,EAC5BC,EAAqBD,EAAkB,EACxC,EACEP,EAAmBr0G,KAAKJ,IAAI+0G,EAAWzB,YAAcwB,EAAWxB,YAAa,GAC7EoB,EAAuBK,EAAWrB,gBAAkBoB,EAAWpB,gBAC7D,EAAyBqB,EAAU,aAArBvyG,EAAWuyG,EAAU,OAC3C,OAAO,IAAIF,EAAeC,EAAWh1E,GAAIoC,EAASsyE,EAASC,EAAkBC,EAAsBC,EAAcnyG,EACnH,EAOOqyG,YAAP,SAAiBK,GACf,IAAMC,EAAYD,EAAQx9G,KAAI,YAAU,SAAO09G,WAAP,IAIxC,MAAO,CACLZ,QAJcD,EAAIY,EAAUz9G,KAAI,YAAW,SAAQ88G,OAAR,KAK3CG,aAJmBN,EAAQc,EAAUz9G,KAAI,YAAW,SAAQi9G,YAAR,KAKpDnyG,OAJa6xG,EAAQc,EAAUz9G,KAAI,YAAW,SAAQ8K,MAAR,KAMlD,EAMAqyG,sBAAA,WACE,MAAO,CACLL,QAAS,KAAKA,QACdG,aAA2C,kBAAtB,KAAKA,aAA4B,KAAKA,aAAe,KAAKC,kBAC/EpyG,OAAQ,KAAKA,OAEjB,EACF,EAzFA,CAA6B8xG,GA2F7B5wG,EAAOxe,QAAU2vH,C,+BCpGjBnxG,EAAOxe,QALP,SAAiBmwH,GAEf,OADAA,EAAKA,EAAGrgH,QAAO,YAAK,MAAa,kBAAN4V,CAAP,KACVtf,OAAS,OAAIrB,EAAYorH,EAAGr9G,QAAO,SAACgR,EAAG4B,GAAM,SAAI5B,CAAJ,IAASqsG,EAAG/pH,MACrE,C,+BCHA,MAOE,SAAYw0C,EAAIoC,EAASsyE,GACvBpvH,OAAOkQ,iBAAiB,KAAM,CAC5BwqC,GAAI,CACFx5C,YAAY,EACZV,MAAOk6C,GAEToC,QAAS,CACP57C,YAAY,EACZV,MAAOs8C,GAETsyE,QAAS,CACPluH,YAAY,EACZV,MAAO4uH,IAGb,EAGF9wG,EAAOxe,QAAUovH,C,+BCtBjB5wG,EAAOxe,QAJP,SAAamwH,GACX,OAAOA,EAAGr9G,QAAO,SAACgR,EAAG4B,GAAM,MAAa,kBAANA,EAAiBA,EAAI5B,EAAIA,CAAhC,GAAmC,EAChE,C,ohBCLMqrG,EAAU99G,EAAQ,KAClB+9G,EAAyB/9G,EAAQ,KACjCg+G,EAAMh+G,EAAQ,KAYpB,cAQE,WAAYupC,EAAIoC,EAASsyE,EAASc,GAAlC,MACE9+E,YAAMsJ,EAAIoC,EAASsyE,IAAQ,K,OAC3BpvH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi2G,IAAK,CACHhvH,YAAY,EACZV,MAAO0vH,K,CAGb,CAsCF,OAtD2Bh2G,OA0BlBi2G,KAAP,SAAUrzE,EAAS4yE,EAAYC,EAAYS,GACzC,GAAIV,EAAWh1E,KAAOi1E,EAAWj1E,GAC/B,MAAM,IAAIv2C,MAAM,2BAElB,IAAMyrH,GAAkBD,EAAW7+C,UAAY4+C,EAAW5+C,WAAa,IACjEu/C,EAAiBV,EAAW9B,UAAY6B,EAAW7B,UACnDuB,EAAUQ,EAAiB,EAC5BS,EAAiBT,EAAkB,EACpC,EACEM,EAAME,GAA8D,kBAAnCA,EAAiBrC,cACpDqC,EAAiBrC,cAAgB,SACjClpH,EACJ,OAAO,IAAIsrH,EAAaT,EAAWh1E,GAAIoC,EAASsyE,EAASc,EAC3D,EAOOC,YAAP,SAAiBL,GAGf,MAAO,CACLV,QAHcD,EAAIW,EAAQx9G,KAAI,YAAU,SAAO88G,OAAP,KAIxCc,IAHUjB,EAAQa,EAAQx9G,KAAI,YAAU,SAAO49G,GAAP,KAK5C,EACF,EAtDA,CAA2BhB,GAwD3B5wG,EAAOxe,QAAUqwH,C,+BClEjB,MAME,SAAYz1E,EAAIoC,EAASwzE,GACvBtwH,OAAOkQ,iBAAiB,KAAM,CAC5BwqC,GAAI,CACFx5C,YAAY,EACZV,MAAOk6C,EACPt5C,UAAU,GAEZ07C,QAAS,CACP57C,YAAY,EACZV,MAAOs8C,EACP17C,UAAU,GAEZmvH,UAAW,CACTrvH,YAAY,EACZV,MAAO8vH,EACPlvH,UAAU,IAGhB,EAGFkd,EAAOxe,QAAU0wH,C,ohBCzBjB,cAIE,mBACEp/E,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5BmyG,WAAY,CACV5rH,MAAO,KACPY,UAAU,GAEZg3E,UAAW,CACTl3E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK2zG,UACd,K,CAGN,CAwBF,OA1CiClyG,OAwB/Bu2G,oBAAA,WACE,OAAO,KAAK5sC,QAAO,EACrB,EAQA4sC,mBAAA,SAAOzmB,GAML,OALAA,EAA6B,mBAAZA,GAAwBA,EACrC,KAAK5xB,YAAc4xB,IACrB,KAAKoiB,WAAapiB,EAClB,KAAKvnF,KAAK,YAEL,IACT,EACF,EA1CA,CAPqBtR,EAAQ,IAAUkR,cAwDvC/D,EAAOxe,QAAU2wH,C,ohBCxDXC,EAA4Bv/G,EAAQ,KACpCsnC,EAAetnC,EAAQ,IACvBw/G,EAAiBx/G,EAAQ,IACvB,EAAmBA,EAAQ,GAAU,eACrC,EAAsBA,EAAQ,IAAoB,kBACpDi9B,EAAMj9B,EAAQ,IAEd,EAIFA,EAAQ,IAHVqjC,EAAoB,uBACpBC,EAA6B,gCAC7B5C,EAAoC,uCAGlCmI,EAAa,EAqBXrC,EAAS,CACb+nC,UAAW,CACT,eACA,gBAEFC,aAAc,CACZ,YACA,gBAEFC,aAAc,IAsBhB,cAQE,WAAYgxC,EAAkB94C,EAAKrxE,EAAM+E,GAAzC,WACEA,EAAUxL,OAAOgT,OAAO,CACtBvF,SAAU0R,EACVsxG,mBAAoBC,EACpBn5E,QAASo5E,GACRnlH,GAEH,IAAMkiC,EAAY9wB,EAAepR,EAAQiC,UAEzCwM,cAAM,YAAa09B,IAAO,KAE1B,IAAM84E,EAAqBjlH,EAAQilH,mBAE7BI,EAAiB,IAAIrlH,EAAQ+rC,SAAQ,WACzCt9B,EAAK62G,YAAY72G,EAAK82G,mBACxB,GAAGvlH,EAAQqlH,gBAAgB,G,OAE3B7wH,OAAOkQ,iBAAiB+J,EAAM,CAC5BkgC,YAAa,CACX35C,MAAOw5C,KAETI,KAAM,CACJ55C,MAAOgL,EAAQI,IACXJ,EAAQI,IAAIyuC,UAAU,UAAWpgC,GACjC,IAAIm0B,EAAI,UAAWn0B,EAAMyzB,EAAWliC,EAAQmiC,aAElDqjF,+BAAgC,CAC9B5vH,UAAU,EACVZ,OAAO,GAET4iH,SAAU,CACR5iH,MAAOgL,GAETulH,mBAAoB,CAClBvwH,MAAO,KACPY,UAAU,GAEZ6vH,gBAAiB,CACfzwH,MAAOqwH,GAETK,mBAAoB,CAClBhwH,YAAY,EACZV,MAAO,KACPY,UAAU,GAEZwvH,iBAAkB,CAChB1vH,YAAY,EACZV,MAAOowH,GAETnqH,KAAM,CACJvF,YAAY,EACZV,MAAOiG,GAET0qH,aAAc,CACZjwH,YAAY,EACZV,MAAO,IAAIiS,KAEb2+G,UAAW,CACTlwH,YAAY,EACZV,MAAO,IAAIiwH,GAEb34C,IAAK,CACH52E,YAAY,EACZV,MAAOs3E,KAIX79D,EAAK7B,GAAG,0BAA0B,WACH,WAAzB6B,EAAKo3G,iBACH,CAAC,eAAgB,UAAUvxG,SAAS7F,EAAKq3G,qBAC7Cr3G,EAAK62G,YAAY,IAAIr8E,EAEzB,IAEAx6B,EAAK7B,GAAG,6BAA6B,WAAM,SAAiB6B,EAAjB,IAC3CA,EAAK7B,GAAG,mCAAmC,WAAM,SAAiB6B,EAAjB,IAMjDqB,YAAW,WAAM,SAAiBrB,EAAjB,I,CACnB,CAoEF,OA9J4BC,OAkG1Bq3G,wBAAA,SAAYxtH,GACV,MAAmB,iBAAf,KAAKG,QACP,KAAKg8E,QAAQ,eAAgB,KAAM,CAACn8E,KAC7B,EAGX,EAEAwtH,qBAAA,WACE,MAAO,mBAAmB,KAAKp3E,YAAW,MAAK,KAAKy2E,iBAAmB,KAAKA,iBAAiB94C,IAAM,QAAM,GAC3G,EAOAy5C,+BAAA,SAAmBtH,GACjB,IAAMxoH,EAAO,KAEb,MAA0B,iBAAtBwoH,EAAY/lH,SAIZ,KAAKitH,aAAa54G,IAAI0xG,EAAYnyC,OAItC,KAAKq5C,aAAazpG,IAAIuiG,EAAYnyC,IAAKmyC,GAEvCA,EAAY7xG,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACrC,iBAAVA,IACF+lH,EAAYrxG,eAAe,eAAgBsxG,GAC3CzoH,EAAK0vH,aAAaz4E,OAAOuxE,EAAYnyC,KACrCr2E,EAAKghB,KAAK,0BAA2BwnG,GAEzC,IAEA,KAAKxnG,KAAK,uBAAwBwnG,IAE3B,GACT,EAMAsH,uBAAA,WACE,OAAO,KAAKT,aACd,EAOAS,+BAAA,SAAmBL,GACjB,KAAKA,mBAAqBA,EAC1B,KAAKzuG,KAAK,yBACZ,EACF,EA9JA,CAA4Bg2B,GAgM5B,SAAS+4E,EAAiBC,GAMxB,IAAIx4E,EALwB,iBAAxBw4E,EAAcvtH,OAAuE,iBAA3CutH,EAAcC,0BAOb,iBAA3CD,EAAcC,yBAChBz4E,EAAWw4E,EAAcC,yBACqB,WAArCD,EAAcH,oBACvBG,EAAcT,gCAAiC,EAC/C/3E,EAAW,gBACmC,QAArCw4E,EAAcH,oBAAqE,aAArCG,EAAcH,mBACrEr4E,EAAWw4E,EAAcT,+BAAiC,eAAiB,aAE3ES,EAAcT,gCAAiC,EAC/CS,EAAcV,mBAAqB,KACnCU,EAAcR,gBAAgBx5E,QAC9BwB,EAAW,aAGTA,IAAaw4E,EAAcvtH,QAId,iBAAb+0C,GACFw4E,EAAcV,mBAAgE,iBAA3CU,EAAcC,yBAC7C,IAAI7/E,EACJ,IAAI2C,EACRi9E,EAAcR,gBAAgB35E,QAC9Bm6E,EAAcvxC,QAAQjnC,EAAU,KAAM,CAACw4E,EAAcV,sBAErDU,EAAcvxC,QAAQjnC,KA/BtBw4E,EAAcR,gBAAgBx5E,OAiClC,CAEAn5B,EAAOxe,QAAUyxH,C,+BCtSjB,IAAMI,EAA0BxgH,EAAQ,KAClCygH,EAA0BzgH,EAAQ,KAexC,EAKE,SAAY2B,G,IAAEosD,EAAI,OAAE2yD,EAAI,OAAEj8G,cAAAk8G,OAAS,MAAG,KAAI,EAAE/+G,cAAAg/G,OAAS,MAAG,KAAI,EAC1D/xH,OAAOkQ,iBAAiB,KAAM,CAC5BgvD,KAAM,CACJ1+D,MAAO0+D,EACPh+D,YAAY,GAEd2wH,KAAM,CACJrxH,MAAOqxH,EACP3wH,YAAY,GAEd4wH,UAAW,CACTtxH,MAAOsxH,EAAY,IAAIH,EAAwBG,GAAa,KAC5D5wH,YAAY,GAEd6wH,UAAW,CACTvxH,MAAOuxH,EAAY,IAAIH,EAAwBG,GAAa,KAC5D7wH,YAAY,IAGlB,EAGFod,EAAOxe,QAAUkyH,C,+BC3CjB,IAAMC,EAA+B9gH,EAAQ,KACvC+gH,EAAkC/gH,EAAQ,KAC1CghH,EAA6BhhH,EAAQ,KAW3C,EAKE,SAAY2B,G,IAAE8C,cAAAw8G,OAAS,MAAG,KAAI,EAAEr/G,iBAAAw8G,OAAY,MAAG,KAAI,EAAE17G,YAAAw+G,OAAO,MAAG,KAAI,EACjEryH,OAAOkQ,iBAAiB,KAAM,CAC5BkiH,UAAW,CACT5xH,MAAO4xH,EAAY,IAAIH,EAA6BG,GAAa,KACjElxH,YAAY,GAEdquH,aAAc,CACZ/uH,MAAO+uH,EAAe,IAAI2C,EAAgC3C,GAAgB,KAC1EruH,YAAY,GAEdmxH,QAAS,CACP7xH,MAAO6xH,EAAU,IAAIF,EAA2BE,GAAW,KAC3DnxH,YAAY,IAGlB,EAGFod,EAAOxe,QAAUwyH,C,ohBC5BjB,cAQE,WAAY7rH,EAAMgP,EAAM2iE,EAAWC,GAAnC,MACEjnC,cAAO,KACH0mC,EAAM,K,OACV93E,OAAOkQ,iBAAiB+J,EAAM,CAC5Bs4G,OAAQ,CACN/xH,MAAO,KACPY,UAAU,GAEZgrH,WAAY,CACV5rH,MAAO43E,EACPh3E,UAAU,GAEZkrH,UAAW,CACT9rH,MAAO63E,EACPj3E,UAAU,GAEZoxH,kBAAmB,CACjBhyH,MAAO,KACPY,UAAU,GAEZ4+E,KAAM,CACJvnE,IAAG,WACD,OAAOq/D,CACT,EACApwD,IAAG,SAACs4D,GACU,OAARlI,IACFA,EAAMkI,EAEV,GAEFvqE,KAAM,CACJvU,YAAY,EACZV,MAAOiV,GAEThP,KAAM,CACJvF,YAAY,EACZV,MAAOiG,K,CAGb,CA4FF,OA3I6ByT,OAqD3Bla,sBAAIyyH,oBAAK,C,IAAT,WACE,OAAO,KAAKF,MACd,E,gCAMAvyH,sBAAIyyH,wBAAS,C,IAAb,WACE,OAAO,KAAKrG,UACd,E,gCAMApsH,sBAAIyyH,uBAAQ,C,IAAZ,WACE,OAAO,KAAKnG,SACd,E,gCAMAtsH,sBAAIyyH,kBAAG,C,IAAP,WACE,OAAO,KAAKzyC,IACd,E,gCAMAhgF,sBAAIyyH,+BAAgB,C,IAApB,WACE,OAAO,KAAKD,iBACd,E,gCAMAC,oBAAA,WACE,OAAO,KAAK5uC,QAAO,EACrB,EAQA4uC,mBAAA,SAAOzoB,GAML,OALAA,EAA6B,mBAAZA,GAAwBA,EACrC,KAAK5xB,YAAc4xB,IACrB,KAAKoiB,WAAapiB,EAClB,KAAKvnF,KAAK,YAEL,IACT,EAQAgwG,gCAAA,SAAoBlH,GAMlB,OALAA,EAAmBA,GAAoB,KACnC,KAAKA,mBAAqBA,IAC5B,KAAKiH,kBAAoBjH,EACzB,KAAK9oG,KAAK,YAEL,IACT,EAOAgwG,mBAAA,SAAO36C,GAKL,OAJiB,OAAb,KAAKA,MACP,KAAKkI,KAAOlI,EACZ,KAAKr1D,KAAK,YAEL,IACT,EACF,EA3IA,CARyBtR,EAAQ,IAAS,cA0J1CmN,EAAOxe,QAAU2yH,C,+BC1JX,MAA6CthH,EAAQ,IAAnDgO,EAAiB,oBAAEC,EAAmB,sBAS9C,SAASszG,EAAiBj9G,EAAMjK,GAC9BA,EAAUxL,OAAOgT,OAAO,CACtB26B,WAAYvuB,EACZ3R,SAAU0R,GACT3T,GAEH,IAAMmnH,EAAgB,GACtBA,EAAchlF,WAAaniC,EAAQmiC,WACnCglF,EAAcllH,SAAWjC,EAAQiC,gBAC1BjC,EAAQmiC,kBACRniC,EAAQiC,SAEf,IAAM4xC,EAAoB7zC,EAAQ6zC,kBAIlC,cAHO7zC,EAAQ6zC,kBACfszE,EAAcl9G,KAAQzV,OAAOiH,KAAKuE,GAAStF,OAAS,IAAIsF,EAEjD6zC,EAAkBszE,GAAe9uH,MAAK,YAAe,SAAY,EAAZ,GAC9D,CA+HAya,EAAOxe,QAAU,CACf2X,MA/FF,SAA+BjM,GAC7B,OAAOknH,EAAiB,QAASlnH,EACnC,EA8FE4K,MA/DF,SAA+B5K,GAC7B,OAAOknH,EAAiB,QAASlnH,EACnC,E,mCChGA,8BAAS/C,EAAgBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAI7D,UAAU,oCAAwC,CACxJ,SAAS8D,EAAkBC,EAAQC,GAAS,IAAK,IAAI3C,EAAI,EAAGA,EAAI2C,EAAM5C,OAAQC,IAAK,CAAE,IAAI4C,EAAaD,EAAM3C,GAAI4C,EAAW7H,WAAa6H,EAAW7H,aAAc,EAAO6H,EAAW5H,cAAe,EAAU,UAAW4H,IAAYA,EAAW3H,UAAW,GAAMpB,OAAOI,eAAeyI,EAAQE,EAAWzI,IAAKyI,EAAa,CAAE,CAK5T,IAAI6pH,EAAc,WAChB,MAAO,CACLC,SAAU,+BACVC,QAAS,8BACTC,mBAAmB,EACnBptG,MAAO,SAAevb,GACpB,OAAO2L,KAAK4P,MAAMvb,EACpB,EACA4L,UAAWD,KAAKC,UAChBg9G,aAAc,SAAsBttE,EAAWplD,EAAK0rE,GAClD,OAbN,SAAyB3rE,EAAKC,EAAKE,GAAiK,OAApJF,KAAOD,EAAOL,OAAOI,eAAeC,EAAKC,EAAK,CAAEE,MAAOA,EAAOU,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBf,EAAIC,GAAOE,EAAgBH,CAAK,CAanMmrB,CAAgB,CAAC,EAAGlrB,EAAK0rE,GAAiB,GACnD,EACAinD,QAASA,IACTC,eAAkC,qBAAXppH,QAAiC,KACxDqpH,cAAe,CAAC,EAChBC,kBAAmB,CAAC,EACpBC,aAAa,EACbnnH,iBAAiB,EACjBonH,kBAAkB,EAClBC,eAAgB,CACdC,KAAM,OACNC,YAAa,cACb5qD,MAAO,WAGb,EACI6qD,EAAU,WACZ,SAASA,EAAQl4D,GACf,IAAIhwD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EkqH,EAAalqH,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtFhB,EAAgB9F,KAAM+wH,GACtB/wH,KAAK64D,SAAWA,EAChB74D,KAAK6I,QAAUA,EACf7I,KAAKgxH,WAAaA,EAClBhxH,KAAKN,KAAO,UACZM,KAAKsjB,KAAKu1C,EAAUhwD,EAASmoH,EAC/B,CAxCF,IAAsBhrH,EAAaM,EAAYC,EAyK7C,OAzKoBP,EAyCP+qH,EAzCoBzqH,EAyCX,CAAC,CACrB3I,IAAK,OACLE,MAAO,SAAcg7D,GACnB,IAAIvhD,EAAQtX,KACR6I,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EkqH,EAAalqH,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF9G,KAAK64D,SAAWA,EAChB74D,KAAK6I,QAAU4gC,YAAS5gC,EAAS7I,KAAK6I,SAAW,CAAC,EAAGonH,KACrDjwH,KAAKgxH,WAAaA,EACdhxH,KAAK64D,UAAY74D,KAAK6I,QAAQ0nH,gBAChCU,aAAY,WACV,OAAO35G,EAAM+wD,QACf,GAAGroE,KAAK6I,QAAQ0nH,eAEpB,GACC,CACD5yH,IAAK,YACLE,MAAO,SAAmBkqE,EAAW7O,EAAY7N,GAC/CrrD,KAAKkxH,SAASnpD,EAAWA,EAAW7O,EAAYA,EAAY7N,EAC9D,GACC,CACD1tD,IAAK,OACLE,MAAO,SAAci7D,EAAU/V,EAAWsI,GACxCrrD,KAAKkxH,SAAS,CAACp4D,GAAWA,EAAU,CAAC/V,GAAYA,EAAWsI,EAC9D,GACC,CACD1tD,IAAK,WACLE,MAAO,SAAkBkqE,EAAWopD,EAAkBj4D,EAAYk4D,EAAmB/lE,GACnF,IAAIyO,EAAS95D,KACTkwH,EAAWlwH,KAAK6I,QAAQqnH,SACS,oBAA1BlwH,KAAK6I,QAAQqnH,WACtBA,EAAWlwH,KAAK6I,QAAQqnH,SAASnoD,EAAW7O,KAE9Cg3D,EAAWx9E,YAAYw9E,IACdhvH,MAAK,SAAUmwH,GACtB,IAAKA,EAAkB,OAAOhmE,EAAS,KAAM,CAAC,GAC9C,IAAI3iD,EAAMoxD,EAAOjB,SAASc,aAAa8D,YAAY4zD,EAAkB,CACnE/5D,IAAKyQ,EAAUzqD,KAAK,KACpB65C,GAAI+B,EAAW57C,KAAK,OAEtBw8C,EAAOw3D,QAAQ5oH,EAAK2iD,EAAU8lE,EAAkBC,EAClD,GACF,GACC,CACDzzH,IAAK,UACLE,MAAO,SAAiB6K,EAAK2iD,EAAU0c,EAAW7O,GAChD,IAAI+D,EAASj9D,KACbA,KAAK6I,QAAQynH,QAAQtwH,KAAK6I,QAASH,OAAKxG,GAAW,SAAUxD,EAAKw2D,GAChE,GAAIA,IAAQA,EAAIq8D,QAAU,KAAOr8D,EAAIq8D,OAAS,MAAQr8D,EAAIq8D,QAAS,OAAOlmE,EAAS,kBAAoB3iD,EAAM,kBAAoBwsD,EAAIq8D,QAAQ,GAC7I,GAAIr8D,GAAOA,EAAIq8D,QAAU,KAAOr8D,EAAIq8D,OAAS,IAAK,OAAOlmE,EAAS,kBAAoB3iD,EAAM,kBAAoBwsD,EAAIq8D,QAAQ,GAC5H,IAAKr8D,GAAOx2D,GAAOA,EAAIqM,SAAWrM,EAAIqM,QAAQV,QAAQ,oBAAsB,EAAG,OAAOghD,EAAS,kBAAoB3iD,EAAM,KAAOhK,EAAIqM,SAAS,GAC7I,GAAIrM,EAAK,OAAO2sD,EAAS3sD,GAAK,GAC9B,IAAIylC,EAAKqtF,EACT,IAEIrtF,EADsB,kBAAb+wB,EAAIztD,KACPw1D,EAAOp0D,QAAQma,MAAMkyC,EAAIztD,KAAMsgE,EAAW7O,GAE1ChE,EAAIztD,IAId,CAFE,MAAO+E,GACPglH,EAAW,kBAAoB9oH,EAAM,UACvC,CACA,GAAI8oH,EAAU,OAAOnmE,EAASmmE,GAAU,GACxCnmE,EAAS,KAAMlnB,EACjB,GACF,GACC,CACDxmC,IAAK,SACLE,MAAO,SAAgBkqE,EAAWhlB,EAAWplD,EAAK0rE,EAAehe,GAC/D,IAAI2S,EAASh+D,KACb,GAAKA,KAAK6I,QAAQsnH,QAAlB,CACyB,kBAAdpoD,IAAwBA,EAAY,CAACA,IAChD,IAAI92D,EAAUjR,KAAK6I,QAAQwnH,aAAattE,EAAWplD,EAAK0rE,GACpDooD,EAAW,EACXC,EAAY,GACZC,EAAW,GACf5pD,EAAUxnE,SAAQ,SAAU+2D,GAC1B,IAAI64D,EAAUnyD,EAAOn1D,QAAQsnH,QACS,oBAA3BnyD,EAAOn1D,QAAQsnH,UACxBA,EAAUnyD,EAAOn1D,QAAQsnH,QAAQ74D,EAAKvU,IAExC,IAAIr6C,EAAMs1D,EAAOnF,SAASc,aAAa8D,YAAY0yD,EAAS,CAC1D74D,IAAKA,EACLH,GAAIpU,IAENib,EAAOn1D,QAAQynH,QAAQtyD,EAAOn1D,QAASH,EAAKuI,GAAS,SAAUxJ,EAAMytD,GACnEu8D,GAAY,EACZC,EAAU1uH,KAAKyE,GACfkqH,EAAS3uH,KAAKkyD,GACVu8D,IAAa1pD,EAAUxkE,QACrB8nD,GAAUA,EAASqmE,EAAWC,EAEtC,GACF,GAvBiC,CAwBnC,GACC,CACDh0H,IAAK,SACLE,MAAO,WACL,IAAIurE,EAASppE,KACT4xH,EAAiB5xH,KAAK64D,SACxB8D,EAAmBi1D,EAAej1D,iBAClCT,EAAgB01D,EAAe11D,cAC/B3zD,EAASqpH,EAAerpH,OACtBspH,EAAkBl1D,EAAiB7D,SACvC,IAAI+4D,GAAqD,WAAlCA,EAAgB16G,cAAvC,CAEA,IAAI6wD,EAAS,GACToD,EAAS,SAAgB9T,GAChB4E,EAAcI,mBAAmBhF,GACvC/2D,SAAQ,SAAUwgB,GACjBinD,EAAO39D,QAAQ0W,GAAK,GAAGinD,EAAOhlE,KAAK+d,EACzC,GACF,EACAqqD,EAAOymD,GACH7xH,KAAKgxH,WAAWxnD,SAASxpE,KAAKgxH,WAAWxnD,QAAQjpE,SAAQ,SAAUwgB,GACrE,OAAOqqD,EAAOrqD,EAChB,IACAinD,EAAOznE,SAAQ,SAAU+2D,GACvB8R,EAAO4nD,WAAW75D,GAAG52D,SAAQ,SAAU42D,GACrCwF,EAAiBqM,KAAK1R,EAAKH,EAAI,OAAQ,KAAM,MAAM,SAAUz4D,EAAK+I,GAC5D/I,GAAK6J,EAAO8C,KAAK,qBAAqB2L,OAAOmgD,EAAI,kBAAkBngD,OAAOsgD,EAAK,WAAY54D,IAC1FA,GAAO+I,GAAMc,EAAOU,IAAI,oBAAoB+N,OAAOmgD,EAAI,kBAAkBngD,OAAOsgD,GAAM7vD,GAC3Fk1D,EAAiB1Z,OAAO,GAAGjsC,OAAOsgD,EAAK,KAAKtgD,OAAOmgD,GAAKz4D,EAAK+I,EAC/D,GACF,GACF,GArByE,CAsB3E,IAvK8DnB,GAAYL,EAAkBD,EAAY1I,UAAWgJ,GAAiBC,GAAaN,EAAkBD,EAAaO,GAAclJ,OAAOI,eAAeuI,EAAa,YAAa,CAAEvH,UAAU,IAyKrPsyH,CACT,CA5Ic,GA6IdA,EAAQrxH,KAAO,UACAqxH,K,gCC9Kf,gBAGIe,EAUAC,EAQAC,EArBJ,yBAASzkF,EAAQ7vC,GAAkC,OAAO6vC,EAAU,mBAAqBxvC,QAAU,iBAAmBA,OAAOE,SAAW,SAAUP,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBK,QAAUL,EAAImG,cAAgB9F,QAAUL,IAAQK,OAAOT,UAAY,gBAAkBI,CAAK,EAAG6vC,EAAQ7vC,EAAM,CAI1T,oBAAVu0H,QAEPH,EADoB,qBAAXllH,GAA0BA,EAAOqlH,MAC/BrlH,EAAOqlH,MACS,qBAAX9qH,QAA0BA,OAAO8qH,MACtC9qH,OAAO8qH,MAEPA,OAIXz/E,gBACoB,qBAAX5lC,GAA0BA,EAAO6lC,eAC1Cs/E,EAAoBnlH,EAAO6lC,eACA,qBAAXtrC,QAA0BA,OAAOsrC,iBACjDs/E,EAAoB5qH,OAAOsrC,iBAIF,oBAAlBy/E,gBACa,qBAAXtlH,GAA0BA,EAAOslH,cAC1CF,EAAmBplH,EAAOslH,cACC,qBAAX/qH,QAA0BA,OAAO+qH,gBACjDF,EAAmB7qH,OAAO+qH,gBAGzBJ,IAAYK,GAAcJ,GAAsBC,IAAkBF,EAAWK,WAAqBA,GAC/E,oBAAbL,IAAyBA,OAAW5vH,GAC/C,IAAIkwH,EAAiB,SAAwB1pH,EAAK45C,GAChD,GAAIA,GAA8B,WAApB/U,EAAQ+U,GAAsB,CAC1C,IAAI+vE,EAAc,GAClB,IAAK,IAAIC,KAAahwE,EACpB+vE,GAAe,IAAMx1G,mBAAmBy1G,GAAa,IAAMz1G,mBAAmBylC,EAAOgwE,IAEvF,IAAKD,EAAa,OAAO3pH,EACzBA,EAAMA,IAA6B,IAAtBA,EAAI2B,QAAQ,KAAc,IAAM,KAAOgoH,EAAYvtH,MAAM,EACxE,CACA,OAAO4D,CACT,EACI6pH,EAAU,SAAiB7pH,EAAK8pH,EAAcnnE,GAChDymE,EAASppH,EAAK8pH,GAActxH,MAAK,SAAUsI,GACzC,IAAKA,EAASk5C,GAAI,OAAO2I,EAAS7hD,EAASipH,YAAc,QAAS,CAChElB,OAAQ/nH,EAAS+nH,SAEnB/nH,EAASgpD,OAAOtxD,MAAK,SAAUuG,GAC7B4jD,EAAS,KAAM,CACbkmE,OAAQ/nH,EAAS+nH,OACjB9pH,KAAMA,GAEV,IAAG+C,MAAM6gD,EACX,IAAG7gD,MAAM6gD,EACX,EACIqnE,GAAmB,EAyFRpC,IAdD,SAAiBznH,EAASH,EAAKuI,EAASo6C,GAMpD,MALuB,oBAAZp6C,IACTo6C,EAAWp6C,EACXA,OAAU/O,GAEZmpD,EAAWA,GAAY,WAAa,EAChCymE,EA/EiB,SAA0BjpH,EAASH,EAAKuI,EAASo6C,GAClExiD,EAAQ4nH,oBACV/nH,EAAM0pH,EAAe1pH,EAAKG,EAAQ4nH,oBAEpC,IAAI3nH,EAAU2gC,YAAS,CAAC,EAAoC,oBAA1B5gC,EAAQ2nH,cAA+B3nH,EAAQ2nH,gBAAkB3nH,EAAQ2nH,eACvGv/G,IAASnI,EAAQ,gBAAkB,oBACvC,IAAI6pH,EAA+C,oBAA3B9pH,EAAQ+nH,eAAgC/nH,EAAQ+nH,eAAe3/G,GAAWpI,EAAQ+nH,eACtG4B,EAAe/oF,YAAS,CAC1BjpC,OAAQyQ,EAAU,OAAS,MAC3B4wG,KAAM5wG,EAAUpI,EAAQwK,UAAUpC,QAAW/O,EAC7C4G,QAASA,GACR4pH,EAAmB,CAAC,EAAIC,GAC3B,IACEJ,EAAQ7pH,EAAK8pH,EAAcnnE,EAc7B,CAbE,MAAO7+C,GACP,IAAKmmH,GAAiD,IAAnCt1H,OAAOiH,KAAKquH,GAAYpvH,SAAiBiJ,EAAEzB,SAAWyB,EAAEzB,QAAQV,QAAQ,mBAAqB,EAC9G,OAAOghD,EAAS7+C,GAElB,IACEnP,OAAOiH,KAAKquH,GAAYpyH,SAAQ,SAAUulE,UACjC0sD,EAAa1sD,EACtB,IACAysD,EAAQ7pH,EAAK8pH,EAAcnnE,GAC3BqnE,GAAmB,CAGrB,CAFE,MAAOh0H,GACP2sD,EAAS3sD,EACX,CACF,CACF,CAoDWk0H,CAAiB/pH,EAASH,EAAKuI,EAASo6C,GAE7C7Y,eAAgD,oBAAlB0/E,cApDJ,SAAmCrpH,EAASH,EAAKuI,EAASo6C,GACpFp6C,GAAgC,WAArBs8B,EAAQt8B,KACrBA,EAAUmhH,EAAe,GAAInhH,GAASnM,MAAM,IAE1C+D,EAAQ4nH,oBACV/nH,EAAM0pH,EAAe1pH,EAAKG,EAAQ4nH,oBAEpC,IACE,IAAI5tG,GAEFA,EADEkvG,EACE,IAAIA,EAEJ,IAAIC,EAAiB,uBAEzB1T,KAAKrtG,EAAU,OAAS,MAAOvI,EAAK,GACjCG,EAAQ6nH,aACX7tG,EAAEgwG,iBAAiB,mBAAoB,kBAEzChwG,EAAEtZ,kBAAoBV,EAAQU,gBAC1B0H,GACF4R,EAAEgwG,iBAAiB,eAAgB,qCAEjChwG,EAAE8tG,kBACJ9tG,EAAE8tG,iBAAiB,oBAErB,IAAI9vG,EAAIhY,EAAQ2nH,cAEhB,GADA3vG,EAAiB,oBAANA,EAAmBA,IAAMA,EAElC,IAAK,IAAIrd,KAAKqd,EACZgC,EAAEgwG,iBAAiBrvH,EAAGqd,EAAErd,IAG5Bqf,EAAEiwG,mBAAqB,WACrBjwG,EAAEsgC,WAAa,GAAKkI,EAASxoC,EAAE0uG,QAAU,IAAM1uG,EAAE4vG,WAAa,KAAM,CAClElB,OAAQ1uG,EAAE0uG,OACV9pH,KAAMob,EAAEkwG,cAEZ,EACAlwG,EAAE05C,KAAKtrD,EAGT,CAFE,MAAOzE,GACP3B,SAAWA,QAAQ5B,IAAIuD,EACzB,CACF,CAWWwmH,CAA0BnqH,EAASH,EAAKuI,EAASo6C,QAE1DA,EAAS,IAAI7pD,MAAM,6CACrB,C,kDC/IA,oDAGIye,EAAM,GACNsyB,EAAOtyB,EAAI1f,QACXuE,EAAQmb,EAAInb,MAChB,SAAS2kC,EAAS/rC,GAQhB,OAPA60C,EAAK5yC,KAAKmF,EAAMnF,KAAKmH,UAAW,IAAI,SAAUuG,GAC5C,GAAIA,EACF,IAAK,IAAIoD,KAAQpD,OACGnL,IAAdxE,EAAI+S,KAAqB/S,EAAI+S,GAAQpD,EAAOoD,GAGtD,IACO/S,CACT,CAGA,IAAIu1H,EAAqB,wCAErBC,EAAkB,SAAyBpvH,EAAMS,EAAKsE,GACxD,IAAIi9D,EAAMj9D,GAAW,CAAC,EACtBi9D,EAAIzsD,KAAOysD,EAAIzsD,MAAQ,IACvB,IAAIxb,EAAQgf,mBAAmBtY,GAC3ByD,EAAM,GAAGgP,OAAOlT,EAAM,KAAKkT,OAAOnZ,GAEtC,GAAIioE,EAAIqtD,OAAS,EAAG,CAClB,IAAIA,EAASrtD,EAAIqtD,OAAS,EAC1B,GAAIhgH,OAAO7P,MAAM6vH,GAAS,MAAM,IAAI3xH,MAAM,6BAC1CwG,GAAO,aAAagP,OAAOqB,KAAKsC,MAAMw4G,GACxC,CAEA,GAAIrtD,EAAIstD,OAAQ,CACd,IAAKH,EAAmB9vG,KAAK2iD,EAAIstD,QAC/B,MAAM,IAAIjxH,UAAU,4BAGtB6F,GAAO,YAAYgP,OAAO8uD,EAAIstD,OAChC,CAEA,GAAIttD,EAAIzsD,KAAM,CACZ,IAAK45G,EAAmB9vG,KAAK2iD,EAAIzsD,MAC/B,MAAM,IAAIlX,UAAU,0BAGtB6F,GAAO,UAAUgP,OAAO8uD,EAAIzsD,KAC9B,CAEA,GAAIysD,EAAIutD,QAAS,CACf,GAAuC,oBAA5BvtD,EAAIutD,QAAQjsG,YACrB,MAAM,IAAIjlB,UAAU,6BAGtB6F,GAAO,aAAagP,OAAO8uD,EAAIutD,QAAQjsG,cACzC,CAKA,GAHI0+C,EAAIwtD,WAAUtrH,GAAO,cACrB89D,EAAIytD,SAAQvrH,GAAO,YAEnB89D,EAAI0tD,SAGN,OAFuC,kBAAjB1tD,EAAI0tD,SAAwB1tD,EAAI0tD,SAASr8G,cAAgB2uD,EAAI0tD,UAGjF,KAAK,EACHxrH,GAAO,oBACP,MAEF,IAAK,MACHA,GAAO,iBACP,MAEF,IAAK,SACHA,GAAO,oBACP,MAEF,IAAK,OACHA,GAAO,kBACP,MAEF,QACE,MAAM,IAAI7F,UAAU,8BAI1B,OAAO6F,CACT,EAEI4pG,EACM,SAAgB9tG,EAAMjG,EAAO41H,EAASL,GAC5C,IAAIM,EAAgB5sH,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CACtFuS,KAAM,IACNm6G,SAAU,UAGRC,IACFC,EAAcL,QAAU,IAAIpoH,KAC5ByoH,EAAcL,QAAQM,QAAQD,EAAcL,QAAQnuG,UAAsB,GAAVuuG,EAAe,MAG7EL,IAAQM,EAAcN,OAASA,GACnChsH,SAASwqG,OAASshB,EAAgBpvH,EAAM+Y,mBAAmBhf,GAAQ61H,EACrE,EAdE9hB,EAeI,SAAc9tG,GAIlB,IAHA,IAAI8vH,EAAS,GAAG58G,OAAOlT,EAAM,KACzB+vH,EAAKzsH,SAASwqG,OAAO1lG,MAAM,KAEtB1I,EAAI,EAAGA,EAAIqwH,EAAGtwH,OAAQC,IAAK,CAGlC,IAFA,IAAI+U,EAAIs7G,EAAGrwH,GAEY,MAAhB+U,EAAE1T,OAAO,IACd0T,EAAIA,EAAE6K,UAAU,EAAG7K,EAAEhV,QAGvB,GAA0B,IAAtBgV,EAAElO,QAAQupH,GAAe,OAAOr7G,EAAE6K,UAAUwwG,EAAOrwH,OAAQgV,EAAEhV,OACnE,CAEA,OAAO,IACT,EAKEuwH,EAAW,CACbhwH,KAAM,SACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAEJ,GAAIn9C,EAAQkrH,cAAoC,qBAAb3sH,SAA0B,CAC3D,IAAImR,EAAIq5F,EAAY/oG,EAAQkrH,cACxBx7G,IAAGytC,EAAQztC,EACjB,CAEA,OAAOytC,CACT,EACA8lB,kBAAmB,SAA2BxU,EAAKzuD,GAC7CA,EAAQkrH,cAAoC,qBAAb3sH,UACjCwqG,EAAc/oG,EAAQkrH,aAAcz8D,EAAKzuD,EAAQmrH,cAAenrH,EAAQorH,aAAcprH,EAAQ6qH,cAElG,GAGEQ,EAAc,CAChBpwH,KAAM,cACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAEJ,GAAsB,qBAAX7+C,OAAwB,CACjC,IAAIsmF,EAAStmF,OAAO0qG,SAASpkB,QAExBtmF,OAAO0qG,SAASpkB,QAAUtmF,OAAO0qG,SAAShoE,MAAQ1iC,OAAO0qG,SAAShoE,KAAKx/B,QAAQ,MAAQ,IAC1FojF,EAAStmF,OAAO0qG,SAAShoE,KAAKzmB,UAAUjc,OAAO0qG,SAAShoE,KAAKx/B,QAAQ,OAMvE,IAHA,IACIi4C,EADQmrC,EAAOrqE,UAAU,GACVlX,MAAM,KAEhB1I,EAAI,EAAGA,EAAI8+C,EAAO/+C,OAAQC,IAAK,CACtC,IAAIsrD,EAAMxM,EAAO9+C,GAAG6G,QAAQ,KAE5B,GAAIykD,EAAM,EACExM,EAAO9+C,GAAG4f,UAAU,EAAG0rC,KAErBjmD,EAAQsrH,oBAClBnuE,EAAQ1D,EAAO9+C,GAAG4f,UAAU0rC,EAAM,GAGxC,CACF,CAEA,OAAO9I,CACT,GAGEouE,EAAyB,KAEzBC,EAAwB,WAC1B,GAA+B,OAA3BD,EAAiC,OAAOA,EAE5C,IACEA,EAAoC,cAAXjtH,QAAkD,OAAxBA,OAAOuqG,aAC1D,IAAI4iB,EAAU,wBACdntH,OAAOuqG,aAAa6iB,QAAQD,EAAS,OACrCntH,OAAOuqG,aAAa8iB,WAAWF,EAGjC,CAFE,MAAO9nH,GACP4nH,GAAyB,CAC3B,CAEA,OAAOA,CACT,EAEI1iB,EAAe,CACjB5tG,KAAM,eACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAEJ,GAAIn9C,EAAQ4rH,oBAAsBJ,IAAyB,CACzD,IAAI/8D,EAAMnwD,OAAOuqG,aAAagjB,QAAQ7rH,EAAQ4rH,oBAC1Cn9D,IAAKtR,EAAQsR,EACnB,CAEA,OAAOtR,CACT,EACA8lB,kBAAmB,SAA2BxU,EAAKzuD,GAC7CA,EAAQ4rH,oBAAsBJ,KAChCltH,OAAOuqG,aAAa6iB,QAAQ1rH,EAAQ4rH,mBAAoBn9D,EAE5D,GAGEq9D,EAA2B,KAE3BC,EAA0B,WAC5B,GAAiC,OAA7BD,EAAmC,OAAOA,EAE9C,IACEA,EAAsC,cAAXxtH,QAAoD,OAA1BA,OAAO0tH,eAC5D,IAAIP,EAAU,wBACdntH,OAAO0tH,eAAeN,QAAQD,EAAS,OACvCntH,OAAO0tH,eAAeL,WAAWF,EAGnC,CAFE,MAAO9nH,GACPmoH,GAA2B,CAC7B,CAEA,OAAOA,CACT,EAEIE,EAAiB,CACnB/wH,KAAM,iBACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAEJ,GAAIn9C,EAAQisH,sBAAwBF,IAA2B,CAC7D,IAAIt9D,EAAMnwD,OAAO0tH,eAAeH,QAAQ7rH,EAAQisH,sBAC5Cx9D,IAAKtR,EAAQsR,EACnB,CAEA,OAAOtR,CACT,EACA8lB,kBAAmB,SAA2BxU,EAAKzuD,GAC7CA,EAAQisH,sBAAwBF,KAClCztH,OAAO0tH,eAAeN,QAAQ1rH,EAAQisH,qBAAsBx9D,EAEhE,GAGEy9D,EAAc,CAChBjxH,KAAM,YACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAAQ,GAEZ,GAAyB,qBAAdl3C,UAA2B,CACpC,GAAIA,UAAUi5D,UAEZ,IAAK,IAAIvkE,EAAI,EAAGA,EAAIsL,UAAUi5D,UAAUxkE,OAAQC,IAC9CwiD,EAAMhjD,KAAK8L,UAAUi5D,UAAUvkE,IAI/BsL,UAAUkmH,cACZhvE,EAAMhjD,KAAK8L,UAAUkmH,cAGnBlmH,UAAUgqD,UACZ9S,EAAMhjD,KAAK8L,UAAUgqD,SAEzB,CAEA,OAAO9S,EAAMziD,OAAS,EAAIyiD,OAAQ9jD,CACpC,GAGE+yH,EAAU,CACZnxH,KAAM,UACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EACAivE,EAAUpsH,EAAQosH,UAAgC,qBAAb7tH,SAA2BA,SAASu+B,gBAAkB,MAM/F,OAJIsvF,GAA2C,oBAAzBA,EAAQ3wE,eAC5B0B,EAAQivE,EAAQ3wE,aAAa,SAGxB0B,CACT,GAGE3sC,EAAO,CACTvV,KAAM,OACNmlD,OAAQ,SAAgBpgD,GACtB,IAAIm9C,EAEJ,GAAsB,qBAAX7+C,OAAwB,CACjC,IAAI2xD,EAAW3xD,OAAO0qG,SAASqjB,SAASjuH,MAAM,mBAE9C,GAAI6xD,aAAoBlrD,MACtB,GAA2C,kBAAhC/E,EAAQssH,oBAAkC,CACnD,GAAqD,kBAA1Cr8D,EAASjwD,EAAQssH,qBAC1B,OAGFnvE,EAAQ8S,EAASjwD,EAAQssH,qBAAqBh9G,QAAQ,IAAK,GAC7D,MACE6tC,EAAQ8S,EAAS,GAAG3gD,QAAQ,IAAK,GAGvC,CAEA,OAAO6tC,CACT,GAGEovE,EAAY,CACdtxH,KAAM,YACNmlD,OAAQ,SAAgBpgD,GAEtB,IAAIwsH,EAAuE,kBAArCxsH,EAAQwsH,yBAAwCxsH,EAAQwsH,yBAA2B,EAAI,EAIzHv8D,EAA6B,qBAAX3xD,QAA0BA,OAAO0qG,UAAY1qG,OAAO0qG,SAASyjB,UAAYnuH,OAAO0qG,SAASyjB,SAASruH,MAAM,0DAE9H,GAAK6xD,EAEL,OAAOA,EAASu8D,EAClB,GAkBF,IAAIE,EAAuB,WACzB,SAASA,EAAQ18D,GACf,IAAIhwD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnFhB,YAAgB9F,KAAMu1H,GAEtBv1H,KAAKN,KAAO,mBACZM,KAAKw1H,UAAY,CAAC,EAClBx1H,KAAKsjB,KAAKu1C,EAAUhwD,EACtB,CA2DA,OAzDAxC,YAAakvH,EAAS,CAAC,CACrB53H,IAAK,OACLE,MAAO,SAAcg7D,GACnB,IAAIhwD,EAAU/B,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E2uH,EAAc3uH,UAAUvD,OAAS,QAAsBrB,IAAjB4E,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACvF9G,KAAK64D,SAAWA,EAChB74D,KAAK6I,QAAU4gC,EAAS5gC,EAAS7I,KAAK6I,SAAW,CAAC,EA/B/C,CACL6sH,MAAO,CAAC,cAAe,SAAU,eAAgB,iBAAkB,YAAa,WAChFvB,kBAAmB,MACnBJ,aAAc,UACdU,mBAAoB,aACpBK,qBAAsB,aAEtBa,OAAQ,CAAC,gBACTC,gBAAiB,CAAC,YAyBZ51H,KAAK6I,QAAQgtH,qBAAoB71H,KAAK6I,QAAQssH,oBAAsBn1H,KAAK6I,QAAQgtH,oBACrF71H,KAAKy1H,YAAcA,EACnBz1H,KAAK81H,YAAYhC,GACjB9zH,KAAK81H,YAAY5B,GACjBl0H,KAAK81H,YAAYpkB,GACjB1xG,KAAK81H,YAAYjB,GACjB70H,KAAK81H,YAAYf,GACjB/0H,KAAK81H,YAAYb,GACjBj1H,KAAK81H,YAAYz8G,GACjBrZ,KAAK81H,YAAYV,EACnB,GACC,CACDz3H,IAAK,cACLE,MAAO,SAAqBk4H,GAC1B/1H,KAAKw1H,UAAUO,EAASjyH,MAAQiyH,CAClC,GACC,CACDp4H,IAAK,SACLE,MAAO,SAAgBm4H,GACrB,IAAI1+G,EAAQtX,KAEPg2H,IAAgBA,EAAiBh2H,KAAK6I,QAAQ6sH,OACnD,IAAIO,EAAW,GASf,OARAD,EAAez1H,SAAQ,SAAU21H,GAC/B,GAAI5+G,EAAMk+G,UAAUU,GAAe,CACjC,IAAIjtE,EAAS3xC,EAAMk+G,UAAUU,GAAcjtE,OAAO3xC,EAAMzO,SAEpDogD,GAA4B,kBAAXA,IAAqBA,EAAS,CAACA,IAChDA,IAAQgtE,EAAWA,EAASj/G,OAAOiyC,GACzC,CACF,IACIjpD,KAAK64D,SAASqD,cAAc2P,sBAA8BoqD,EAEvDA,EAAS1yH,OAAS,EAAI0yH,EAAS,GAAK,IAC7C,GACC,CACDt4H,IAAK,oBACLE,MAAO,SAA2By5D,EAAKq+D,GACrC,IAAI77D,EAAS95D,KAER21H,IAAQA,EAAS31H,KAAK6I,QAAQ8sH,QAC9BA,IACD31H,KAAK6I,QAAQ+sH,iBAAmB51H,KAAK6I,QAAQ+sH,gBAAgBvrH,QAAQitD,IAAQ,GACjFq+D,EAAOp1H,SAAQ,SAAU41H,GACnBr8D,EAAO07D,UAAUW,IAAYr8D,EAAO07D,UAAUW,GAAWrqD,kBAAkBxU,EAAKwC,EAAOjxD,QAC7F,IACF,KAGK0sH,CACT,CArE2B,GAuE3BA,EAAQ71H,KAAO,kB,qBC5Zfic,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,OAAQgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,w2B,gBCAjF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,oV,gBCAxF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,OAAQgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,mH,gBCAjF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,aAAcgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4P,gBCAvF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,iQ,gBCAxF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,WAAYgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,+P,gBCArF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,aAAcgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4P,gBCAvF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,OAAQgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,mP,gBCAjF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,QAASgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,wH,gBCAlF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,UAAWgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,skB,gBCApF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,qL,gBCAxF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,SAAUgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,yE,gBCAnF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,OAAQgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,muC,gBCAjF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,SAAUgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,s+B,gBCAnF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,QAASgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,6R,gBCAlF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,sgB,gBCAxF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,aAAcgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,md,gBCAvF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,mBAAoBgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,orB,gBCA7F/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,SAAUgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,ggB,gBCAnF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,OAAQgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,wT,gBCAjF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,SAAUgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,4J,gBCAnF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,yBAA0BgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,+O,gBCAnG/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,WAAYgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uf,gBCArF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,QAASgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,ma,gBCAlF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,QAASgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,sR,gBCAlF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,+hB,gBCAxF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,UAAWgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,ixB,gBCApF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,WAAYgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,+P,gBCArF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,WAAYgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,od,gBCArF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,MAAOgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,iiB,gBCAhF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,QAASgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,mgB,gBCAlF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,SAAUgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,0V,gBCAnF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,YAAagC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,yoC,gBCAtF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,aAAcgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,6L,gBCAvF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,UAAWgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,gO,gBCApF/qC,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,gBAAiBgC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,0d,kNCA3E,SAAS,EAAgBhpD,EAAKC,EAAKE,GAYhD,OAXIF,KAAOD,EACTL,OAAOI,eAAeC,EAAKC,EAAK,CAC9BE,MAAOA,EACPU,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZf,EAAIC,GAAOE,EAGNH,CACT,CCbO,IC0BMoH,ECfP+D,ECRFutH,ECuKAC,EAQE98G,EAcF+8G,EJhMSC,EAAY,CAAC,EACbC,EAAY,GACZC,EAAqB,oECO3B,SAASpmH,EAAO3S,EAAKyI,OAEtB,IAAI3C,KAAK2C,EAAOzI,EAAI8F,GAAK2C,EAAM3C,UACP9F,EASvB,SAASg5H,EAAWpqH,OACtBk+C,EAAal+C,EAAKk+C,WAClBA,GAAYA,EAAWmE,YAAYriD,GEVxC,SAAgBm0C,EAAc/gD,EAAMyG,EAAOigD,OAEzCzoD,EACAg5H,EACAnzH,EAHGozH,EAAkB,CAAC,EAAD,IAIjBpzH,KAAK2C,EACA,OAAL3C,EAAY7F,EAAMwI,EAAM3C,GACd,OAALA,EAAYmzH,EAAMxwH,EAAM3C,GAC5BozH,EAAgBpzH,GAAK2C,EAAM3C,MAG7BsD,UAAUvD,OAAS,IACtBqzH,EAAgBxwE,SACft/C,UAAUvD,OAAS,EAAIuB,EAAMnF,KAAKmH,UAAW,GAAKs/C,GAKjC,mBAAR1mD,GAA2C,MAArBA,EAAKm3H,iBAChCrzH,KAAK9D,EAAKm3H,sBACVD,EAAgBpzH,KACnBozH,EAAgBpzH,GAAK9D,EAAKm3H,aAAarzH,WAKnCszH,EAAYp3H,EAAMk3H,EAAiBj5H,EAAKg5H,EAAK,MAe9C,SAASG,EAAYp3H,EAAMyG,EAAOxI,EAAKg5H,EAAKI,OAG5CC,EAAQ,CACbt3H,OACAyG,QACAxI,MACAg5H,UACW,KAAAM,GACF,KAAAC,IACD,EAAAC,IACF,KAAAC,WAKIl1H,IACE,KAAAm1H,IACA,KACZxzH,iBAAaA,EAAA3B,IACU,MAAZ60H,IAAqBX,EAAUW,UAI3B,MAAZA,GAAqC,MAAjBluH,EAAQmuH,OAAenuH,EAAQmuH,MAAMA,GAEtDA,EAOD,SAASM,EAASnxH,UACjBA,EAAMigD,SC5EP,SAASmxE,EAAUpxH,EAAO/G,QAC3B+G,MAAQA,OACR/G,QAAUA,EAyET,SAASo4H,EAAcR,EAAOS,MAClB,MAAdA,SAEIT,KACJQ,EAAcR,KAAeA,SAAwB3sH,QAAQ2sH,GAAS,GACtE,aAGAU,EACGD,EAAaT,MAAgBzzH,OAAQk0H,OAG5B,OAFfC,EAAUV,MAAgBS,KAEa,MAAhBC,aAIfA,YASmB,mBAAdV,EAAMt3H,KAAqB83H,EAAcR,GAAS,KAuCjE,SAASW,EAAwBX,GAAjC,IAGWxzH,EACJsgD,KAHyB,OAA1BkzE,EAAQA,OAA8C,MAApBA,MAA0B,KAChEA,MAAaA,MAAiB7/B,KAAO,KAC5B3zF,EAAI,EAAGA,EAAIwzH,MAAgBzzH,OAAQC,OAE9B,OADTsgD,EAAQkzE,MAAgBxzH,KACO,MAAdsgD,MAAoB,CACxCkzE,MAAaA,MAAiB7/B,KAAOrzC,mBAKhC6zE,EAAwBX,IAoC1B,SAASY,EAAcr/G,KAE1BA,QACAA,WACD89G,EAAcrzH,KAAKuV,KAClBpM,SACFmqH,IAAiBztH,EAAQgvH,sBAEzBvB,EAAeztH,EAAQgvH,oBACNt+G,GAAOpN,GAK1B,SAASA,YACJ27D,EACI37D,MAAyBkqH,EAAc9yH,QAC9CukE,EAAQuuD,EAAcx+G,MAAK,SAAC+I,EAAG2I,UAAM3I,UAAkB2I,aACvD8sG,EAAgB,GAGhBvuD,EAAM6U,MAAK,YApGb,IAAyB7xC,EAMnBgtF,EACEC,EANHf,EACHgB,EACAC,EAkGK1/G,QAnGLy/G,GADGhB,GADoBlsF,EAqGQvyB,aAlG/B0/G,EAAYntF,SAGRgtF,EAAc,IACZC,EAAW1nH,EAAO,CAAC,EAAG2mH,QACPA,MAAkB,EAEvC9vG,EACC+wG,EACAjB,EACAe,EACAjtF,eACAmtF,EAAUC,gBACU,MAApBlB,MAA2B,CAACgB,GAAU,KACtCF,EACU,MAAVE,EAAiBR,EAAcR,GAASgB,EACxChB,OAEDmB,EAAWL,EAAad,GAEpBA,OAAcgB,GACjBL,EAAwBX,QCtH3B,SAAgBoB,EACfH,EACAI,EACAC,EACAC,EACAC,EACAC,EACAC,EACAZ,EACAE,EACAW,GAVD,IAYKn1H,EAAG06B,EAAG65F,EAAUa,EAAYC,EAAQC,EAAeC,EAInDC,EAAeT,GAAkBA,OAA6B/B,EAE9DyC,EAAoBD,EAAYz1H,WAEpC+0H,MAA2B,GACtB90H,EAAI,EAAGA,EAAI60H,EAAa90H,OAAQC,OAgDlB,OA5CjBo1H,EAAaN,MAAyB90H,GADrB,OAFlBo1H,EAAaP,EAAa70H,KAEqB,kBAAdo1H,EACW,KAMtB,iBAAdA,GACc,iBAAdA,GAEc,iBAAdA,EAEoC9B,EAC1C,KACA8B,EACA,KACA,KACAA,GAEShrH,MAAMC,QAAQ+qH,GACmB9B,EAC1CQ,EACA,CAAElxE,SAAUwyE,GACZ,KACA,KACA,MAESA,MAAoB,EAKa9B,EAC1C8B,EAAWl5H,KACXk5H,EAAWzyH,MACXyyH,EAAWj7H,IACX,KACAi7H,OAG0CA,OAS5CA,KAAqBN,EACrBM,MAAoBN,MAAwB,EAS9B,QAHdP,EAAWiB,EAAYx1H,KAIrBu0H,GACAa,EAAWj7H,KAAOo6H,EAASp6H,KAC3Bi7H,EAAWl5H,OAASq4H,EAASr4H,KAE9Bs5H,EAAYx1H,eAAKtB,IAIZg8B,EAAI,EAAGA,EAAI+6F,EAAmB/6F,IAAK,KACvC65F,EAAWiB,EAAY96F,KAKtB06F,EAAWj7H,KAAOo6H,EAASp6H,KAC3Bi7H,EAAWl5H,OAASq4H,EAASr4H,KAC5B,CACDs5H,EAAY96F,UAAKh8B,MAGlB61H,EAAW,KAOb7wG,EACC+wG,EACAW,EALDb,EAAWA,GAAYxB,EAOtBiC,EACAC,EACAC,EACAZ,EACAE,EACAW,GAGDE,EAASD,OAEJ16F,EAAI06F,EAAWjC,MAAQoB,EAASpB,KAAOz4F,IACtC66F,IAAMA,EAAO,IACdhB,EAASpB,KAAKoC,EAAK/1H,KAAK+0H,EAASpB,IAAK,KAAMiC,GAChDG,EAAK/1H,KAAKk7B,EAAG06F,OAAyBC,EAAQD,IAGjC,MAAVC,GACkB,MAAjBC,IACHA,EAAgBD,GAIU,mBAAnBD,EAAWl5H,MAClBk5H,QAAyBb,MAEzBa,MAAsBZ,EAASkB,EAC9BN,EACAZ,EACAC,GAGDD,EAASmB,EACRlB,EACAW,EACAb,EACAiB,EACAH,EACAb,GAIgC,mBAAvBM,EAAe54H,OAQzB44H,MAA0BN,IAG3BA,GACAD,OAAiBC,GACjBA,EAAOxtE,YAAcytE,IAIrBD,EAASR,EAAcO,QAIzBO,MAAsBQ,EAGjBt1H,EAAIy1H,EAAmBz1H,KACL,MAAlBw1H,EAAYx1H,KAEgB,mBAAvB80H,EAAe54H,MACC,MAAvBs5H,EAAYx1H,QACZw1H,EAAYx1H,QAAW80H,QAKvBA,MAA0Bd,EAAce,EAAgB/0H,EAAI,IAG7D41H,EAAQJ,EAAYx1H,GAAIw1H,EAAYx1H,QAKlCu1H,MACEv1H,EAAI,EAAGA,EAAIu1H,EAAKx1H,OAAQC,IAC5B61H,EAASN,EAAKv1H,GAAIu1H,IAAOv1H,GAAIu1H,IAAOv1H,IAKvC,SAAS01H,EAAgBN,EAAYZ,EAAQC,OAA7C,IAKMjB,EAHDz+G,EAAIqgH,MACJpnC,EAAM,EACHj5E,GAAKi5E,EAAMj5E,EAAEhV,OAAQiuF,KACvBwlC,EAAQz+G,EAAEi5E,MAMbwlC,KAAgB4B,EAGfZ,EADwB,mBAAdhB,EAAMt3H,KACPw5H,EAAgBlC,EAAOgB,EAAQC,GAE/BkB,EACRlB,EACAjB,EACAA,EACAz+G,EACAy+G,MACAgB,WAMGA,EASD,SAASsB,EAAalzE,EAAUx7C,UACtCA,EAAMA,GAAO,GACG,MAAZw7C,GAAuC,kBAAZA,IACpBx4C,MAAMC,QAAQu4C,GACxBA,EAASu2B,MAAK,YACb28C,EAAax1E,EAAOl5C,MAGrBA,EAAI5H,KAAKojD,IAEHx7C,EAGR,SAASuuH,EACRlB,EACAW,EACAb,EACAiB,EACAH,EACAb,GAND,IAQKuB,EAuBGC,EAAiBt7F,cAtBpB06F,MAIHW,EAAUX,MAMVA,kBACM,GACM,MAAZb,GACAc,GAAUb,GACW,MAArBa,EAAOruE,WAEPhrB,EAAO,GAAc,MAAVw4F,GAAkBA,EAAOxtE,aAAeytE,EAClDA,EAAU5oE,YAAYwpE,GACtBU,EAAU,SACJ,KAGDC,EAASxB,EAAQ95F,EAAI,GACxBs7F,EAASA,EAAOtqE,cAAgBhxB,EAAI86F,EAAYz1H,OACjD26B,GAAK,KAEDs7F,GAAUX,QACPr5F,EAGRy4F,EAAUj0E,aAAa60E,EAAQb,GAC/BuB,EAAUvB,kBAORuB,EACMA,EAEAV,EAAO3pE,YCvSlB,SAASuqE,EAAS/zF,EAAO/nC,EAAKE,GACd,MAAXF,EAAI,GACP+nC,EAAMg0F,YAAY/7H,EAAKE,GAEvB6nC,EAAM/nC,GADa,MAATE,EACG,GACa,iBAATA,GAAqB44H,EAAmBtzG,KAAKxlB,GACjDE,EAEAA,EAAQ,KAYhB,SAAS67H,EAAY9vF,EAAK9lC,EAAMjG,EAAO87H,EAAUlB,GAAjD,IACFmB,EAEJnsH,EAAG,GAAa,UAAT3J,KACc,iBAATjG,EACV+rC,EAAIlE,MAAMm0F,QAAUh8H,MACd,IACiB,iBAAZ87H,IACV/vF,EAAIlE,MAAMm0F,QAAUF,EAAW,IAG5BA,MACE71H,KAAQ61H,EACN97H,GAASiG,KAAQjG,GACtB47H,EAAS7vF,EAAIlE,MAAO5hC,EAAM,OAKzBjG,MACEiG,KAAQjG,EACP87H,GAAY97H,EAAMiG,KAAU61H,EAAS71H,IACzC21H,EAAS7vF,EAAIlE,MAAO5hC,EAAMjG,EAAMiG,SAOhC,GAAgB,MAAZA,EAAK,IAA0B,MAAZA,EAAK,GAChC81H,EAAa91H,KAAUA,EAAOA,EAAKqU,QAAQ,WAAY,KAGxBrU,EAA3BA,EAAKqT,gBAAiByyB,EAAY9lC,EAAKqT,cAAcrS,MAAM,GACnDhB,EAAKgB,MAAM,GAElB8kC,EAAI5F,IAAY4F,EAAI5F,EAAa,CAAC,GACvC4F,EAAI5F,EAAWlgC,EAAO81H,GAAc/7H,EAEhCA,EACE87H,GAEJ/vF,EAAI/vB,iBAAiB/V,EADL81H,EAAaE,EAAoBC,EACbH,GAIrChwF,EAAItuB,oBAAoBxX,EADR81H,EAAaE,EAAoBC,EACVH,QAElC,GAAa,4BAAT91H,EAAoC,IAC1C20H,EAIH30H,EAAOA,EAAKqU,QAAQ,aAAc,KAAKA,QAAQ,SAAU,UACnD,GACG,SAATrU,GACS,SAATA,GACS,SAATA,GAGS,aAATA,GACS,aAATA,GACAA,KAAQ8lC,MAGPA,EAAI9lC,GAAiB,MAATjG,EAAgB,GAAKA,QAE3B4P,CACEjB,CAAP,MAAOA,IAUW,mBAAV3O,IAGD,MAATA,SACCA,GAAgC,MAAZiG,EAAK,IAA0B,MAAZA,EAAK,IAE7C8lC,EAAI6Z,aAAa3/C,EAAMjG,GAEvB+rC,EAAIowF,gBAAgBl2H,KAUvB,SAASi2H,EAAWvtH,QACdw3B,EAAWx3B,EAAE9M,MAAOA,GAAOmJ,EAAQ8M,MAAQ9M,EAAQ8M,MAAMnJ,GAAKA,GAGpE,SAASstH,EAAkBttH,QACrBw3B,EAAWx3B,EAAE9M,MAAOA,GAAMmJ,EAAQ8M,MAAQ9M,EAAQ8M,MAAMnJ,GAAKA,GCpInE,SAAgB0a,EACf+wG,EACAgC,EACAlC,EACAS,EACAC,EACAC,EACAZ,EACAE,EACAW,GATD,IAWKnnC,EAoBEj5E,EAAG2hH,EAAOC,EAAUC,EAAUC,EAAUC,EACxCC,EAKAC,EACAC,EAqIApC,EA/JLqC,EAAUT,EAASv6H,iBAIhBu6H,EAASp2H,YAA2B,OAAO,KAGpB,MAAvBk0H,QACHY,EAAcZ,MACdC,EAASiC,MAAgBlC,MAEzBkC,MAAsB,KACtBvB,EAAoB,CAACV,KAGjBxmC,EAAM3oF,QAAgB2oF,EAAIyoC,OAG9Bz6F,EAAO,GAAsB,mBAAXk7F,EAAuB,IAEpCH,EAAWN,EAAS9zH,MAKpBq0H,GADJhpC,EAAMkpC,EAAQC,cACQnC,EAAchnC,OAChCipC,EAAmBjpC,EACpBgpC,EACCA,EAASr0H,MAAMtI,MACf2zF,KACDgnC,EAGCT,MAEHuC,GADA/hH,EAAI0hH,MAAsBlC,UAC0Bx/G,OAGhD,cAAemiH,GAAWA,EAAQp9H,UAAUqkF,OAE/Cs4C,MAAsB1hH,EAAI,IAAImiH,EAAQH,EAAUE,IAGhDR,MAAsB1hH,EAAI,IAAIg/G,EAAUgD,EAAUE,GAClDliH,EAAE1U,YAAc62H,EAChBniH,EAAEopE,OAASi5C,GAERJ,GAAUA,EAASvuG,IAAI1T,GAE3BA,EAAEpS,MAAQo0H,EACLhiH,EAAEhX,QAAOgX,EAAEhX,MAAQ,CAAC,GACzBgX,EAAEnZ,QAAUq7H,EACZliH,MAAmBigH,EACnB0B,EAAQ3hH,SACRA,MAAqB,IAIF,MAAhBA,QACHA,MAAeA,EAAEhX,OAEsB,MAApCm5H,EAAQG,2BACPtiH,OAAgBA,EAAEhX,QACrBgX,MAAelI,EAAO,CAAC,EAAGkI,QAG3BlI,EACCkI,MACAmiH,EAAQG,yBAAyBN,EAAUhiH,SAI7C4hH,EAAW5hH,EAAEpS,MACbi0H,EAAW7hH,EAAEhX,MAGT24H,EAEkC,MAApCQ,EAAQG,0BACgB,MAAxBtiH,EAAEuiH,oBAEFviH,EAAEuiH,qBAGwB,MAAvBviH,EAAEwiH,mBACLxiH,MAAmBvV,KAAKuV,EAAEwiH,uBAErB,IAE+B,MAApCL,EAAQG,0BACRN,IAAaJ,GACkB,MAA/B5hH,EAAEyiH,2BAEFziH,EAAEyiH,0BAA0BT,EAAUE,IAIpCliH,OAC0B,MAA3BA,EAAE0iH,4BACF1iH,EAAE0iH,sBACDV,EACAhiH,MACAkiH,IAEFR,QAAuBlC,MACtB,CACDx/G,EAAEpS,MAAQo0H,EACVhiH,EAAEhX,MAAQgX,MAEN0hH,QAAuBlC,QAAoBx/G,UAC/CA,MAAW0hH,EACXA,MAAgBlC,MAChBkC,MAAqBlC,MACrBkC,MAAmB15H,SAAQ,YACtBy2H,IAAOA,KAAgBiD,MAExB1hH,MAAmBhV,QACtBu0H,EAAY90H,KAAKuV,SAGZinB,EAGsB,MAAzBjnB,EAAE2iH,qBACL3iH,EAAE2iH,oBAAoBX,EAAUhiH,MAAckiH,GAGnB,MAAxBliH,EAAE4iH,oBACL5iH,MAAmBvV,MAAK,WACvBuV,EAAE4iH,mBAAmBhB,EAAUC,EAAUC,MAK5C9hH,EAAEnZ,QAAUq7H,EACZliH,EAAEpS,MAAQo0H,EACVhiH,EAAEhX,MAAQgX,OAELi5E,EAAM3oF,QAAkB2oF,EAAIyoC,GAEjC1hH,SACAA,MAAW0hH,EACX1hH,MAAe0/G,EAEfzmC,EAAMj5E,EAAEopE,OAAOppE,EAAEpS,MAAOoS,EAAEhX,MAAOgX,EAAEnZ,SAGnCmZ,EAAEhX,MAAQgX,MAEe,MAArBA,EAAE6iH,kBACL5C,EAAgBnoH,EAAOA,EAAO,CAAC,EAAGmoH,GAAgBjgH,EAAE6iH,oBAGhDlB,GAAsC,MAA7B3hH,EAAE8iH,0BACfhB,EAAW9hH,EAAE8iH,wBAAwBlB,EAAUC,IAK5C/B,EADI,MAAP7mC,GAAeA,EAAI9xF,OAAS43H,GAAuB,MAAX9lC,EAAI7zF,IACL6zF,EAAIrrF,MAAMigD,SAAWorC,EAE7D4mC,EACCH,EACArqH,MAAMC,QAAQwqH,GAAgBA,EAAe,CAACA,GAC9C4B,EACAlC,EACAS,EACAC,EACAC,EACAZ,EACAE,EACAW,GAGDpgH,EAAE4+E,KAAO8iC,MAGTA,MAAsB,KAElB1hH,MAAmBhV,QACtBu0H,EAAY90H,KAAKuV,GAGd+hH,IACH/hH,MAAkBA,KAAyB,MAG5CA,QAAW,MAEU,MAArBmgH,GACAuB,QAAuBlC,OAEvBkC,MAAqBlC,MACrBkC,MAAgBlC,OAEhBkC,MAgEH,SACCrwF,EACAqwF,EACAlC,EACAS,EACAC,EACAC,EACAZ,EACAa,GARD,IAoBS70E,EAsDHw3E,EACAC,EAjEDpB,EAAWpC,EAAS5xH,MACpBo0H,EAAWN,EAAS9zH,MACpBq1H,EAAWvB,EAASv6H,KACpB8D,EAAI,KAGS,QAAbg4H,IAAoB/C,MAEC,MAArBC,OACIl1H,EAAIk1H,EAAkBn1H,OAAQC,QAC9BsgD,EAAQ40E,EAAkBl1H,KAO/B,iBAAkBsgD,KAAY03E,IAC7BA,EAAW13E,EAAM23E,YAAcD,EAA8B,IAAnB13E,EAAM03E,UAChD,CACD5xF,EAAMka,EACN40E,EAAkBl1H,GAAK,cAMf,MAAPomC,EAAa,IACC,OAAb4xF,SAEIp0H,SAASs0H,eAAenB,GAI/B3wF,EADG6uF,EACGrxH,SAASu0H,gBACd,6BAEAH,GAGKp0H,SAASq5C,cAEd+6E,EACAjB,EAASqB,IAAMrB,GAKjB7B,EAAoB,KAEpBC,IAAc,IAGE,OAAb6C,EAECrB,IAAaI,GAAc5B,GAAe/uF,EAAIniC,OAAS8yH,IAC1D3wF,EAAIniC,KAAO8yH,OAEN,IAEN7B,EAAoBA,GAAqB5zH,EAAMnF,KAAKiqC,EAAIga,YAIpD03E,GAFJnB,EAAWpC,EAAS5xH,OAASowH,GAENsF,wBACnBN,EAAUhB,EAASsB,yBAIlBlD,EAAa,IAGQ,MAArBD,MACHyB,EAAW,CAAC,EACP32H,EAAI,EAAGA,EAAIomC,EAAIyc,WAAW9iD,OAAQC,IACtC22H,EAASvwF,EAAIyc,WAAW7iD,GAAGM,MAAQ8lC,EAAIyc,WAAW7iD,GAAG3F,OAInD09H,GAAWD,KAGZC,IACED,GAAWC,UAAkBD,UAC/BC,WAAmB3xF,EAAI8Z,aAExB9Z,EAAI8Z,UAAa63E,GAAWA,UAAmB,QD3X7C,SAAmB3xF,EAAK2wF,EAAUJ,EAAU1B,EAAOqD,OACrDt4H,MAECA,KAAK22H,EACC,aAAN32H,GAA0B,QAANA,GAAiBA,KAAK+2H,GAC7Cb,EAAY9vF,EAAKpmC,EAAG,KAAM22H,EAAS32H,GAAIi1H,OAIpCj1H,KAAK+2H,EAENuB,GAAiC,mBAAfvB,EAAS/2H,IACvB,aAANA,GACM,QAANA,GACM,UAANA,GACM,YAANA,GACA22H,EAAS32H,KAAO+2H,EAAS/2H,IAEzBk2H,EAAY9vF,EAAKpmC,EAAG+2H,EAAS/2H,GAAI22H,EAAS32H,GAAIi1H,GC8W/CsD,CAAUnyF,EAAK2wF,EAAUJ,EAAU1B,EAAOE,GAGtC4C,EACHtB,MAAqB,WAErBz2H,EAAIy2H,EAAS9zH,MAAMigD,SACnBgyE,EACCxuF,EACAh8B,MAAMC,QAAQrK,GAAKA,EAAI,CAACA,GACxBy2H,EACAlC,EACAS,EACAC,GAAsB,kBAAb+C,EACT9C,EACAZ,EACAY,EACGA,EAAkB,GAClBX,OAAsBP,EAAcO,EAAU,GACjDY,GAIwB,MAArBD,MACEl1H,EAAIk1H,EAAkBn1H,OAAQC,KACN,MAAxBk1H,EAAkBl1H,IAAYkzH,EAAWgC,EAAkBl1H,IAM7Dm1H,IAEH,UAAW4B,aACV/2H,EAAI+2H,EAAS18H,SAKb2F,IAAM22H,EAASt8H,OACf2F,IAAMomC,EAAI/rC,OACI,aAAb29H,IAA4Bh4H,IAE9Bk2H,EAAY9vF,EAAK,QAASpmC,EAAG22H,EAASt8H,OAAOA,GAG7C,YAAa08H,aACZ/2H,EAAI+2H,EAASyB,UACdx4H,IAAMomC,EAAIoyF,SAEVtC,EAAY9vF,EAAK,UAAWpmC,EAAG22H,EAAS6B,SAASA,GAAA,QAK7CpyF,EA5NWqyF,CACflE,MACAkC,EACAlC,EACAS,EACAC,EACAC,EACAZ,EACAa,IAIGnnC,EAAM3oF,EAAQqzH,SAAS1qC,EAAIyoC,EAWClC,CAVhC,MAAOvrH,GACRytH,MAAqB,MAEjBtB,GAAoC,MAArBD,KAClBuB,MAAgBjC,EAChBiC,QAAwBtB,EACxBD,EAAkBA,EAAkBruH,QAAQ2tH,IAAW,MAIxDnvH,MAAoB2D,EAAGytH,EAAUlC,IAS5B,SAASI,EAAWL,EAAalpE,GACnC/lD,OAAiBA,MAAgB+lD,EAAMkpE,GAE3CA,EAAYn7C,MAAK,YAAApkE,IAGfu/G,EAAcv/G,MACdA,MAAqB,GACrBu/G,EAAYn7C,MAAK,YAEhB2G,EAAG3jF,KAAK4Y,KAGcA,CADtB,MAAO/L,GACR3D,MAAoB2D,EAAG+L,WAwL1B,SAAgB8gH,EAAS1C,EAAK94H,EAAOm5H,OAEjB,mBAAPL,EAAmBA,EAAI94H,GAC7B84H,EAAI9/D,QAAUh5D,CAEIm5H,CADtB,MAAOxqH,GACR3D,MAAoB2D,EAAGwqH,IAYzB,SAAgBoC,EAAQpC,EAAOmF,EAAaC,GAA5C,IACKhkH,EAoBM5U,KAnBNqF,EAAQuwH,SAASvwH,EAAQuwH,QAAQpC,IAEhC5+G,EAAI4+G,EAAML,OACTv+G,EAAEy+C,SAAWz+C,EAAEy+C,UAAYmgE,OAAYqC,EAASjhH,EAAG,KAAM+jH,IAGjC,OAAzB/jH,EAAI4+G,OAA2B,IAC/B5+G,EAAEikH,qBAAsBA,IAE1BjkH,EAAEikH,sBAEqBF,CADtB,MAAO3vH,GACR3D,MAAoB2D,EAAG2vH,GAIzB/jH,EAAE++E,KAAO/+E,MAAe,QAGpBA,EAAI4+G,UACCxzH,EAAI,EAAGA,EAAI4U,EAAE7U,OAAQC,IACzB4U,EAAE5U,IACL41H,EAAQhhH,EAAE5U,GAAI24H,EAAkC,mBAAdnF,EAAMt3H,MAKtC08H,GAA4B,MAAdpF,OAAoBN,EAAWM,OAIlDA,MAAaA,YAAiB90H,CAI/B,SAAS04H,EAASz0H,EAAO5E,EAAOnC,UACxBY,KAAK6D,YAAYsC,EAAO/G,GCpfhC,SAAgBuiF,EAAOq1C,EAAOiB,EAAWqE,GAAzC,IAMK3D,EAOAZ,EAUAD,EAtBAjvH,MAAeA,KAAcmuH,EAAOiB,GAYpCF,GAPAY,EAAqC,mBAAhB2D,GAQtB,KACCA,GAAeA,OAA0BrE,MAQzCH,EAAc,GAClB5wG,EACC+wG,EARDjB,IACG2B,GAAe2D,GACjBrE,OACax3E,EAAc62E,EAAU,KAAM,CAACN,IAS5Ce,GAAYxB,EACZA,WACA0B,EAAUC,iBACTS,GAAe2D,EACb,CAACA,GACDvE,EACA,KACAE,EAAU7oE,WACVtqD,EAAMnF,KAAKs4H,EAAUr0E,YACrB,KACHk0E,GACCa,GAAe2D,EACbA,EACAvE,EACAA,MACAE,EAAU7oE,WACbupE,GAIDR,EAAWL,EAAad,GPrCZlyH,EAAQ0xH,EAAU1xH,MCfzB+D,EAAU,CAAAsuH,IOJT,SAAqB/1H,EAAO41H,WAE9BlsF,EAAWlnC,EAAM24H,EAEbvF,EAAQA,UACVlsF,EAAYksF,SAAsBlsF,aAErClnC,EAAOknC,EAAUjnC,cAE4B,MAAjCD,EAAK44H,2BAChB1xF,EAAU2xF,SAAS74H,EAAK44H,yBAAyBp7H,IACjDm7H,EAAUzxF,OAGwB,MAA/BA,EAAU4xF,oBACb5xF,EAAU4xF,kBAAkBt7H,GAC5Bm7H,EAAUzxF,OAIPyxF,SACKzxF,MAA0BA,CAG3Bt+B,CADP,MAAOA,GACRpL,EAAQoL,QAKLpL,INjCHg1H,EAAU,ECuBdmB,EAAUj6H,UAAUm/H,SAAW,SAAS5uF,EAAQwd,OAE3Ct9C,EAEHA,EADsB,MAAnB/N,KAAKA,KAAsBA,KAAKA,MAAeA,KAAKuB,MACnDvB,KAAKA,IAELA,KAAKA,IAAaqQ,EAAO,CAAC,EAAGrQ,KAAKuB,OAGlB,mBAAVssC,IAGVA,EAASA,EAAOx9B,EAAO,CAAC,EAAGtC,GAAI/N,KAAKmG,QAGjC0nC,GACHx9B,EAAOtC,EAAG8/B,GAIG,MAAVA,GAEA7tC,KAAKA,MACJqrD,GAAUrrD,KAAKA,IAAiBgD,KAAKqoD,GACzCusE,EAAc53H,QAUhBu3H,EAAUj6H,UAAUq/H,YAAc,SAAStxE,GACtCrrD,KAAKA,MAALA,YAKCqrD,GAAUrrD,KAAKA,IAAiBgD,KAAKqoD,GACzCusE,EAAc53H,QAchBu3H,EAAUj6H,UAAUqkF,OAAS21C,EAyFzBjB,EAAgB,GAQd98G,EACa,mBAAXnV,QACJA,QAAQ9G,UAAU4D,KAAK6iC,KAAK3/B,QAAQvD,WACpC8X,WA2CJxM,MAAyB,EM5NzB,IAAIiqH,EAAU,EAqBd,SAASU,EAAYp3H,EAAMyG,EAAOxI,EAAKi/H,EAAUC,OAK/ClG,EACAnzH,EAFGozH,EAAkB,CAAC,EAAD,IAGjBpzH,KAAK2C,EACA,OAAL3C,EACHmzH,EAAMxwH,EAAM3C,GAEZozH,EAAgBpzH,GAAK2C,EAAM3C,OAIvBwzH,EAAQ,CACbt3H,OACAyG,MAAOywH,EACPj5H,MACAg5H,UACW,KAAAM,GACF,KAAAC,IACD,EAAAC,IACF,KAAAC,WACIl1H,IACE,KAAAm1H,IACA,KACZxzH,iBAAaA,EAAA3B,MACAk0H,EACbwG,WACAC,aAKmB,mBAATn9H,IAAwBi3H,EAAMj3H,EAAKm3H,cAAeA,IACvDrzH,KAAKmzH,WACEC,EAAgBpzH,KAC1BozH,EAAgBpzH,GAAKmzH,EAAInzH,WAIxBqF,EAAQmuH,OAAOnuH,EAAQmuH,MAAMA,GAC1BA,CAhER,C,ICYA8F,EAAe,C,IAhBf,SAAan/H,EAAaE,GACxB,IACEsJ,OAAOuqG,aAAa,cAAD,OAAe/zG,IAASyV,KAAKC,UAAUxV,EAC3C,CAAf,MAAOuD,GAAQ,CACnB,E,IAEA,SAAazD,GACX,IACE,IAAME,EAAQsJ,OAAOuqG,aAAa,cAAD,OAAe/zG,IAEhD,GAAIE,EACF,OAAOuV,KAAK4P,MAAMnlB,EAEL,CAAf,MAAOuD,GAAQ,CACnB,GCdM27H,EAAQ,IAAIjtH,IACZktH,GAAW,CACf,CAAEx7G,EAAG,GAAIy7G,MAAO,gBAChB,CAAEz7G,EAAG,KAAMy7G,MAAO,wCAClB,CAAEz7G,EAAG,GAAIy7G,MAAO,gBAChB,CAAEz7G,EAAG,KAAMy7G,MAAO,kCAClB,CAAEz7G,EAAG,GAAIy7G,MAAO,gBAChB,CAAEz7G,EAAG,GAAIy7G,MAAO,gBAChB,CAAEz7G,EAAG,EAAGy7G,MAAO,gBACf,CAAEz7G,EAAG,EAAGy7G,MAAO,kCACf,CAAEz7G,EAAG,EAAGy7G,MAAO,gBACf,CAAEz7G,EAAG,EAAGy7G,MAAO,4BACf,CAAEz7G,EAAG,EAAGy7G,MAAO,iBAmBjB,SAASC,GAAYD,GACnB,GAAIF,EAAMnnH,IAAIqnH,GACZ,OAAOF,EAAMjnH,IAAImnH,GAGnB,IAAMjvD,EAAYmvD,GAAiBF,GAGnC,OAFAF,EAAMh4G,IAAIk4G,EAAOjvD,GAEVA,CACT,CAGA,IAAMmvD,GAAoB,WACxB,IAAIC,EAAM,KACV,IACOtuH,UAAU9C,UAAUmR,SAAS,WAChCigH,EAAMh2H,SACHq5C,cAAc,UACdg+B,WAAW,KAAM,CAAE4+C,oBAAoB,IAErC,CAAP,SAAO,CAGT,IAAKD,EACH,OAAO,kBAAM,CAAK,EAGpB,IACME,EAAe,GACfC,EAAWllH,KAAKsC,MAAM6iH,MAQ5B,OALAJ,EAAIK,KAAOF,EAAW,uBACtBH,EAAIM,aAAe,MACnBN,EAAIj/C,OAAO5tD,MAAQ+sG,GACnBF,EAAIj/C,OAAO3tD,OARW,GAUf,SAACw7B,GACNoxE,EAAItf,UAAU,EAAG,EAAGwf,GAXA,IAcpBF,EAAIO,UAAY,UAChBP,EAAIQ,SAAS5xE,EAAS,EAAG,IAGzBoxE,EAAIO,UAAY,UAChBP,EAAIQ,SAAS5xE,EAASsxE,EAAc,IAOpC,IALA,IAAM18G,EAAIw8G,EAAI3iB,aAAa,EAAG,EAAG6iB,EArBb,IAqB0C71H,KACxD+zB,EAAQ5a,EAAErd,OACZC,EAAI,EAGDA,EAAIg4B,IAAU5a,EAAEpd,EAAI,GAAIA,GAAK,GAGpC,GAAIA,GAAKg4B,EACP,OAAO,EAKT,IAAM3Y,EAAIy6G,EAAgB95H,EAAK,EAAK85H,EAC9Br8G,EAAI5I,KAAKsC,MAAMnX,EAAI,EAAI85H,GACvB/zG,EAAI6zG,EAAI3iB,aAAa53F,EAAG5B,EAAG,EAAG,GAAGxZ,KAEvC,OAAImZ,EAAEpd,KAAO+lB,EAAE,IAAM3I,EAAEpd,EAAI,KAAO+lB,EAAE,MAMhC6zG,EAAIS,YAAY7xE,GAASz7B,OAAS+sG,EAMxC,CACF,CAnE0B,GAqE1BQ,GAAe,C,cAjGf,WAAyB,IACI,EADJ,cACId,IAAA,IAA3B,IAAK,EAAL,qBAAqC,eAAxBx7G,IAAFA,EACT,GAAI07G,GADUD,EAAFA,OAEV,OAAOz7G,CAEX,gCACF,E,eAEA,WACE,OAAI07G,GAAY,2BAKlB,GC1BMa,GAAW,CACf,KACA,WACA,gBACA,aACA,WACA,+BACA,cACA,MACA,SACA,eACA,WACA,QACA,MACA,aACA,SAGEC,GAAoB,K,OAwExBC,GAAe,C,IAtEf,SAAahB,GACXe,KAAUA,GAAQ,EAAMloH,IAAI,eAAiB,CAAC,GAE9C,IAAMooH,EAAUjB,EAAMllF,IAAMklF,EACvBiB,IAELF,GAAME,KAAaF,GAAME,GAAW,GACpCF,GAAME,IAAY,EAElB,EAAMn5G,IAAI,OAAQm5G,GAClB,EAAMn5G,IAAI,aAAci5G,IAC1B,E,IAEA,SAASG,GAAkC,IAA5BC,IAAFA,gBAAmBC,IAAFA,QAC5B,IAAKD,EAAiB,MAAO,GAE7BJ,KAAUA,GAAQ,EAAMloH,IAAI,eAC5B,IAAIwoH,EAAW,GAEf,IAAKN,GAAO,CAGV,IAAK,IAAIx6H,KAFTw6H,GAAQ,CAAC,EAEKD,GAASj5H,MAAM,EAAGu5H,GAAU,CACxC,IAAMH,EAAUH,GAASv6H,GAEzBw6H,GAAME,GAAWG,EAAU76H,EAC3B86H,EAASt7H,KAAKk7H,EAChB,CAEA,OAAOI,CACT,CAEA,IAAMrmH,EAAMmmH,EAAkBC,EACxBxjC,EAAO,EAAM/kF,IAAI,QAEvB,IAAK,IAAIyoH,KAAWP,GAClBM,EAASt7H,KAAKu7H,GAchB,GAXAD,EAASzmH,MAAK,SAAC+I,EAAG2I,GAChB,IAAMi1G,EAASR,GAAMz0G,GACfk1G,EAAST,GAAMp9G,GAErB,OAAI49G,GAAUC,EACL79G,EAAE89G,cAAcn1G,GAGlBi1G,EAASC,CAClB,IAEIH,EAAS/6H,OAAS0U,EAAK,CACzB,IAAM0mH,EAAaL,EAASx5H,MAAMmT,GAClCqmH,EAAWA,EAASx5H,MAAM,EAAGmT,GAAA,IAEP,EAFO,cAEP0mH,GAAA,IAAtB,IAAK,EAAL,qBAAkC,KAAzBC,UACHA,GAAa/jC,UACVmjC,GAAMY,EACf,gCAEI/jC,IAAmC,GAA3ByjC,EAASj0H,QAAQwwF,YACpBmjC,GAAMM,EAASA,EAAS/6H,OAAS,IACxC+6H,EAASh0H,QAAQ,EAAG,EAAGuwF,IAGzB,EAAM91E,IAAI,aAAci5G,GAC1B,CAEA,OAAOM,CACT,GC3FAO,GAAiBzrH,KAAK4P,MAAM,kkBCA5B,OAAe,CACb87G,UAAW,CACTjhI,OAAO,GAETkhI,kBAAmB,CACjBlhI,MAAO,MAETmhI,kBAAmB,CACjBnhI,MAAO,QAETohI,gBAAiB,CACfphI,MAAO,IAETqhI,UAAW,CACTrhI,MAAO,IAETshI,aAAc,CACZthI,MAAO,GACPuhI,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,KAAM,GAAI,KAAM,KAEnD55E,MAAO,CACL3nD,MAAO,OACPuhI,QAAS,CAAC,OAAQ,UAAW,UAE/B38G,OAAQ,CACN5kB,MAAO,KACPuhI,QAAS,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OAGJhB,gBAAiB,CACfvgI,MAAO,GAETwhI,YAAa,CACXxhI,MAAO,MACPuhI,QAAS,CAAC,MAAO,SAAU,SAE7BE,eAAgB,CACdzhI,OAAO,GAET0hI,eAAgB,CACd1hI,MAAO,MAETwgI,QAAS,CACPxgI,MAAO,GAET2hI,aAAc,CACZ3hI,MAAO,MAET4hI,gBAAiB,CACf5hI,MAAO,SACPuhI,QAAS,CAAC,MAAO,SAAU,SAE7BM,eAAgB,CACd7hI,MAAO,SACPuhI,QAAS,CAAC,SAAU,SAAU,SAEhCr6G,IAAK,CACHlnB,MAAO,SACPuhI,QAAS,CAAC,SAAU,QAAS,WAAY,SAAU,YAErDO,KAAM,CACJ9hI,MAAO,EACPuhI,QAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAE3BQ,iBAAkB,CAChB/hI,MAAO,UACPuhI,QAAS,CAAC,UAAW,SAAU,SAEjCS,MAAO,CACLhiI,MAAO,OACPuhI,QAAS,CAAC,OAAQ,QAAS,SAI7BU,WAAY,KACZC,cAAe,KACfC,OAAQ,KACRv4H,KAAM,KACNw4H,KAAM,KAGNC,YAAa,KACbC,kBAAmB,KACnBC,iBAAkB,KAClBC,eAAgB,KAChBC,cAAe,KAGfC,aAAc,CACZ1qH,YAAY,EACZhY,OAAO,ICrGA2iI,GAAO,KACPC,GAAO,KAEZC,GAAa,CAAC,WACLC,MAAA,8CAUf,OAVe,mCAAf,WAAyBl4C,GAAG,uFACtBi4C,GAAWj4C,GAAM,CAAF,wCACVi4C,GAAWj4C,IAAI,uBAGDwpC,MAAMxpC,GAAA,OAAvB,OAAAj/E,EAAWA,EAAXA,KAAA,SACaA,EAAS0G,OAAI,OAEd,OAFZA,EAAOA,EAAPA,KAENwwH,GAAWj4C,GAAOv4E,EAAA,kBACXA,GAAA,6CACT,sBAEA,IAAI0wH,GAAgC,KAEhCC,GAAe,KACfC,IAAc,EAEX,SAASC,GAAKl4H,GAA0B,6DAAJ,CAAC,EAAZm4H,IAAFA,OAc5B,OAbAJ,KACGA,GAAU,IAAIx8H,SAAQ,SAACvD,GACtBggI,GAAehgI,CACjB,KAEEgI,EACFo4H,GAAMp4H,GACGm4H,IAAWF,IACpBj2H,QAAQQ,KAAK,IAAD,OACL21H,+FAIFJ,EACT,UAEeK,MAAA,8CA4Mf,OA5Me,mCAAf,WAAqB96H,GAAK,iHAMmB,GAL3C26H,IAAc,EAER3B,EAA8Bh5H,EAAhCg5H,aAAgBp6G,EAAgB5e,EAAlB4e,IAAOtC,EAAWtc,EAAbsc,OACvB08G,IAAiBA,EAAe,GAAYA,aAAathI,OACzDknB,IAAQA,EAAM,GAAYA,IAAIlnB,OAC9B4kB,IAAWA,EAAS,GAAYA,OAAO5kB,OAElC4iI,IAAA,mBAEsB,oBAAft6H,EAAMsB,KAAS,iCAAmBtB,EAAMsB,OAAI,gDAAKtB,EAAMsB,KAAI,4DAC5Dk5H,uEACwDxB,cAAgBp6G,YAAU,6BAH3F07G,SAMKS,UAAY,CAAC,EAClBT,GAAKU,QAAU,CAAC,EAEhBV,GAAKX,WAAWt8F,QAAQ,CACtBuU,GAAI,WACJqpF,OAAQ,KACV,wBAEoBX,GAAKY,SAAO,+CAEI,GAFzBC,aACHpD,EAAUuC,GAAKY,QAAQC,GACvBrE,EAAQwD,GAAKW,OAAOlD,GACdjB,CAAP,uDAELA,EAAMoE,UAAYpE,EAAMoE,QAAU,IAClCpE,EAAMoE,QAAQr+H,KAAKs+H,GAAA,wBAGrBb,GAAKc,mBAAqBd,GAAKX,WAAU,wBAEzCW,GAAKX,WAAaW,GAAKX,WAAW7yH,QAAO,SAACsL,GAExC,SADmBA,EAAEzU,IAIvB,eAIuB,oBAAfqC,EAAM85H,KAAS,kCAAmB95H,EAAM85H,OAAI,iDAAK95H,EAAM85H,KAAI,8CACxD,MAAVx9G,EAAU,sBACP,MAAO,yCACDk+G,uEACyDl+G,YAC9D,8CANP,GAAA+9G,SAQIr6H,EAAM65H,OAAQ,CAAF,wCACA75H,EAAM65H,QAAM,+CAGgB,GAHjCx8H,aACPA,EAAIooC,SAASpoC,GACPg+H,EAAWr7H,EAAM65H,OAAOx8H,GACxBi+H,EAAet7H,EAAM65H,OAAOx8H,EAAI,GAEjCg+H,EAASJ,QAAWI,EAASJ,OAAO79H,OAAM,wDAE/Ci+H,EAASzpF,KAAOypF,EAASzpF,GAAK,UAAH,OAAav0C,EAAI,IAC5Cg+H,EAAS19H,OAAS09H,EAAS19H,KAAO08H,GAAKV,WAAWE,QAE9CyB,IAAiBD,EAAS96E,OAC5B86E,EAASt7H,OAASu7H,EAAav7H,QAAUu7H,GAG3ChB,GAAKX,WAAW98H,KAAKw+H,GAAA,cAEDA,EAASJ,QAAM,IAAnC,IAAK,EAAL,qBAAWM,UACTjB,GAAKW,OAAOM,EAAM3pF,IAAM2pF,CAAA,YAAAl1H,EAAA,yCAK1BrG,EAAM25H,aACRW,GAAKX,WAAaW,GAAKc,mBACpBt0H,QAAO,SAACsL,GACP,OAA0C,GAAnCpS,EAAM25H,WAAWz1H,QAAQkO,EAAEw/B,GACpC,IACClgC,MAAK,SAAC8pH,EAAIC,GAIT,OAHWz7H,EAAM25H,WAAWz1H,QAAQs3H,EAAG5pF,IAC5B5xC,EAAM25H,WAAWz1H,QAAQu3H,EAAG7pF,GAGzC,KAGA8pF,EAAuB,KACvBvC,EAAiB,KACV,UAAPv6G,IACF88G,EAAuB,GAAcC,gBACrCxC,EAAiBn5H,EAAMm5H,gBAAkB,GAAcA,kBAGrDyC,EAAgBtB,GAAKX,WAAWv8H,OAChCy+H,GAAmB,EAAK,aAE1B,IAAMC,EAAWxB,GAAKX,WAAWiC,GAEjC,GAAmB,YAAfE,EAASlqF,GAAkB,CAC7B,IAAMqmF,EAA6Bj4H,EAA/Bi4H,gBAAmBC,EAAYl4H,EAAdk4H,QAErBD,EACEA,GAAmB,EACfA,EACA,GAAYA,gBAAgBvgI,MAClCwgI,IAAYA,EAAU,GAAYA,QAAQxgI,OAE1CokI,EAASb,OAAS,GAAetrH,IAAI,C,gBAAEsoH,E,QAAiBC,GAC1D,CAEA,IAAK4D,EAASb,SAAWa,EAASb,OAAO79H,OAEvC,OADAk9H,GAAKX,WAAWx1H,OAAOy3H,EAAe,GACtC,WAGF,IAAQhC,EAAkB55H,EAApB45H,cACN,GAAIA,EAAe,CACjB,IAAMr5E,EAAOq5E,EAAckC,EAASlqF,IAChC2O,IAASu7E,EAASv7E,OACpBu7E,EAASv7E,KAAOA,EAEpB,CAGA,IADA,IAAIw7E,EAAaD,EAASb,OAAO79H,OAC1B2+H,KAAc,CACnB,IAAM3D,EAAU0D,EAASb,OAAOc,GAC1BC,EAAQ5D,EAAQxmF,GAAKwmF,EAAUkC,GAAKW,OAAO7C,GAE3C5sB,EAAS,WACbswB,EAASb,OAAO92H,OAAO43H,EAAY,EACrC,EAEA,GAAKC,EAKL,GAAIN,GAAwBM,EAAMv2H,QAAUi2H,EAC1ClwB,SAIF,IAAI2tB,GAAiC,SAAf2C,EAASlqF,IACxB,GAAU56B,SAASglH,EAAMpqF,KAMhC,IAAKoqF,EAAM10C,OAAQ,CAwBjB,GAvBAu0C,GAAmB,EACnBG,EAAM10C,OACJ,IACA,CACE,CAAC00C,EAAMpqF,IAAI,GACX,CAACoqF,EAAMr+H,MAAM,GACb,CAACq+H,EAAMC,UAAU,GACjB,CAACD,EAAMjB,WAAW,IAEjBvxH,KAAI,YAAsB,uBAApB0yH,OAASn2H,OACd,GAAKm2H,EACL,OAAQz0H,MAAMC,QAAQw0H,GAAWA,EAAU,CAACA,IACzC1yH,KAAI,SAACskC,GACJ,OAAQ/nC,EAAQ+nC,EAAO/nC,MAAM,aAAe,CAAC+nC,IAAStkC,KACpD,SAAC5B,GAAA,OAAMA,EAAEoJ,aAAW,GAExB,IACCmrH,MACL,IACCA,OACAr1H,QAAO,SAAC2T,GAAA,OAAMA,GAAKA,EAAE1J,MAAI,IACzBoG,KAAK,KAEN6kH,EAAMjB,UAAW,CAAF,IACqB,EADrB,cACMiB,EAAMjB,WAAS,IAAtC,IAAK,EAAL,qBAAwC,KAA7BqB,UACL9B,GAAKS,UAAUqB,KACnB9B,GAAKS,UAAUqB,GAAYJ,EAAMpqF,GACnC,iCAGF,IAC8B,EAD1ByqF,EAAY,gBACGL,EAAMM,OAAK,IAA9B,IAAK,EAAL,qBAAgC,KAArB9C,UACT,GAAKA,EAAL,CACA6C,IAEA,IAAQE,EAAW/C,EAAb+C,OACFA,IACFjC,GAAKU,QAAQuB,GAAUP,EAAMpqF,GAC7BoqF,EAAM10C,QAAU,IAAJ,OAAQi1C,IAGtB,IAAMC,EACS,GAAbH,EAAiB,wBAAmBA,OACtC7C,EAAKiD,WAAa,IAAH,OAAOT,EAAMpqF,GAAE,YAAI4qF,EAXf,CAYrB,gCACF,OAnDIhxB,SAXFA,GA+DJ,eArGKowB,IAAiBA,CAAjB,oHAwGHC,GACF,GAAY7+H,QAGd09H,KAAA,6CACF,sBAEO,SAASgC,GAAS18H,EAAO0wH,EAAc9wF,GAC5C5/B,IAAUA,EAAQ,CAAC,GAEnB,IAAM28H,EAAS,CAAC,EAChB,IAAK,IAAI3kG,KAAK04F,EACZiM,EAAO3kG,GAAK4kG,GAAQ5kG,EAAGh4B,EAAO0wH,EAAc9wF,GAG9C,OAAO+8F,CACT,CAEO,SAASC,GAAQC,EAAU78H,EAAO0wH,EAAc9wF,GACrD,IAAM0D,EAAWotF,EAAamM,GAC1BnlI,EACFkoC,GAAYA,EAAQue,aAAa0+E,KACb,MAAnB78H,EAAM68H,SAAwC9gI,GAAnBiE,EAAM68H,GAC9B78H,EAAM68H,GACN,MAEN,OAAKv5F,GAKM,MAAT5rC,GACA4rC,EAAS5rC,cACF4rC,EAAS5rC,cAAgBA,IAG9BA,EAD2B,kBAAlB4rC,EAAS5rC,MACD,SAATA,EAEA4rC,EAAS5rC,MAAMgG,YAAYhG,IAInC4rC,EAAS94B,WAAa9S,IACxBA,EAAQ4rC,EAAS94B,UAAU9S,KAIlB,MAATA,GACC4rC,EAAS21F,UAA+C,GAApC31F,EAAS21F,QAAQ/0H,QAAQxM,MAE9CA,EAAQ4rC,EAAS5rC,OAGZA,GA1BEA,CA2BX,CC1SA,IACIolI,GAAO,KAkBI,cA0Df,OA1De,mCAAf,WAAsBplI,GAAK,uHAAc,GAAd,iCAA2B,CAAC,EAAxBqlI,IAAFA,WAAclC,IAAFA,OAClCnjI,GAAUA,EAAMqZ,OAAO3T,OAAM,yCAAS,MAAI,OAClB,OAA7B2/H,IAAeA,EAAa,IAAC,SAEvB,GAAK,KAAM,CAAElC,OAAQA,GAAU,uBAAqB,OAQxD,IANI5gI,EAASvC,EACZsZ,cACAgB,QAAQ,QAAS,OACjBjM,MAAM,WACNe,QAAO,SAACkI,EAAM3R,EAAG2/H,GAChB,OAAOhuH,EAAK+B,QAAUisH,EAAM94H,QAAQ8K,IAAS3R,CAC/C,KAEUD,OAAQ,CAAF,gDAEd6/H,EAAOH,KAASA,GAAO5lI,OAAO+C,OAAO,GAAKghI,SAAM,cAGhChhI,GAAA,2DAAT,GAAAijI,UACJD,EAAK7/H,OAAQ,CAAF,oDAEhBq2C,EAAU,GACV0pF,EAAS,CAAC,gBAEUF,GAAA,2DAAT,IAAAnG,WACExvC,OAAQ,CAAF,uDAC6B,IAChC,IADR81C,EAAQtG,EAAMxvC,OAAOpjF,QAAQ,IAAD,OAAKg5H,KAC1B,wDAEbzpF,EAAQ52C,KAAKi6H,GACbqG,EAAOrG,EAAMllF,MAAQurF,EAAOrG,EAAMllF,IAAM,GACxCurF,EAAOrG,EAAMllF,KAAOklF,EAAMllF,IAAMsrF,EAAQ,EAAIE,EAAQ,EAAC,iJAGvDH,EAAOxpF,EAAA,sJAGLA,EAAQr2C,OAAS,6CACZq2C,GAAA,QAeoB,OAZ7BA,EAAQ/hC,MAAK,SAAC+I,EAAG2I,GACf,IAAMi1G,EAAS8E,EAAO1iH,EAAEm3B,IAClB0mF,EAAS6E,EAAO/5G,EAAEwuB,IAExB,OAAIymF,GAAUC,EACL79G,EAAEm3B,GAAG2mF,cAAcn1G,EAAEwuB,IAGvBymF,EAASC,CAClB,IAEI7kF,EAAQr2C,OAAS2/H,IACnBtpF,EAAUA,EAAQ90C,MAAM,EAAGo+H,IAAA,kBAGtBtpF,GAAA,+EACT,yB,IAEA4pF,GAAe,C,OA9Df,SAEeC,GAAA,iC,IAhBf,SAAavF,GACX,OAAIA,EAAQnmF,GACHmmF,EAIP,GAAKkD,OAAOlD,IACZ,GAAKkD,OAAO,GAAKC,QAAQnD,KACzB,GAAKkD,OAAO,GAAKD,QAAQjD,GAE7B,E,MAEA,WACE+E,GAAO,IACT,E,iBAjByB,6CCGZS,GAAY,CACvB,iBACA,gBACA,cACA,eACA,mBACA,0BACA,oBACA,qBCLF,SAEsBC,KAAA,8CAItB,OAJsB,mCAAf,0GAAqBC,EAASA,EAATA,6BAAS,EAAC,oCAClBh2H,MAAMg2H,GAAQt/H,SAAI,6CAA3B,OAAAmG,WAAA,SACD,IAAIrG,QAAQmnD,uBAAA,iEAEtB,yBAEO,SAASs4E,GAAa5G,GAA+B,6DAAJ,CAAC,EAAC,IAAtBuF,UAAEA,WAAYA,EAAA,IAC1C7C,EACJ1C,EAAMwF,MAAMD,KAEVA,EAAY,EACLvF,EAAMwF,MAAMD,IAGjBsB,EAAiB,CACrB/rF,GAAIklF,EAAMllF,GACVj0C,KAAMm5H,EAAMn5H,KACZ4+H,OAAQ/C,EAAK+C,OACbqB,QAASpE,EAAKoE,QACd3B,SAAUnF,EAAMmF,SAChBQ,WAAYjD,EAAKiD,YAAc3F,EAAM2F,YAmBvC,OAhBI3F,EAAMwF,MAAMl/H,OAAS,IACvBugI,EAAUnE,KAAO6C,EAAY,GAG3B7C,EAAKl3C,MACPq7C,EAAUr7C,IAAMk3C,EAAKl3C,KAGnBw0C,EAAMoE,SAAWpE,EAAMoE,QAAQ99H,SACjCugI,EAAUzC,QAAUpE,EAAMoE,SAGxBpE,EAAMiE,WAAajE,EAAMiE,UAAU39H,SACrCugI,EAAU5C,UAAYjE,EAAMiE,WAGvB4C,CACT,CCnDA,IAgJAE,GAAe,C,WAhJI,CACjBC,SAAU,CACRC,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,8tBAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,skCAKdk/G,OACE,EAAC,OAAImE,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,umBAIZ4hB,MAAO,CACLwhG,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,sKAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,saAKdwjH,MAAO,CACLJ,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,u1BAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,49DAKdyjH,SAAU,CACRL,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,UAC9C,EAAC,QAAKtjH,EAAE,2CACR,EAAC,QAAKA,EAAE,qJAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,+TAKd0jH,OAAQ,CACNN,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,UAC9C,EAAC,QAAKtjH,EAAE,6GACR,EAAC,QAAKA,EAAE,whDAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,ouBAKdwyC,QAAS,CACP4wE,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,UAC9C,EAAC,QAAKtjH,EAAE,oXACR,EAAC,QAAKA,EAAE,ojBAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,8oBAKd2jH,OAAQ,CACNP,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,UAC9C,EAAC,QAAKtjH,EAAE,kJACR,EAAC,QAAKA,EAAE,gLAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,khBAKd4jH,OAAQ,CACNR,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,UAC9C,EAAC,QAAKtjH,EAAE,wSACR,EAAC,QAAKA,EAAE,2rBAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,ipBAKd9T,QAAS,CACPk3H,QACE,EAAC,OAAIC,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,+4CAGZujH,MACE,EAAC,OAAIF,MAAM,6BAA6BC,QAAQ,c,SAC9C,EAAC,QAAKtjH,EAAE,s5C,OAMD,CACb6jH,MACE,EAAC,OAAIR,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,wGAIZi1B,OACE,EAAC,OAAIouF,MAAM,6BAA6BC,QAAQ,Y,SAC9C,EAAC,QAAKtjH,EAAE,0JCxIC,SAAS,GAAM3a,GAC5B,IAAM4xC,EAAoB5xC,EAAtB4xC,GAAM4nF,EAAgBx5H,EAAlBw5H,KAAQ1C,EAAU92H,EAAZ82H,MAEd,GAAI92H,EAAMy8H,WAAY,CACpB,IAAM5uF,EAAU7tC,EAAMy8H,WAAW37H,MAAM,GAAY29H,kBAE/C5wF,IACF+D,EAAK/D,EAAQ,GAETA,EAAQ,KACV2rF,EAAO3rF,EAAQ,IAGrB,CAGA,GADAipF,IAAUA,EAAQ,GAAYnnH,IAAIiiC,GAAM5xC,EAAMu8H,UACzCzF,EAAO,OAAO92H,EAAM0+H,SAEzB,IAAMC,EAAY7H,EAAMwF,MAAM9C,EAAO,IAAM1C,EAAMwF,MAAM,GAEjDsC,EACJD,EAAUr8C,MACI,UAAbtiF,EAAM4e,KAAoB5e,EAAM6+H,iBAI7B9iI,EAH6B,oBAAtBiE,EAAM+5H,YACX/5H,EAAM+5H,YAAY/5H,EAAM4e,IAAK+/G,EAAUf,SAAO,wDACG59H,EAAM4e,IAAG,uBAAe5e,EAAM4e,IAAG,eAAO+/G,EAAUf,QAAO,SAG5GkB,EAC+B,oBAA5B9+H,EAAMg6H,kBACTh6H,EAAMg6H,kBAAkBh6H,EAAM4e,KAAG,wDACgB5e,EAAM4e,IAAG,uBAAe5e,EAAM4e,IAAG,sBAExF,OACE,EAAC,QAAKojC,MAAM,mBAAmB,iBAAgBhiD,EAAM4e,I,SAClDggH,EACC,EAAC,OACCr/F,MAAO,CACLw/F,SAAU/+H,EAAM6P,MAAQ,MACxBmvH,UAAWh/H,EAAM6P,MAAQ,MACzB+3F,QAAS,gBAEXq3B,IAAKN,EAAUpC,QAAUoC,EAAUlC,WACnCn6C,IAAKs8C,IAEQ,UAAb5+H,EAAM4e,IACR,EAAC,QACC2gB,MAAO,CACL2oB,SAAUloD,EAAM6P,KAChB+4C,WACE,6I,SAGH+1E,EAAUpC,SAGb,EAAC,QACCh9F,MAAO,CACLqoE,QAAS,QACTx9E,MAAOpqB,EAAM6P,KACbwa,OAAQrqB,EAAM6P,KACdqvH,gBAAiBA,OAAjBA,OAAwBJ,OACxBK,eAAgBA,GAAhBA,OAAmB,IAAM,GAAKC,MAAMC,KAAI,aACtC,IAAM,GAAKD,MAAME,KAAI,KAEvBC,mBAAoBA,GAApBA,OACE,KAAQ,GAAKH,MAAMC,KAAO,GAAMV,EAAUjiH,EAAC,aACxC,KAAQ,GAAK0iH,MAAME,KAAO,GAAMX,EAAU7jH,EAAC,SAM5D,CCzEA,IAKqB0kH,eAAA,sCAKnB,aAAwB,MAAZx/H,EAAQA,UAARA,6CAAQ,CAAC,EAInB,GAJoB,qBACpB,gBACKA,MAAQA,EAETA,EAAM2xF,QAAU3xF,EAAMwwH,IAAK,CAC7B,IAAIA,EAAM,KACJ7+B,EAAS3xF,EAAM2xF,SAAW6+B,EAAMxwH,EAAMwwH,KAAOxwH,EAAMwwH,IAAI9/D,SAEzD8/D,IAAKA,EAAIjzE,UAAY,IACrBo0C,GAAQA,EAAOzoC,YAAY,eACjC,CAAC,QACH,CAbA,OAaA,mCAEA,WAAmB,IAAZlpD,EAAQA,UAARA,6CAAQ,CAAC,EACd,IAAK,IAAIg4B,KAAKh4B,EACZnG,KAAK4lI,yBAAyBznG,EAAG,KAAMh4B,EAAMg4B,GAEjD,yCAEA,SAAyB6uB,EAAMviD,EAAGirD,GAChC,GAAK11D,KAAK8qC,UAAV,CAEA,IAAMjtC,EAAQ,GACZmvD,iBACGA,EAAO0I,GACV11D,KAAK6D,YAAYgiI,MACjB7lI,MAGEA,KAAK8qC,UAAUkwF,0BACjBh7H,KAAK8qC,UAAUkwF,0BAA0B,eAAGhuE,EAAOnvD,KAEnDmC,KAAK8qC,UAAU3kC,MAAM6mD,GAAQnvD,EAC7BmC,KAAK8qC,UAAU6xF,cAbU,CAe7B,qCAEA,WACE38H,KAAKi9E,cAAe,EAEhBj9E,KAAK8qC,WAAa9qC,KAAK8qC,UAAUg7F,YACnC9lI,KAAK8qC,UAAUg7F,YAEnB,mCA/CA,WACE,OAAOzoI,OAAOiH,KAAKtE,KAAK6lI,MAC1B,OAHmBF,CAJD,qBAAXx+H,QAA0BA,OAAO4+H,YACpC5+H,OAAO4+H,YACP1oI,QCHe2oI,eAAA,sCACnB,WAAY7/H,GAAwB,+DAAJ,CAAC,EAAZy8C,IAAFA,OAIC,OAJD,qBACjB,cAAMz8C,IAED8/H,YACL,EAAKC,aAAatjF,GAAA,CACpB,CAaA,OAbA,sCAEA,WACE5iD,KAAKmmI,aAAa,CAAEtV,KAAM,QAC5B,6BAEA,SAAajuE,GACX,GAAKA,EAAL,CAEA,IAAMld,EAAQt+B,SAASq5C,cAAc,SACrC/a,EAAMypB,YAAcvM,EAEpB5iD,KAAKomI,WAAWpiF,aAAate,EAAO1lC,KAAKomI,WAAWh3E,WALjC,CAMrB,OAnBmB42E,CAAsB,ICD3CK,GAAe,CACbxB,SAAU,GACV9sF,GAAI,GACJ2qF,OAAQ,GACRE,WAAY,GACZ5sH,KAAM,CACJnY,MAAO,GACP8S,UAAW,SAAC9S,GAEV,MAAK,KAAKslB,KAAKtlB,GAIRA,EAHE,GAAP,OAAUA,OAId,GAIFknB,IAAK,GAAYA,IACjB46G,KAAM,GAAYA,MCdC2G,eAAA,sCAGnB,WAAYngI,GAAO,uCACXA,EACR,CAaA,OAbA,+FAEA,qGAKE,OAJMA,EAAQ,GAASnG,KAAKmG,MAAO,GAAYnG,OACzC+lC,QAAU/lC,KAChBmG,EAAMwwH,IAAM,SAAC7rF,GACX,EAAKA,UAAYA,CACnB,WAEM,KAAG,WACL9qC,KAAKi9E,aAAc,CAAF,gDAErB,EAAO,EAAC,GAAK,eAAK92E,IAAWnG,MAAI,gDACnC,kDAbA,MAaA,EAlBmBsmI,CAAqB,IACxC,EADmBA,GACZ,QAAQ,IAoBa,qBAAnBC,gBAAmCA,eAAezwH,IAAI,aAC/DywH,eAAejoI,OAAO,WAAYgoI,IC1BpC,IAGIE,GAeAC,GATAC,GAAoB,GAEpBC,GAAgB99H,MAChB+9H,GAAkB/9H,MAClBg+H,GAAeh+H,EAAQqzH,OACvB4K,GAAYj+H,MACZk+H,GAAmBl+H,EAAQuwH,QA+Q/B,SAAS4N,SACJl8F,MAEJ47F,GAAkB7uH,MAAK,SAAC+I,EAAG2I,UAAM3I,UAAkB2I,aAC5CuhB,EAAY47F,GAAkBhiI,UAC/BomC,UAEJA,UAAkCvqC,QAAQ0mI,IAC1Cn8F,UAAkCvqC,QAAQ2mI,IAC1Cp8F,UAAoC,EAGbA,CAFtB,MAAOt+B,GACRs+B,UAAoC,GACpCjiC,MAAoB2D,EAAGs+B,QAtR1BjiC,MAAgB,YACf29H,GAAmB,KACfG,IAAeA,GAAc3P,IAGlCnuH,MAAkB,YACb+9H,IAAiBA,GAAgB5P,GAGtB,MAETn0E,GAHN2jF,GAAmBxP,WAIfn0E,IACHA,MAAsBtiD,QAAQ0mI,IAC9BpkF,MAAsBtiD,QAAQ2mI,IAC9BrkF,MAAwB,KAI1Bh6C,EAAQqzH,OAAS,YACZ2K,IAAcA,GAAa7P,OAEzBz+G,EAAIy+G,MACNz+G,GAAKA,OAAaA,UAA0BhV,SAsSzB,IArSXmjI,GAAkB1jI,KAAKuV,IAqSPkuH,KAAY59H,EAAQ0iD,yBAC/Ck7E,GAAU59H,EAAQ0iD,wBAvBpB,SAAwBF,OAQnB87E,EAPEllI,EAAO,WACZyW,aAAapP,GACT89H,IAASnzC,qBAAqBkzC,GAClCxuH,WAAW0yC,IAEN/hD,EAAUqP,WAAW1W,EAhTR,KAmTfmlI,KACHD,EAAM57E,sBAAsBtpD,MAcA+kI,KArS7BR,GAAmB,MAGpB39H,MAAkB,SAACmuH,EAAOc,GACzBA,EAAYn7C,MAAK,YAAA7xC,IAEfA,MAA2BvqC,QAAQ0mI,IACnCn8F,MAA6BA,MAA2B79B,QAAO,YAAAq2E,OAC9DA,MAAY4jD,GAAa5jD,KAOHx4C,CALtB,MAAOt+B,GACRsrH,EAAYn7C,MAAK,YACZpkE,QAAoBA,MAAqB,OAE9Cu/G,EAAc,GACdjvH,MAAoB2D,EAAGs+B,WAIrBg8F,IAAWA,GAAU9P,EAAOc,IAGjCjvH,EAAQuwH,QAAU,YACb2N,IAAkBA,GAAiB/P,OAIlCqQ,EAFC9uH,EAAIy+G,MACNz+G,GAAKA,QAERA,SAAgBhY,SAAQ,YAAAwN,IAEtBk5H,GAAcl5H,EAEDvB,CADZ,MAAOA,GACR66H,EAAa76H,MAGX66H,GAAYx+H,MAAoBw+H,EAAY9uH,SA8NlD,IAAI6uH,GAA0C,mBAAzB77E,sBA2CrB,SAAS07E,GAAcK,OAGhBC,EAAOf,GACTgB,EAAUF,MACQ,mBAAXE,IACVF,aACAE,KAEDhB,GAAmBe,EAOpB,SAASL,GAAaI,OAGfC,EAAOf,GACbc,MAAgBA,OAChBd,GAAmBe,EC3Wb,SAASl3H,GAAO3S,EAAKyI,OACtB,IAAI3C,KAAK2C,EAAOzI,EAAI8F,GAAK2C,EAAM3C,UACP9F,EASvB,SAAS+pI,GAAe7mH,EAAG2I,OAC5B,IAAI/lB,KAAKod,KAAa,aAANpd,KAAsBA,KAAK+lB,GAAI,OAAO,MACtD,IAAI/lB,KAAK+lB,KAAa,aAAN/lB,GAAoBod,EAAEpd,KAAO+lB,EAAE/lB,GAAI,OAAO,UACxD,CCfD,SAASkkI,GAAczlH,QACxB9b,MAAQ8b,GAEdylH,GAAcpqI,UAAY,IAAIi6H,GAENoQ,sBAAuBA,EAC/CD,GAAcpqI,UAAU29H,sBAAwB,SAAS90H,EAAO5E,UACxDkmI,GAAeznI,KAAKmG,MAAOA,IAAUshI,GAAeznI,KAAKuB,MAAOA,ICVxE,IAAIqmI,GAAc/+H,MAClBA,MAAgB,YACXmuH,EAAMt3H,MAAQs3H,EAAMt3H,KAAKA,KAAcs3H,EAAML,MAChDK,EAAM7wH,MAAMwwH,IAAMK,EAAML,IACxBK,EAAML,IAAM,MAETiR,IAAaA,GAAY5Q,IAIX,oBAAVj5H,QACPA,OAAO8pI,KACP9pI,OAAO8pI,IAAI,qBAkCLC,IC9CFC,GAAgBl/H,MACtBA,MAAsB,SAASzH,EAAO64H,EAAUlC,MAC3C32H,EAAMF,aAEL4pC,EACAksF,EAAQiD,EAEJjD,EAAQA,UACVlsF,EAAYksF,QAAqBlsF,aAChB,MAAjBmvF,QACHA,MAAgBlC,MAChBkC,MAAqBlC,OAGfjtF,MAA2B1pC,EAAO64H,GAI5C8N,GAAc3mI,EAAO64H,EAAUlC,IAGhC,IAAMiQ,GAAan/H,EAAQuwH,QAuE3B,SAAgB6O,cAEgB,OAC1BC,EAAc,cACQ,KAoIrB,SAASC,GAAUnR,OAErBlsF,EAAYksF,gBACTlsF,GAAaA,OAAwBA,MAAqBksF,GCjOlE,SAAgBoR,UACV1hI,EAAQ,UACR2hI,EAAO,KDcbx/H,EAAQuwH,QAAU,SAASpC,OAEpBlsF,EAAYksF,MACdlsF,GAAaA,OAChBA,QAOGA,QAAaksF,QAChBA,EAAMt3H,KAAO,MAGVsoI,IAAYA,GAAWhR,KAiE5BiR,GAAS3qI,UAAY,IAAIi6H,OAOa,SAAS99G,EAAS6uH,OACjDC,EAAsBD,MAGtB/vH,EAAIvY,KAEW,MAAjBuY,EAAE2vH,IACL3vH,EAAE2vH,EAAc,IAEjB3vH,EAAE2vH,EAAYllI,KAAKulI,OAEb1nI,EAAUsnI,GAAU5vH,OAEtBygD,KACEwvE,EAAa,WACdxvE,IAEJA,KACAuvE,MAAiC,KAE7B1nI,EACHA,EAAQ4nI,GAERA,MAIFF,MAAiCC,MAE3BC,EAAuB,iBACrBlwH,MAA2B,IAG7BA,EAAEhX,MAAMA,IAAY,KACjBmnI,EAAiBnwH,EAAEhX,MAAMA,IAC/BgX,UAAmB,GA5EvB,SAASowH,EAAe3R,EAAO4R,EAAgBC,UAC1C7R,IACHA,MAAkB,KAClBA,MACCA,OACAA,MAAgBrnH,KAAI,YAAAm0C,OACnB6kF,EAAe7kF,EAAO8kF,EAAgBC,MAGpC7R,OACCA,YAAgC4R,IAC/B5R,OACH6R,EAAe7kF,aAAagzE,MAAYA,OAEzCA,aACAA,UAA8B6R,IAK1B7R,EApBR,CA6EK0R,EACAA,UACAA,eAMEP,MAFJ5vH,EAAEkkH,SAAS,CAAAtF,IAAe5+G,MAAwB,OAG1C4vH,EAAY5vH,EAAE2vH,EAAYxjI,OACjCyjI,EAAUxL,gBAUPmM,OAAeR,MAChB/vH,SAAgCuwH,GACpCvwH,EAAEkkH,SAAS,CAAAtF,IAAe5+G,MAAwBA,UAAmB,KAEtEkB,EAAQvY,KAAKsnI,EAAYA,IAG1BP,GAAS3qI,UAAU++H,qBAAuB,gBACpC6L,EAAc,IAQpBD,GAAS3qI,UAAUqkF,OAAS,SAASx7E,EAAO5E,MACvCvB,KAAKA,IAAqB,IAIzBA,KAAKA,IAALA,IAAuB,KACpB4oI,EAAiBxhI,SAASq5C,cAAc,OACxCsoF,EAAoB/oI,KAAKA,IAALA,IAAsB,GAAG,IAAH,aAC1B,GArJzB,SAASgpI,EAAchS,EAAO4R,EAAgB3Q,UACzCjB,IACCA,OAAoBA,YACvBA,aAA+Bz2H,SAAQ,YACR,mBAAnB0oI,OAA+BA,WAG3CjS,UAA2B,MAIJ,OADxBA,EAAQ3mH,GAAO,CAAC,EAAG2mH,UAEdA,YAAgCiB,IACnCjB,UAA8B4R,GAE/B5R,MAAmB,MAGpBA,MACCA,OACAA,MAAgBrnH,KAAI,YAAAm0C,OACnBklF,EAAcllF,EAAO8kF,EAAgB3Q,OAIjCjB,EAzBR,CAsJIh3H,KAAKA,IACL4oI,EACCG,MAAuCA,gBAIf,SAKtBlE,EACLtjI,OAAoBk/C,EAAc62E,EAAU,KAAMnxH,EAAM0+H,iBACrDA,IAAUA,MAAsB,MAE7B,CACNpkF,EAAc62E,EAAU,KAAM/1H,MAAmB,KAAO4E,EAAMigD,UAC9Dy+E,IChMF,IAAMhkI,GAAU,SAAC6V,EAAMotC,EAAOx3C,QACvBA,EAdgB,KAcSA,EAfR,IAqBtBoK,EAAK2xH,EAAKtyF,OAAO+N,GAQhBptC,EAAKvQ,MAAM+iI,cACmB,MAA9BxyH,EAAKvQ,MAAM+iI,YAAY,KAAcxyH,EAAK2xH,EAAKryH,UAQjD1J,EAAOoK,EAAKhQ,EACL4F,GAAM,MACLA,EAAK/I,OAAS,GACpB+I,EAAK5H,KAAL4H,MAEGA,EA1CiB,GA0CMA,EA3CL,SA8CtBoK,EAAKhQ,EAAQ4F,EAAOA,EA5CJ,MAmDlB87H,GAAa9qI,UAAY,IAAIi6H,OAEO,SAASzzE,OACtCptC,EAAO1W,KACPmpI,EAAYhB,GAAUzxH,OAExBpK,EAAOoK,EAAK2xH,EAAKvyH,IAAIguC,UACzBx3C,EA5DuB,KA8DhB,SAAAqU,GAAAyoH,IACAC,EAAmB,WACnB3yH,EAAKvQ,MAAM+iI,aAKf58H,EAAKtJ,KAAKomI,GACVvoI,GAAQ6V,EAAMotC,EAAOx3C,IAHrB88H,KAMED,EACHA,EAAUE,GAEVA,MAKHjB,GAAa9qI,UAAUqkF,OAAS,SAASx7E,QACnCO,EAAQ,UACR2hI,EAAO,IAAIv4H,QAEVs2C,EAAWkzE,EAAanzH,EAAMigD,UAChCjgD,EAAM+iI,aAAwC,MAAzB/iI,EAAM+iI,YAAY,IAI1C9iF,EAAS3hD,cAIL,IAAIjB,EAAI4iD,EAAS7iD,OAAQC,UAYxB6kI,EAAKtjH,IAAIqhC,EAAS5iD,GAAKxD,KAAK0G,EAAQ,CAAC,EAAG,EAAG1G,KAAK0G,WAE/CP,EAAMigD,UAGdgiF,GAAa9qI,UAAU69H,mBAAqBiN,GAAa9qI,UAAUy9H,kBAAoB,2BAOjFsN,EAAK9nI,SAAQ,SAAC+L,EAAMw3C,GACxBjjD,GAAQyW,EAAMwsC,EAAOx3C,WCnHVg9H,GACM,oBAAVvrI,QAAyBA,OAAO8pI,KAAO9pI,OAAO8pI,IAAI,kBAC1D,MAEK0B,GAAc,4OAEdhpF,GAA6B,oBAAbn5C,SAKhBoiI,GAAoB,SAAA9pI,UACP,oBAAV3B,QAA4C,iBAAZA,SACrC,eACA,eACDolB,KAAKzjB,IAGR63H,EAAUj6H,UAAUmsI,iBAAmB,CAAC,EASxC,CACC,qBACA,4BACA,uBACClpI,SAAQ,YACTlD,OAAOI,eAAe85H,EAAUj6H,UAAWK,EAAK,CAC/Ca,cAAcA,EACdsX,sBACQ9V,KAAK,UAAYrC,IAEzBonB,aAAIvD,GACHnkB,OAAOI,eAAeuC,KAAMrC,EAAK,CAChCa,cAAcA,EACdC,UAAUA,EACVZ,MAAO2jB,UAiCX,IAAIkoH,GAAe7gI,EAAQ8M,MAS3B,SAASg0H,MAET,SAASC,YACD5pI,KAAK6pI,aAGb,SAASC,YACD9pI,KAAK+pI,iBAfblhI,EAAQ8M,MAAQ,YAAAnJ,OACXk9H,KAAcl9H,EAAIk9H,GAAal9H,IACnCA,EAAEwlG,QAAU23B,GACZn9H,EAAEo9H,qBAAuBA,GACzBp9H,EAAEs9H,mBAAqBA,GACft9H,EAAEw9H,YAAcx9H,GAazB,IAAIy9H,GAAsB,CACzBzrI,cAAcA,EACdsX,sBACQ9V,KAAKmoD,QAIV+hF,GAAerhI,EAAQmuH,MAC3BnuH,EAAQmuH,MAAQ,YAAAA,IACXt3H,EAAOs3H,EAAMt3H,KACbyG,EAAQ6wH,EAAM7wH,MACdywH,EAAkBzwH,KAGF,iBAATzG,EAAmB,KACvByqI,OAAmBzqI,EAAK2K,QAAQ,SAGjC,IAAI7G,KAFTozH,EAAkB,CAAC,EAELzwH,EAAO,KAChBtI,EAAQsI,EAAM3C,GAEd+8C,IAAgB,aAAN/8C,GAA6B,aAAT9D,GAInB,UAAN8D,GAAiB,iBAAkB2C,GAAkB,MAATtI,IAK9C,iBAAN2F,GACA,UAAW2C,GACI,MAAfA,EAAMtI,MAIN2F,EAAI,QACY,aAANA,QAAoB3F,EAM9BA,EAAQ,GACE,iBAAiBslB,KAAK3f,GAChCA,EAAI,aAEJ,6BAA6B2f,KAAK3f,EAAI9D,KACrC8pI,GAAkBrjI,EAAMzG,MAEzB8D,EAAI,UACM,aAAa2f,KAAK3f,GAC5BA,EAAI,YACM,YAAY2f,KAAK3f,GAC3BA,EAAI,aACM,6BAA6B2f,KAAK3f,GAC5CA,EAAIA,EAAE2T,cACIgzH,GAAoBZ,GAAYpmH,KAAK3f,GAC/CA,EAAIA,EAAE2U,QAAQ,WAAY,OAAOhB,cACb,OAAVtZ,IACVA,UAGD+4H,EAAgBpzH,GAAK3F,GAKb,UAAR6B,GACAk3H,EAAgBwT,UAChBx8H,MAAMC,QAAQ+oH,EAAgB/4H,SAG9B+4H,EAAgB/4H,MAAQy7H,EAAanzH,EAAMigD,UAAU7lD,SAAQ,YAC5DujD,EAAM39C,MAAMkkI,aACXzT,EAAgB/4H,MAAMwM,QAAQy5C,EAAM39C,MAAMtI,WAKjC,UAAR6B,GAAoD,MAAhCk3H,EAAgBl7D,eACvCk7D,EAAgB/4H,MAAQy7H,EAAanzH,EAAMigD,UAAU7lD,SAAQ,YAE3DujD,EAAM39C,MAAMkkI,SADTzT,EAAgBwT,aAElBxT,EAAgBl7D,aAAarxD,QAAQy5C,EAAM39C,MAAMtI,OAGjD+4H,EAAgBl7D,cAAgB5X,EAAM39C,MAAMtI,UAKhDm5H,EAAM7wH,MAAQywH,EAEVzwH,EAAMgiD,OAAShiD,EAAMmkI,YACxBL,GAAoB1rI,WAAa,cAAe4H,EACzB,MAAnBA,EAAMmkI,YAAmB1T,EAAgBzuE,MAAQhiD,EAAMmkI,WAC3DjtI,OAAOI,eAAem5H,EAAiB,YAAaqT,KAItDjT,EAAMuT,SAAWjB,GAEbY,IAAcA,GAAalT,IAKhC,IAAM4P,GAAkB/9H,MACxBA,MAAkB,SAASmuH,GACtB4P,IACHA,GAAgB5P,GAEEA,OClHpB,IC/FMwT,GAAc,CAClBC,MAAO,UACPC,KAAM,SAGaC,eAAA,sCACnB,aAAc,MASZ,OATY,qBACZ,gBAEK7K,WAAa,GAAKA,WAAW7yH,QAAO,SAACu0H,GACxC,OAAQA,EAASt7H,MACnB,IAEA,EAAK3E,MAAQ,CACXqpI,WAAY,EAAK9K,WAAW,GAAG/nF,IACjC,CACF,CA0EA,OA1EA,uCAEA,SAAWypF,GACT,IAAQ96E,EAAS86E,EAAX96E,KAEN,GAAIA,EAAM,CACR,GAAIA,EAAKmkF,IACP,OACE,EAAC,QACC1iF,MAAM,OACN0zE,wBAAyB,CAAEiP,OAAQpkF,EAAKmkF,OAK9C,GAAInkF,EAAK+hC,IACP,OAAO,EAAC,OAAIA,IAAK/hC,EAAK+hC,KAE1B,CAEA,IAAMs3C,EACJ,GAAMD,WAAW0B,EAASzpF,KAAO,GAAM+nF,WAAWE,OAOpD,OAAOD,EAJe,QAApB//H,KAAKmG,MAAMq/C,MACPglF,GAAYxqI,KAAKmG,MAAM05H,OACvB7/H,KAAKmG,MAAMq/C,QAEcu6E,CACjC,uBAEA,WAAS,WACHgL,EAAwB,KAE5B,OACE,EAAC,OAAIhzF,GAAG,MAAMoQ,MAAM,UAAU,gBAAenoD,KAAKmG,MAAM6+B,S,SACtD,EAAC,OAAImjB,MAAM,gB,UACRnoD,KAAK8/H,WAAWnwH,KAAI,SAAC6xH,EAAUh+H,GAC9B,IAAMoiD,EAAQ47E,EAAS19H,MAAQ,GAAKg8H,WAAW0B,EAASzpF,IAClDsyF,GACH,EAAKlkI,MAAM6kI,WAAaxJ,EAASzpF,IAAM,EAAKx2C,MAAMqpI,WAMrD,OAJIP,IACFU,EAAwBvnI,GAIxB,EAAC,UACC,aAAYoiD,EACZ,gBAAeykF,QAAYnoI,EAC3B0jD,MAAOA,EACPlmD,KAAK,SACLyoD,MAAM,6BACN8iF,YAAa,SAACz+H,GAAA,OAAMA,EAAEupF,gBAAc,EACpCm1C,QAAS,WACP,EAAK/kI,MAAM+kI,QAAQ,C,SAAE1J,E,EAAUh+H,GACjC,E,SAEC,EAAK2nI,WAAW3J,IAGvB,IAEA,EAAC,OACCr5E,MAAM,MACNziB,MAAO,CACLnV,MAAOA,GAAPA,OAAU,IAAMvwB,KAAK8/H,WAAWv8H,OAAM,KACtCqqD,QAAkC,MAAzBm9E,EAAgC,EAAI,EAC7Cp6H,UAAWA,cAAXA,OAAiD,IAAxBo6H,EAAwB,aAM7D,OArFmBJ,CAAmB,ICRnBS,eAAA,sGAenB,OAfmB,kDACnB,SAAsBC,GACpB,IAAK,IAAIltG,KAAKktG,EACZ,GAAS,YAALltG,GAEAktG,EAAUltG,IAAMn+B,KAAKmG,MAAMg4B,GAC7B,OAAO,EAIX,OAAO,CACT,uBAEA,WACE,OAAOn+B,KAAKmG,MAAMigD,QACpB,OAfmBglF,CAA4B,ICU3CE,GACW,GAGIC,eAAA,sCACnB,WAAYplI,GAAO,MAOjB,OAPiB,oBACjB,eAyLF,uCAAqB,SAACqG,GACpB,IAAQu5B,EAAY,EAAK5/B,MAAnB4/B,QAEFv5B,EAAEtG,QAAU6/B,IACV,EAAKxkC,MAAMiqI,WACb,EAAKC,aAGH,EAAKtlI,MAAMk6H,gBACb,EAAKl6H,MAAMk6H,iBAGjB,IAEA,oCAAkB,SAAC7zH,GACZ,EAAKjL,MAAMiqI,YACXh/H,EAAEtG,OAAOwlI,QAAQ,WACpBl/H,EAAEupF,iBACFvpF,EAAEm/H,2BAEF,EAAKF,cAET,IAEA,sCAAoB,SAACj/H,GACd,EAAKjL,MAAMiqI,WACH,UAATh/H,EAAE7O,MACJ6O,EAAEupF,iBACFvpF,EAAEm/H,2BAEF,EAAKF,aAET,IAwFA,sCAAoB,WACJ,EAAKG,cAAc,EAAKrqI,MAAMutD,MAG5C,EAAK2tE,SAAS,CAAE3tE,IAAK,EAAE,GAAI,IAC7B,IAEA,qEAAoB,gHACyB,GAArC2qC,EAAQ,EAAKs/B,KAAK8S,YAAYh1E,QACxB4iC,CAAP,gDAEC,OAAE57F,EAAU47F,EAAZ57F,MAAA,SACsB,GAAY4vF,OAAO5vF,GAAA,OAI/C,GAJMiuI,EAAgBA,EAAhBA,KACAC,EAAc,WACb,EAAKhT,KAAKiT,OAAOn1E,UACtB,EAAKkiE,KAAKiT,OAAOn1E,QAAQo1E,UAAY,EACvC,EAEKH,EAAeA,CAAf,yCACI,EAAKrP,SAAS,C,cAAEqP,EAAeh9E,IAAK,EAAE,GAAI,IAAMi9E,IAAA,QAGnDj9E,EAAM2qC,EAAMyyC,gBAAkBzyC,EAAM57F,MAAM0F,OAAS,CAAC,EAAG,GAAK,EAAE,GAAI,IAClE4oI,EAAO,IACRC,QAAUN,EAAcvoI,OACzB8oI,EAAM,KAAI,cAEIP,GAAA,IAAlB,IAAK,EAAL,qBAAS7O,UACFkP,EAAK5oI,QAAU8oI,EAAI9oI,QAAU,EAAK4C,MAAMk4H,WAC3CgO,EAAM,IACFC,aAAe,SACnBD,EAAIE,QAAUJ,EAAK5oI,OACnB4oI,EAAKnpI,KAAKqpI,IAGZA,EAAIrpI,KAAKi6H,EACX,+BAEA,EAAKuP,cACL,EAAK/P,SAAS,CAAEqP,cAAeK,E,IAAMr9E,GAAOi9E,GAAA,6CAG9C,wCAAsB,SAACv/H,GAErB,IAAMitF,EAAQjtF,EAAEigI,cAGhB,OAFAjgI,EAAEm/H,2BAEMn/H,EAAE7O,KACR,IAAK,YAGH,EAAK+uI,SAAS,C,EAAElgI,E,MAAGitF,EAAOxkE,MAAM,IAChC,MAEF,IAAK,aAGH,EAAKy3G,SAAS,C,EAAElgI,E,MAAGitF,EAAOvkE,OAAO,IACjC,MAEF,IAAK,UAGH,EAAKw3G,SAAS,C,EAAElgI,E,MAAGitF,EAAOxiE,IAAI,IAC9B,MAEF,IAAK,YAGH,EAAKy1G,SAAS,C,EAAElgI,E,MAAGitF,EAAOkzC,MAAM,IAChC,MAEF,IAAK,QACHngI,EAAEupF,iBACF,EAAK62C,iBAAiB,C,EAAEpgI,EAAGsiD,IAAK,EAAKvtD,MAAMutD,MAC3C,MAEF,IAAK,SACHtiD,EAAEupF,iBACE,EAAKx0F,MAAMuqI,cACb,EAAKe,cAEL,EAAKC,gBAOb,IAEA,gCAAc,WACZ,IAAMrzC,EAAQ,EAAKs/B,KAAK8S,YAAYh1E,QAC/B4iC,IAELA,EAAM57F,MAAQ,GACd47F,EAAM1pB,QAEN,EAAKg9D,oBACP,IAgJA,wCAAsB,YAAqB,IAAlBvL,IAAFA,SAAYh+H,IAAFA,EAC/B,EAAKwpI,SAAc,GAALxpI,EAAS,CAAE6oI,KAAM,GAAM,CAAEzB,WAAYpJ,EAASzpF,IAC9D,IAyBA,8BAAY,SAACvrC,GACX,IACMqzE,EADoBrzE,EAApBigI,cACqBl+E,wBAE3B,EAAKkuE,SAAS,CAAE+O,UAAW3rD,GAAK,gCAAG,8GAE3B,GAAM,UAEuB,GAA7BotD,EAAO,EAAKlU,KAAKkU,KAAKp2E,QACjBo2E,CAAN,gDAELA,EAAK5oF,UAAUqK,OAAO,UACtB,EAAKqqE,KAAKmU,cAAcr2E,QAAQkZ,QAEhC,EAAKonB,KAAKt9E,iBAAiB,QAAS,EAAKszH,iBAAiB,GAC1D,EAAKh2C,KAAKt9E,iBAAiB,UAAW,EAAKuzH,mBAAmB,GAAI,2CAEtE,IA9kBE,EAAK7rI,MAAQ,aACXutD,IAAK,EAAE,GAAI,GACXu+E,YAAa,CAAE,GAAG,IACf,EAAKC,gBAAgBnnI,IAC1B,CACF,CAiiCA,OAjiCA,4CAEA,WAAoC,IAApBA,EAAQA,UAARA,6CAAQnG,KAAKmG,MAC3B,MAAO,CACLw5H,KAAM,EAAM7pH,IAAI,SAAW3P,EAAMw5H,KACjCE,MAAO7/H,KAAKutI,UAAUpnI,EAAM05H,OAEhC,mCAEA,WACE7/H,KAAKoK,UAAY,GACjBpK,KAAKwtI,IAAM,GAAKC,IAAM,MAAQ,MAC9BztI,KAAK+4H,KAAO,CACVkU,KjC8CE,CAAEp2E,QAAS,MiC7Cb62E,WjC6CE,CAAE72E,QAAS,MiC5Cbm1E,OjC4CE,CAAEn1E,QAAS,MiC3Cb42B,OjC2CE,CAAE52B,QAAS,MiC1Cbg1E,YjC0CE,CAAEh1E,QAAS,MiCzCb82E,ejCyCE,CAAE92E,QAAS,MiCxCbq2E,cjCwCE,CAAEr2E,QAAS,OiCrCf72D,KAAK4tI,WAGwB,GAA3B5tI,KAAKmG,MAAMo6H,cACkB,UAA7BvgI,KAAKmG,MAAMu5H,iBAEX70H,QAAQQ,KACN,sFAGFrL,KAAKmG,MAAMu5H,eAAiB,SAEhC,kCAEA,WAKE,GAJA1/H,KAAK6tI,WAEL7tI,KAAKomI,WAAapmI,KAAKm3F,KAAK3sC,WAExBxqD,KAAKmG,MAAM24H,UAAW,CACxB,IAAQ+M,EAAgB7rI,KAAK+4H,KAAvB8S,YACFA,EAAYh1E,SACdg1E,EAAYh1E,QAAQkZ,OAExB,CACF,0CAEA,SAA0Bs7D,GAAW,WAGnC,IAAK,IAAMltG,KAFXn+B,KAAK8tI,YAAc9tI,KAAK8tI,UAAY,CAAC,GAErBzC,EACdrrI,KAAK8tI,UAAU3vG,GAAKktG,EAAUltG,GAGhCzlB,aAAa1Y,KAAK+tI,gBAClB/tI,KAAK+tI,eAAiBp1H,YAAW,WAC/B,IAAIq1H,GAAoB,EAExB,IAAK,IAAM7vG,KAAK,EAAK2vG,UACnB,EAAK3nI,MAAMg4B,GAAK,EAAK2vG,UAAU3vG,GAErB,WAANA,GAAwB,eAANA,IACpB6vG,GAAoB,UAIjB,EAAKF,UACZ,IAAMA,EAAY,EAAKR,kBAEvB,GAAIU,EACF,OAAO,EAAK7qI,MAAM2qI,GAGpB,EAAKrR,SAASqR,EAChB,GACF,qCAEA,WACE9tI,KAAK8lI,YACP,uEAEA,iHAA0B,OAAdgI,EAAYA,EAAZA,6BAAY,CAAC,EAAC,SAClB,GAAK9tI,KAAKmG,OAAK,OAErBnG,KAAK4tI,WACL5tI,KAAKiuI,YAELjuI,KAAKy8H,SAASqR,GAAW,WACvB,EAAKI,oBACL,EAAKC,aACP,oDACF,kDAZA,IAYA,sBAEA,WACE/mI,SAASyS,iBAAiB,QAAS7Z,KAAKouI,oBACxCpuI,KAAK0zD,SACP,2BAEA,WACEtsD,SAASkU,oBAAoB,QAAStb,KAAKouI,oBAC3CpuI,KAAKiuI,WACP,wBAEA,WACEjuI,KAAKkuI,oBACLluI,KAAKmuI,aACP,0BAEA,WAAY,IAC2B,EAD3B,cACanuI,KAAKoK,WAAS,IAArC,IAAK,EAAL,qBACE,CADSJ,QACAuoD,YAAU,gCAEvB,yBAEA,WAAW,WACDutE,EAAe,GAAjBA,WAEN9/H,KAAK+4H,KAAK+G,WAAa,IAAIhwH,IAE3B,IAAMu+H,EAAS,GAAKvO,WAAWnwH,KAAI,SAAC6xH,GAAA,OAAaA,EAASzpF,EAAE,IAAEz6B,KAAK,KAC/Dtd,KAAKquI,QAAUruI,KAAKquI,QAAUA,GAChCruI,KAAK+4H,KAAKiT,OAAOn1E,UAAY72D,KAAK+4H,KAAKiT,OAAOn1E,QAAQo1E,UAAY,GAEpEjsI,KAAKquI,OAASA,EAEdruI,KAAKmsI,KAAO,GACZnsI,KAAKmsI,KAAKC,QAAU,EAEpB,IAeqB,EAffkC,EAAS,SAAC7I,EAAMjE,GACpB,IAAM6K,EAAM,GACZA,EAAIC,aAAe9K,EAASzpF,GAC5Bs0F,EAAIE,QAAU9G,EAAKliI,OACnB,EAAK4oI,KAAKnpI,KAAKqpI,GAEf,IAAMkC,EAAW,EAAKpC,KAAK5oI,OAAS,EAC9BirI,EAASD,EAAWjD,GAA4B,CAAC,EjC9ErD,CAAEz0E,QAAS,MiCmFb,OAJA23E,EAAOrkI,MAAQokI,EACfC,EAAOC,SAAW,EAAKtC,KAAKC,QAAU,EACtC3G,EAAKziI,KAAKwrI,GAEHnC,CACT,gBAEqBvM,GAAA,IAArB,IAAK,EAAL,qBAAiC,KAIE,EAJ1B0B,UACDiE,EAAO,GACT4G,EAAMiC,EAAO7I,EAAMjE,GAAA,cAELA,EAASJ,QAAM,IAAjC,IAAK,EAAL,qBAAmC,KAA1BnE,UACHoP,EAAI9oI,QAAUvD,KAAKmG,MAAMk4H,UAC3BgO,EAAMiC,EAAO7I,EAAMjE,IAGrBxhI,KAAKmsI,KAAKC,SAAW,EACrBC,EAAIrpI,KAAKi6H,EACX,gCAEAj9H,KAAK+4H,KAAK+G,WAAW/6G,IAAIy8G,EAASzpF,GAAI,CAAE6W,KjCnGtC,CAAEiI,QAAS,M,KiCmG8C4uE,GAC7D,gCACF,0BAEA,SAAU5F,GAAO,WACf,GAAa,QAATA,EAAiB,OAAOA,EAE5B,IAAK7/H,KAAK0uI,UAAW,CAEnB,GADA1uI,KAAK0uI,UAAYC,WAAW,gCACxB3uI,KAAK0uI,UAAUv0H,MAAMlT,MAAM,QAAS,MAAO,QAE/CjH,KAAK0uI,UAAU7pG,aAAY,WACD,QAApB,EAAK1+B,MAAM05H,OACf,EAAKpD,SAAS,CAAEoD,MAAO,EAAK6O,UAAU16F,QAAU,OAAS,SAC3D,GACF,CAEA,OAAOh0C,KAAK0uI,UAAU16F,QAAU,OAAS,OAC3C,8BAoCA,YAAwB,uBAATnS,OAAIy5D,OACX6wC,EAAOnsI,KAAKuB,MAAMuqI,eAAiB9rI,KAAKmsI,KACxClP,EAAQkP,EAAKtqG,IAAOsqG,EAAKtqG,GAAIy5D,GAEnC,GAAK2hC,EACL,OAAO,GAAYnnH,IAAImnH,EACzB,kCAEA,WACE,IAAMyQ,EAAa1tI,KAAK+4H,KAAK2U,WAAW72E,QACxC,GAAK62E,EAAL,CAEA,IA2BkD,EA3B5CkB,EAAoB,IAAI9+H,IAOxB++H,EAAkB,CACtBjgF,KAAM5uD,KAAK+4H,KAAKiT,OAAOn1E,QACvB1Y,UAAW,CAAC,EAAK,IAGbn0C,EAAW,IAAI8kI,sBAAqB,SAAC9+H,GAAY,IACjC,EADiC,cACjCA,GAAA,IAApB,IAAK,EAAL,qBAA6B,KAAlBtN,UACHq1C,EAAKr1C,EAAMwD,OAAO6oI,QAAQh3F,GAChC62F,EAAkB7pH,IAAIgzB,EAAIr1C,EAAMssI,kBAClC,gCAEA,IAC0B,EAlBApE,EAiBpBqE,EAASA,YAAIL,GAAkB,cACXK,GAAA,IAA1B,IAAK,EAAL,qBACE,8BADUC,OACV,GADcvvD,KACH,EAnBairD,EAoBHsE,IAnBLxB,EAAWnsI,MAAMqpI,YACjC8C,EAAWjR,SAAS,C,WAAEmO,IAmBpB,KACF,EAAC,+BAEL,GAAGiE,GAAA,cAEoB7uI,KAAK+4H,KAAK+G,WAAW1/H,UAAM,IAAlD,IAAK,EAAL,qBACE,KADWwuD,UAAFA,KACT5kD,EAAS0pD,QAAQ9E,EAAKiI,QAAO,gCAG/B72D,KAAKoK,UAAUpH,KAAKgH,EAjCG,CAkCzB,4BAEA,WAAc,IAyBsC,EAzBtC,OACNqjI,EAAcA,eAAKrtI,KAAKuB,MAAM8rI,aAE9BrjI,EAAW,IAAI8kI,sBACnB,SAAC9+H,GAAY,IACS,EADT,cACSA,GAAA,IAApB,IAAK,EAAL,qBAA6B,KAAlBtN,UACHyH,EAAQyhC,SAASlpC,EAAMwD,OAAO6oI,QAAQ5kI,OAExCzH,EAAMysI,eACR9B,EAAYljI,IAAS,SAEdkjI,EAAYljI,EAEvB,gCAEA,EAAKsyH,SAAS,C,YAAE4Q,GAClB,GACA,CACEz+E,KAAM5uD,KAAK+4H,KAAKiT,OAAOn1E,QACvBu4E,WAAYA,GAAZA,OACEpvI,KAAKmG,MAAM84H,iBAAmBqM,GAA4B,qBAClDtrI,KAAKmG,MAAM84H,gBAAkBqM,GAAyB,QAClE,cAGqBtrI,KAAK+4H,KAAK+G,WAAW1/H,UAAM,IAAlD,IAAK,EAAL,qBAAsD,KAClC,EADPqlI,UAAFA,KAAA,cACSA,GAAA,IAAlB,IAAK,EAAL,qBACE,KADS4G,UACLA,EAAIx1E,SACN7sD,EAAS0pD,QAAQ24E,EAAIx1E,QAAO,gCAGlC,gCAEA72D,KAAKoK,UAAUpH,KAAKgH,EACtB,+BAEA,SAAewC,GACbA,EAAEupF,gBACJ,8BAuGA,WACE,IAAM0D,EAAQz5F,KAAK+4H,KAAK8S,YAAYh1E,QAC/B4iC,GAELA,EAAM41C,MACR,yBAEA,YAA8C,WAAnC7iI,IAAFA,EAAKitF,IAAFA,MAASxkE,IAAFA,KAAQC,IAAFA,MAAS+B,IAAFA,GAAM01G,IAAFA,KAC5BR,EAAOnsI,KAAKuB,MAAMuqI,eAAiB9rI,KAAKmsI,KAC9C,GAAKA,EAAK5oI,OAAV,CAEA,kBAAevD,KAAKuB,MAAMutD,IAAG,GAAxBjtB,OAAIy5D,OAEHxsC,EAAO,WACX,GAAU,GAANjtB,GACQ,GAANy5D,IAAY9uF,EAAE8iI,SAAWr6G,GAAQgC,GACnC,OAAO,KAIX,IAAW,GAAP4K,EACF,OACGr1B,EAAE8iI,SACFp6G,IAASy3G,GACVlzC,EAAMyyC,gBAAkBzyC,EAAM57F,MAAM0F,OAK/B,KAHE,CAAC,EAAG,GAMf,GAAI0xB,GAAQC,EAAO,CACjB,IAAIm3G,EAAMF,EAAKtqG,GACT0tG,EAAYt6G,GAAQ,EAAI,EAG9B,IAAKo3G,EADL/wC,GAAMi0C,GACQ,CAIZ,KAFAlD,EAAMF,EADNtqG,GAAM0tG,IAOJ,OAHA1tG,EAAK5M,EAAO,EAAIk3G,EAAK5oI,OAAS,EAC9B+3F,EAAKrmE,EAAO,EAAIk3G,EAAKtqG,GAAIt+B,OAAS,EAE3B,CAACs+B,EAAIy5D,GAGdA,EAAKrmE,EAAOo3G,EAAI9oI,OAAS,EAAI,CAC/B,CAEA,MAAO,CAACs+B,EAAIy5D,EACd,CAEA,GAAIrkE,GAAM01G,EAAM,CAEd,IAAM6C,EAAMrD,EADZtqG,GAAM5K,GAAM,EAAI,GAGhB,OAAKu4G,GAOAA,EAAIl0C,KACPA,EAAKk0C,EAAIjsI,OAAS,GAGb,CAACs+B,EAAIy5D,KAVVz5D,EAAK5K,EAAK,EAAIk1G,EAAK5oI,OAAS,EAC5B+3F,EAAKrkE,EAAK,EAAIk1G,EAAKtqG,GAAIt+B,OAAS,EAEzB,CAACs+B,EAAIy5D,GAQhB,CACF,CA1Da,GA4DTxsC,GACFtiD,EAAEupF,iBASJ/1F,KAAKy8H,SAAS,C,IAAE3tE,EAAK2gF,UAAU,IAAQ,WACrC,EAAKzC,SAAS,CAAEX,IAAKv9E,EAAI,IAC3B,KATM9uD,KAAKuB,MAAMutD,IAAI,IAAM,GACvB9uD,KAAKy8H,SAAS,CAAE3tE,IAAK,EAAE,GAAI,IApEP,CA6E1B,yBAEA,YAA8B,IAAnB87E,IAAFA,WAAcyB,IAAFA,IACbF,EAAOnsI,KAAKuB,MAAMuqI,eAAiB9rI,KAAKmsI,KAC9C,GAAKA,EAAK5oI,OAAV,CAEA,IAAMyoI,EAAShsI,KAAK+4H,KAAKiT,OAAOn1E,QAC1B64E,EAAa1D,EAAOz9E,wBAEtB09E,EAAY,EAMhB,GAJII,GAAO,IACTzB,EAAauB,EAAKE,GAAKC,cAGrB1B,EAKFqB,GAHEjsI,KAAK+4H,KAAK6R,IAAe5qI,KAAK+4H,KAAK+G,WAAWhqH,IAAI80H,GAAYh8E,MACvCiI,QAAQtI,wBAERn5B,KAAOs6G,EAAWt6G,IAAM42G,EAAOC,WAAa,EAGvE,GAAII,GAAO,EACT,GAAKA,EAEE,CACL,IACMsD,EAAS1D,EADEE,EAAKE,GAAKE,QACWvsI,KAAKmG,MAAM84H,gBAC3C2Q,EACJD,EACA3vI,KAAKmG,MAAM84H,gBACkB,IAA7Bj/H,KAAKmG,MAAM84H,gBAEb,GAAI0Q,EAAS3D,EAAOC,UAClBA,EAAY0D,MACP,MAAIC,EAAS5D,EAAOC,UAAYyD,EAAWl/G,QAGhD,OAFAy7G,EAAY2D,EAASF,EAAWl/G,MAE1B,CAEV,MAhBEy7G,EAAY,EAmBhBjsI,KAAKwsI,cACLR,EAAOC,UAAYA,CAzCK,CA0C1B,4BAEA,WAAc,WACZjsI,KAAK6vI,gBAAiB,EACtBn3H,aAAa1Y,KAAK8vI,kBAClB9vI,KAAK8vI,iBAAmBn3H,YAAW,kBAC1B,EAAKk3H,cACd,GAAG,IACL,gCAMA,SAAgB/gF,GACV9uD,KAAK6vI,gBAAkB7vI,KAAKuB,MAAMiqI,WACtCxrI,KAAKy8H,SAAS,CAAE3tE,IAAKA,GAAO,EAAE,GAAI,GAAI2gF,UAAU,GAClD,iCAEA,YAAoC,IAAjBjjI,IAAFA,EAAKywH,IAAFA,MAASnuE,IAAFA,IACzB,GAAK9uD,KAAKmG,MAAMm6H,iBAEXrD,GAASnuE,IACZmuE,EAAQj9H,KAAK4rI,cAAc98E,IAGzBmuE,GAAO,CACT,IAAM6G,EAAY,GAAa7G,EAAO,CAAEuF,UAAWxiI,KAAKuB,MAAMo+H,KAAO,IAEjE3/H,KAAKmG,MAAMi4H,iBACb,GAAeroH,IAAI+tH,EAAW9jI,KAAKmG,OAGrCnG,KAAKmG,MAAMm6H,cAAcwD,EAAWt3H,EACtC,CACF,2BAqBA,WACOxM,KAAKuB,MAAMiqI,YAChBxrI,KAAKy8H,SAAS,CAAE+O,UAAW,KAAMuE,SAAU,OAE3C/vI,KAAKm3F,KAAK77E,oBAAoB,QAAStb,KAAKmtI,iBAC5CntI,KAAKm3F,KAAK77E,oBAAoB,UAAWtb,KAAKotI,mBAChD,oCAEA,SAAoB2C,GAClB/vI,KAAKy8H,SAAS,C,SAAEsT,GAClB,gCAEA,SAAgBpQ,GACd3/H,KAAKwsI,cACLxsI,KAAKyrI,aAELzrI,KAAKy8H,SAAS,C,KAAEkD,EAAMoQ,SAAU,OAChC,EAAMhrH,IAAI,OAAQ46G,EACpB,0BAEA,WACE,OACE,EAAC,GAAS,CAERhJ,IAAK32H,KAAK+4H,KAAK2U,WACfloF,MAAOxlD,KAAKmG,MAAMq/C,MAClBq6E,MAAO7/H,KAAKuB,MAAMs+H,MAClBmL,YAAahrI,KAAKuB,MAAMuqI,cACxB9mG,SAAUhlC,KAAKmG,MAAMk5H,YACrB6L,QAASlrI,KAAKgwI,qBANThwI,KAAKquI,OAShB,8BAEA,WACE,IAAMpR,EAAQj9H,KAAK4rI,cAAc5rI,KAAKuB,MAAMutD,KACtCmhF,EACJjwI,KAAKuB,MAAMuqI,gBAAkB9rI,KAAKuB,MAAMuqI,cAAcvoI,OAExD,OACE,EAAC,OACCw0C,GAAG,UACHoQ,MAAM,mBACNqlF,IAAKxtI,KAAKwtI,IACV,gBAAextI,KAAKmG,MAAMs5H,gB,UAE1B,EAAC,OAAIt3E,MAAM,6B,UACT,EAAC,OACCA,MAAM,yCACNziB,MAAO,CACLlV,OAAQxwB,KAAKmG,MAAM84H,gBACnB5wE,SAAUruD,KAAKmG,MAAM84H,iB,SAGvB,EAAC,GAAI,CACHhC,MAAOA,EACPllF,GACEk4F,EACIjwI,KAAKmG,MAAMo5H,gBAAkB,MAC7Bv/H,KAAKmG,MAAMq5H,eACoB,OAA9Bx/H,KAAKmG,MAAMs5H,gBACR,aACA,YAEV16G,IAAK/kB,KAAKmG,MAAM4e,IAChB/O,KAAMhW,KAAKmG,MAAM84H,gBACjBU,KAAM3/H,KAAKuB,MAAMwuI,UAAY/vI,KAAKuB,MAAMo+H,KACxCqF,aAAa,EACb7E,kBAAmBngI,KAAKmG,MAAMg6H,sBAIlC,EAAC,OAAIh4E,uBAAiBnoD,KAAKwtI,IAAI,I,SAE3B,EAAC,MADFvQ,EACE,CAAI90E,wBAAkBnoD,KAAKwtI,IAAI,GAAE,kBAAUxtI,KAAKwtI,IAAI,I,UACnD,EAAC,OAAIrlF,MAAM,WAAWziB,MAAO,CAAE2oB,SAAU,S,SACtC4uE,EAAMn5H,OAET,EAAC,OAAIqkD,MAAM,mBAAmBziB,MAAO,CAAE2oB,SAAU,Q,SAC9C4uE,EAAMwF,MAAM,GAAGG,eAGlBqN,EACD,CAAI9nF,wBAAkBnoD,KAAKwtI,IAAI,GAAE,kBAAUxtI,KAAKwtI,IAAI,I,UACnD,EAAC,OAAIrlF,MAAM,WAAWziB,MAAO,CAAE2oB,SAAU,S,SACtC,GAAK6hF,sBAER,EAAC,OAAI/nF,MAAM,mBAAmBziB,MAAO,CAAE2oB,SAAU,Q,SAC9C,GAAK8hF,wBAIT,CAAIhoF,MAAM,UAAUziB,MAAO,CAAE2oB,SAAU,I,SACrC,GAAK+hF,aAMZnT,GAC+B,WAA/Bj9H,KAAKmG,MAAMy5H,kBACX5/H,KAAKqwI,yBAGb,kCAEA,SAAkBpT,EAAO,GAAyB,IjB5sB1Br8G,EAAQ2I,EiB4sBkB,OAAvBulC,IAAFA,IAAO2/E,IAAFA,SAAYtC,IAAFA,KAChCn2H,EAAOhW,KAAKmG,MAAM84H,gBAClBU,EAAO3/H,KAAKuB,MAAMwuI,UAAY/vI,KAAKuB,MAAMo+H,KAEzC+C,GADYzF,EAAMwF,MAAM9C,EAAO,IAAM1C,EAAMwF,MAAM,IAC9BC,OACnB2H,GjBjtBgBzpH,EiBitBK5gB,KAAKuB,MAAMutD,IjBjtBRvlC,EiBitBaulC,EjB/sB3ClhD,MAAMC,QAAQ+S,IACdhT,MAAMC,QAAQ0b,IACd3I,EAAErd,SAAWgmB,EAAEhmB,QACfqd,EAAEjJ,OAAM,SAACpT,EAAK4F,GAAA,OAAU5F,GAAOglB,EAAEpf,EAAM,KiB6sBjCxM,EAAMmxD,EAAI93C,OAAOimH,EAAMllF,IAAIz6B,KAAK,IAEtC,OACE,EAAC,GAAkB,C,SAAkB+sH,E,KAAU1K,E,KAAM3pH,E,SACnD,EAAC,UACC,aAAY0sH,EACZ,gBAAe2H,QAAYnoI,EAC3B,gBAAeusI,EACf,eAActC,EAAKC,QACnB,gBAAepsI,KAAKuB,MAAMkuI,SAC1B7pF,MAAqC,QAA9B5lD,KAAKmG,MAAMs5H,gBAA4BxC,EAAMn5H,UAAO5B,EAC3DxC,KAAK,SACLyoD,MAAM,+BACNmoF,SAAS,KACTpF,QAAS,SAAC1+H,GAAA,OAAM,EAAKogI,iBAAiB,C,EAAEpgI,E,MAAGywH,GAAM,EACjDsT,aAAc,kBAAM,EAAKC,gBAAgB1hF,EAAA,EACzC2hF,aAAc,kBAAM,EAAKD,iBAAe,EACxC9qG,MAAO,CACLnV,MAAOvwB,KAAKmG,MAAM84H,gBAClBzuG,OAAQxwB,KAAKmG,MAAM84H,gBACnB5wE,SAAUruD,KAAKmG,MAAM+4H,UACrBwR,WAAY,G,UAGd,EAAC,OACC,cAAY,OACZvoF,MAAM,aACNziB,MAAO,CACLirG,aAAc3wI,KAAKmG,MAAM64H,kBACzB4R,gBAAiB5wI,KAAKmG,MAAM44H,kBACxB/+H,KAAKmG,MAAM44H,mBACR0P,EAAW,GAAKzuI,KAAKmG,MAAM44H,kBAAkBx7H,aAEhDrB,KAGR,EAAC,GAAI,CACH+6H,MAAOA,EACPl4G,IAAK/kB,KAAKmG,MAAM4e,IAChB/O,KAAMhW,KAAKmG,MAAM+4H,UACjBS,KAAMA,EACNqF,aAAa,EACb7E,kBAAmBngI,KAAKmG,MAAMg6H,wBAvCVxiI,EA4C9B,6BAEA,WACE,IAAMkzI,EAC0B,QAA9B7wI,KAAKmG,MAAMs5H,iBACoB,UAA/Bz/H,KAAKmG,MAAMy5H,iBAEb,OACE,EAAC,O,UACC,EAAC,OAAIz3E,MAAM,WACX,EAAC,OAAIA,MAAM,mB,UACR0oF,GAA8B,OAAZ7wI,KAAKwtI,KAAgBxtI,KAAKqwI,uBAE7C,EAAC,OAAIloF,MAAM,4B,UACT,EAAC,SACCzoD,KAAK,SACLi3H,IAAK32H,KAAK+4H,KAAK8S,YACfiF,YAAa,GAAKrjD,OAClBy9C,QAASlrI,KAAK+wI,kBACdC,QAAShxI,KAAK+sI,kBACdkE,UAAWjxI,KAAKkxI,oBAChBC,aAAa,QAEf,EAAC,QAAKhpF,MAAM,kB,SAAmB,GAAMslC,OAAOk3C,QAC3C3kI,KAAKuB,MAAMuqI,eACV,EAAC,UACClmF,MAAM,QACN,aAAW,QACXlmD,KAAK,SACLyoD,MAAM,mBACN+iF,QAASlrI,KAAK6sI,YACd5B,YAAajrI,KAAK+1F,e,SAEjB,GAAMtI,OAAO13C,YAKnB86F,GAA8B,OAAZ7wI,KAAKwtI,KAAgBxtI,KAAKqwI,4BAIrD,oCAEA,WAAsB,WACZvE,EAAkB9rI,KAAKuB,MAAzBuqI,cACN,OAAKA,EAGH,EAAC,OAAI3jF,MAAM,WAAWwuE,IAAK32H,KAAK+4H,KAAKtrC,O,UACnC,EAAC,OAAItlC,2CAAqCnoD,KAAKwtI,IAAI,I,SAChD,GAAK1N,WAAWryC,SAEnB,EAAC,O,SACGq+C,EAAcvoI,OAOduoI,EAAcn8H,KAAI,SAAC08H,EAAK7oI,GACtB,OACE,EAAC,OAAI2kD,MAAM,O,SACRkkF,EAAI18H,KAAI,SAACstH,EAAOmU,GACf,OAAO,EAAKC,kBAAkBpU,EAAO,CACnCnuE,IAAK,CAACtrD,EAAG4tI,GACT3C,SAAUjrI,EAAI,EAAK2C,MAAMk4H,QAAU+S,EAAK,EACxCjF,KAAML,GAEV,KAGN,IAlBA,EAAC,OAAI3jF,oCAA8BnoD,KAAKwtI,IAAI,I,SACzCxtI,KAAKmG,MAAMi6H,kBACV,EAAC,KAAE8K,QAASlrI,KAAKmG,MAAMi6H,iB,SAAmB,GAAKkR,oBAXhC,IAgC7B,iCAEA,WAAmB,WACTxR,EAAe,GAAjBA,WACAyR,IAAWvxI,KAAKuB,MAAMuqI,cAE5B,OACE,EAAC,OACCpmG,MAAO,CACL8rG,WAAYD,EAAS,cAAWrvI,EAChC6rG,QAASwjC,EAAS,YAASrvI,EAC3BsuB,OAAQ,Q,SAGTsvG,EAAWnwH,KAAI,SAAC6xH,GACf,MAAuB,EAAKzI,KAAK+G,WAAWhqH,IAAI0rH,EAASzpF,IAAjD6W,IAAFA,KAAQ62E,IAAFA,KAEZ,OACE,EAAC,OACC,UAASjE,EAASt7H,OAASs7H,EAASt7H,OAAO6xC,GAAKypF,EAASzpF,GACzDoQ,MAAM,WACNwuE,IAAK/nE,E,UAEL,EAAC,OAAIzG,2CAAqC,EAAKqlF,IAAI,I,SAChDhM,EAAS19H,MAAQ,GAAKg8H,WAAW0B,EAASzpF,MAE7C,EAAC,OACCoQ,MAAM,WACNziB,MAAO,CACLlV,OAAQi1G,EAAKliI,OAAS,EAAK4C,MAAM84H,iB,SAGlCwG,EAAK91H,KAAI,SAAC08H,EAAK7oI,GACd,IAAMiuI,EACJpF,EAAIliI,MAASkiI,EAAIliI,MAAQmhI,GACrBz5C,EAAU,EAAKtwF,MAAM8rI,YAAYoE,GACjC9a,EAAM,YAAa0V,EAAMA,OAAMnqI,EAErC,IAAK2vF,IAAY8kC,EACf,OAAO,KAGT,IAAMhiF,EAAQnxC,EAAI,EAAK2C,MAAMk4H,QACvB/1E,EAAM3T,EAAQ,EAAKxuC,MAAMk4H,QACzBC,EAAWkD,EAASJ,OAAOt8H,MAAM6vC,EAAO2T,GAE9C,OACE,EAAC,OAEC,aAAY+jF,EAAIliI,MAChBwsH,IAAKA,EACLxuE,MAAM,WACNziB,MAAO,CAAEtQ,IAAK5xB,EAAI,EAAK2C,MAAM84H,iB,SAE5BptC,GACCysC,EAAS3uH,KAAI,SAACuuH,EAASkT,GACrB,IAAMnU,EAAQ,GAAYnnH,IAAIooH,GAE9B,OAAO,EAAKmT,kBAAkBpU,EAAO,CACnCnuE,IAAK,CAACu9E,EAAIliI,MAAOinI,GACjB3C,SAAUpC,EAAIoC,SAAW2C,EACzBjF,KAAM,EAAKA,MAEf,KAfGE,EAAIliI,MAkBf,QAIR,KAGN,qCAEA,WACE,MAAmC,QAA/BnK,KAAKmG,MAAMy5H,iBACN,KAIP,EAAC,OACCz3E,MAAM,yCACNziB,MAAO,CACLV,SAAU,WACVzU,MAAOvwB,KAAKmG,MAAM84H,gBAClBzuG,OAAQxwB,KAAKmG,MAAM84H,iB,SAGrB,EAAC,UACCv/H,KAAK,SACLi3H,IAAK32H,KAAK+4H,KAAK4U,eACfxlF,MAAM,0DACN,gBAAenoD,KAAKuB,MAAMiqI,UAAY,QAAKtpI,EAC3C,aAAY,GAAKugI,MAAMiP,OACvB9rF,MAAO,GAAK68E,MAAMiP,OAClBxG,QAASlrI,KAAK2xI,UACdjsG,MAAO,CACLnV,MAAOvwB,KAAKmG,MAAM+4H,UAClB1uG,OAAQxwB,KAAKmG,MAAM+4H,W,SAGrB,EAAC,QAAK/2E,oCAA8BnoD,KAAKuB,MAAMo+H,WAIvD,iCAEA,WACE,IAAM1C,EAAQj9H,KAAK4rI,cAAc5rI,KAAKuB,MAAMutD,KAG5C,OACE,EAAC,OAAI,YAAU,SAAS3G,MAAM,U,SAHf80E,EAAQA,EAAMn5H,KAAO,IAOxC,4BAEA,WAAc,WAEN8tI,EADiB5xI,KAAK+4H,KAAK4U,eAAe92E,QACNtI,wBACpCsjF,EAAW7xI,KAAKm3F,KAAK5oC,wBAErBvpB,EAAW,CAAC,EAkBlB,MAhBgB,OAAZhlC,KAAKwtI,IACPxoG,EAAS9P,MAAQ28G,EAAS38G,MAAQ08G,EAAmB18G,MAAQ,EAE7D8P,EAAS/P,KAAO28G,EAAmB38G,KAAO48G,EAAS58G,KAAO,EAI5B,UAA9Bj1B,KAAKmG,MAAMs5H,iBACoB,WAA/Bz/H,KAAKmG,MAAMy5H,iBAEX56F,EAAS7P,OAAS08G,EAAS18G,OAASy8G,EAAmBx8G,IAAM,GAE7D4P,EAAS5P,IAAMw8G,EAAmBz8G,OAAS08G,EAASz8G,IAAM,EAC1D4P,EAAS7P,OAAS,QAIlB,EAAC,OACCwhG,IAAK32H,KAAK+4H,KAAKkU,KACf6E,KAAK,aACLtE,IAAKxtI,KAAKwtI,IACV,aAAY,GAAK/K,MAAMiP,OACvBvpF,MAAM,cACN,gBAAenjB,EAAS5P,IAAM,MAAQ,SACtCsQ,MAAOV,E,SAEN,YAAIp3B,MAAM,GAAGtJ,QAAQqL,KAAI,SAACnM,GACzB,IAAMm8H,EAAOn8H,EAAI,EACXw4H,EAAU,EAAKz6H,MAAMo+H,MAAQA,EAEnC,OACE,EAAC,O,UACC,EAAC,SACCjgI,KAAK,QACLoE,KAAK,YACLjG,MAAO8hI,EACP,aAAY,GAAK8C,MAAM9C,GACvBhJ,IAAKqF,EAAU,EAAKjD,KAAKmU,cAAgB,KACzC6E,eAAgB/V,EAChBgW,SAAU,kBAAM,EAAKC,oBAAoBtS,EAAA,EACzCsR,UAAW,SAACzkI,GAEE,SAAVA,EAAEgiC,MACQ,SAAVhiC,EAAEgiC,MACQ,OAAVhiC,EAAEgiC,OAEFhiC,EAAEupF,iBACF,EAAKm8C,gBAAgBvS,GAEzB,IAGF,EAAC,UACC,cAAY,OACZ2Q,SAAS,KACTpF,QAAS,kBAAM,EAAKgH,gBAAgBvS,EAAA,EACpC4Q,aAAc,kBAAM,EAAK0B,oBAAoBtS,EAAA,EAC7C8Q,aAAc,kBAAM,EAAKwB,qBAAmB,EAC5C9pF,MAAM,oC,UAEN,EAAC,QAAKA,oCAA8Bw3E,KACpC,EAAC,QAAKx3E,MAAM,kB,SAAmB,GAAKs6E,MAAM9C,UAIlD,KAGN,uBAEA,WACE,OACE,EAAC,WACC5nF,GAAG,OACHoQ,MAAM,mBACNziB,MAAO,CACLnV,MAAOvwB,KAAKmG,MAAMk4H,QAAUr+H,KAAKmG,MAAM84H,gBAAmB,IAE5D,iBAAgBj/H,KAAKmG,MAAM4e,IAC3B,aAAY/kB,KAAKuB,MAAMs+H,MACvB,YAAW7/H,KAAKuB,MAAMiqI,UAAY,QAAKtpI,E,UAER,OAA9BlC,KAAKmG,MAAMs5H,iBAA4Bz/H,KAAKmyI,gBAClB,OAA1BnyI,KAAKmG,MAAMk5H,aAAwBr/H,KAAKoyI,YACX,UAA7BpyI,KAAKmG,MAAMu5H,gBACV,EAAC,OAAIv3E,MAAM,a,SAAcnoD,KAAKqyI,iBAGhC,EAAC,OAAI1b,IAAK32H,KAAK+4H,KAAKiT,OAAQ7jF,MAAM,8B,SAChC,EAAC,OACCziB,MAAO,CACLnV,MAAOvwB,KAAKmG,MAAMk4H,QAAUr+H,KAAKmG,MAAM84H,gBACvCzuG,OAAQ,Q,UAGoB,UAA7BxwB,KAAKmG,MAAMu5H,gBAA8B1/H,KAAKqyI,eAC9CryI,KAAKsyI,sBACLtyI,KAAKuyI,wBAIiB,UAA1BvyI,KAAKmG,MAAMk5H,aAA2Br/H,KAAKoyI,YACb,UAA9BpyI,KAAKmG,MAAMs5H,iBAA+Bz/H,KAAKmyI,gBAC/CnyI,KAAKuB,MAAMiqI,WAAaxrI,KAAKwyI,cAC7BxyI,KAAKyyI,qBAGZ,OA1iCmBlH,CAAe,GCRfmH,eAAA,sCAGnB,WAAYvsI,GAAO,uCACXA,EAAO,CAAEy8C,OAAQ,OACzB,CAaA,OAbA,+FAEA,qGAKE,OAJMz8C,EAAQ,GAASnG,KAAKmG,MAAO,GAAanG,OAC1C+lC,QAAU/lC,KAChBmG,EAAMwwH,IAAM,SAAC7rF,GACX,EAAKA,UAAYA,CACnB,WAEM,GAAK3kC,GAAA,WACPnG,KAAKi9E,aAAc,CAAF,gDAErB,EAAO,EAAC,GAAM,eAAK92E,IAAWnG,KAAKomI,YAAU,gDAC/C,kDAbA,MAaA,EAlBmBsM,CAAsB,IACzC,EADmBA,GACZ,QAAQ,IAqBW,qBAAnBnM,gBACNA,eAAezwH,IAAI,oBAEpBywH,eAAejoI,OAAO,kBAAmBo0I,I,UCjC3CC,GAAiB,8ia,iCCAF,SAASC,EAAUtmI,GAChC,GAAY,MAARA,EACF,OAAOnF,OAGT,GAAwB,oBAApBmF,EAAKpE,WAAkC,CACzC,IAAIqwF,EAAgBjsF,EAAKisF,cACzB,OAAOA,GAAgBA,EAAcC,aAAwBrxF,MAC/D,CAEA,OAAOmF,CACT,CCTA,SAASumI,EAAUvmI,GAEjB,OAAOA,aADUsmI,EAAUtmI,GAAMwmI,SACIxmI,aAAgBwmI,OACvD,CAEA,SAASC,EAAczmI,GAErB,OAAOA,aADUsmI,EAAUtmI,GAAMy5H,aACIz5H,aAAgBy5H,WACvD,CAEA,SAASiN,EAAa1mI,GAEpB,MAA0B,qBAAf2mI,aAKJ3mI,aADUsmI,EAAUtmI,GAAM2mI,YACI3mI,aAAgB2mI,WACvD,CCpBO,IAAIh7H,EAAMI,KAAKJ,IACXD,EAAMK,KAAKL,IACXwN,EAAQnN,KAAKmN,MCFT,SAAS0tH,IACtB,IAAIC,EAASrkI,UAAUwnD,cAEvB,OAAc,MAAV68E,GAAkBA,EAAOC,OACpBD,EAAOC,OAAOzjI,KAAI,SAAU0G,GACjC,OAAOA,EAAKg9H,MAAQ,IAAMh9H,EAAKzK,OACjC,IAAG0R,KAAK,KAGHxO,UAAU9C,SACnB,CCTe,SAASsnI,IACtB,OAAQ,iCAAiCnwH,KAAK+vH,IAChD,CCCe,SAAS3kF,EAAsBxoB,EAASwtG,EAAcC,QAC9C,IAAjBD,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAIC,EAAa1tG,EAAQwoB,wBACrBw5B,EAAS,EACTC,EAAS,EAETurD,GAAgBR,EAAchtG,KAChCgiD,EAAShiD,EAAQ2tG,YAAc,GAAIluH,EAAMiuH,EAAWljH,OAASwV,EAAQ2tG,aAAmB,EACxF1rD,EAASjiD,EAAQ4tG,aAAe,GAAInuH,EAAMiuH,EAAWjjH,QAAUuV,EAAQ4tG,cAAoB,GAG7F,IACIC,GADOf,EAAU9sG,GAAW6sG,EAAU7sG,GAAW5+B,QAC3BysI,eAEtBC,GAAoBP,KAAsBE,EAC1C3wH,GAAK4wH,EAAWx+G,MAAQ4+G,GAAoBD,EAAiBA,EAAeE,WAAa,IAAM/rD,EAC/F9mE,GAAKwyH,EAAWr+G,KAAOy+G,GAAoBD,EAAiBA,EAAeG,UAAY,IAAM/rD,EAC7Fz3D,EAAQkjH,EAAWljH,MAAQw3D,EAC3Bv3D,EAASijH,EAAWjjH,OAASw3D,EACjC,MAAO,CACLz3D,MAAOA,EACPC,OAAQA,EACR4E,IAAKnU,EACLiU,MAAOrS,EAAI0N,EACX4E,OAAQlU,EAAIuP,EACZyE,KAAMpS,EACNA,EAAGA,EACH5B,EAAGA,EAEP,CCvCe,SAAS+yH,EAAgB1nI,GACtC,IAAI2nI,EAAMrB,EAAUtmI,GAGpB,MAAO,CACL4nI,WAHeD,EAAIE,YAInBlI,UAHcgI,EAAIG,YAKtB,CCTe,SAASC,EAAYtuG,GAClC,OAAOA,GAAWA,EAAQuuG,UAAY,IAAIn9H,cAAgB,IAC5D,CCDe,SAASo9H,EAAmBxuG,GAEzC,QAAS8sG,EAAU9sG,GAAWA,EAAQwyD,cACtCxyD,EAAQ3+B,WAAaD,OAAOC,UAAUu+B,eACxC,CCFe,SAAS6uG,EAAoBzuG,GAQ1C,OAAOwoB,EAAsBgmF,EAAmBxuG,IAAU9Q,KAAO++G,EAAgBjuG,GAASmuG,UAC5F,CCXe,SAAS9lF,EAAiBroB,GACvC,OAAO6sG,EAAU7sG,GAASqoB,iBAAiBroB,EAC7C,CCFe,SAAS0uG,EAAe1uG,GAErC,IAAI2uG,EAAoBtmF,EAAiBroB,GACrCY,EAAW+tG,EAAkB/tG,SAC7BguG,EAAYD,EAAkBC,UAC9BC,EAAYF,EAAkBE,UAElC,MAAO,6BAA6BzxH,KAAKwjB,EAAWiuG,EAAYD,EAClE,CCSe,SAASE,EAAiBC,EAAyBC,EAAcC,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAIC,EAA0BlC,EAAcgC,GACxCG,EAAuBnC,EAAcgC,IAf3C,SAAyBhvG,GACvB,IAAI85C,EAAO95C,EAAQwoB,wBACfw5B,EAASviE,EAAMq6D,EAAKtvD,OAASwV,EAAQ2tG,aAAe,EACpD1rD,EAASxiE,EAAMq6D,EAAKrvD,QAAUuV,EAAQ4tG,cAAgB,EAC1D,OAAkB,IAAX5rD,GAA2B,IAAXC,CACzB,CAU4DmtD,CAAgBJ,GACtEpvG,EAAkB4uG,EAAmBQ,GACrCl1D,EAAOtxB,EAAsBumF,EAAyBI,EAAsBF,GAC5EhJ,EAAS,CACXkI,WAAY,EACZjI,UAAW,GAETviC,EAAU,CACZ7mF,EAAG,EACH5B,EAAG,GAkBL,OAfIg0H,IAA4BA,IAA4BD,MACxB,SAA9BX,EAAYU,IAChBN,EAAe9uG,MACbqmG,ECnCS,SAAuB1/H,GACpC,OAAIA,IAASsmI,EAAUtmI,IAAUymI,EAAczmI,GCJxC,CACL4nI,YAFyCnuG,EDQbz5B,GCNR4nI,WACpBjI,UAAWlmG,EAAQkmG,WDGZ+H,EAAgB1nI,GCNZ,IAA8By5B,CDU7C,CD6BeqvG,CAAcL,IAGrBhC,EAAcgC,KAChBrrC,EAAUn7C,EAAsBwmF,GAAc,IACtClyH,GAAKkyH,EAAaM,WAC1B3rC,EAAQzoF,GAAK8zH,EAAaO,WACjB3vG,IACT+jE,EAAQ7mF,EAAI2xH,EAAoB7uG,KAI7B,CACL9iB,EAAGg9D,EAAK5qD,KAAO+2G,EAAOkI,WAAaxqC,EAAQ7mF,EAC3C5B,EAAG4+D,EAAKzqD,IAAM42G,EAAOC,UAAYviC,EAAQzoF,EACzCsP,MAAOsvD,EAAKtvD,MACZC,OAAQqvD,EAAKrvD,OAEjB,CGtDe,SAAS+kH,EAAcxvG,GACpC,IAAI0tG,EAAallF,EAAsBxoB,GAGnCxV,EAAQwV,EAAQ2tG,YAChBljH,EAASuV,EAAQ4tG,aAUrB,OARIt7H,KAAKsJ,IAAI8xH,EAAWljH,MAAQA,IAAU,IACxCA,EAAQkjH,EAAWljH,OAGjBlY,KAAKsJ,IAAI8xH,EAAWjjH,OAASA,IAAW,IAC1CA,EAASijH,EAAWjjH,QAGf,CACL3N,EAAGkjB,EAAQ+tG,WACX7yH,EAAG8kB,EAAQguG,UACXxjH,MAAOA,EACPC,OAAQA,EAEZ,CCrBe,SAASglH,EAAczvG,GACpC,MAA6B,SAAzBsuG,EAAYtuG,GACPA,EAMPA,EAAQ0vG,cACR1vG,EAAQykB,aACRwoF,EAAajtG,GAAWA,EAAQ2vG,KAAO,OAEvCnB,EAAmBxuG,EAGvB,CCde,SAAS4vG,EAAgBrpI,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAajC,QAAQgqI,EAAY/nI,KAAU,EAEvDA,EAAKisF,cAAcspB,KAGxBkxB,EAAczmI,IAASmoI,EAAenoI,GACjCA,EAGFqpI,EAAgBH,EAAclpI,GACvC,CCJe,SAASspI,EAAkB7vG,EAASrvB,GACjD,IAAIm/H,OAES,IAATn/H,IACFA,EAAO,IAGT,IAAIo/H,EAAeH,EAAgB5vG,GAC/BgwG,EAASD,KAAqE,OAAlDD,EAAwB9vG,EAAQwyD,oBAAyB,EAASs9C,EAAsBh0B,MACpHoyB,EAAMrB,EAAUkD,GAChB5vI,EAAS6vI,EAAS,CAAC9B,GAAKj9H,OAAOi9H,EAAIL,gBAAkB,GAAIa,EAAeqB,GAAgBA,EAAe,IAAMA,EAC7GE,EAAct/H,EAAKM,OAAO9Q,GAC9B,OAAO6vI,EAASC,EAChBA,EAAYh/H,OAAO4+H,EAAkBJ,EAActvI,IACrD,CCxBe,SAAS+vI,EAAelwG,GACrC,MAAO,CAAC,QAAS,KAAM,MAAM17B,QAAQgqI,EAAYtuG,KAAa,CAChE,CCKA,SAASmwG,EAAoBnwG,GAC3B,OAAKgtG,EAAchtG,IACoB,UAAvCqoB,EAAiBroB,GAASf,SAInBe,EAAQgvG,aAHN,IAIX,CAwCe,SAASoB,EAAgBpwG,GAItC,IAHA,IAAI5+B,EAASyrI,EAAU7sG,GACnBgvG,EAAemB,EAAoBnwG,GAEhCgvG,GAAgBkB,EAAelB,IAA6D,WAA5C3mF,EAAiB2mF,GAAc/vG,UACpF+vG,EAAemB,EAAoBnB,GAGrC,OAAIA,IAA+C,SAA9BV,EAAYU,IAA0D,SAA9BV,EAAYU,IAAwE,WAA5C3mF,EAAiB2mF,GAAc/vG,UAC3H79B,EAGF4tI,GAhDT,SAA4BhvG,GAC1B,IAAIqwG,EAAY,WAAWjzH,KAAK+vH,KAGhC,GAFW,WAAW/vH,KAAK+vH,MAEfH,EAAchtG,IAII,UAFXqoB,EAAiBroB,GAEnBf,SACb,OAAO,KAIX,IAAIqxG,EAAcb,EAAczvG,GAMhC,IAJIitG,EAAaqD,KACfA,EAAcA,EAAYX,MAGrB3C,EAAcsD,IAAgB,CAAC,OAAQ,QAAQhsI,QAAQgqI,EAAYgC,IAAgB,GAAG,CAC3F,IAAI7yF,EAAM4K,EAAiBioF,GAI3B,GAAsB,SAAlB7yF,EAAI7yC,WAA4C,SAApB6yC,EAAI9tB,aAA0C,UAAhB8tB,EAAI8yF,UAAiF,IAA1D,CAAC,YAAa,eAAejsI,QAAQm5C,EAAI+yF,aAAsBH,GAAgC,WAAnB5yF,EAAI+yF,YAA2BH,GAAa5yF,EAAIv2C,QAAyB,SAAfu2C,EAAIv2C,OACjO,OAAOopI,EAEPA,EAAcA,EAAY7rF,UAE9B,CAEA,OAAO,IACT,CAgByBgsF,CAAmBzwG,IAAY5+B,CACxD,CCpEO,IAAIiuB,EAAM,MACND,EAAS,SACTD,EAAQ,QACRD,EAAO,OACPwhH,EAAO,OACPC,EAAiB,CAACthH,EAAKD,EAAQD,EAAOD,GACtC0f,EAAQ,QACR2T,EAAM,MAENs4B,EAAW,WACX+1D,EAAS,SAETC,EAAmCF,EAAezmI,QAAO,SAAU40C,EAAKgyF,GACjF,OAAOhyF,EAAI7tC,OAAO,CAAC6/H,EAAY,IAAMliG,EAAOkiG,EAAY,IAAMvuF,GAChE,GAAG,IACQwuF,EAA0B,GAAG9/H,OAAO0/H,EAAgB,CAACD,IAAOxmI,QAAO,SAAU40C,EAAKgyF,GAC3F,OAAOhyF,EAAI7tC,OAAO,CAAC6/H,EAAWA,EAAY,IAAMliG,EAAOkiG,EAAY,IAAMvuF,GAC3E,GAAG,IAaQyuF,EAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAASrhB,EAAMshB,GACb,IAAIrnI,EAAM,IAAIG,IACV69E,EAAU,IAAI99E,IACd7O,EAAS,GAKb,SAAS6W,EAAKo/H,GACZtpD,EAAQ53E,IAAIkhI,EAASnzI,MACN,GAAGkT,OAAOigI,EAASC,UAAY,GAAID,EAASE,kBAAoB,IACtE52I,SAAQ,SAAU62I,GACzB,IAAKzpD,EAAQ/3E,IAAIwhI,GAAM,CACrB,IAAIC,EAAc1nI,EAAImG,IAAIshI,GAEtBC,GACFx/H,EAAKw/H,EAET,CACF,IACAr2I,EAAOgC,KAAKi0I,EACd,CAQA,OAzBAD,EAAUz2I,SAAQ,SAAU02I,GAC1BtnI,EAAIoV,IAAIkyH,EAASnzI,KAAMmzI,EACzB,IAiBAD,EAAUz2I,SAAQ,SAAU02I,GACrBtpD,EAAQ/3E,IAAIqhI,EAASnzI,OAExB+T,EAAKo/H,EAET,IACOj2I,CACT,CChCe,SAASs2I,EAAS93I,GAC/B,IAAIyoE,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAI7jE,SAAQ,SAAUvD,GAC9BuD,QAAQvD,UAAUK,MAAK,WACrB+mE,OAAU/lE,EACVrB,EAAQrB,IACV,GACF,KAGKyoE,CACT,CACF,CCAA,IAEIsvE,EAAkB,CACpBV,UAAW,SACXG,UAAW,GACXQ,SAAU,YAGZ,SAASC,IACP,IAAK,IAAI/mF,EAAO5pD,UAAUvD,OAAQsD,EAAO,IAAI+G,MAAM8iD,GAAOra,EAAO,EAAGA,EAAOqa,EAAMra,IAC/ExvC,EAAKwvC,GAAQvvC,UAAUuvC,GAGzB,OAAQxvC,EAAK81E,MAAK,SAAU52C,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQwoB,sBACrC,GACF,CAEO,SAASmpF,EAAgBC,QACL,IAArBA,IACFA,EAAmB,CAAC,GAGtB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkB9nD,eAC3CA,OAA4C,IAA3BioD,EAAoCR,EAAkBQ,EAC3E,OAAO,SAAsBC,EAAWrB,EAAQ9tI,QAC9B,IAAZA,IACFA,EAAUinF,GAGZ,IAAIvuF,EAAQ,CACVs1I,UAAW,SACXoB,iBAAkB,GAClBpvI,QAASxL,OAAOgT,OAAO,CAAC,EAAGknI,EAAiBznD,GAC5CooD,cAAe,CAAC,EAChBvhC,SAAU,CACRqhC,UAAWA,EACXrB,OAAQA,GAEVtwF,WAAY,CAAC,EACbzD,OAAQ,CAAC,GAEPu1F,EAAmB,GACnBC,GAAc,EACdryI,EAAW,CACbxE,MAAOA,EACP82I,WAAY,SAAoBC,GAC9B,IAAIzvI,EAAsC,oBAArByvI,EAAkCA,EAAiB/2I,EAAMsH,SAAWyvI,EACzFC,IACAh3I,EAAMsH,QAAUxL,OAAOgT,OAAO,CAAC,EAAGy/E,EAAgBvuF,EAAMsH,QAASA,GACjEtH,EAAMi3I,cAAgB,CACpBR,UAAWnF,EAAUmF,GAAapC,EAAkBoC,GAAaA,EAAUS,eAAiB7C,EAAkBoC,EAAUS,gBAAkB,GAC1I9B,OAAQf,EAAkBe,IAI5B,IAAIsB,EFvCG,SAAwBjB,GAErC,IAAIiB,EAAmBviB,EAAMshB,GAE7B,OAAOD,EAAe9mI,QAAO,SAAU40C,EAAKuvB,GAC1C,OAAOvvB,EAAI7tC,OAAOihI,EAAiBhrI,QAAO,SAAUgqI,GAClD,OAAOA,EAAS7iE,QAAUA,CAC5B,IACF,GAAG,GACL,CE8B+BskE,CCzEhB,SAAqB1B,GAClC,IAAI2B,EAAS3B,EAAU/mI,QAAO,SAAU0oI,EAAQ9hF,GAC9C,IAAIvzB,EAAWq1G,EAAO9hF,EAAQ/yD,MAK9B,OAJA60I,EAAO9hF,EAAQ/yD,MAAQw/B,EAAWjmC,OAAOgT,OAAO,CAAC,EAAGizB,EAAUuzB,EAAS,CACrEhuD,QAASxL,OAAOgT,OAAO,CAAC,EAAGizB,EAASz6B,QAASguD,EAAQhuD,SACrDpB,KAAMpK,OAAOgT,OAAO,CAAC,EAAGizB,EAAS77B,KAAMovD,EAAQpvD,QAC5CovD,EACE8hF,CACT,GAAG,CAAC,GAEJ,OAAOt7I,OAAOiH,KAAKq0I,GAAQhpI,KAAI,SAAUhS,GACvC,OAAOg7I,EAAOh7I,EAChB,GACF,CD4D8Ci7I,CAAY,GAAG5hI,OAAO8gI,EAAkBv2I,EAAMsH,QAAQmuI,aAyC5F,OAvCAz1I,EAAM02I,iBAAmBA,EAAiBhrI,QAAO,SAAUqU,GACzD,OAAOA,EAAE+lF,OACX,IAoJF9lG,EAAM02I,iBAAiB13I,SAAQ,SAAUs4I,GACvC,IAAI/0I,EAAO+0I,EAAM/0I,KACbg1I,EAAgBD,EAAMhwI,QACtBA,OAA4B,IAAlBiwI,EAA2B,CAAC,EAAIA,EAC1C7P,EAAS4P,EAAM5P,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAI8P,EAAY9P,EAAO,CACrB1nI,MAAOA,EACPuC,KAAMA,EACNiC,SAAUA,EACV8C,QAASA,IAGPmwI,EAAS,WAAmB,EAEhCb,EAAiBn1I,KAAK+1I,GAAaC,EACrC,CACF,IAjISjzI,EAAS8nC,QAClB,EAMA8uF,YAAa,WACX,IAAIyb,EAAJ,CAIA,IAAIa,EAAkB13I,EAAMo1G,SACxBqhC,EAAYiB,EAAgBjB,UAC5BrB,EAASsC,EAAgBtC,OAG7B,GAAKc,EAAiBO,EAAWrB,GAAjC,CASAp1I,EAAM23I,MAAQ,CACZlB,UAAWnD,EAAiBmD,EAAW7B,EAAgBQ,GAAoC,UAA3Bp1I,EAAMsH,QAAQ2uI,UAC9Eb,OAAQpB,EAAcoB,IAOxBp1I,EAAM4B,OAAQ,EACd5B,EAAMs1I,UAAYt1I,EAAMsH,QAAQguI,UAKhCt1I,EAAM02I,iBAAiB13I,SAAQ,SAAU02I,GACvC,OAAO11I,EAAM22I,cAAcjB,EAASnzI,MAAQzG,OAAOgT,OAAO,CAAC,EAAG4mI,EAASxvI,KACzE,IAGA,IAFA,IAES0C,EAAQ,EAAGA,EAAQ5I,EAAM02I,iBAAiB10I,OAAQ4G,IAUzD,IAAoB,IAAhB5I,EAAM4B,MAAV,CAMA,IAAIg2I,EAAwB53I,EAAM02I,iBAAiB9tI,GAC/C3K,EAAK25I,EAAsB35I,GAC3B45I,EAAyBD,EAAsBtwI,QAC/C43G,OAAsC,IAA3B24B,EAAoC,CAAC,EAAIA,EACpDt1I,EAAOq1I,EAAsBr1I,KAEf,oBAAPtE,IACT+B,EAAQ/B,EAAG,CACT+B,MAAOA,EACPsH,QAAS43G,EACT38G,KAAMA,EACNiC,SAAUA,KACNxE,EAdR,MAHEA,EAAM4B,OAAQ,EACdgH,GAAS,CAnCb,CAbA,CAmEF,EAGA0jC,OAAQypG,GAAS,WACf,OAAO,IAAIlzI,SAAQ,SAAUvD,GAC3BkF,EAAS42H,cACT97H,EAAQU,EACV,GACF,IACAg9C,QAAS,WACPg6F,IACAH,GAAc,CAChB,GAGF,IAAKX,EAAiBO,EAAWrB,GAK/B,OAAO5wI,EAmCT,SAASwyI,IACPJ,EAAiB53I,SAAQ,SAAUf,GACjC,OAAOA,GACT,IACA24I,EAAmB,EACrB,CAEA,OAvCApyI,EAASsyI,WAAWxvI,GAAS3H,MAAK,SAAUK,IACrC62I,GAAevvI,EAAQwwI,eAC1BxwI,EAAQwwI,cAAc93I,EAE1B,IAmCOwE,CACT,CACF,CACO,IE9PHuzI,EAAU,CACZA,SAAS,GCFI,SAASC,EAAiB1C,GACvC,OAAOA,EAAU3qI,MAAM,KAAK,EAC9B,CCHe,SAASstI,EAAa3C,GACnC,OAAOA,EAAU3qI,MAAM,KAAK,EAC9B,CCFe,SAASutI,EAAyB5C,GAC/C,MAAO,CAAC,MAAO,UAAUxsI,QAAQwsI,IAAc,EAAI,IAAM,GAC3D,CCEe,SAAS6C,EAAez0F,GACrC,IAOIykD,EAPAsuC,EAAY/yF,EAAK+yF,UACjBjyG,EAAUkf,EAAKlf,QACf8wG,EAAY5xF,EAAK4xF,UACjB8C,EAAgB9C,EAAY0C,EAAiB1C,GAAa,KAC1D+C,EAAY/C,EAAY2C,EAAa3C,GAAa,KAClDgD,EAAU7B,EAAUn1H,EAAIm1H,EAAUznH,MAAQ,EAAIwV,EAAQxV,MAAQ,EAC9DupH,EAAU9B,EAAU/2H,EAAI+2H,EAAUxnH,OAAS,EAAIuV,EAAQvV,OAAS,EAGpE,OAAQmpH,GACN,KAAKvkH,EACHs0E,EAAU,CACR7mF,EAAGg3H,EACH54H,EAAG+2H,EAAU/2H,EAAI8kB,EAAQvV,QAE3B,MAEF,KAAK2E,EACHu0E,EAAU,CACR7mF,EAAGg3H,EACH54H,EAAG+2H,EAAU/2H,EAAI+2H,EAAUxnH,QAE7B,MAEF,KAAK0E,EACHw0E,EAAU,CACR7mF,EAAGm1H,EAAUn1H,EAAIm1H,EAAUznH,MAC3BtP,EAAG64H,GAEL,MAEF,KAAK7kH,EACHy0E,EAAU,CACR7mF,EAAGm1H,EAAUn1H,EAAIkjB,EAAQxV,MACzBtP,EAAG64H,GAEL,MAEF,QACEpwC,EAAU,CACR7mF,EAAGm1H,EAAUn1H,EACb5B,EAAG+2H,EAAU/2H,GAInB,IAAI84H,EAAWJ,EAAgBF,EAAyBE,GAAiB,KAEzE,GAAgB,MAAZI,EAAkB,CACpB,IAAIxoH,EAAmB,MAAbwoH,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAKjlG,EACH+0D,EAAQqwC,GAAYrwC,EAAQqwC,IAAa/B,EAAUzmH,GAAO,EAAIwU,EAAQxU,GAAO,GAC7E,MAEF,KAAK+2B,EACHohD,EAAQqwC,GAAYrwC,EAAQqwC,IAAa/B,EAAUzmH,GAAO,EAAIwU,EAAQxU,GAAO,GAKnF,CAEA,OAAOm4E,CACT,CCnDe,ICTXswC,EAAa,CACf5kH,IAAK,OACLF,MAAO,OACPC,OAAQ,OACRF,KAAM,QAgBD,SAASglH,EAAY1zF,GAC1B,IAAI2zF,EAEAvD,EAASpwF,EAAMowF,OACfwD,EAAa5zF,EAAM4zF,WACnBtD,EAAYtwF,EAAMswF,UAClB+C,EAAYrzF,EAAMqzF,UAClBlwC,EAAUnjD,EAAMmjD,QAChB1kE,EAAWuhB,EAAMvhB,SACjBo1G,EAAkB7zF,EAAM6zF,gBACxBC,EAAW9zF,EAAM8zF,SACjBC,EAAe/zF,EAAM+zF,aACrBtF,EAAUzuF,EAAMyuF,QAChBuF,EAAa7wC,EAAQ7mF,EACrBA,OAAmB,IAAf03H,EAAwB,EAAIA,EAChCC,EAAa9wC,EAAQzoF,EACrBA,OAAmB,IAAfu5H,EAAwB,EAAIA,EAEhC3B,EAAgC,oBAAjByB,EAA8BA,EAAa,CAC5Dz3H,EAAGA,EACH5B,EAAGA,IACA,CACH4B,EAAGA,EACH5B,EAAGA,GAGL4B,EAAIg2H,EAAMh2H,EACV5B,EAAI43H,EAAM53H,EACV,IAAIw5H,EAAO/wC,EAAQlsG,eAAe,KAC9Bk9I,EAAOhxC,EAAQlsG,eAAe,KAC9Bm9I,EAAQ1lH,EACR2lH,EAAQxlH,EACR6+G,EAAM9sI,OAEV,GAAIkzI,EAAU,CACZ,IAAItF,EAAeoB,EAAgBQ,GAC/BkE,EAAa,eACbC,EAAY,cAchB,GAZI/F,IAAiBnC,EAAU+D,IAGmB,WAA5CvoF,EAFJ2mF,EAAeR,EAAmBoC,IAEC3xG,UAAsC,aAAbA,IAC1D61G,EAAa,eACbC,EAAY,eAOZjE,IAAczhH,IAAQyhH,IAAc5hH,GAAQ4hH,IAAc3hH,IAAU0kH,IAActxF,EACpFsyF,EAAQzlH,EAGRlU,IAFc+zH,GAAWD,IAAiBd,GAAOA,EAAIL,eAAiBK,EAAIL,eAAepjH,OACzFukH,EAAa8F,IACEV,EAAW3pH,OAC1BvP,GAAKm5H,EAAkB,GAAK,EAG9B,GAAIvD,IAAc5hH,IAAS4hH,IAAczhH,GAAOyhH,IAAc1hH,IAAWykH,IAActxF,EACrFqyF,EAAQzlH,EAGRrS,IAFcmyH,GAAWD,IAAiBd,GAAOA,EAAIL,eAAiBK,EAAIL,eAAerjH,MACzFwkH,EAAa+F,IACEX,EAAW5pH,MAC1B1N,GAAKu3H,EAAkB,GAAK,CAEhC,CAEA,IAgBMW,EAhBFC,EAAe39I,OAAOgT,OAAO,CAC/B20B,SAAUA,GACTq1G,GAAYL,GAEXiB,GAAyB,IAAjBX,EAnFd,SAA2Br1F,GACzB,IAAIpiC,EAAIoiC,EAAKpiC,EACT5B,EAAIgkC,EAAKhkC,EAETi6H,EADM/zI,OACIy1C,kBAAoB,EAClC,MAAO,CACL/5B,EAAG2C,EAAM3C,EAAIq4H,GAAOA,GAAO,EAC3Bj6H,EAAGuE,EAAMvE,EAAIi6H,GAAOA,GAAO,EAE/B,CA0EsCC,CAAkB,CACpDt4H,EAAGA,EACH5B,EAAGA,IACA,CACH4B,EAAGA,EACH5B,EAAGA,GAML,OAHA4B,EAAIo4H,EAAMp4H,EACV5B,EAAIg6H,EAAMh6H,EAENm5H,EAGK/8I,OAAOgT,OAAO,CAAC,EAAG2qI,IAAeD,EAAiB,CAAC,GAAkBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASF,EAAO,IAAM,GAAIM,EAAepqI,WAAasjI,EAAIr3F,kBAAoB,IAAM,EAAI,aAAe/5B,EAAI,OAAS5B,EAAI,MAAQ,eAAiB4B,EAAI,OAAS5B,EAAI,SAAU85H,IAG5R19I,OAAOgT,OAAO,CAAC,EAAG2qI,IAAed,EAAkB,CAAC,GAAmBU,GAASF,EAAOz5H,EAAI,KAAO,GAAIi5H,EAAgBS,GAASF,EAAO53H,EAAI,KAAO,GAAIq3H,EAAgBvpI,UAAY,GAAIupI,GAC9L,CC3Ce,OACbp2I,KAAM,cACNujG,SAAS,EACTjzB,MAAO,QACP50E,GA5EF,SAAqBylD,GACnB,IAAI1jD,EAAQ0jD,EAAK1jD,MACjBlE,OAAOiH,KAAK/C,EAAMo1G,UAAUp2G,SAAQ,SAAUuD,GAC5C,IAAI4hC,EAAQnkC,EAAMqhD,OAAO9+C,IAAS,CAAC,EAC/BuiD,EAAa9kD,EAAM8kD,WAAWviD,IAAS,CAAC,EACxCiiC,EAAUxkC,EAAMo1G,SAAS7yG,GAExBivI,EAAchtG,IAAasuG,EAAYtuG,KAO5C1oC,OAAOgT,OAAO01B,EAAQL,MAAOA,GAC7BroC,OAAOiH,KAAK+hD,GAAY9lD,SAAQ,SAAUuD,GACxC,IAAIjG,EAAQwoD,EAAWviD,IAET,IAAVjG,EACFkoC,EAAQi0F,gBAAgBl2H,GAExBiiC,EAAQ0d,aAAa3/C,GAAgB,IAAVjG,EAAiB,GAAKA,EAErD,IACF,GACF,EAoDEorI,OAlDF,SAAgB1iF,GACd,IAAIhlD,EAAQglD,EAAMhlD,MACd65I,EAAgB,CAClBzE,OAAQ,CACN3xG,SAAUzjC,EAAMsH,QAAQ2uI,SACxBviH,KAAM,IACNG,IAAK,IACLimH,OAAQ,KAEVC,MAAO,CACLt2G,SAAU,YAEZgzG,UAAW,CAAC,GASd,OAPA36I,OAAOgT,OAAO9O,EAAMo1G,SAASggC,OAAOjxG,MAAO01G,EAAczE,QACzDp1I,EAAMqhD,OAASw4F,EAEX75I,EAAMo1G,SAAS2kC,OACjBj+I,OAAOgT,OAAO9O,EAAMo1G,SAAS2kC,MAAM51G,MAAO01G,EAAcE,OAGnD,WACLj+I,OAAOiH,KAAK/C,EAAMo1G,UAAUp2G,SAAQ,SAAUuD,GAC5C,IAAIiiC,EAAUxkC,EAAMo1G,SAAS7yG,GACzBuiD,EAAa9kD,EAAM8kD,WAAWviD,IAAS,CAAC,EAGxC4hC,EAFkBroC,OAAOiH,KAAK/C,EAAMqhD,OAAOplD,eAAesG,GAAQvC,EAAMqhD,OAAO9+C,GAAQs3I,EAAct3I,IAE7EmM,QAAO,SAAUy1B,EAAOD,GAElD,OADAC,EAAMD,GAAY,GACXC,CACT,GAAG,CAAC,GAECqtG,EAAchtG,IAAasuG,EAAYtuG,KAI5C1oC,OAAOgT,OAAO01B,EAAQL,MAAOA,GAC7BroC,OAAOiH,KAAK+hD,GAAY9lD,SAAQ,SAAUg7I,GACxCx1G,EAAQi0F,gBAAgBuhB,EAC1B,IACF,GACF,CACF,EASErE,SAAU,CAAC,kBCnCE,IC/CXrtG,EAAO,CACT5U,KAAM,QACNC,MAAO,OACPC,OAAQ,MACRC,IAAK,UAEQ,SAASomH,GAAqB3E,GAC3C,OAAOA,EAAU1+H,QAAQ,0BAA0B,SAAUqhD,GAC3D,OAAO3vB,EAAK2vB,EACd,GACF,CCVA,IAAI3vB,GAAO,CACT8K,MAAO,MACP2T,IAAK,SAEQ,SAASmzF,GAA8B5E,GACpD,OAAOA,EAAU1+H,QAAQ,cAAc,SAAUqhD,GAC/C,OAAO3vB,GAAK2vB,EACd,GACF,CCPe,SAASkiF,GAAS5jD,EAAQh0C,GACvC,IAAI63F,EAAW73F,EAAM83F,aAAe93F,EAAM83F,cAE1C,GAAI9jD,EAAO4jD,SAAS53F,GAClB,OAAO,EAEJ,GAAI63F,GAAY3I,EAAa2I,GAAW,CACzC,IAAIr5I,EAAOwhD,EAEX,EAAG,CACD,GAAIxhD,GAAQw1F,EAAO+jD,WAAWv5I,GAC5B,OAAO,EAITA,EAAOA,EAAKkoD,YAAcloD,EAAKozI,IACjC,OAASpzI,EACX,CAGF,OAAO,CACT,CCtBe,SAASw5I,GAAiBj8D,GACvC,OAAOxiF,OAAOgT,OAAO,CAAC,EAAGwvE,EAAM,CAC7B5qD,KAAM4qD,EAAKh9D,EACXuS,IAAKyqD,EAAK5+D,EACViU,MAAO2qD,EAAKh9D,EAAIg9D,EAAKtvD,MACrB4E,OAAQ0qD,EAAK5+D,EAAI4+D,EAAKrvD,QAE1B,CCqBA,SAASurH,GAA2Bh2G,EAASi2G,EAAgBxE,GAC3D,OAAOwE,IAAmBp7D,EAAWk7D,GCzBxB,SAAyB/1G,EAASyxG,GAC/C,IAAIvD,EAAMrB,EAAU7sG,GAChBsrB,EAAOkjF,EAAmBxuG,GAC1B6tG,EAAiBK,EAAIL,eACrBrjH,EAAQ8gC,EAAK4qF,YACbzrH,EAAS6gC,EAAK6qF,aACdr5H,EAAI,EACJ5B,EAAI,EAER,GAAI2yH,EAAgB,CAClBrjH,EAAQqjH,EAAerjH,MACvBC,EAASojH,EAAepjH,OACxB,IAAI2rH,EAAiB7I,KAEjB6I,IAAmBA,GAA+B,UAAb3E,KACvC30H,EAAI+wH,EAAeE,WACnB7yH,EAAI2yH,EAAeG,UAEvB,CAEA,MAAO,CACLxjH,MAAOA,EACPC,OAAQA,EACR3N,EAAGA,EAAI2xH,EAAoBzuG,GAC3B9kB,EAAGA,EAEP,CDDwDm7H,CAAgBr2G,EAASyxG,IAAa3E,EAAUmJ,GAdxG,SAAoCj2G,EAASyxG,GAC3C,IAAI33D,EAAOtxB,EAAsBxoB,GAAS,EAAoB,UAAbyxG,GASjD,OARA33D,EAAKzqD,IAAMyqD,EAAKzqD,IAAM2Q,EAAQuvG,UAC9Bz1D,EAAK5qD,KAAO4qD,EAAK5qD,KAAO8Q,EAAQsvG,WAChCx1D,EAAK1qD,OAAS0qD,EAAKzqD,IAAM2Q,EAAQm2G,aACjCr8D,EAAK3qD,MAAQ2qD,EAAK5qD,KAAO8Q,EAAQk2G,YACjCp8D,EAAKtvD,MAAQwV,EAAQk2G,YACrBp8D,EAAKrvD,OAASuV,EAAQm2G,aACtBr8D,EAAKh9D,EAAIg9D,EAAK5qD,KACd4qD,EAAK5+D,EAAI4+D,EAAKzqD,IACPyqD,CACT,CAG0Hw8D,CAA2BL,EAAgBxE,GAAYsE,GEtBlK,SAAyB/1G,GACtC,IAAI8vG,EAEAxkF,EAAOkjF,EAAmBxuG,GAC1Bu2G,EAAYtI,EAAgBjuG,GAC5B87E,EAA0D,OAAlDg0B,EAAwB9vG,EAAQwyD,oBAAyB,EAASs9C,EAAsBh0B,KAChGtxF,EAAQtY,EAAIo5C,EAAKkrF,YAAalrF,EAAK4qF,YAAap6B,EAAOA,EAAK06B,YAAc,EAAG16B,EAAOA,EAAKo6B,YAAc,GACvGzrH,EAASvY,EAAIo5C,EAAKmrF,aAAcnrF,EAAK6qF,aAAcr6B,EAAOA,EAAK26B,aAAe,EAAG36B,EAAOA,EAAKq6B,aAAe,GAC5Gr5H,GAAKy5H,EAAUpI,WAAaM,EAAoBzuG,GAChD9kB,GAAKq7H,EAAUrQ,UAMnB,MAJiD,QAA7C79E,EAAiByzD,GAAQxwD,GAAMhX,YACjCx3B,GAAK5K,EAAIo5C,EAAK4qF,YAAap6B,EAAOA,EAAKo6B,YAAc,GAAK1rH,GAGrD,CACLA,MAAOA,EACPC,OAAQA,EACR3N,EAAGA,EACH5B,EAAGA,EAEP,CFCkMw7H,CAAgBlI,EAAmBxuG,IACrO,CAsBe,SAAS22G,GAAgB32G,EAAS42G,EAAUC,EAAcpF,GACvE,IAAIqF,EAAmC,oBAAbF,EAlB5B,SAA4B52G,GAC1B,IAAI+2G,EAAkBlH,EAAkBJ,EAAczvG,IAElDg3G,EADoB,CAAC,WAAY,SAAS1yI,QAAQ+jD,EAAiBroB,GAASf,WAAa,GACnD+tG,EAAchtG,GAAWowG,EAAgBpwG,GAAWA,EAE9F,OAAK8sG,EAAUkK,GAKRD,EAAgB7vI,QAAO,SAAU+uI,GACtC,OAAOnJ,EAAUmJ,IAAmBN,GAASM,EAAgBe,IAAmD,SAAhC1I,EAAY2H,EAC9F,IANS,EAOX,CAK6DgB,CAAmBj3G,GAAW,GAAG/uB,OAAO2lI,GAC/FG,EAAkB,GAAG9lI,OAAO6lI,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgB7sI,QAAO,SAAUktI,EAASnB,GAC3D,IAAIn8D,EAAOk8D,GAA2Bh2G,EAASi2G,EAAgBxE,GAK/D,OAJA2F,EAAQ/nH,IAAMnd,EAAI4nE,EAAKzqD,IAAK+nH,EAAQ/nH,KACpC+nH,EAAQjoH,MAAQld,EAAI6nE,EAAK3qD,MAAOioH,EAAQjoH,OACxCioH,EAAQhoH,OAASnd,EAAI6nE,EAAK1qD,OAAQgoH,EAAQhoH,QAC1CgoH,EAAQloH,KAAOhd,EAAI4nE,EAAK5qD,KAAMkoH,EAAQloH,MAC/BkoH,CACT,GAAGpB,GAA2Bh2G,EAASk3G,EAAqBzF,IAK5D,OAJA0F,EAAa3sH,MAAQ2sH,EAAahoH,MAAQgoH,EAAajoH,KACvDioH,EAAa1sH,OAAS0sH,EAAa/nH,OAAS+nH,EAAa9nH,IACzD8nH,EAAar6H,EAAIq6H,EAAajoH,KAC9BioH,EAAaj8H,EAAIi8H,EAAa9nH,IACvB8nH,CACT,CGpEe,SAASE,GAAmBC,GACzC,OAAOhgJ,OAAOgT,OAAO,CAAC,ECDf,CACL+kB,IAAK,EACLF,MAAO,EACPC,OAAQ,EACRF,KAAM,GDHuCooH,EACjD,CEHe,SAASC,GAAgBz/I,EAAOyG,GAC7C,OAAOA,EAAK2L,QAAO,SAAUstI,EAAS5/I,GAEpC,OADA4/I,EAAQ5/I,GAAOE,EACR0/I,CACT,GAAG,CAAC,EACN,CCKe,SAASC,GAAej8I,EAAOsH,QAC5B,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI43G,EAAW53G,EACX40I,EAAqBh9B,EAASo2B,UAC9BA,OAAmC,IAAvB4G,EAAgCl8I,EAAMs1I,UAAY4G,EAC9DC,EAAoBj9B,EAAS+2B,SAC7BA,OAAiC,IAAtBkG,EAA+Bn8I,EAAMi2I,SAAWkG,EAC3DC,EAAoBl9B,EAASk8B,SAC7BA,OAAiC,IAAtBgB,ExBbY,kBwBaqCA,EAC5DC,EAAwBn9B,EAASm8B,aACjCA,OAAyC,IAA1BgB,EAAmCh9D,EAAWg9D,EAC7DC,EAAwBp9B,EAASq9B,eACjCA,OAA2C,IAA1BD,EAAmClH,EAASkH,EAC7DE,EAAuBt9B,EAASu9B,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBx9B,EAASy9B,QAC5BA,OAA+B,IAArBD,EAA8B,EAAIA,EAC5CZ,EAAgBD,GAAsC,kBAAZc,EAAuBA,EAAUZ,GAAgBY,EAASxH,IACpGyH,EAAaL,IAAmBnH,ExBpBf,YwBoBoCA,EACrDwD,EAAa54I,EAAM23I,MAAMvC,OACzB5wG,EAAUxkC,EAAMo1G,SAASqnC,EAAcG,EAAaL,GACpDM,EAAqB1B,GAAgB7J,EAAU9sG,GAAWA,EAAUA,EAAQ0yG,gBAAkBlE,EAAmBhzI,EAAMo1G,SAASggC,QAASgG,EAAUC,EAAcpF,GACjK6G,EAAsB9vF,EAAsBhtD,EAAMo1G,SAASqhC,WAC3DsG,EAAgB5E,EAAe,CACjC1B,UAAWqG,EACXt4G,QAASo0G,EACT3C,SAAU,WACVX,UAAWA,IAET0H,EAAmBzC,GAAiBz+I,OAAOgT,OAAO,CAAC,EAAG8pI,EAAYmE,IAClEE,EAAoBV,IAAmBnH,EAAS4H,EAAmBF,EAGnEI,EAAkB,CACpBrpH,IAAKgpH,EAAmBhpH,IAAMopH,EAAkBppH,IAAMioH,EAAcjoH,IACpED,OAAQqpH,EAAkBrpH,OAASipH,EAAmBjpH,OAASkoH,EAAcloH,OAC7EF,KAAMmpH,EAAmBnpH,KAAOupH,EAAkBvpH,KAAOooH,EAAcpoH,KACvEC,MAAOspH,EAAkBtpH,MAAQkpH,EAAmBlpH,MAAQmoH,EAAcnoH,OAExEwpH,EAAan9I,EAAM22I,cAAc38G,OAErC,GAAIuiH,IAAmBnH,GAAU+H,EAAY,CAC3C,IAAInjH,EAASmjH,EAAW7H,GACxBx5I,OAAOiH,KAAKm6I,GAAiBl+I,SAAQ,SAAU5C,GAC7C,IAAI8sB,EAAW,CAACyK,EAAOC,GAAQ9qB,QAAQ1M,IAAQ,EAAI,GAAK,EACpD2zB,EAAO,CAAC8D,EAAKD,GAAQ9qB,QAAQ1M,IAAQ,EAAI,IAAM,IACnD8gJ,EAAgB9gJ,IAAQ49B,EAAOjK,GAAQ7G,CACzC,GACF,CAEA,OAAOg0H,CACT,CC/DO,SAASE,GAAO3mI,EAAKna,EAAOoa,GACjC,OAAO2mI,EAAQ5mI,EAAK6mI,EAAQhhJ,EAAOoa,GACrC,CCAA,SAAS6mI,GAAen4G,EAAUk5C,EAAMk/D,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBl8H,EAAG,EACH5B,EAAG,IAIA,CACLmU,IAAKuR,EAASvR,IAAMyqD,EAAKrvD,OAASuuH,EAAiB99H,EACnDiU,MAAOyR,EAASzR,MAAQ2qD,EAAKtvD,MAAQwuH,EAAiBl8H,EACtDsS,OAAQwR,EAASxR,OAAS0qD,EAAKrvD,OAASuuH,EAAiB99H,EACzDgU,KAAM0R,EAAS1R,KAAO4qD,EAAKtvD,MAAQwuH,EAAiBl8H,EAExD,CAEA,SAASm8H,GAAsBr4G,GAC7B,MAAO,CAACvR,EAAKF,EAAOC,EAAQF,GAAM0nD,MAAK,SAAUsiE,GAC/C,OAAOt4G,EAASs4G,IAAS,CAC3B,GACF,CA+Be,IC3CXC,GAA4BxH,EAAgB,CAC9CI,iBAFqB,CtB+BR,CACbh0I,KAAM,iBACNujG,SAAS,EACTjzB,MAAO,QACP50E,GAAI,WAAe,EACnBypI,OAxCF,SAAgBhkF,GACd,IAAI1jD,EAAQ0jD,EAAK1jD,MACbwE,EAAWk/C,EAAKl/C,SAChB8C,EAAUo8C,EAAKp8C,QACfs2I,EAAkBt2I,EAAQmjI,OAC1BA,OAA6B,IAApBmT,GAAoCA,EAC7CC,EAAkBv2I,EAAQw2I,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7Cj4I,EAASyrI,EAAUrxI,EAAMo1G,SAASggC,QAClC6B,EAAgB,GAAGxhI,OAAOzV,EAAMi3I,cAAcR,UAAWz2I,EAAMi3I,cAAc7B,QAYjF,OAVI3K,GACFwM,EAAcj4I,SAAQ,SAAUu1I,GAC9BA,EAAaj8H,iBAAiB,SAAU9T,EAAS8nC,OAAQyrG,EAC3D,IAGE+F,GACFl4I,EAAO0S,iBAAiB,SAAU9T,EAAS8nC,OAAQyrG,GAG9C,WACDtN,GACFwM,EAAcj4I,SAAQ,SAAUu1I,GAC9BA,EAAax6H,oBAAoB,SAAUvV,EAAS8nC,OAAQyrG,EAC9D,IAGE+F,GACFl4I,EAAOmU,oBAAoB,SAAUvV,EAAS8nC,OAAQyrG,EAE1D,CACF,EASE7xI,KAAM,CAAC,GK7BM,CACb3D,KAAM,gBACNujG,SAAS,EACTjzB,MAAO,OACP50E,GApBF,SAAuBylD,GACrB,IAAI1jD,EAAQ0jD,EAAK1jD,MACbuC,EAAOmhD,EAAKnhD,KAKhBvC,EAAM22I,cAAcp0I,GAAQ41I,EAAe,CACzC1B,UAAWz2I,EAAM23I,MAAMlB,UACvBjyG,QAASxkC,EAAM23I,MAAMvC,OACrBa,SAAU,WACVX,UAAWt1I,EAAMs1I,WAErB,EAQEpvI,KAAM,CAAC,GCuJM,CACb3D,KAAM,gBACNujG,SAAS,EACTjzB,MAAO,cACP50E,GAzDF,SAAuB8/I,GACrB,IAAI/9I,EAAQ+9I,EAAM/9I,MACdsH,EAAUy2I,EAAMz2I,QAChB02I,EAAwB12I,EAAQuxI,gBAChCA,OAA4C,IAA1BmF,GAA0CA,EAC5DC,EAAoB32I,EAAQwxI,SAC5BA,OAAiC,IAAtBmF,GAAsCA,EACjDC,EAAwB52I,EAAQyxI,aAChCA,OAAyC,IAA1BmF,GAA0CA,EAYzDzE,EAAe,CACjBnE,UAAW0C,EAAiBh4I,EAAMs1I,WAClC+C,UAAWJ,EAAaj4I,EAAMs1I,WAC9BF,OAAQp1I,EAAMo1G,SAASggC,OACvBwD,WAAY54I,EAAM23I,MAAMvC,OACxByD,gBAAiBA,EACjBpF,QAAoC,UAA3BzzI,EAAMsH,QAAQ2uI,UAGgB,MAArCj2I,EAAM22I,cAAcoG,gBACtB/8I,EAAMqhD,OAAO+zF,OAASt5I,OAAOgT,OAAO,CAAC,EAAG9O,EAAMqhD,OAAO+zF,OAAQsD,EAAY58I,OAAOgT,OAAO,CAAC,EAAG2qI,EAAc,CACvGtxC,QAASnoG,EAAM22I,cAAcoG,cAC7Bt5G,SAAUzjC,EAAMsH,QAAQ2uI,SACxB6C,SAAUA,EACVC,aAAcA,OAIe,MAA7B/4I,EAAM22I,cAAcoD,QACtB/5I,EAAMqhD,OAAO04F,MAAQj+I,OAAOgT,OAAO,CAAC,EAAG9O,EAAMqhD,OAAO04F,MAAOrB,EAAY58I,OAAOgT,OAAO,CAAC,EAAG2qI,EAAc,CACrGtxC,QAASnoG,EAAM22I,cAAcoD,MAC7Bt2G,SAAU,WACVq1G,UAAU,EACVC,aAAcA,OAIlB/4I,EAAM8kD,WAAWswF,OAASt5I,OAAOgT,OAAO,CAAC,EAAG9O,EAAM8kD,WAAWswF,OAAQ,CACnE,wBAAyBp1I,EAAMs1I,WAEnC,EAQEpvI,KAAM,CAAC,GgBzK6Di4I,EdqCvD,CACb57I,KAAM,SACNujG,SAAS,EACTjzB,MAAO,OACP8iE,SAAU,CAAC,iBACX13I,GA5BF,SAAgB+mD,GACd,IAAIhlD,EAAQglD,EAAMhlD,MACdsH,EAAU09C,EAAM19C,QAChB/E,EAAOyiD,EAAMziD,KACb67I,EAAkB92I,EAAQ0yB,OAC1BA,OAA6B,IAApBokH,EAA6B,CAAC,EAAG,GAAKA,EAC/Cl4I,EAAOqvI,EAAW7mI,QAAO,SAAU40C,EAAKgyF,GAE1C,OADAhyF,EAAIgyF,GA5BD,SAAiCA,EAAWqC,EAAO39G,GACxD,IAAIo+G,EAAgBJ,EAAiB1C,GACjC+I,EAAiB,CAAC3qH,EAAMG,GAAK/qB,QAAQsvI,IAAkB,GAAK,EAAI,EAEhE10F,EAAyB,oBAAX1pB,EAAwBA,EAAOl+B,OAAOgT,OAAO,CAAC,EAAG6oI,EAAO,CACxErC,UAAWA,KACPt7G,EACFskH,EAAW56F,EAAK,GAChBtsB,EAAWssB,EAAK,GAIpB,OAFA46F,EAAWA,GAAY,EACvBlnH,GAAYA,GAAY,GAAKinH,EACtB,CAAC3qH,EAAMC,GAAO7qB,QAAQsvI,IAAkB,EAAI,CACjD92H,EAAG8V,EACH1X,EAAG4+H,GACD,CACFh9H,EAAGg9H,EACH5+H,EAAG0X,EAEP,CASqBmnH,CAAwBjJ,EAAWt1I,EAAM23I,MAAO39G,GAC1DspB,CACT,GAAG,CAAC,GACAk7F,EAAwBt4I,EAAKlG,EAAMs1I,WACnCh0H,EAAIk9H,EAAsBl9H,EAC1B5B,EAAI8+H,EAAsB9+H,EAEW,MAArC1f,EAAM22I,cAAcoG,gBACtB/8I,EAAM22I,cAAcoG,cAAcz7H,GAAKA,EACvCthB,EAAM22I,cAAcoG,cAAcr9H,GAAKA,GAGzC1f,EAAM22I,cAAcp0I,GAAQ2D,CAC9B,Ge6Fe,CACb3D,KAAM,OACNujG,SAAS,EACTjzB,MAAO,OACP50E,GA5HF,SAAcylD,GACZ,IAAI1jD,EAAQ0jD,EAAK1jD,MACbsH,EAAUo8C,EAAKp8C,QACf/E,EAAOmhD,EAAKnhD,KAEhB,IAAIvC,EAAM22I,cAAcp0I,GAAMk8I,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBp3I,EAAQkxI,SAC5BmG,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt3I,EAAQu3I,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8Bz3I,EAAQ03I,mBACtCrC,EAAUr1I,EAAQq1I,QAClBvB,EAAW9zI,EAAQ8zI,SACnBC,EAAe/zI,EAAQ+zI,aACvBoB,EAAcn1I,EAAQm1I,YACtBwC,EAAwB33I,EAAQ43I,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwB73I,EAAQ63I,sBAChCC,EAAqBp/I,EAAMsH,QAAQguI,UACnC8C,EAAgBJ,EAAiBoH,GAEjCJ,EAAqBD,IADH3G,IAAkBgH,IACqCF,EAAiB,CAACjF,GAAqBmF,IAjCtH,SAAuC9J,GACrC,GAAI0C,EAAiB1C,KAAeJ,EAClC,MAAO,GAGT,IAAImK,EAAoBpF,GAAqB3E,GAC7C,MAAO,CAAC4E,GAA8B5E,GAAY+J,EAAmBnF,GAA8BmF,GACrG,CA0B6IC,CAA8BF,IACrK7J,EAAa,CAAC6J,GAAoB3pI,OAAOupI,GAAoBtwI,QAAO,SAAU40C,EAAKgyF,GACrF,OAAOhyF,EAAI7tC,OAAOuiI,EAAiB1C,KAAeJ,ECvCvC,SAA8Bl1I,EAAOsH,QAClC,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAI43G,EAAW53G,EACXguI,EAAYp2B,EAASo2B,UACrB8F,EAAWl8B,EAASk8B,SACpBC,EAAen8B,EAASm8B,aACxBsB,EAAUz9B,EAASy9B,QACnBuC,EAAiBhgC,EAASggC,eAC1BK,EAAwBrgC,EAASigC,sBACjCA,OAAkD,IAA1BI,EAAmCC,EAAgBD,EAC3ElH,EAAYJ,EAAa3C,GACzBC,EAAa8C,EAAY6G,EAAiB7J,EAAsBA,EAAoB3pI,QAAO,SAAU4pI,GACvG,OAAO2C,EAAa3C,KAAe+C,CACrC,IAAKlD,EACDsK,EAAoBlK,EAAW7pI,QAAO,SAAU4pI,GAClD,OAAO6J,EAAsBr2I,QAAQwsI,IAAc,CACrD,IAEiC,IAA7BmK,EAAkBz9I,SACpBy9I,EAAoBlK,GAQtB,IAAImK,EAAYD,EAAkB/wI,QAAO,SAAU40C,EAAKgyF,GAOtD,OANAhyF,EAAIgyF,GAAa2G,GAAej8I,EAAO,CACrCs1I,UAAWA,EACX8F,SAAUA,EACVC,aAAcA,EACdsB,QAASA,IACR3E,EAAiB1C,IACbhyF,CACT,GAAG,CAAC,GACJ,OAAOxnD,OAAOiH,KAAK28I,GAAWppI,MAAK,SAAU+I,EAAG2I,GAC9C,OAAO03H,EAAUrgI,GAAKqgI,EAAU13H,EAClC,GACF,CDH6D23H,CAAqB3/I,EAAO,CACnFs1I,UAAWA,EACX8F,SAAUA,EACVC,aAAcA,EACdsB,QAASA,EACTuC,eAAgBA,EAChBC,sBAAuBA,IACpB7J,EACP,GAAG,IACCsK,EAAgB5/I,EAAM23I,MAAMlB,UAC5BmC,EAAa54I,EAAM23I,MAAMvC,OACzByK,EAAY,IAAItxI,IAChBuxI,GAAqB,EACrBC,EAAwBxK,EAAW,GAE9BtzI,EAAI,EAAGA,EAAIszI,EAAWvzI,OAAQC,IAAK,CAC1C,IAAIqzI,EAAYC,EAAWtzI,GAEvB+9I,EAAiBhI,EAAiB1C,GAElC2K,EAAmBhI,EAAa3C,KAAeliG,EAC/C8sG,EAAa,CAACrsH,EAAKD,GAAQ9qB,QAAQk3I,IAAmB,EACtDhwH,EAAMkwH,EAAa,QAAU,SAC7B96G,EAAW62G,GAAej8I,EAAO,CACnCs1I,UAAWA,EACX8F,SAAUA,EACVC,aAAcA,EACdoB,YAAaA,EACbE,QAASA,IAEPwD,EAAoBD,EAAaD,EAAmBtsH,EAAQD,EAAOusH,EAAmBrsH,EAASC,EAE/F+rH,EAAc5vH,GAAO4oH,EAAW5oH,KAClCmwH,EAAoBlG,GAAqBkG,IAG3C,IAAIC,EAAmBnG,GAAqBkG,GACxCE,EAAS,GAUb,GARI1B,GACF0B,EAAO5+I,KAAK2jC,EAAS46G,IAAmB,GAGtClB,GACFuB,EAAO5+I,KAAK2jC,EAAS+6G,IAAsB,EAAG/6G,EAASg7G,IAAqB,GAG1EC,EAAOjqI,OAAM,SAAU+6D,GACzB,OAAOA,CACT,IAAI,CACF4uE,EAAwBzK,EACxBwK,GAAqB,EACrB,KACF,CAEAD,EAAUr8H,IAAI8xH,EAAW+K,EAC3B,CAEA,GAAIP,EAqBF,IAnBA,IAEIvtD,EAAQ,SAAe5kF,GACzB,IAAI2yI,EAAmB/K,EAAWhjG,MAAK,SAAU+iG,GAC/C,IAAI+K,EAASR,EAAUtrI,IAAI+gI,GAE3B,GAAI+K,EACF,OAAOA,EAAO98I,MAAM,EAAGoK,GAAIyI,OAAM,SAAU+6D,GACzC,OAAOA,CACT,GAEJ,IAEA,GAAImvE,EAEF,OADAP,EAAwBO,EACjB,OAEX,EAES3yI,EAnBYuxI,EAAiB,EAAI,EAmBZvxI,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFF4kF,EAAM5kF,GAEK,KACxB,CAGE3N,EAAMs1I,YAAcyK,IACtB//I,EAAM22I,cAAcp0I,GAAMk8I,OAAQ,EAClCz+I,EAAMs1I,UAAYyK,EAClB//I,EAAM4B,OAAQ,EA5GhB,CA8GF,EAQEg0I,iBAAkB,CAAC,UACnB1vI,KAAM,CACJu4I,OAAO,IETI,CACbl8I,KAAM,kBACNujG,SAAS,EACTjzB,MAAO,OACP50E,GA/HF,SAAyBylD,GACvB,IAAI1jD,EAAQ0jD,EAAK1jD,MACbsH,EAAUo8C,EAAKp8C,QACf/E,EAAOmhD,EAAKnhD,KACZm8I,EAAoBp3I,EAAQkxI,SAC5BmG,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBt3I,EAAQu3I,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDxD,EAAW9zI,EAAQ8zI,SACnBC,EAAe/zI,EAAQ+zI,aACvBoB,EAAcn1I,EAAQm1I,YACtBE,EAAUr1I,EAAQq1I,QAClB4D,EAAkBj5I,EAAQk5I,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBn5I,EAAQo5I,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDr7G,EAAW62G,GAAej8I,EAAO,CACnCo7I,SAAUA,EACVC,aAAcA,EACdsB,QAASA,EACTF,YAAaA,IAEXrE,EAAgBJ,EAAiBh4I,EAAMs1I,WACvC+C,EAAYJ,EAAaj4I,EAAMs1I,WAC/BqL,GAAmBtI,EACnBG,EAAWN,EAAyBE,GACpCyG,ECrCY,MDqCSrG,ECrCH,IAAM,IDsCxBuE,EAAgB/8I,EAAM22I,cAAcoG,cACpC6C,EAAgB5/I,EAAM23I,MAAMlB,UAC5BmC,EAAa54I,EAAM23I,MAAMvC,OACzBwL,EAA4C,oBAAjBF,EAA8BA,EAAa5kJ,OAAOgT,OAAO,CAAC,EAAG9O,EAAM23I,MAAO,CACvGrC,UAAWt1I,EAAMs1I,aACboL,EACFG,EAA2D,kBAAtBD,EAAiC,CACxEpI,SAAUoI,EACV/B,QAAS+B,GACP9kJ,OAAOgT,OAAO,CAChB0pI,SAAU,EACVqG,QAAS,GACR+B,GACCE,EAAsB9gJ,EAAM22I,cAAc38G,OAASh6B,EAAM22I,cAAc38G,OAAOh6B,EAAMs1I,WAAa,KACjGpvI,EAAO,CACTob,EAAG,EACH5B,EAAG,GAGL,GAAKq9H,EAAL,CAIA,GAAI4B,EAAe,CACjB,IAAIoC,EAEAC,EAAwB,MAAbxI,EAAmB3kH,EAAMH,EACpCutH,EAAuB,MAAbzI,EAAmB5kH,EAASD,EACtC3D,EAAmB,MAAbwoH,EAAmB,SAAW,QACpCx+G,EAAS+iH,EAAcvE,GACvB/hI,EAAMujB,EAASoL,EAAS47G,GACxBtqI,EAAMsjB,EAASoL,EAAS67G,GACxBC,EAAWV,GAAU5H,EAAW5oH,GAAO,EAAI,EAC3C2gB,EAAS0nG,IAAcjlG,EAAQwsG,EAAc5vH,GAAO4oH,EAAW5oH,GAC/DmxH,EAAS9I,IAAcjlG,GAASwlG,EAAW5oH,IAAQ4vH,EAAc5vH,GAGjEoxH,EAAephJ,EAAMo1G,SAAS2kC,MAC9BsH,EAAYb,GAAUY,EAAepN,EAAcoN,GAAgB,CACrEpyH,MAAO,EACPC,OAAQ,GAENqyH,EAAqBthJ,EAAM22I,cAAc,oBAAsB32I,EAAM22I,cAAc,oBAAoBgG,QRhFtG,CACL9oH,IAAK,EACLF,MAAO,EACPC,OAAQ,EACRF,KAAM,GQ6EF6tH,GAAkBD,EAAmBN,GACrCQ,GAAkBF,EAAmBL,GAMrCQ,GAAWrE,GAAO,EAAGwC,EAAc5vH,GAAMqxH,EAAUrxH,IACnD0xH,GAAYf,EAAkBf,EAAc5vH,GAAO,EAAIkxH,EAAWO,GAAWF,GAAkBV,EAA4BrI,SAAW7nG,EAAS8wG,GAAWF,GAAkBV,EAA4BrI,SACxMmJ,GAAYhB,GAAmBf,EAAc5vH,GAAO,EAAIkxH,EAAWO,GAAWD,GAAkBX,EAA4BrI,SAAW2I,EAASM,GAAWD,GAAkBX,EAA4BrI,SACzMoJ,GAAoB5hJ,EAAMo1G,SAAS2kC,OAASnF,EAAgB50I,EAAMo1G,SAAS2kC,OAC3E8H,GAAeD,GAAiC,MAAbpJ,EAAmBoJ,GAAkB7N,WAAa,EAAI6N,GAAkB9N,YAAc,EAAI,EAC7HgO,GAAwH,OAAjGf,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBtI,IAAqBuI,EAAwB,EAEvJgB,GAAY/nH,EAAS2nH,GAAYG,GACjCE,GAAkB5E,GAAOoD,EAASlD,EAAQ7mI,EAF9BujB,EAAS0nH,GAAYI,GAAsBD,IAEKprI,EAAKujB,EAAQwmH,EAASnD,EAAQ3mI,EAAKqrI,IAAarrI,GAChHqmI,EAAcvE,GAAYwJ,GAC1B97I,EAAKsyI,GAAYwJ,GAAkBhoH,CACrC,CAEA,GAAI8kH,EAAc,CAChB,IAAImD,GAEAC,GAAyB,MAAb1J,EAAmB3kH,EAAMH,EAErCyuH,GAAwB,MAAb3J,EAAmB5kH,EAASD,EAEvCyuH,GAAUrF,EAAc8B,GAExB1vF,GAAmB,MAAZ0vF,EAAkB,SAAW,QAEpCv0B,GAAO83B,GAAUh9G,EAAS88G,IAE1B33B,GAAO63B,GAAUh9G,EAAS+8G,IAE1BE,IAAuD,IAAxC,CAACxuH,EAAKH,GAAM5qB,QAAQsvI,GAEnCkK,GAAyH,OAAjGL,GAAgD,MAAvBnB,OAA8B,EAASA,EAAoBjC,IAAoBoD,GAAyB,EAEzJM,GAAaF,GAAe/3B,GAAO83B,GAAUxC,EAAczwF,IAAQypF,EAAWzpF,IAAQmzF,GAAuBzB,EAA4BhC,QAEzI2D,GAAaH,GAAeD,GAAUxC,EAAczwF,IAAQypF,EAAWzpF,IAAQmzF,GAAuBzB,EAA4BhC,QAAUt0B,GAE5Ik4B,GAAmBjC,GAAU6B,GLzH9B,SAAwB5rI,EAAKna,EAAOoa,GACzC,IAAIuJ,EAAIm9H,GAAO3mI,EAAKna,EAAOoa,GAC3B,OAAOuJ,EAAIvJ,EAAMA,EAAMuJ,CACzB,CKsHoDyiI,CAAeH,GAAYH,GAASI,IAAcpF,GAAOoD,EAAS+B,GAAaj4B,GAAM83B,GAAS5B,EAASgC,GAAaj4B,IAEpKwyB,EAAc8B,GAAW4D,GACzBv8I,EAAK24I,GAAW4D,GAAmBL,EACrC,CAEApiJ,EAAM22I,cAAcp0I,GAAQ2D,CAvE5B,CAwEF,EAQE0vI,iBAAkB,CAAC,WEhDN,CACbrzI,KAAM,QACNujG,SAAS,EACTjzB,MAAO,OACP50E,GA9EF,SAAeylD,GACb,IAAIi/F,EAEA3iJ,EAAQ0jD,EAAK1jD,MACbuC,EAAOmhD,EAAKnhD,KACZ+E,EAAUo8C,EAAKp8C,QACf85I,EAAephJ,EAAMo1G,SAAS2kC,MAC9BgD,EAAgB/8I,EAAM22I,cAAcoG,cACpC3E,EAAgBJ,EAAiBh4I,EAAMs1I,WACvCvlH,EAAOmoH,EAAyBE,GAEhCpoH,EADa,CAAC0D,EAAMC,GAAO7qB,QAAQsvI,IAAkB,EAClC,SAAW,QAElC,GAAKgJ,GAAiBrE,EAAtB,CAIA,IAAIjB,EAxBgB,SAAyBa,EAAS38I,GAItD,OAAO67I,GAAsC,kBAH7Cc,EAA6B,oBAAZA,EAAyBA,EAAQ7gJ,OAAOgT,OAAO,CAAC,EAAG9O,EAAM23I,MAAO,CAC/ErC,UAAWt1I,EAAMs1I,aACbqH,GACkDA,EAAUZ,GAAgBY,EAASxH,GAC7F,CAmBsByN,CAAgBt7I,EAAQq1I,QAAS38I,GACjDqhJ,EAAYrN,EAAcoN,GAC1ByB,EAAmB,MAAT9yH,EAAe8D,EAAMH,EAC/BovH,EAAmB,MAAT/yH,EAAe6D,EAASD,EAClCovH,EAAU/iJ,EAAM23I,MAAMlB,UAAUzmH,GAAOhwB,EAAM23I,MAAMlB,UAAU1mH,GAAQgtH,EAAchtH,GAAQ/vB,EAAM23I,MAAMvC,OAAOplH,GAC9GgzH,EAAYjG,EAAchtH,GAAQ/vB,EAAM23I,MAAMlB,UAAU1mH,GACxD6xH,EAAoBhN,EAAgBwM,GACpC6B,EAAarB,EAA6B,MAAT7xH,EAAe6xH,EAAkBjH,cAAgB,EAAIiH,EAAkBlH,aAAe,EAAI,EAC3HwI,EAAoBH,EAAU,EAAIC,EAAY,EAG9CvsI,EAAMqlI,EAAc+G,GACpBnsI,EAAMusI,EAAa5B,EAAUrxH,GAAO8rH,EAAcgH,GAClDrtH,EAASwtH,EAAa,EAAI5B,EAAUrxH,GAAO,EAAIkzH,EAC/ClpH,EAASojH,GAAO3mI,EAAKgf,EAAQ/e,GAE7BysI,EAAWpzH,EACf/vB,EAAM22I,cAAcp0I,KAASogJ,EAAwB,CAAC,GAAyBQ,GAAYnpH,EAAQ2oH,EAAsBS,aAAeppH,EAASvE,EAAQktH,EAnBzJ,CAoBF,EA4CEjb,OA1CF,SAAgB1iF,GACd,IAAIhlD,EAAQglD,EAAMhlD,MAEdqjJ,EADUr+F,EAAM19C,QACWk9B,QAC3B48G,OAAoC,IAArBiC,EAA8B,sBAAwBA,EAErD,MAAhBjC,IAKwB,kBAAjBA,IACTA,EAAephJ,EAAMo1G,SAASggC,OAAOpgC,cAAcosC,MAahDjH,GAASn6I,EAAMo1G,SAASggC,OAAQgM,KAQrCphJ,EAAMo1G,SAAS2kC,MAAQqH,EACzB,EASEzL,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBN7CN,CACbrzI,KAAM,OACNujG,SAAS,EACTjzB,MAAO,OACP+iE,iBAAkB,CAAC,mBACnB33I,GAlCF,SAAcylD,GACZ,IAAI1jD,EAAQ0jD,EAAK1jD,MACbuC,EAAOmhD,EAAKnhD,KACZq9I,EAAgB5/I,EAAM23I,MAAMlB,UAC5BmC,EAAa54I,EAAM23I,MAAMvC,OACzBoI,EAAmBx9I,EAAM22I,cAAc2M,gBACvCC,EAAoBtH,GAAej8I,EAAO,CAC5Cu8I,eAAgB,cAEdiH,EAAoBvH,GAAej8I,EAAO,CAC5Cy8I,aAAa,IAEXgH,EAA2BlG,GAAegG,EAAmB3D,GAC7D8D,EAAsBnG,GAAeiG,EAAmB5K,EAAY4E,GACpEmG,EAAoBlG,GAAsBgG,GAC1CG,EAAmBnG,GAAsBiG,GAC7C1jJ,EAAM22I,cAAcp0I,GAAQ,CAC1BkhJ,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpB5jJ,EAAM8kD,WAAWswF,OAASt5I,OAAOgT,OAAO,CAAC,EAAG9O,EAAM8kD,WAAWswF,OAAQ,CACnE,+BAAgCuO,EAChC,sBAAuBC,GAE3B,MO/CaC,GAAgB,gBAChBC,GAAiB,iBACjBC,GAAc,cACdC,GAAkB,kBAElBC,GAAgB,CAAClM,SAAS,EAAMmM,SAAS,GAEzCC,GAA0B,kBAAMt+I,SAASy6G,IAAf,ECFvC,SAAgB8jC,GACd9nJ,EACAsM,EACAuxD,GAEA,GAAI9tD,MAAMC,QAAQhQ,GAAQ,CACxB,IAAM2jB,EAAI3jB,EAAMsM,GAChB,OAAY,MAALqX,EACH5T,MAAMC,QAAQ6tD,GACZA,EAAavxD,GACbuxD,EACFl6C,CACL,CAED,OAAO3jB,CACR,CAED,SAAgB+nJ,GAAO/nJ,EAAY6B,GACjC,IAAMsI,EAAM,CAAC,EAAEE,SAASvI,KAAK9B,GAC7B,OAAkC,IAA3BmK,EAAIqC,QAAQ,YAAoBrC,EAAIqC,QAAW3K,EAAf,MAA2B,CACnE,CAED,SAAgBmmJ,GAAuBhoJ,EAAYgJ,GACjD,MAAwB,oBAAVhJ,EAAuBA,EAAK,WAAL,EAASgJ,GAAQhJ,CACvD,CAED,SAAgBy5I,GACd93I,EACA4iB,GAGA,OAAW,IAAPA,EACK5iB,EAKF,SAACC,GACNiZ,aAAapP,GACbA,EAAUqP,YAAW,WACnBnZ,EAAGC,EACJ,GAAE2iB,EACJ,EAPD,IAAI9Y,CAQL,CAcD,SAAgBw8I,GAAoBjoJ,GAClC,MAAQ,GAAWmZ,OAAOnZ,EAC3B,CAED,SAAgBkoJ,GAAgB9lI,EAAUpiB,IACZ,IAAxBoiB,EAAI5V,QAAQxM,IACdoiB,EAAIjd,KAAKnF,EAEZ,CAUD,SAIgB07I,GAAiB1C,GAC/B,OAAOA,EAAU3qI,MAAM,KAAK,EAC7B,CAED,SAAgB85I,GAAUnoJ,GACxB,MAAO,GAAGiH,MAAMnF,KAAK9B,EACtB,CAED,SAAgBooJ,GACdvoJ,GAEA,OAAOL,OAAOiH,KAAK5G,GAAKuS,QAAO,SAAC40C,EAAKlnD,GAKnC,YAJiBuE,IAAbxE,EAAIC,KACLknD,EAAYlnD,GAAOD,EAAIC,IAGnBknD,CACR,GAAE,CAAC,EACL,CCtGM,SAAS5pB,KACd,OAAO7zB,SAASq5C,cAAc,MAC/B,CAED,SAAgBoyF,GAAUh1I,GACxB,MAAO,CAAC,UAAW,YAAY8+E,MAAK,SAACj9E,GAAD,OAAUkmJ,GAAO/nJ,EAAO6B,EAAxB,GACrC,CAMD,SAAgBwmJ,GAAaroJ,GAC3B,OAAO+nJ,GAAO/nJ,EAAO,aACtB,CAED,SAAgBsoJ,GAAmBtoJ,GACjC,SAAUA,IAASA,EAAMuoJ,QAAUvoJ,EAAMuoJ,OAAOpO,YAAcn6I,EAC/D,CAED,SAAgBwoJ,GAAmBxoJ,GACjC,OAAIg1I,GAAUh1I,GACL,CAACA,GAdZ,SAA2BA,GACzB,OAAO+nJ,GAAO/nJ,EAAO,WACtB,CAeKyoJ,CAAWzoJ,GACNmoJ,GAAUnoJ,GAGf+P,MAAMC,QAAQhQ,GACTA,EAGFmoJ,GAAU5+I,SAASynD,iBAAiBhxD,GAC5C,CAED,SAAgB0oJ,GACd9vC,EACA54G,GAEA44G,EAAIl2G,SAAQ,SAAC60G,GACPA,IACFA,EAAG1vE,MAAMimE,mBAAwB9tG,EAAjC,KAEH,GACF,CAED,SAAgB2oJ,GACd/vC,EACAl1G,GAEAk1G,EAAIl2G,SAAQ,SAAC60G,GACPA,GACFA,EAAG3xD,aAAa,aAAcliD,EAEjC,GACF,CAED,SAAgBklJ,GACdC,GACU,MACH3gH,EAAW+/G,GAAiBY,GAAnC,GAGA,OAAc,MAAP3gH,GAAA,SAAAA,EAASwyD,gBAAT,EAAwBspB,KAAO97E,EAAQwyD,cAAgBnxF,QAC/D,CAmCD,SAAgBu/I,GACdC,EACAC,EACA5jH,GAEA,IAAMziC,EAAYqmJ,EAAN,gBAMZ,CAAC,gBAAiB,uBAAuBtmJ,SAAQ,SAACoV,GAChDixI,EAAIpmJ,GAAQmV,EAAOstB,EACpB,GACF,CAMD,SAAgB6jH,GAAehvD,EAAiBh0C,GAE9C,IADA,IAAI59C,EAAS49C,EACN59C,GAAQ,OACb,GAAI4xF,EAAO4jD,SAASx1I,GAClB,OAAO,EAETA,EAAM,MAAIA,EAAO01I,aAAX,SAAI11I,EAAO01I,oBAAX,EAAGmL,EAAiCrR,IAC3C,CACD,OAAO,CACR,CClIM,IAAMsR,GAAe,CAAC9pD,SAAS,GAClC+pD,GAAoB,EAQxB,SAAgBC,KACVF,GAAa9pD,UAIjB8pD,GAAa9pD,SAAU,EAEnB/1F,OAAO0rC,aACTzrC,SAASyS,iBAAiB,YAAastI,IAE1C,CAOD,SAAgBA,KACd,IAAMl9G,EAAM4I,YAAY5I,MAEpBA,EAAMg9G,GAAoB,KAC5BD,GAAa9pD,SAAU,EAEvB91F,SAASkU,oBAAoB,YAAa6rI,KAG5CF,GAAoBh9G,CACrB,CAQD,SAAgBm9G,KACd,IAAMC,EAAgBjgJ,SAASigJ,cAE/B,GAAIlB,GAAmBkB,GAAgB,CACrC,IAAMthJ,EAAWshJ,EAAcjB,OAE3BiB,EAAchY,OAAStpI,EAASxE,MAAM4yE,WACxCkzE,EAAchY,MAEjB,CACF,CCzDM,IAGMiY,MAFO,qBAAXngJ,QAA8C,qBAAbC,aAIpCD,OAAOogJ,SCIb,IAAMC,GAAc,CAClBC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBC,QAAQ,GAeG/wB,GAA6B,OAAH,QACrCgxB,SAAUnC,GACVoC,KAAM,CACJl/I,QAAS,OACTm/I,SAAU,QAEZp+G,MAAO,EACP+hE,SAAU,CAAC,IAAK,KAChBs8C,uBAAwB,KACxBC,aAAa,EACbC,kBAAkB,EAClBC,aAAa,EACbC,kBAAmB,EACnBC,oBAAqB,EACrBC,eAAgB,GAChB/sH,OAAQ,CAAC,EAAG,IACZgtH,cAhBqC,WAgBpB,EACjBC,eAjBqC,WAiBnB,EAClB/zE,SAlBqC,WAkBzB,EACZg0E,UAnBqC,WAmBxB,EACbC,SApBqC,WAoBzB,EACZC,OArBqC,WAqB3B,EACVC,QAtBqC,WAsB1B,EACXC,OAvBqC,WAuB3B,EACVC,QAxBqC,WAwB1B,EACXC,UAzBqC,WAyBxB,EACbC,YA1BqC,WA0BtB,EACf3oB,eA3BqC,WA2BnB,EAClBwW,UAAW,MACXoS,QAAS,GACTC,cAAe,CAAC,EAChBvnE,OAAQ,KACRwnE,cAAc,EACdxqD,OAAO,EACPyqD,QAAS,mBACTC,cAAe,MACZ7B,GAhDe,CAClB8B,WAAW,EACXC,UAAW,OACXjO,OAAO,EACP1yI,QAAS,GACT4gJ,SAAS,EACTtkB,SAAU,IACV4M,KAAM,UACNjS,MAAO,GACP4pB,OAAQ,OA2CJC,GAAcrsJ,OAAOiH,KAAKuyH,IAchC,SAAgB8yB,GACdC,GAEA,IACMpC,GADUoC,EAAYX,SAAW,IACXh5I,QAAgC,SAAC40C,EAAKglG,GAChE,IAEU,EAFH/lJ,EAAsB+lJ,EAAtB/lJ,KAAM43D,EAAgBmuF,EAAhBnuF,aAET53D,IACF+gD,EAAI/gD,QACoB5B,IAAtB0nJ,EAAY9lJ,GACR8lJ,EAAY9lJ,GADhB,SAEK+yH,GAAqB/yH,IAF1B,EAEmC43D,GAGvC,OAAO7W,CACR,GAAE,CAAC,GAEJ,OAAO,OAAP,UACK+kG,EACApC,EAEN,CAsCD,SAAgBsC,GACd9R,EACA7xI,GAEA,IAAMyE,EAAM,OAAH,UACJzE,EADI,CAEPyC,QAASi9I,GAAuB1/I,EAAMyC,QAAS,CAACovI,KAC5C7xI,EAAM+hJ,iBACN,CAAC,EA5CT,SACElQ,EACAiR,GA+BA,OA7BiBA,EACb5rJ,OAAOiH,KAAKqlJ,GAAuB,OAAD,UAAK9yB,GAAL,CAAmBoyB,cACrDS,IAEmBz5I,QACrB,SAAC40C,EAA+ClnD,GAC9C,IAAMosJ,GACJ/R,EAAU1zF,aAAV,cAAqC3mD,IAAU,IAC/CuZ,OAEF,IAAK6yI,EACH,OAAOllG,EAGT,GAAY,YAARlnD,EACFknD,EAAIlnD,GAAOosJ,OAEX,IACEllG,EAAIlnD,GAAOyV,KAAK4P,MAAM+mI,EAGvB,CAFC,MAAOv9I,GACPq4C,EAAIlnD,GAAOosJ,CACZ,CAGH,OAAOllG,CACR,GACD,CAAC,EAIJ,CAWOmlG,CAAsBhS,EAAW7xI,EAAM8iJ,UAmB7C,OAhBAr+I,EAAIk9I,KAAJ,iBACKjxB,GAAaixB,KACbl9I,EAAIk9I,MAGTl9I,EAAIk9I,KAAO,CACTC,SACwB,SAAtBn9I,EAAIk9I,KAAKC,SAAsB5hJ,EAAMgiJ,YAAcv9I,EAAIk9I,KAAKC,SAC9Dn/I,QACuB,SAArBgC,EAAIk9I,KAAKl/I,QACLzC,EAAMgiJ,YACJ,KACA,cACFv9I,EAAIk9I,KAAKl/I,SAGVgC,CACR,CC3JD,SAASixH,GAAwB91F,EAAkBsrB,GACjDtrB,EAAO,UAAgBsrB,CACxB,CAED,SAAS44F,GAAmBpsJ,GAC1B,IAAMy9I,EAAQrgH,KAcd,OAZc,IAAVp9B,EACFy9I,EAAMhR,UAAYgb,IAElBhK,EAAMhR,UAAYib,GAEd1S,GAAUh1I,GACZy9I,EAAMjsF,YAAYxxD,GAElBg+H,GAAwByf,EAAOz9I,IAI5By9I,CACR,CAED,SAAgB4O,GAAWthJ,EAAyBzC,GAC9C0sI,GAAU1sI,EAAMyC,UAClBizH,GAAwBjzH,EAAS,IACjCA,EAAQymD,YAAYlpD,EAAMyC,UACQ,oBAAlBzC,EAAMyC,UAClBzC,EAAMmjJ,UACRztB,GAAwBjzH,EAASzC,EAAMyC,SAEvCA,EAAQumD,YAAchpD,EAAMyC,QAGjC,CAED,SAAgBuhJ,GAAYxT,GAC1B,IAAMiQ,EAAMjQ,EAAOyT,kBACbC,EAAcrE,GAAUY,EAAIxgG,UAElC,MAAO,CACLwgG,MACAh+I,QAASyhJ,EAAYv2G,MAAK,SAACxnC,GAAD,OAAUA,EAAK+3C,UAAUq3F,SAAS0J,GAAlC,IAC1B9J,MAAO+O,EAAYv2G,MACjB,SAACxnC,GAAD,OACEA,EAAK+3C,UAAUq3F,SAAS4J,KACxBh5I,EAAK+3C,UAAUq3F,SAAS6J,GAF1B,IAIF+E,SAAUD,EAAYv2G,MAAK,SAACxnC,GAAD,OACzBA,EAAK+3C,UAAUq3F,SAAS2J,GADC,IAI9B,CAED,SAAgB1jE,GACd57E,GAKA,IAAM4wI,EAAS17G,KAET2rH,EAAM3rH,KACZ2rH,EAAItc,UN1EmB,YM2EvBsc,EAAInjG,aAAa,aAAc,UAC/BmjG,EAAInjG,aAAa,WAAY,MAE7B,IAAM76C,EAAUqyB,KAWhB,SAASsvH,EAASC,EAAkBnf,GAClC,MAA8B8e,GAAYxT,GAAnCiQ,EAAP,EAAOA,IAAKh+I,EAAZ,EAAYA,QAAS0yI,EAArB,EAAqBA,MAEjBjQ,EAAUxL,MACZ+mB,EAAInjG,aAAa,aAAc4nF,EAAUxL,OAEzC+mB,EAAI5sB,gBAAgB,cAGa,kBAAxBqR,EAAUke,UACnB3C,EAAInjG,aAAa,iBAAkB4nF,EAAUke,WAE7C3C,EAAI5sB,gBAAgB,kBAGlBqR,EAAUme,QACZ5C,EAAInjG,aAAa,eAAgB,IAEjCmjG,EAAI5sB,gBAAgB,gBAGtB4sB,EAAIlhH,MAAMw/F,SACsB,kBAAvBmG,EAAUnG,SACVmG,EAAUnG,SADjB,KAEImG,EAAUnG,SAEZmG,EAAUyG,KACZ8U,EAAInjG,aAAa,OAAQ4nF,EAAUyG,MAEnC8U,EAAI5sB,gBAAgB,QAIpBwwB,EAAU5hJ,UAAYyiI,EAAUziI,SAChC4hJ,EAAUlB,YAAcje,EAAUie,WAElCY,GAAWthJ,EAAS7C,EAASI,OAG3BklI,EAAUiQ,MACPA,EAEMkP,EAAUlP,QAAUjQ,EAAUiQ,QACvCsL,EAAIj4F,YAAY2sF,GAChBsL,EAAIv3F,YAAY46F,GAAmB5e,EAAUiQ,SAH7CsL,EAAIv3F,YAAY46F,GAAmB5e,EAAUiQ,QAKtCA,GACTsL,EAAIj4F,YAAY2sF,EAEnB,CAED,OA7DA1yI,EAAQ0hI,UAAY8a,GACpBx8I,EAAQ66C,aAAa,aAAc,UAEnCymG,GAAWthJ,EAAS7C,EAASI,OAE7BwwI,EAAOtnF,YAAYu3F,GACnBA,EAAIv3F,YAAYzmD,GAEhB2hJ,EAASxkJ,EAASI,MAAOJ,EAASI,OAqD3B,CACLwwI,SACA4T,WAEH,CAID5oE,GAAO8oE,SAAU,ECjHjB,IAAIC,GAAY,EACZC,GAAsD,GAG/CC,GAA+B,GAE1C,SAAwBC,GACtB7S,EACA4R,GAEA,IAQIkB,EACAC,EACAC,EAKAC,EACAC,EACA7R,EAGA5M,ENYoBxsH,EMhClB9Z,EAAQ2jJ,GAAc9R,EAAD,iBACtBnhB,GACA8yB,GAAuB1D,GAAqB2D,MAS7CuB,GAAqB,EACrBC,GAAgC,EAChCC,GAAe,EACfC,GAAsB,EAItB1mH,EAA8B,GAC9B2mH,EAAuBjU,GAASkU,EAAarlJ,EAAMkiJ,qBAMjDtwG,EAAK2yG,KAELzB,GNKkBhpI,EMLD9Z,EAAM8iJ,SNMlBh8I,QAAO,SAACoJ,EAAMlM,GAAP,OAAiB8V,EAAI5V,QAAQgM,KAAUlM,CAAvC,IMSZpE,EAAqB,CAEzBgyC,KACAigG,YACArB,OAAQ17G,KACRwwH,eArBqB,KAsBrBtlJ,QACA5E,MApBY,CAEZk0E,WAAW,EAEXtB,WAAW,EAEXikE,aAAa,EAEbsT,WAAW,EAEXC,SAAS,GAWT1C,UAEA2C,mBAsuBF,WACElzI,aAAaoyI,GACbpyI,aAAaqyI,GACb92D,qBAAqB+2D,EACtB,EAzuBCa,SA2uBF,SAAkBC,GAEZ,EAIJ,GAAI/lJ,EAASxE,MAAM62I,YACjB,OAGF2T,EAAW,iBAAkB,CAAChmJ,EAAU+lJ,IAExCE,IAEA,IAAMxB,EAAYzkJ,EAASI,MACrBklI,EAAYye,GAAc9R,EAAD,iBAC1BwS,EACAvE,GAAqB6F,GAFK,CAG7B5D,kBAAkB,KAGpBniJ,EAASI,MAAQklI,EAEjB4gB,IAEIzB,EAAUnC,sBAAwBhd,EAAUgd,sBAC9C6D,IACAX,EAAuBjU,GACrBkU,EACAngB,EAAUgd,sBAKVmC,EAAUnB,gBAAkBhe,EAAUge,cACxCvD,GAAiB0E,EAAUnB,eAAe9oJ,SAAQ,SAAC+L,GACjDA,EAAK0tH,gBAAgB,gBACtB,IACQqR,EAAUge,eACnBrR,EAAUhe,gBAAgB,iBAG5BmyB,IACAC,IAEI7B,GACFA,EAASC,EAAWnf,GAGlBtlI,EAAS0lJ,iBACXY,IAMAC,IAAsB/rJ,SAAQ,SAACgsJ,GAG7BhhG,sBAAsBghG,EAAanG,OAAQqF,eAAgB9uB,YAC5D,KAGHovB,EAAW,gBAAiB,CAAChmJ,EAAU+lJ,GACxC,EA1yBC5B,WA4yBF,SAAoBthJ,GAClB7C,EAAS8lJ,SAAS,CAACjjJ,WACpB,EA7yBC2jG,KA+yBF,WAEM,EAKJ,IAAMigD,EAAmBzmJ,EAASxE,MAAM4yE,UAClCikE,EAAcryI,EAASxE,MAAM62I,YAC7BqU,GAAc1mJ,EAASxE,MAAMk0E,UAC7Bi3E,EACJ1F,GAAa9pD,UAAYn3F,EAASI,MAAMw4F,MACpC+M,EAAWi6C,GACf5/I,EAASI,MAAMulG,SACf,EACAmrB,GAAanrB,UAGf,GACE8gD,GACApU,GACAqU,GACAC,EAEA,OAMF,GAAIC,IAAmBC,aAAa,YAClC,OAIF,GADAb,EAAW,SAAU,CAAChmJ,IAAW,IACO,IAApCA,EAASI,MAAM0iJ,OAAO9iJ,GACxB,OAGFA,EAASxE,MAAM4yE,WAAY,EAEvB04E,MACFlW,EAAOjxG,MAAM8rG,WAAa,WAG5B4a,IACAU,IAEK/mJ,EAASxE,MAAMmqJ,YAClB/U,EAAOjxG,MAAMiR,WAAa,QAK5B,GAAIk2G,IAAwB,CAC1B,MAAuBE,IAAhBnG,EAAP,EAAOA,IAAKh+I,EAAZ,EAAYA,QACZ29I,GAAsB,CAACK,EAAKh+I,GAAU,EACvC,CAEDywI,EAAgB,WAAY,MAC1B,GAAKtzI,EAASxE,MAAM4yE,YAAam3E,EAAjC,CAWA,GAPAA,GAAsB,EAGjB3U,EAAOhD,aAEZgD,EAAOjxG,MAAMiR,WAAa5wC,EAASI,MAAMmiJ,eAErCuE,KAA0B9mJ,EAASI,MAAMojJ,UAAW,CACtD,MAAuBwD,IAAhBnG,EAAP,EAAOA,IAAKh+I,EAAZ,EAAYA,QACZ29I,GAAsB,CAACK,EAAKh+I,GAAU8iG,GACtC86C,GAAmB,CAACI,EAAKh+I,GAAU,UACpC,CAEDokJ,IACAb,IAEApG,GAAa6E,GAAkB7kJ,GAI/B,SAAAA,EAAS0lJ,iBAAT,EAAyB9uB,cAEzBovB,EAAW,UAAW,CAAChmJ,IAEnBA,EAASI,MAAMojJ,WAAasD,KAxmBpC,SAA0BnhD,EAAkBrgD,GAC1C4hG,EAAgBvhD,EAAUrgD,EAC3B,CAumBK6hG,CAAiBxhD,GAAU,WACzB3lG,EAASxE,MAAMoqJ,SAAU,EACzBI,EAAW,UAAW,CAAChmJ,GACxB,GA9BF,CAgCF,EAxTH,WACE,IAEIykD,EAFGq9F,EAAY9hJ,EAASI,MAArB0hJ,SASDv7I,EAAOqgJ,IAMXniG,EAHCzkD,EAASI,MAAMgiJ,aAAeN,IAAanC,IAC/B,WAAbmC,EAEav7I,EAAKk+C,WAELq7F,GAAuBgC,EAAU,CAACv7I,IAK5Ck+C,EAAWkxF,SAAS/E,IACvBnsF,EAAW6E,YAAYsnF,GAGzB5wI,EAASxE,MAAMmqJ,WAAY,EAE3BW,KAGI,CAsBL,CAoQCc,EACD,EA/4BC3gD,KAi5BF,WAEM,EAKJ,IAAM4gD,GAAmBrnJ,EAASxE,MAAM4yE,UAClCikE,EAAcryI,EAASxE,MAAM62I,YAC7BqU,GAAc1mJ,EAASxE,MAAMk0E,UAC7Bi2B,EAAWi6C,GACf5/I,EAASI,MAAMulG,SACf,EACAmrB,GAAanrB,UAGf,GAAI0hD,GAAmBhV,GAAeqU,EACpC,OAIF,GADAV,EAAW,SAAU,CAAChmJ,IAAW,IACO,IAApCA,EAASI,MAAMwiJ,OAAO5iJ,GACxB,OAGFA,EAASxE,MAAM4yE,WAAY,EAC3BpuE,EAASxE,MAAMoqJ,SAAU,EACzBL,GAAsB,EACtBH,GAAqB,EAEjB0B,MACFlW,EAAOjxG,MAAM8rG,WAAa,UAO5B,GAJA0a,IACAmB,IACAjB,GAAa,GAETS,IAAwB,CAC1B,MAAuBE,IAAhBnG,EAAP,EAAOA,IAAKh+I,EAAZ,EAAYA,QAER7C,EAASI,MAAMojJ,YACjBhD,GAAsB,CAACK,EAAKh+I,GAAU8iG,GACtC86C,GAAmB,CAACI,EAAKh+I,GAAU,UAEtC,CAEDokJ,IACAb,IAEIpmJ,EAASI,MAAMojJ,UACbsD,KAlrBR,SAA2BnhD,EAAkBrgD,GAC3C4hG,EAAgBvhD,GAAU,YAErB3lG,EAASxE,MAAM4yE,WAChBwiE,EAAOnsF,YACPmsF,EAAOnsF,WAAWkxF,SAAS/E,IAE3BtrF,GAEH,GACF,CAyqBKiiG,CAAkB5hD,EAAU3lG,EAASqzH,SAGvCrzH,EAASqzH,SAEZ,EAz8BCm0B,sBA28BF,SAA+B53I,GAEzB,EAOJ63I,IAAc3zI,iBAAiB,YAAa0xI,GAC5CxF,GAAa4E,GAAoBY,GACjCA,EAAqB51I,EACtB,EAt9BCurE,OAqtBF,WACEn7E,EAASxE,MAAMk0E,WAAY,CAC5B,EAttBCwzB,QAwtBF,WAGEljG,EAASymG,OACTzmG,EAASxE,MAAMk0E,WAAY,CAC5B,EA5tBC2jD,QAs9BF,WAEM,EAIArzH,EAASxE,MAAM4yE,WACjBpuE,EAASymG,OAGX,IAAKzmG,EAASxE,MAAMmqJ,UAClB,OAGF+B,IAKAnB,IAAsB/rJ,SAAQ,SAACgsJ,GAC7BA,EAAanG,OAAQhtB,SACtB,IAEGud,EAAOnsF,YACTmsF,EAAOnsF,WAAWmE,YAAYgoF,GAGhCiU,GAAmBA,GAAiB39I,QAAO,SAACzJ,GAAD,OAAOA,IAAMuC,CAAb,IAE3CA,EAASxE,MAAMmqJ,WAAY,EAC3BK,EAAW,WAAY,CAAChmJ,GACzB,EAp/BCw4C,QAs/BF,WAEM,EAIJ,GAAIx4C,EAASxE,MAAM62I,YACjB,OAGFryI,EAAS6lJ,qBACT7lJ,EAASqzH,UAET4yB,WAEOhU,EAAUoO,OAEjBrgJ,EAASxE,MAAM62I,aAAc,EAE7B2T,EAAW,YAAa,CAAChmJ,GAC1B,GApgCD,IAAKI,EAAMw7E,OAKT,OAAO57E,EAMT,MAA2BI,EAAMw7E,OAAO57E,GAAjC4wI,EAAP,EAAOA,OAAQ4T,EAAf,EAAeA,SAEf5T,EAAOlzF,aAAa,kBAAkC,IACtDkzF,EAAO5+F,GAAP,SAAoChyC,EAASgyC,GAE7ChyC,EAAS4wI,OAASA,EAClBqB,EAAUoO,OAASrgJ,EACnB4wI,EAAOyP,OAASrgJ,EAEhB,IAAM2nJ,EAAezE,EAAQt5I,KAAI,SAACk6I,GAAD,OAAYA,EAAOrqJ,GAAGuG,EAAtB,IAC3B4nJ,EAAkB3V,EAAU4U,aAAa,iBA6B/C,OA3BAX,IACAE,IACAC,IAEAL,EAAW,WAAY,CAAChmJ,IAEpBI,EAAMgjJ,cACRyE,KAKFjX,EAAO98H,iBAAiB,cAAc,WAChC9T,EAASI,MAAMgiJ,aAAepiJ,EAASxE,MAAM4yE,WAC/CpuE,EAAS6lJ,oBAEZ,IAEDjV,EAAO98H,iBAAiB,cAAc,WAElC9T,EAASI,MAAMgiJ,aACfpiJ,EAASI,MAAMijJ,QAAQ/+I,QAAQ,eAAiB,GAEhDmjJ,IAAc3zI,iBAAiB,YAAa0xI,EAE/C,IAEMxlJ,EAKP,SAAS8nJ,IACP,IAAOlvD,EAAS54F,EAASI,MAAlBw4F,MACP,OAAO/wF,MAAMC,QAAQ8wF,GAASA,EAAQ,CAACA,EAAO,EAC/C,CAED,SAASmvD,IACP,MAA2C,SAApCD,IAA6B,EACrC,CAED,SAAShB,IAAgC,MAEvC,QAAQ,SAAC9mJ,EAASI,MAAMw7E,UAAfosE,EAAuBtD,QACjC,CAED,SAASkC,IACP,OAAOlgB,GAAiBuL,CACzB,CAED,SAASwV,IACP,IAAM11D,EAAS60D,IAAmBniG,WAClC,OAAOstC,EAAS2uD,GAAiB3uD,GAAU1wF,QAC5C,CAED,SAAS2lJ,IACP,OAAO5C,GAAYxT,EACpB,CAED,SAASqX,EAASC,GAIhB,OACGloJ,EAASxE,MAAMmqJ,YAAc3lJ,EAASxE,MAAM4yE,WAC7C6yE,GAAa9pD,SACZ+tD,GAA8C,UAA1BA,EAAiBvrJ,KAE/B,EAGFimJ,GACL5/I,EAASI,MAAMwjC,MACfskH,EAAS,EAAI,EACbp3B,GAAaltF,MAEhB,CAED,SAASyiH,EAAa8B,QAAwB,IAAxBA,OAAW,GAC/BvX,EAAOjxG,MAAMoB,cACX/gC,EAASI,MAAMgiJ,cAAgB+F,EAAW,GAAK,OACjDvX,EAAOjxG,MAAM+jH,OAAb,GAAyB1jJ,EAASI,MAAMsjJ,MACzC,CAED,SAASsC,EACPzkB,EACAzgI,EACAsnJ,GAQ2B,YAPrB,IADNA,OAAwB,GAExBT,EAAantJ,SAAQ,SAAC6tJ,GAChBA,EAAY9mB,IACd8mB,EAAY9mB,GAAZ,MAAA8mB,EAAsBvnJ,EAEzB,IAEGsnJ,KACF,EAAApoJ,EAASI,OAAMmhI,GAAf,QAAwBzgI,EAE3B,CAED,SAASmmJ,IACP,IAAOlF,EAAQ/hJ,EAASI,MAAjB2hJ,KAEP,GAAKA,EAAKl/I,QAAV,CAIA,IAAMokD,EAAO,QAAQ86F,EAAKl/I,QACpBmvC,EAAK4+F,EAAO5+F,GACJ+tG,GAAiB//I,EAASI,MAAMkjJ,eAAiBrR,GAEzDz3I,SAAQ,SAAC+L,GACb,IAAM+hJ,EAAe/hJ,EAAKg4C,aAAa0I,GAEvC,GAAIjnD,EAASxE,MAAM4yE,UACjB7nE,EAAKm3C,aAAauJ,EAAMqhG,EAAkBA,EAAN,IAAsBt2G,EAAOA,OAC5D,CACL,IAAMu2G,EAAYD,GAAgBA,EAAal2I,QAAQ4/B,EAAI,IAAI7gC,OAE3Do3I,EACFhiJ,EAAKm3C,aAAauJ,EAAMshG,GAExBhiJ,EAAK0tH,gBAAgBhtE,EAExB,CACF,GApBA,CAqBF,CAED,SAASm/F,KACHwB,GAAoB5nJ,EAASI,MAAM2hJ,KAAKC,UAI9BjC,GAAiB//I,EAASI,MAAMkjJ,eAAiBrR,GAEzDz3I,SAAQ,SAAC+L,GACTvG,EAASI,MAAMgiJ,YACjB77I,EAAKm3C,aACH,gBACA19C,EAASxE,MAAM4yE,WAAa7nE,IAASqgJ,IACjC,OACA,SAGNrgJ,EAAK0tH,gBAAgB,gBAExB,GACF,CAED,SAASkyB,IACPsB,IAAclyI,oBAAoB,YAAaiwI,GAC/CZ,GAAqBA,GAAmB19I,QACtC,SAACg2B,GAAD,OAAcA,IAAasoH,CAA3B,GAEH,CAED,SAASgD,EAAgB54I,GAEvB,IAAIqxI,GAAa9pD,UACXmuD,GAA+B,cAAf11I,EAAMjW,KAD5B,CAMA,IAAM8uJ,EACH74I,EAAM84I,cAAgB94I,EAAM84I,eAAe,IAAO94I,EAAMzP,OAG3D,IACEH,EAASI,MAAMgiJ,cACfrB,GAAenQ,EAAQ6X,GAFzB,CAQA,GACE1I,GAAiB//I,EAASI,MAAMkjJ,eAAiBrR,GAAWr7D,MAAK,SAACy4B,GAAD,OAC/D0xC,GAAe1xC,EAAIo5C,EAD4C,IAGjE,CACA,GAAIxH,GAAa9pD,QACf,OAGF,GACEn3F,EAASxE,MAAM4yE,WACfpuE,EAASI,MAAMijJ,QAAQ/+I,QAAQ,UAAY,EAE3C,MAEH,MACC0hJ,EAAW,iBAAkB,CAAChmJ,EAAU4P,KAGP,IAA/B5P,EAASI,MAAM8hJ,cACjBliJ,EAAS6lJ,qBACT7lJ,EAASymG,OAKT4+C,GAAgC,EAChCzyI,YAAW,WACTyyI,GAAgC,CACjC,IAKIrlJ,EAASxE,MAAMmqJ,WAClB2B,IAtCH,CAXA,CAoDF,CAED,SAASqB,IACPrD,GAAe,CAChB,CAED,SAASsD,IACPtD,GAAe,CAChB,CAED,SAASyB,IACP,IAAMx0D,EAAMk1D,IACZl1D,EAAIz+E,iBAAiB,YAAa00I,GAAiB,GACnDj2D,EAAIz+E,iBAAiB,WAAY00I,EAAiB/I,IAClDltD,EAAIz+E,iBAAiB,aAAc80I,EAAcnJ,IACjDltD,EAAIz+E,iBAAiB,YAAa60I,EAAalJ,GAChD,CAED,SAAS6H,IACP,IAAM/0D,EAAMk1D,IACZl1D,EAAIh9E,oBAAoB,YAAaizI,GAAiB,GACtDj2D,EAAIh9E,oBAAoB,WAAYizI,EAAiB/I,IACrDltD,EAAIh9E,oBAAoB,aAAcqzI,EAAcnJ,IACpDltD,EAAIh9E,oBAAoB,YAAaozI,EAAalJ,GACnD,CAkBD,SAASyH,EAAgBvhD,EAAkBrgD,GACzC,IAAMu7F,EAAMmG,IAA6BnG,IAEzC,SAAS3jH,EAASttB,GACZA,EAAMzP,SAAW0gJ,IACnBD,GAA4BC,EAAK,SAAU3jH,GAC3CooB,IAEH,CAID,GAAiB,IAAbqgD,EACF,OAAOrgD,IAGTs7F,GAA4BC,EAAK,SAAUsE,GAC3CvE,GAA4BC,EAAK,MAAO3jH,GAExCioH,EAA+BjoH,CAChC,CAED,SAASxtB,EACP+jF,EACA/2D,EACA55B,QACM,IADNA,OAA6C,GAE/Bi9I,GAAiB//I,EAASI,MAAMkjJ,eAAiBrR,GACzDz3I,SAAQ,SAAC+L,GACbA,EAAKuN,iBAAiB2/E,EAAW/2D,EAAS55B,GAC1C+7B,EAAU5hC,KAAK,CAACsJ,OAAMktF,YAAW/2D,UAAS55B,WAC3C,GACF,CAED,SAASojJ,IN9WX,IAA8BpuJ,EM+WtBiwJ,MACFr4I,EAAG,aAAcszI,EAAW,CAACzP,SAAS,IACtC7jI,EAAG,WAAYg7H,EAA+B,CAAC6I,SAAS,MNjXhCz7I,EMoXZkI,EAASI,MAAMijJ,QNnXxBvrJ,EAAMqO,MAAM,OAAOe,OAAOsyC,UMmXOh/C,SAAQ,SAACi5F,GAC7C,GAAkB,WAAdA,EAMJ,OAFA/jF,EAAG+jF,EAAWuvD,GAENvvD,GACN,IAAK,aACH/jF,EAAG,aAAcg7H,GACjB,MACF,IAAK,QACHh7H,EAAG6xI,GAAS,WAAa,OAAQsH,GACjC,MACF,IAAK,UACHn5I,EAAG,WAAYm5I,GAGpB,GACF,CAED,SAAS5C,IACPpnH,EAAUrkC,SAAQ,YAAyD,IAAvD+L,EAAuD,EAAvDA,KAAMktF,EAAiD,EAAjDA,UAAW/2D,EAAsC,EAAtCA,QAAS55B,EAA6B,EAA7BA,QAC5CyD,EAAKgP,oBAAoBk+E,EAAW/2D,EAAS55B,EAC9C,IACD+7B,EAAY,EACb,CAED,SAASmkH,EAAUpzI,GAAoB,MACjCk5I,GAA0B,EAE9B,GACG9oJ,EAASxE,MAAMk0E,YAChBq5E,EAAuBn5I,KACvBy1I,EAHF,CAQA,IAAM2D,EAAwC,WAAX,OAAhB,EAAA9D,QAAA,IAAkBvrJ,MAErCurJ,EAAmBt1I,EACnB82H,EAAgB92H,EAAM82H,cAEtB0f,KAEKpmJ,EAASxE,MAAM4yE,WAAa+xE,GAAavwI,IAK5Cg1I,GAAmBpqJ,SAAQ,SAAC0iC,GAAD,OAAcA,EAASttB,EAAvB,IAKZ,UAAfA,EAAMjW,OACLqG,EAASI,MAAMijJ,QAAQ/+I,QAAQ,cAAgB,GAC9C8gJ,KAC6B,IAA/BplJ,EAASI,MAAM8hJ,aACfliJ,EAASxE,MAAM4yE,UAEf06E,GAA0B,EAE1BjB,GAAaj4I,GAGI,UAAfA,EAAMjW,OACRyrJ,GAAsB0D,GAGpBA,IAA4BE,GAC9BC,GAAar5I,EAnCd,CAqCF,CAED,SAAS61I,EAAY71I,GACnB,IAAMzP,EAASyP,EAAMzP,OACf+oJ,EACJtC,IAAmBjR,SAASx1I,IAAWywI,EAAO+E,SAASx1I,GAEzD,GAAmB,cAAfyP,EAAMjW,OAAwBuvJ,EAAlC,CAIA,IAAMC,EAAiB5C,IACpBt1I,OAAO2/H,GACPhnI,KAAI,SAACgnI,GAAW,MAETp1I,EAAK,SADMo1I,EAAOyP,OACDqF,qBAAZ,EAAG0D,EAAyB5tJ,MAEvC,OAAIA,EACK,CACL44I,WAAYxD,EAAOpoF,wBACnB6gG,YAAa7tJ,EACb4E,SAIG,IACR,IACA8G,OAAOsyC,ULhdd,SACE2vG,EACAv5I,GAEA,IAAOylF,EAAoBzlF,EAApBylF,QAASC,EAAW1lF,EAAX0lF,QAEhB,OAAO6zD,EAAev3I,OAAM,YAAsC,IAApCwiI,EAAoC,EAApCA,WAAYiV,EAAwB,EAAxBA,YACjChH,EADyD,EAAXjiJ,MAC9CiiJ,kBACDzO,EAAgBJ,GAAiB6V,EAAYvY,WAC7C6H,EAAa0Q,EAAYlX,cAAc38G,OAE7C,IAAKmjH,EACH,OAAO,EAGT,IAAM2Q,EAAgC,WAAlB1V,EAA6B+E,EAAWtpH,IAAKnU,EAAI,EAC/DquI,EAAmC,QAAlB3V,EAA0B+E,EAAWvpH,OAAQlU,EAAI,EAClEsuI,EAAiC,UAAlB5V,EAA4B+E,EAAWzpH,KAAMpS,EAAI,EAChE2sI,EAAkC,SAAlB7V,EAA2B+E,EAAWxpH,MAAOrS,EAAI,EAEjE4sI,EACJtV,EAAW/kH,IAAMimE,EAAUg0D,EAAcjH,EACrCsH,EACJr0D,EAAU8+C,EAAWhlH,OAASm6H,EAAiBlH,EAC3CuH,EACJxV,EAAWllH,KAAOmmE,EAAUm0D,EAAenH,EACvCwH,EACJx0D,EAAU++C,EAAWjlH,MAAQs6H,EAAgBpH,EAE/C,OAAOqH,GAAcC,GAAiBC,GAAeC,CACtD,GACF,EKmbOC,CAAiCX,EAAgBv5I,KACnDu2I,IACA8C,GAAar5I,GAtBd,CAwBF,CAED,SAAS86H,EAAa96H,GAElBm5I,EAAuBn5I,IACtB5P,EAASI,MAAMijJ,QAAQ/+I,QAAQ,UAAY,GAAK8gJ,IAM/CplJ,EAASI,MAAMgiJ,YACjBpiJ,EAASwnJ,sBAAsB53I,GAIjCq5I,GAAar5I,GACd,CAED,SAASi5I,EAAiBj5I,GAEtB5P,EAASI,MAAMijJ,QAAQ/+I,QAAQ,WAAa,GAC5CsL,EAAMzP,SAAWymJ,KAOjB5mJ,EAASI,MAAMgiJ,aACfxyI,EAAMm6I,eACNnZ,EAAO+E,SAAS/lI,EAAMm6I,gBAKxBd,GAAar5I,EACd,CAED,SAASm5I,EAAuBn5I,GAC9B,QAAOqxI,GAAa9pD,SAChB4wD,MAA+Bn4I,EAAMjW,KAAK2K,QAAQ,UAAY,CAEnE,CAED,SAASgiJ,IACPoB,IAEA,MAMI1nJ,EAASI,MALX+iJ,EADF,EACEA,cACArS,EAFF,EAEEA,UACAt7G,EAHF,EAGEA,OACAysH,EAJF,EAIEA,uBACAM,EALF,EAKEA,eAGIhN,EAAQuR,IAAyB1C,GAAYxT,GAAQ2E,MAAQ,KAE7DyU,EAAoB/H,EACtB,CACEz5F,sBAAuBy5F,EACvBvP,eACEuP,EAAuBvP,gBAAkBkU,KAE7C3U,EAEEgY,EAA8D,CAClElsJ,KAAM,UACNujG,SAAS,EACTjzB,MAAO,cACP8iE,SAAU,CAAC,iBACX13I,GALkE,YAKtD,IAAR+B,EAAQ,EAARA,MACF,GAAIsrJ,IAAwB,CAC1B,IAAOjG,EAAOmG,IAAPnG,IAEP,CAAC,YAAa,mBAAoB,WAAWrmJ,SAAQ,SAACysD,GACvC,cAATA,EACF45F,EAAInjG,aAAa,iBAAkBliD,EAAMs1I,WAErCt1I,EAAM8kD,WAAWswF,OAAjB,eAAuC3pF,GACzC45F,EAAInjG,aAAJ,QAAyBuJ,EAAQ,IAEjC45F,EAAI5sB,gBAAJ,QAA4BhtE,EAGjC,IAEDzrD,EAAM8kD,WAAWswF,OAAS,CAAC,CAC5B,CACF,GAMGK,EAAsC,CAC1C,CACElzI,KAAM,SACN+E,QAAS,CACP0yB,WAGJ,CACEz3B,KAAM,kBACN+E,QAAS,CACPq1I,QAAS,CACP9oH,IAAK,EACLD,OAAQ,EACRF,KAAM,EACNC,MAAO,KAIb,CACEpxB,KAAM,OACN+E,QAAS,CACPq1I,QAAS,IAGb,CACEp6I,KAAM,gBACN+E,QAAS,CACPwxI,UAAWiO,IAGf0H,GAGEnD,KAA0BvR,GAC5BtE,EAAUh0I,KAAK,CACbc,KAAM,QACN+E,QAAS,CACPk9B,QAASu1G,EACT4C,QAAS,KAKflH,EAAUh0I,KAAV,MAAAg0I,GAAgC,MAAbkS,OAAA,EAAAA,EAAelS,YAAa,IAE/CjxI,EAAS0lJ,eAAiBvM,GACxB6Q,EACApZ,EAFoC,iBAI/BuS,EAJ+B,CAKlCrS,YACAwC,gBACArC,cAGL,CAED,SAASyW,IACH1nJ,EAAS0lJ,iBACX1lJ,EAAS0lJ,eAAeltG,UACxBx4C,EAAS0lJ,eAAiB,KAE7B,CA0DD,SAASa,IACP,OAAOtG,GACLrP,EAAO9nF,iBAAiB,qBAE3B,CAED,SAAS++F,GAAaj4I,GACpB5P,EAAS6lJ,qBAELj2I,GACFo2I,EAAW,YAAa,CAAChmJ,EAAU4P,IAGrCm3I,IAEA,IAAInjH,EAAQqkH,GAAS,GACrB,EAAiCH,IAA1BoC,EAAP,KAAmBC,EAAnB,KAEIlJ,GAAa9pD,SAA0B,SAAf+yD,GAAyBC,IACnDvmH,EAAQumH,GAGNvmH,EACFmhH,EAAcnyI,YAAW,WACvB5S,EAASwmG,MACV,GAAE5iE,GAEH5jC,EAASwmG,MAEZ,CAED,SAASyiD,GAAar5I,GAKpB,GAJA5P,EAAS6lJ,qBAETG,EAAW,cAAe,CAAChmJ,EAAU4P,IAEhC5P,EAASxE,MAAM4yE,WAUpB,KACEpuE,EAASI,MAAMijJ,QAAQ/+I,QAAQ,eAAiB,GAChDtE,EAASI,MAAMijJ,QAAQ/+I,QAAQ,UAAY,GAC3C,CAAC,aAAc,aAAaA,QAAQsL,EAAMjW,OAAS,GACnDyrJ,GAJF,CASA,IAAMxhH,EAAQqkH,GAAS,GAEnBrkH,EACFohH,EAAcpyI,YAAW,WACnB5S,EAASxE,MAAM4yE,WACjBpuE,EAASymG,MAEZ,GAAE7iE,GAIHqhH,EAA6Bz/F,uBAAsB,WACjDxlD,EAASymG,MACV,GAfF,OAhBC6gD,GAiCH,CA8TF,CC/mCD,SAAS8C,GACPC,EACAC,QACuB,IADvBA,MAAgC,CAAC,GAEjC,IAAMpH,EAAUpyB,GAAaoyB,QAAQjyI,OAAOq5I,EAAcpH,SAAW,IL+CrE7hJ,SAASyS,iBAAiB,aAAcqtI,GAAsB1B,IAC9Dr+I,OAAO0S,iBAAiB,OAAQutI,IKtChC,IAAMwC,EAA8B,OAAH,UAAOyG,EAAP,CAAsBpH,YAwBjDqH,EAtBWjK,GAAmB+J,GAsBTngJ,QACzB,SAAC40C,EAAKmzF,GACJ,IAAMjyI,EAAWiyI,GAAa6S,GAAY7S,EAAW4R,GAMrD,OAJI7jJ,GACF8+C,EAAI7hD,KAAK+C,GAGJ8+C,CACR,GACD,IAGF,OAAOguF,GAAUud,GAAWE,EAAU,GAAKA,CAC5C,CAEDH,GAAMt5B,aAAeA,GACrBs5B,GAAMI,gBHMmD,SAACzE,GAM3CzuJ,OAAOiH,KAAKwnJ,GACpBvrJ,SAAQ,SAAC5C,GACXk5H,GAAqBl5H,GAAOmuJ,EAAanuJ,EAC3C,GACF,EGfDwyJ,GAAMnJ,aAAeA,GC9CyD,OAAH,UACtEtH,EADsE,CAEzEzW,OAFyE,YAEzD,IAAR1nI,EAAQ,EAARA,MACA65I,EAAgB,CACpBzE,OAAQ,CACN3xG,SAAUzjC,EAAMsH,QAAQ2uI,SACxBviH,KAAM,IACNG,IAAK,IACLimH,OAAQ,KAEVC,MAAO,CACLt2G,SAAU,YAEZgzG,UAAW,CAAC,GAGd36I,OAAOgT,OAAO9O,EAAMo1G,SAASggC,OAAOjxG,MAAO01G,EAAczE,QACzDp1I,EAAMqhD,OAASw4F,EAEX75I,EAAMo1G,SAAS2kC,OACjBj+I,OAAOgT,OAAO9O,EAAMo1G,SAAS2kC,MAAM51G,MAAO01G,EAAcE,MAK3D,ICzCH6U,GAAMI,gBAAgB,CAAC5uE,Y,yCCcvB,IAAI7oE,EAAetK,EAAQ,IACvB+0E,EAAY/0E,EAAQ,IACpBi+F,EAAWj+F,EAAQ,IACnBrK,EAAQqK,EAAQ,IAChBy6B,EAAYz6B,EAAQ,IACpB46B,EAAqB56B,EAAQ,IAE7BgiJ,EAAmBhiJ,EAAQ,KAE/B,SAASiiJ,EAAeC,EAAIC,GAC1B,OAAOD,EAAGrnH,IAAIsnH,EAChB,CAEA,SAASC,EAAeF,EAAIC,GAC1B,OAAQD,EAAGrnH,IAAIsnH,EACjB,CAwCA,SAASjzE,EAAMvR,GACbnsE,KAAK6wJ,gBAAkB1kF,IAAQA,EAAK2kF,aAGpC9wJ,KAAKiqG,QAAU,GAGfjqG,KAAK0gF,WAAa,GAGlB1gF,KAAK+wJ,aAAe,GACpB/wJ,KAAKgxJ,eAAiB,GAGtBhxJ,KAAKixJ,YAAc,GACnBjxJ,KAAKkxJ,aAAe,GAIpBlxJ,KAAKq/E,OAAS,EACdr/E,KAAKs/E,QAAU,EAGft/E,KAAKotG,SAAW,CAAC,EAGjBptG,KAAKmxJ,SAAW,CAAC,EAGjBnxJ,KAAKoxJ,wBAA0B,IAAI7tE,EAGnCvjF,KAAKqxJ,mBAAqBrxJ,KAAKqxJ,mBAAmBttH,KAAK/jC,MAIvDA,KAAKsxJ,kBAAoB,IAAId,CAC/B,CAEA13I,EAAa4kE,GAMbA,EAAMpgF,UAAUihD,QAAU,WACxBv+C,KAAKuxJ,kBACLnoH,EAAmBppC,KACrB,EAgBA09E,EAAMpgF,UAAU8vF,iBAAmB,SAASokE,EAAcC,EAAUnxE,GAClE,OAAOtgF,KAAKsxJ,kBAAkBvsI,IAAIysI,EAAcC,EAAUnxE,EAC5D,EAUA5C,EAAMpgF,UAAUkiF,WAAa,WAC3B,MAAM,IAAIh+E,MAAM,gDAClB,EAOAk8E,EAAMpgF,UAAUizB,MAAQ,WACtB,OAAOvwB,KAAKq/E,MACd,EAOA3B,EAAMpgF,UAAUkzB,OAAS,WACvB,OAAOxwB,KAAKs/E,OACd,EASA5B,EAAMpgF,UAAU0Y,KAAO,SAASA,GAI9B,OAHAA,EAAOA,GAAQ,CAAC,GACXua,MAAQvwB,KAAKq/E,OAClBrpE,EAAKwa,OAASxwB,KAAKs/E,QACZtpE,CACT,EAYA0nE,EAAMpgF,UAAUo0J,QAAU,SAAS17I,GACjChW,KAAKq/E,OAASrpE,EAAKua,MACnBvwB,KAAKs/E,QAAUtpE,EAAKwa,OAEpBxwB,KAAK0/E,iBAEL1/E,KAAK8f,KAAK,UACV9f,KAAKqxJ,oBACP,EAYA3zE,EAAMpgF,UAAUoiF,eAAiB,SAAS1pE,GACxC,MAAM,IAAIxU,MAAM,oDAClB,EAWAk8E,EAAMpgF,UAAUsiF,UAAY,WAC1B,MAAM,IAAIp+E,MAAM,+CAClB,EAGAk8E,EAAMpgF,UAAU+zJ,mBAAqB,WACnCrxJ,KAAK8f,KAAK,gBACZ,EAUA49D,EAAMpgF,UAAU2iF,cAAgB,SAASntB,GACvC,MAAM,IAAItxD,MAAM,mDAClB,EAQAk8E,EAAMpgF,UAAUusG,WAAa,WAE3B,MAAO,GAAG7yF,OAAOhX,KAAKiqG,QACxB,EAQAvsB,EAAMpgF,UAAUq0J,SAAW,SAAS7+F,GAClC,OAAO9yD,KAAKiqG,QAAQ5/F,QAAQyoD,IAAU,CACxC,EAYA4qB,EAAMpgF,UAAUs0J,SAAW,SAAS9+F,EAAOtvD,GACzC,GAAIxD,KAAKiqG,QAAQ5/F,QAAQyoD,IAAU,EACjC,MAAM,IAAItxD,MAAM,0BAMlB,GAHS,MAALgC,IACFA,EAAIxD,KAAKiqG,QAAQ1mG,QAEfC,EAAI,GAAKA,EAAIxD,KAAKiqG,QAAQ1mG,OAC5B,MAAM,IAAI/B,MAAM,0BAGlBxB,KAAKigF,cAAcntB,GAEnB,IAAI0+F,EAAe1+F,EAAMqtB,WAAWzgF,KAChC+xJ,EAAW3+F,EAAMhrD,OAAOpI,KACxBmyJ,EAAgB7xJ,KAAKsxJ,kBAAkBx7I,IAAI07I,EAAcC,GAC7D,IAAKI,EACH,MAAM,IAAIrwJ,MAAM,MAAQxB,KAAKN,KAAO,0BAChC8xJ,EAAe,iBAAmBC,EAAW,SAEnD,IAAIjxE,EAAWxgF,KAAKqgF,eAAewxE,GAEnC7xJ,KAAKiqG,QAAQ3/F,OAAO9G,EAAG,EAAGsvD,GAC1B9yD,KAAK0gF,WAAWp2E,OAAO9G,EAAG,EAAGg9E,GAG7B1tB,EAAMj5C,iBAAiB,aAAc7Z,KAAKqxJ,oBAC1Cv+F,EAAMj5C,iBAAiB,gBAAiB7Z,KAAKqxJ,oBAC7Cv+F,EAAMj5C,iBAAiB,mBAAoB7Z,KAAKqxJ,oBAChDv+F,EAAMj5C,iBAAiB,qBAAsB7Z,KAAKqxJ,oBAElDrxJ,KAAKqxJ,oBACP,EAWA3zE,EAAMpgF,UAAUw0J,UAAY,SAASh/F,EAAOtvD,GAC1C,IAAI2G,EAAQnK,KAAKiqG,QAAQ5/F,QAAQyoD,GACjC,GAAI3oD,EAAQ,EACV,MAAM,IAAI3I,MAAM,0BAGlB,GAAIgC,EAAI,GAAKA,GAAKxD,KAAKiqG,QAAQ1mG,OAC7B,MAAM,IAAI/B,MAAM,0BAGlBsxD,EAAQ9yD,KAAKiqG,QAAQ3/F,OAAOH,EAAO,GAAG,GACtC,IAAIq2E,EAAWxgF,KAAK0gF,WAAWp2E,OAAOH,EAAO,GAAG,GAEhDnK,KAAKiqG,QAAQ3/F,OAAO9G,EAAG,EAAGsvD,GAC1B9yD,KAAK0gF,WAAWp2E,OAAO9G,EAAG,EAAGg9E,GAE7BxgF,KAAKqxJ,oBACP,EAQA3zE,EAAMpgF,UAAUy0J,YAAc,SAASj/F,GACrC,IAAI3oD,EAAQnK,KAAKiqG,QAAQ5/F,QAAQyoD,GACjC,GAAI3oD,EAAQ,EACV,MAAM,IAAI3I,MAAM,0BAGlB,IAAIwwJ,EAAehyJ,KAAKiqG,QAAQ3/F,OAAOH,EAAO,GAAG,GAC7Cq2E,EAAWxgF,KAAK0gF,WAAWp2E,OAAOH,EAAO,GAAG,GAEhDnK,KAAKygF,gBAAgBD,GAErBwxE,EAAa12I,oBAAoB,aAActb,KAAKqxJ,oBACpDW,EAAa12I,oBAAoB,gBAAiBtb,KAAKqxJ,oBACvDW,EAAa12I,oBAAoB,mBAAoBtb,KAAKqxJ,oBAC1DW,EAAa12I,oBAAoB,qBAAsBtb,KAAKqxJ,oBAE5DrxJ,KAAKqxJ,oBACP,EAMA3zE,EAAMpgF,UAAUi0J,gBAAkB,WAChC,KAAOvxJ,KAAKiqG,QAAQ1mG,OAAS,GAC3BvD,KAAK+xJ,YAAY/xJ,KAAKiqG,QAAQ,GAElC,EAQAvsB,EAAMpgF,UAAUqjF,WAAa,WAC3B,MAAM,IAAIn/E,MAAM,gDAClB,EAQAk8E,EAAMpgF,UAAUkkF,SAAW,WACzB,MAAM,IAAIhgF,MAAM,8CAClB,EASAk8E,EAAMpgF,UAAUqkF,OAAS,WACvB,IAAIn+E,EAAG06B,EAMH+zH,EAJAC,EAAclyJ,KAAK+wJ,aACnBoB,EAAgBnyJ,KAAKgxJ,eAErBoB,GAAc,EAId7hI,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAEdO,EAAO7/E,KAAKotG,SACZp3F,EAAOhW,KAAKmxJ,SAEhB,KAAI5gI,GAAS,GAAKC,GAAU,GAA5B,CAOA,IAHAxwB,KAAK2gF,aAGAn9E,EAAI,EAAGA,EAAIxD,KAAKiqG,QAAQ1mG,OAAQC,IACnCxD,KAAKiqG,QAAQzmG,GAAGosF,eAAejP,aAIjC,IAAKn9E,EAAI,EAAGA,EAAIxD,KAAKiqG,QAAQ1mG,OAAQC,IAAK,CACxC,IAMIw7E,EAAM6C,EANN/uB,EAAQ9yD,KAAKiqG,QAAQzmG,GACrB4jF,EAAUt0B,EAAMs0B,UAChBt/E,EAAOgrD,EAAMhrD,OACb8nF,EAAe98B,EAAM88B,eACrBpP,EAAWxgF,KAAK0gF,WAAWl9E,GAC3BozC,EAAQ52C,KAAKiqG,QAAQ1mG,OAASC,EAOlC,GAFAipG,EAASl8E,EAAOC,EAAQ42D,GAAWA,EAAQvH,KAAMA,KAE7CA,EAAKtvD,OAAS,GAAKsvD,EAAKrvD,QAAU,GAAtC,CAoCA,IA9BAxa,EAAKua,MAAQsvD,EAAKtvD,MAAQvwB,KAAKq/E,OAC/BrpE,EAAKwa,OAASqvD,EAAKrvD,OAASxwB,KAAKs/E,QACjCx3E,EAAK4pJ,QAAQ17I,GAGbwqE,EAASiG,WAAW3zB,EAAO+sB,GAoB3BoyE,EAAcjyJ,KAAKqyJ,cAAcv/F,EAAO88B,GAKnC1xD,EAAI,EAAGA,EAAIg0H,EAAY3uJ,OAAQ26B,IAClC8gD,EAAOkzE,EAAYh0H,GACnB0xD,EAAawB,SAASpS,GAIxB,IAAK9gD,EAAI,EAAGA,EAAIi0H,EAAc5uJ,OAAQ26B,IACpC8gD,EAAOmzE,EAAcj0H,GACrB2jD,EAAU+N,EAAa/N,QAAQ7C,GAC/BwB,EAASmH,WAAW3I,EAAM6C,EAAS/uB,EAAOlc,GAG5Ckc,EAAMhzC,KAAK,iBAAkBmyI,GACxBA,IACHG,GAAc,GAIhB5xE,EAASkH,SAAS50B,EAAO+sB,EAnDzB,CAoDF,CAGA,IAAKr8E,EAAI,EAAGA,EAAIxD,KAAKiqG,QAAQ1mG,OAAQC,IACnCxD,KAAKiqG,QAAQzmG,GAAGosF,eAAepO,WAGjCxhF,KAAKwhF,WAELxhF,KAAK8f,KAAK,iBAAkBsyI,EAvF5B,CAwFF,EAEA10E,EAAMpgF,UAAU+0J,cAAgB,SAASv/F,EAAO88B,GAC9C,IAAIsiE,EAAclyJ,KAAK+wJ,aACnBoB,EAAgBnyJ,KAAKgxJ,eACrBsB,EAAatyJ,KAAKixJ,YAEtBiB,EAAY3uJ,OAAS,EACrB4uJ,EAAc5uJ,OAAS,EACvB+uJ,EAAW/uJ,OAAS,EAEpBuvD,EAAMogC,aAAao/D,GAInB,IAFA,IAAIC,GAAW,EAEN/uJ,EAAI,EAAGA,EAAI8uJ,EAAW/uJ,OAAQC,IAAK,CAC1C,IACIgvJ,EADAxzE,EAAOszE,EAAW9uJ,GAEtBxD,KAAKyyJ,mBAAmBzzE,GACpB4Q,EAAa/N,QAAQ7C,IAGvBwzE,GAAgB,EAChBxyJ,KAAK0yJ,qBAAqB1zE,KAI1BwzE,EAAgBxyJ,KAAK2yJ,iBAAiB3zE,EAAM4Q,GAC5C2iE,GAAW,GAIbvyJ,KAAK4yJ,gBAAgB5zE,EAAM4Q,EAAc4iE,EAC3C,CAQA,OALAN,EAAYr6I,KAAK44I,GAGjB0B,EAAct6I,KAAK+4I,GAEZ2B,CACT,EAEA70E,EAAMpgF,UAAUq1J,iBAAmB,SAAS3zE,EAAM4Q,GAChD,IAAIijE,EAAc7yJ,KAAKkxJ,aAEnBsB,GAAgB,EAKpB,EAAG,CAED,GADAK,EAAYtvJ,OAAS,GAChBy7E,EAAK54B,SAASysG,GACjB,MAEFL,GAAgB,EAChB,IAAK,IAAIhvJ,EAAI,EAAGA,EAAIqvJ,EAAYtvJ,OAAQC,IACtCw7E,EAAO6zE,EAAYrvJ,GACfosF,EAAa/N,QAAQ7C,IACvBh/E,KAAKyyJ,mBAAmBzzE,GACxBh/E,KAAK0yJ,qBAAqB1zE,IAE1BwzE,GAAgB,CAGtB,OAASA,GAAwC,IAAvBK,EAAYtvJ,QAEtC,OAAOivJ,CACT,EAEA90E,EAAMpgF,UAAUs1J,gBAAkB,SAAS5zE,EAAM4Q,EAAc4iE,GAO7D,IADA,IAAIM,EAAe9yJ,KAAK6wJ,cAChBiC,GAAgBN,IAA4C,OAAzBxzE,EAAOA,EAAK8Y,WAAmB,CACxE,GAAI06D,EACF,GAAI5iE,EAAa/N,QAAQ7C,GACvBh/E,KAAK0yJ,qBAAqB1zE,GAC1BwzE,GAAgB,OACX,IAAKxyJ,KAAK6wJ,aACf,SAGC7wJ,KAAKyyJ,mBAAmBzzE,KAC3B8zE,GAAe,EAEnB,CACA,OAAON,CACT,EAEA90E,EAAMpgF,UAAUm1J,mBAAqB,SAASzzE,GAC5C,OAAOh/E,KAAK+yJ,qBAAqB/zE,EAAMh/E,KAAK+wJ,aAC9C,EAEArzE,EAAMpgF,UAAUo1J,qBAAuB,SAAS1zE,GAC9C,OAAOh/E,KAAK+yJ,qBAAqB/zE,EAAMh/E,KAAKgxJ,eAC9C,EAEAtzE,EAAMpgF,UAAUy1J,qBAAuB,SAAS/zE,EAAMg0E,GAGpD,IADA,IAAIhtG,GAAQ,EACHxiD,EAAI,EAAGA,EAAIwvJ,EAASzvJ,OAAQC,IACnC,GAAIw7E,EAAK11D,OAAO0pI,EAASxvJ,IAAK,CAC5BwiD,GAAQ,EACR,KACF,CAKF,OAHKA,GACHgtG,EAAShwJ,KAAKg8E,IAERh5B,CACV,EAQA03B,EAAMpgF,UAAU0kF,cAAgB,SAAShD,EAAMC,EAAOh9E,GAEpD,IAAInD,EAAOkB,KAMX,IAAIR,EAAKypC,EAAU9kC,GAJnB,WACE,OAAO,IAAIrF,EAAKskF,aAAatkF,EAAMkgF,EAAMC,EAC3C,KAIA,OAAOj/E,KAAKoxJ,wBAAwBpuJ,KAAKxD,GAAI,SAASd,EAAKmjF,GACzD5/E,EAAKvD,EAAKsgF,EAAMC,EAAO4C,EACzB,GAEF,EAcAlmE,EAAOxe,QAAUugF,C,+BC3nBjB,SAAS8yE,IACPxwJ,KAAK0gF,WAAa,CAAC,CACrB,CASA8vE,EAAiBlzJ,UAAUynB,IAAM,SAASysI,EAAcC,EAAUnxE,GAC3DtgF,KAAK0gF,WAAW8wE,KACnBxxJ,KAAK0gF,WAAW8wE,GAAgB,CAAC,GAEnCxxJ,KAAK0gF,WAAW8wE,GAAcC,GAAYnxE,CAC5C,EAUAkwE,EAAiBlzJ,UAAUwY,IAAM,SAAS07I,EAAcC,GAGtD,OAFezxJ,KAAK0gF,WAAW8wE,IAC3BxxJ,KAAK0gF,WAAW8wE,GAAcC,IACf,IACrB,EAEA91I,EAAOxe,QAAUqzJ,C,+BC1CjB,IAAI5oH,EAAcp5B,EAAQ,IACtBu2E,EAAev2E,EAAQ,IACvBolC,EAAUplC,EAAQ,IAClB5B,EAAS4B,EAAQ,IACjB2K,EAAO3K,EAAQ,IAMfykJ,IAAyBrmJ,EAAOsmJ,oBAAsBt/G,EAAQ5rB,QAG9DmrI,EAAwB,CAC1BC,iBAAkB,QAClBC,iBAAkB,eAYpB,SAAS11E,EAAgBoB,GACvB/+E,KAAKk/E,OAASH,CAChB,CAUApB,EAAgBrgF,UAAUsiF,UAAY,SAASl3E,EAAKm3E,EAAM59E,GACxD,IAAInD,EAAOkB,KAEPszJ,EAAM,IAAIC,MAYdD,EAAIE,YAAc,YAElB,IAAI3wI,EAAIg9D,GAAQA,EAAKh9D,GAAK,EACtB5B,EAAI4+D,GAAQA,EAAK5+D,GAAK,EACtBsP,EAAQsvD,GAAQA,EAAKtvD,OAAS,EAC9BC,EAASqvD,GAAQA,EAAKrvD,QAAU,EAoBpC,OAlBAvuB,EAAOkX,EAAKlX,GAEZqxJ,EAAIG,OAAS,WACX30J,EAAK40J,YAAYJ,EAAKzwI,EAAG5B,EAAGsP,EAAOC,EAAQvuB,EAC7C,EAEAqxJ,EAAIK,QAAU,WACZ70J,EAAK80J,aAAalrJ,EAAKzG,EACzB,EAEAqxJ,EAAI7qE,IAAM//E,EAEV,WACE4qJ,EAAIG,OAASH,EAAIK,QAAU,KAC3BL,EAAI7qE,IAAM,GACVxmF,EAAK8E,MAAM,KAAMD,UACnB,CAGF,EAEA62E,EAAgBrgF,UAAUo2J,YAAc,SAASJ,EAAKzwI,EAAG5B,EAAGsP,EAAOC,EAAQvuB,GACzE,GAAU,IAAN4gB,GAAiB,IAAN5B,GAAqB,IAAVsP,GAA0B,IAAXC,EAWzC,GALA3N,GAAKywI,EAAIO,aACT5yI,GAAKqyI,EAAIQ,cACTvjI,GAAS+iI,EAAIO,aACbrjI,GAAU8iI,EAAIQ,cAEVb,EAIFrmJ,EAAOsmJ,kBAAkBI,EAAKzwI,EAAG5B,EAAGsP,EAAOC,EAAQ2iI,GAChDjyJ,MAAK,SAAS6yJ,GACb9xJ,EAAK,KAAM,IAAI2lC,EAAYmsH,GAC7B,QACG,CAGL,IAAI51E,EAAS/2E,SAASq5C,cAAc,UACpC09B,EAAO5tD,MAAQA,EACf4tD,EAAO3tD,OAASA,EACF2tD,EAAOM,WAAW,MACxB87B,UAAU+4C,EAAKzwI,EAAG5B,EAAGsP,EAAOC,EAAQ,EAAG,EAAGD,EAAOC,GACzDvuB,EAAK,KAAM,IAAI2lC,EAAYu2C,GAC7B,MA1BEl8E,EAAK,KAAM,IAAI2lC,EAAY0rH,GA2B/B,EAEA31E,EAAgBrgF,UAAUs2J,aAAe,SAASlrJ,EAAKzG,GAIrDA,EAAK,IAAI8iF,EAAa,kBAAoBr8E,GAC5C,EAEAiT,EAAOxe,QAAUwgF,C,gBC1IjBhiE,EAAOxe,QAAU,WAChB,MAAM,IAAIqE,MAAM,iCACjB,C,+BCoBAma,EAAOxe,QAJP,SAAe6Q,GACb,OAAwB,IAAhBA,EAAKA,EAAI,EACnB,C,+BCHA2N,EAAOxe,QAAU,CACjB,kCACA,gCAEA,wBACA,gCACA,4BAEA,8BAEA,oBACA,sFACA,4CACA,mCACA,KACEmgB,KAAK,K,+BCfP3B,EAAOxe,QAAU,CACjB,oCACA,yBACA,QACA,2BACA,SAEA,8BACA,0BACA,6BACA,6BAEA,8BAEA,oBACA,mFACA,gDACA,KACEmgB,KAAK,K,+BClBP3B,EAAOxe,QAAU,CACjB,kCAEA,wBACA,gCACA,+BAEA,qBAEA,oBACA,gEACA,2EACA,KACEmgB,KAAK,K,+BCbP3B,EAAOxe,QAAU,CACjB,oCACA,yBACA,QACA,0BACA,SAEA,8BACA,0BACA,2BACA,2BACA,+BACA,gCACA,6BACA,6BAEA,qBAEA,8CAEA,oBACA,gFACA,mCACA,6CACA,sCACA,8BAEA,uCACA,wCAEA,gFACA,gDACA,KACEmgB,KAAK,K,+BCjCP,IAAIwsB,EAAWt7B,EAAQ,IACnBq7B,EAAOr7B,EAAQ,IACf6+E,EAAe7+E,EAAQ,IACvB8/E,EAAS9/E,EAAQ,KACjBokE,EAAQpkE,EAAQ,IAChB+pC,EAAgB/pC,EAAQ,IAAY+pC,cACpCK,EAA0BpqC,EAAQ,IAAYoqC,wBAC9CzP,EAAQ36B,EAAQ,IAChB66B,EAAM76B,EAAQ,IACd9O,EAAO8O,EAAQ,IACfowB,EAAOpwB,EAAQ,IAAaowB,KAC5BH,EAAOjwB,EAAQ,IAAaiwB,KAK5Bu1H,EAAW,SAGXC,EAAe,CACjB/lJ,EAAG,CAAE2U,EAAG,EAAG5B,EAAG,GACdsI,EAAG,CAAE1G,EAAG,EAAG5B,EAAG5I,KAAK+Q,IACnBrI,EAAG,CAAE8B,EAAG,EAAG5B,EAAG5I,KAAK+Q,GAAG,GACtBhR,EAAG,CAAEyK,EAAG,EAAG5B,GAAI5I,KAAK+Q,GAAG,GACvBzI,EAAG,CAAEkC,EAAGxK,KAAK+Q,GAAG,EAAGnI,EAAG,GACtBH,EAAG,CAAE+B,GAAIxK,KAAK+Q,GAAG,EAAGnI,EAAG,IAIrBizI,EAASt1H,EAAKz/B,SAGlB,SAASg1J,EAAa94H,EAAK5Z,EAAGoB,EAAG5B,GAC3BQ,GACFmd,EAAKlN,QAAQ2J,EAAKA,EAAK64H,EAAQzyI,GAE7BoB,GACF+b,EAAKpN,QAAQ6J,EAAKA,EAAK64H,EAAQrxI,GAE7B5B,GACF2d,EAAKnN,QAAQ4J,EAAKA,EAAK64H,EAAQjzI,EAEnC,CAIA,IADA,IAAImzI,EAAc,CAAC,EACV5wJ,EAAI,EAAGA,EAAIwwJ,EAASzwJ,OAAQC,IAAK,CACxC,IAAI6wJ,EAAOL,EAASxwJ,GAChBo3F,EAAWq5D,EAAaI,GACxB7yI,EAAIod,EAAKjV,WAAW,EAAI,GAAI,GAChCwqI,EAAa3yI,EAAG,EAAGo5E,EAAS/3E,EAAG+3E,EAAS35E,GACxCmzI,EAAYC,GAAQ7yI,CACtB,CAIA,IAAI8yI,EAAe,CACjBpmJ,EAAG,CAAE,IAAK,IAAK,IAAK,KACpBqb,EAAG,CAAE,IAAK,IAAK,IAAK,KACpBxI,EAAG,CAAE,IAAK,IAAK,IAAK,KACpB3I,EAAG,CAAE,IAAK,IAAK,IAAK,KACpBuI,EAAG,CAAE,IAAK,IAAK,IAAK,KACpBG,EAAG,CAAE,IAAK,IAAK,IAAK,MAIlByzI,EAAkB,CACpB,CAAG,EAAI,GACP,CAAG,EAAI,GACP,CAAG,GAAI,GACP,EAAG,EAAI,IAWT,SAASC,EAASH,EAAMxxI,EAAG5B,EAAGQ,EAAG0+D,GAC/BngF,KAAKq0J,KAAOA,EACZr0J,KAAK6iB,EAAIA,EACT7iB,KAAKihB,EAAIA,EACTjhB,KAAKyhB,EAAIA,EACTzhB,KAAKmyF,UAAYhS,EACjBngF,KAAKy0J,OAASt0E,EAAStnC,UAAUp3B,EACnC,CA4OA,SAASizI,EAAU7hF,GAMjB,GALA7yE,KAAK6D,YAAYupC,OAAOztC,KAAKK,KAAM6yE,GAEnC7yE,KAAKmuF,MAAQtb,EAAgB78D,KAC7BhW,KAAK20J,UAAY9hF,EAAgBqN,SAE7BlgF,KAAKmuF,MAAQnuF,KAAK20J,YAAc,EAClC,MAAM,IAAInzJ,MAAM,4CACAxB,KAAKmuF,MAAQ,IAAMnuF,KAAK20J,UAE5C,CAqFA,SAASttH,EAAamR,GACpB,GAAkC,UAA9B94C,EAAK84C,GACP,MAAM,IAAIh3C,MAAM,+BAGlBxB,KAAK64C,UAAYN,EAAcC,EAAqBk8G,GACpD10J,KAAKizF,oBAAsBr6C,EAAwB54C,KAAK64C,WAExD,IAAK,IAAIr1C,EAAI,EAAGA,EAAIxD,KAAK64C,UAAUt1C,OAAQC,IACzCxD,KAAK64C,UAAUr1C,GAAGoxJ,yBAAyB50J,KAAK64C,UAAUr1C,EAAE,IAG9DxD,KAAK60J,cAAgB,IAAIxnE,EAAartF,MAEtCA,KAAK80J,gBAAkB,IAAIxmE,EApaJ,IAsavBtuF,KAAK+0J,KAAOt2H,EAAKt/B,SAEjBa,KAAKg1J,UAAY,CAAC,CACpB,CA3VAR,EAASl3J,UAAU2qF,KAAO,WACxB,OAAOgsE,EAAaj0J,KAAKq0J,MAAMxxI,CACjC,EAGA2xI,EAASl3J,UAAU4qF,KAAO,WACxB,OAAO+rE,EAAaj0J,KAAKq0J,MAAMpzI,CACjC,EAGAuzI,EAASl3J,UAAUuqF,QAAU,WAC3B,OAAQ7nF,KAAK6iB,EAAI,IAAO7iB,KAAKy0J,OAAO1hF,qBAAuB,EAC7D,EAGAyhF,EAASl3J,UAAUwqF,QAAU,WAC3B,MAAO,IAAO9nF,KAAKihB,EAAI,IAAOjhB,KAAKy0J,OAAOxhF,kBAC5C,EAGAuhF,EAASl3J,UAAUyqF,OAAS,WAC1B,OAAO,EAAI/nF,KAAKy0J,OAAO1hF,oBACzB,EAGAyhF,EAASl3J,UAAU0qF,OAAS,WAC1B,OAAO,EAAIhoF,KAAKy0J,OAAOxhF,kBACzB,EAGAuhF,EAASl3J,UAAUswF,SAAW,SAAS5sF,GAChCA,IACHA,EAAS,CAAC49B,EAAKz/B,SAAUy/B,EAAKz/B,SAAUy/B,EAAKz/B,SAAUy/B,EAAKz/B,WAG9D,IAAI81J,EAAMhB,EAAaj0J,KAAKq0J,MAE5B,SAASa,EAAW75H,EAAKxY,EAAG5B,GAC1B2d,EAAK7Z,IAAIsW,EAAKxY,EAAG5B,GAAI,IACrBkzI,EAAa94H,EAAK,EAAG45H,EAAIpyI,EAAGoyI,EAAIh0I,EAClC,CAEA,IAAIgU,EAAOj1B,KAAK6nF,UAAY7nF,KAAK+nF,SAAW,EACxC7yD,EAAQl1B,KAAK6nF,UAAY7nF,KAAK+nF,SAAW,EACzC5yD,EAASn1B,KAAK8nF,UAAY9nF,KAAKgoF,SAAW,EAC1C5yD,EAAMp1B,KAAK8nF,UAAY9nF,KAAKgoF,SAAW,EAO3C,OALAktE,EAAWl0J,EAAO,GAAIi0B,EAAMG,GAC5B8/H,EAAWl0J,EAAO,GAAIk0B,EAAOE,GAC7B8/H,EAAWl0J,EAAO,GAAIk0B,EAAOC,GAC7B+/H,EAAWl0J,EAAO,GAAIi0B,EAAME,GAErBn0B,CACT,EAGAwzJ,EAASl3J,UAAUw6F,OAAS,WAE1B,GAAe,IAAX93F,KAAKyhB,EACP,OAAO,KAGT,IAAI4yI,EAAOr0J,KAAKq0J,KACZ5yI,EAAIzhB,KAAKyhB,EACToB,EAAI7iB,KAAK6iB,EACT5B,EAAIjhB,KAAKihB,EAETk/D,EAAWngF,KAAKmyF,UAChBt+E,EAAQssE,EAAStnC,UAAUp3B,GAC3B0zI,EAAch1E,EAAStnC,UAAUp3B,EAAE,GAMvC,OAAO,IAAI+yI,EAASH,EAJRh8I,KAAKsC,MAAMkI,EAAIhP,EAAMk/D,qBAAuBoiF,EAAYpiF,sBACxD16D,KAAKsC,MAAMsG,EAAIpN,EAAMo/D,mBAAqBkiF,EAAYliF,oBACtDxxD,EAAE,EAEiC0+D,EAEjD,EAGAq0E,EAASl3J,UAAU8oD,SAAW,SAASplD,GAErC,GAAIhB,KAAKyhB,IAAMzhB,KAAKmyF,UAAUt5C,UAAUt1C,OAAS,EAC/C,OAAO,KAGT,IAAI8wJ,EAAOr0J,KAAKq0J,KACZ5yI,EAAIzhB,KAAKyhB,EACToB,EAAI7iB,KAAK6iB,EACT5B,EAAIjhB,KAAKihB,EAETk/D,EAAWngF,KAAKmyF,UAChBt+E,EAAQssE,EAAStnC,UAAUp3B,GAC3B2zI,EAAaj1E,EAAStnC,UAAUp3B,EAAE,GAElC4zI,EAASD,EAAWriF,qBAAuBl/D,EAAMk/D,qBACjDuiF,EAAQF,EAAWniF,mBAAqBp/D,EAAMo/D,mBAElDjyE,EAASA,GAAU,GAEnB,IAAK,IAAI6f,EAAI,EAAGA,EAAIw0I,EAAQx0I,IAC1B,IAAK,IAAIW,EAAI,EAAGA,EAAI8zI,EAAO9zI,IAAK,CAC9B,IAAI+zI,EAAQF,EAASxyI,EAAIhC,EACrB20I,EAAQF,EAAQr0I,EAAIO,EACpB6pE,EAAQ5pE,EAAE,EACdzgB,EAAOgC,KAAK,IAAIwxJ,EAASH,EAAMkB,EAAOC,EAAOnqE,EAAOlL,GACtD,CAGF,OAAOn/E,CAET,EAGAwzJ,EAASl3J,UAAUywF,UAAY,WAE7B,IAAI5N,EAAWngF,KAAKmyF,UAChBjsB,EAAQia,EAAS20E,gBAGjBW,EAAevvF,EAAMpwD,IAAI9V,MAC7B,GAAIy1J,EACF,OAAOA,EAgBT,IAbA,IAAIp6H,EAAM8kD,EAAS40E,KAEfV,EAAOr0J,KAAKq0J,KACZxxI,EAAI7iB,KAAK6iB,EACT5B,EAAIjhB,KAAKihB,EACTQ,EAAIzhB,KAAKyhB,EACT5N,EAAQ7T,KAAKy0J,OAEbiB,EAAO7hJ,EAAMk/D,qBACb4iF,EAAO9hJ,EAAMo/D,mBAEbjyE,EAAS,GAEJwC,EAAI,EAAGA,EAAI+wJ,EAAgBhxJ,OAAQC,IAAK,CAC/C,IAGIoyJ,EAAO/yI,EAHG0xI,EAAgB/wJ,GAAG,GAI7BqyJ,EAAO50I,EAHGszI,EAAgB/wJ,GAAG,GAI7BsyJ,EAAOr0I,EACPs0I,EAAU1B,EAEd,GAAIuB,EAAO,GAAKA,GAAQF,GAAQG,EAAO,GAAKA,GAAQF,EAAM,CAOxD,IAqBIV,EArBAe,EAASh2J,KAAK6nF,UACdouE,EAASj2J,KAAK8nF,UAMd8tE,EAAO,GACTh3H,EAAK7Z,IAAIsW,GAAM,GAAK46H,GAAS,IAC7BF,EAAUzB,EAAaD,GAAM,IACpBuB,GAAQF,GACjB92H,EAAK7Z,IAAIsW,EAAK,GAAK46H,GAAS,IAC5BF,EAAUzB,EAAaD,GAAM,IACpBwB,EAAO,GAChBj3H,EAAK7Z,IAAIsW,EAAK26H,EAAQ,IAAM,IAC5BD,EAAUzB,EAAaD,GAAM,IACpBwB,GAAQF,IACjB/2H,EAAK7Z,IAAIsW,EAAK26H,GAAS,IAAM,IAC7BD,EAAUzB,EAAaD,GAAM,IAS/BF,EAAa94H,EAAK,GADlB45H,EAAMhB,EAAaI,IACMxxI,EAAGoyI,EAAIh0I,GAOhCkzI,EAAa94H,EAAK,IADlB45H,EAAMhB,EAAa8B,IACOlzI,GAAIoyI,EAAIh0I,GAIlC20I,EAAOzsH,EAAM9wB,KAAKsC,OAAO,GAAM0gB,EAAI,IAAMq6H,GAAO,EAAGA,EAAO,GAC1DG,EAAO1sH,EAAM9wB,KAAKsC,OAAO,GAAM0gB,EAAI,IAAMs6H,GAAO,EAAGA,EAAO,EAC5D,CAEA30J,EAAOgC,KAAK,IAAIwxJ,EAASuB,EAASH,EAAMC,EAAMC,EAAM31E,GACtD,CAKA,OAFAja,EAAMnhD,IAAI/kB,KAAMgB,GAETA,CAET,EAGAwzJ,EAASl3J,UAAUusC,KAAO,WACxB,OAAOA,EAAKmqH,EAAS3pJ,QAAQrK,KAAKq0J,MAAOr0J,KAAKyhB,EAAGzhB,KAAKihB,EAAGjhB,KAAK6iB,EAChE,EAGA2xI,EAASl3J,UAAUgsB,OAAS,SAAS6Z,GACnC,OAAQnjC,KAAKmyF,YAAchvD,EAAKgvD,WAC5BnyF,KAAKq0J,OAASlxH,EAAKkxH,MACnBr0J,KAAKyhB,IAAM0hB,EAAK1hB,GAChBzhB,KAAKihB,IAAMkiB,EAAKliB,GAChBjhB,KAAK6iB,IAAMsgB,EAAKtgB,CACtB,EAGA2xI,EAASl3J,UAAU+rC,IAAM,SAASlG,GAChC,OAAQkG,EAAIrpC,KAAKyhB,EAAG0hB,EAAK1hB,IACzB4nB,EAAI2qH,EAAS3pJ,QAAQrK,KAAKq0J,MAAOL,EAAS3pJ,QAAQ84B,EAAKkxH,QACvDhrH,EAAIrpC,KAAKihB,EAAGkiB,EAAKliB,IAAMooB,EAAIrpC,KAAK6iB,EAAGsgB,EAAKtgB,EAC1C,EAGA2xI,EAASl3J,UAAU0K,IAAM,WACvB,MAAO,YAAcg3E,KAAKq1E,KAAO,KAAOr1E,KAAKn8D,EAAI,KAAOm8D,KAAK/9D,EAAI,KAAO+9D,KAAKv9D,EAAI,GACnF,EAeAqoB,EAAS4qH,EAAW9hF,GAGpB8hF,EAAUp3J,UAAUizB,MAAQ,WAC1B,OAAOvwB,KAAKmuF,KACd,EAGAumE,EAAUp3J,UAAUkzB,OAAS,WAC3B,OAAOxwB,KAAKmuF,KACd,EAGAumE,EAAUp3J,UAAU01E,UAAY,WAC9B,OAAOhzE,KAAK20J,SACd,EAGAD,EAAUp3J,UAAU41E,WAAa,WAC/B,OAAOlzE,KAAK20J,SACd,EAGAD,EAAUp3J,UAAUs3J,yBAA2B,SAASO,GAEtD,IAAI5kI,EAAQvwB,KAAKuwB,QACbC,EAASxwB,KAAKwwB,SACdwiD,EAAYhzE,KAAKgzE,YACjBE,EAAalzE,KAAKkzE,aAClBgjF,EAAgBl2J,KAAK+yE,qBACrBojF,EAAcn2J,KAAKizE,mBAEnBmjF,EAAcjB,EAAY5kI,QAC1B8lI,EAAelB,EAAY3kI,SAC3B8lI,EAAkBnB,EAAYniF,YAC9BujF,EAAmBpB,EAAYjiF,aAC/BsjF,EAAsBrB,EAAYpiF,qBAClC0jF,EAAoBtB,EAAYliF,mBAEpC,GAAI1iD,EAAQ6lI,IAAgB,EAC1B,MAAM,IAAI50J,MAAM,iDACA+uB,EAAQ,QAAU6lI,GAGpC,GAAI5lI,EAAS6lI,IAAiB,EAC5B,MAAM,IAAI70J,MAAM,kDACAgvB,EAAS,QAAU6lI,GAGrC,GAAIH,EAAgBM,IAAwB,EAC1C,MAAM,IAAIh1J,MAAM,gEACd00J,EAAgB,KAAO3lI,EAAQ,IAAMyiD,EADvB,SAEdwjF,EAAsB,KAAOJ,EAAc,IAAME,EAAkB,KAGvE,GAAIH,EAAcM,IAAsB,EACtC,MAAM,IAAIj1J,MAAM,8DACd20J,EAAc,KAAO3lI,EAAS,IAAM0iD,EADtB,SAEdujF,EAAoB,KAAOJ,EAAe,IAAME,EAAmB,IAGzE,EA4CAlvH,EAAa/pC,UAAU8iF,YAAc,WAEnC,IADA,IAAIA,EAAc,EACT58E,EAAI,EAAGA,EAAIxD,KAAK64C,UAAUt1C,OAAQC,IAAK,CAC9C,IAAIqQ,EAAQ7T,KAAK64C,UAAUr1C,GAC3B48E,EAAc/nE,KAAKJ,IAAImoE,EAAavsE,EAAMm/D,UAAWn/D,EAAMq/D,WAC7D,CACA,OAAOkN,CACT,EAGA/4C,EAAa/pC,UAAU+1F,WAAa,SAASx/E,EAAO7S,GAElD,IAAI8xF,EAAa9yF,KAAK64C,UAAUxuC,QAAQwJ,GACpC6iJ,EAAO7iJ,EAAMk/D,qBAAuB,EACpC4jF,EAAO9iJ,EAAMo/D,mBAAqB,EAEtCjyE,EAASA,GAAU,GAEnB,IAAK,IAAIkN,EAAI,EAAGA,EAAI8lJ,EAASzwJ,OAAQ2K,IAEnC,IADA,IAAImmJ,EAAOL,EAAS9lJ,GACX2U,EAAI,EAAGA,GAAK6zI,EAAM7zI,IACzB,IAAK,IAAI5B,EAAI,EAAGA,GAAK01I,EAAM11I,IACzBjgB,EAAOgC,KAAK,IAAIwxJ,EAASH,EAAMxxI,EAAG5B,EAAG6xE,EAAY9yF,OAKvD,OAAOgB,CAET,EAGAqmC,EAAa/pC,UAAUs5J,aAAe,SAAS9uJ,EAAM+L,GACnD,IAAIgjJ,EAAM72J,KAAK+0J,KAGft2H,EAAK1Z,IAAI8xI,EAAK,EAAG,EAAG,EAAG,GACvBp4H,EAAK3E,cAAc+8H,EAAKA,EAAK/uJ,EAAKgvJ,qBAElC,IAAIC,EAAWjhI,IACXkhI,EAAc,KAIlB,IAAK,IAAI3C,KAAQD,EAAa,CAC5B,IAAI6C,EAAS7C,EAAYC,GAErBz5H,EAAQ,EAAIgE,EAAK3F,IAAIg+H,EAAQJ,GAC7Bj8H,EAAQm8H,IACVA,EAAWn8H,EACXo8H,EAAc3C,EAElB,CAKA,IADA,IAAIp8I,EAAMI,KAAKJ,IAAII,KAAKsJ,IAAIk1I,EAAI,IAAKx+I,KAAKsJ,IAAIk1I,EAAI,IAAKx+I,KAAKsJ,IAAIk1I,EAAI,KAAO,GAClErzJ,EAAI,EAAGA,EAAI,EAAGA,IACrBqzJ,EAAIrzJ,GAAKqzJ,EAAIrzJ,GAAKyU,EAIpB,IAAIg9I,EAAMhB,EAAa+C,GACvB7C,EAAa0C,EAAK,GAAI5B,EAAIpyI,GAAIoyI,EAAIh0I,GAGlC,IAAIoqE,EAAQrrF,KAAK64C,UAAUxuC,QAAQwJ,GAC/B6hJ,EAAO7hJ,EAAMk/D,qBACb4iF,EAAO9hJ,EAAMo/D,mBAMjB,OAAO,IAAIuhF,EAASwC,EAHR7tH,EAAM9wB,KAAKsC,OAAO,GAAMk8I,EAAI,IAAMnB,GAAO,EAAGA,EAAO,GACnDvsH,EAAM9wB,KAAKsC,OAAO,GAAMk8I,EAAI,IAAMlB,GAAO,EAAGA,EAAO,GAEhBtqE,EAAOrrF,KACxD,EAGAqnC,EAAa/pC,UAAU41F,aAAe,SAASprF,EAAM+L,EAAO7S,GAC1D,IAAIk2J,EAAWl3J,KAAKg1J,UAChBmC,EAAen3J,KAAK60J,cAKxB,GAHA7zJ,EAASA,GAAU,GAEnB8G,EAAKkO,KAAKkhJ,GACa,IAAnBA,EAAS3mI,OAAmC,IAApB2mI,EAAS1mI,OAEnC,OAAOxvB,EAGT,IAAI0sF,EAAe1tF,KAAK42J,aAAa9uJ,EAAM+L,GAE3C,IADYsjJ,EAAa1pE,OAAO3lF,EAAM4lF,EAAc1sF,GAElD,MAAM,IAAIQ,MAAM,gCAGlB,OAAOR,CACT,EAGAqmC,EAAa+vH,KAAO/vH,EAAa/pC,UAAU85J,KAAO5C,EAClDntH,EAAa3nC,KAAO2nC,EAAa/pC,UAAUoC,KAAO,OAClD80J,EAAS90J,KAAO80J,EAASl3J,UAAUoC,KAAO,OAG1Cic,EAAOxe,QAAUkqC,C,+BCliBjB,IAAIyC,EAAWt7B,EAAQ,IACnBq7B,EAAOr7B,EAAQ,IACf6+E,EAAe7+E,EAAQ,IACvB8/E,EAAS9/E,EAAQ,KACjBokE,EAAQpkE,EAAQ,IAChB+pC,EAAgB/pC,EAAQ,IAAY+pC,cACpCK,EAA0BpqC,EAAQ,IAAYoqC,wBAC9CzP,EAAQ36B,EAAQ,IAChBu7B,EAAMv7B,EAAQ,IACd66B,EAAM76B,EAAQ,IACd9O,EAAO8O,EAAQ,IACf6oJ,EAAO7oJ,EAAQ,IAAa6oJ,KAC5B54H,EAAOjwB,EAAQ,IAAaiwB,KAK5B81H,EAAkB,CACpB,CAAG,EAAI,GACP,CAAG,EAAI,GACP,CAAG,GAAI,GACP,EAAG,EAAI,IAWT,SAAS+C,EAASz0I,EAAG5B,EAAGQ,EAAG0+D,GACzBngF,KAAK6iB,EAAIA,EACT7iB,KAAKihB,EAAIA,EACTjhB,KAAKyhB,EAAIA,EACTzhB,KAAKmyF,UAAYhS,EACjBngF,KAAKy0J,OAASt0E,EAAStnC,UAAUp3B,EACnC,CAqMA,SAAS81I,EAAU1kF,GACjB7yE,KAAK6D,YAAYupC,OAAOztC,KAAKK,KAAM6yE,GAEnC7yE,KAAKq/E,OAASxM,EAAgBtiD,MAC9BvwB,KAAKs/E,QAAUzM,EAAgBriD,OAC/BxwB,KAAKw3J,WAAa3kF,EAAgBG,UAClChzE,KAAKy3J,YAAc5kF,EAAgBK,UACrC,CAkFA,SAAS5rC,EAAakR,GACpB,GAAkC,UAA9B94C,EAAK84C,GACP,MAAM,IAAIh3C,MAAM,+BAGlBxB,KAAK64C,UAAYN,EAAcC,EAAqB++G,GACpDv3J,KAAKizF,oBAAsBr6C,EAAwB54C,KAAK64C,WAExD,IAAK,IAAIr1C,EAAI,EAAGA,EAAIxD,KAAK64C,UAAUt1C,OAAQC,IACzCxD,KAAK64C,UAAUr1C,GAAGoxJ,yBAAyB50J,KAAK64C,UAAUr1C,EAAE,IAG9DxD,KAAK60J,cAAgB,IAAIxnE,EAAartF,MAEtCA,KAAK80J,gBAAkB,IAAIxmE,EApUJ,IAsUvBtuF,KAAK+0J,KAAOt2H,EAAKt/B,SAEjBa,KAAKg1J,UAAY,CAAC,CACpB,CA9SAsC,EAASh6J,UAAU2qF,KAAO,WACxB,OAAO,CACT,EAGAqvE,EAASh6J,UAAU4qF,KAAO,WACxB,OAAO,CACT,EAGAovE,EAASh6J,UAAUuqF,QAAU,WAC3B,IAAI6vE,EAAa13J,KAAKy0J,OAAOlkI,QACzByiD,EAAYhzE,KAAKy0J,OAAOzhF,YAC5B,OAAQhzE,KAAK6iB,EAAImwD,EAAY,GAAMhzE,KAAKuwB,SAAWmnI,EAAa,EAClE,EAGAJ,EAASh6J,UAAUwqF,QAAU,WAC3B,IAAI6vE,EAAc33J,KAAKy0J,OAAOjkI,SAC1B0iD,EAAalzE,KAAKy0J,OAAOvhF,aAC7B,MAAO,IAAOlzE,KAAKihB,EAAIiyD,EAAa,GAAMlzE,KAAKwwB,UAAYmnI,CAC7D,EAGAL,EAASh6J,UAAUyqF,OAAS,WAC1B,IAAI2vE,EAAa13J,KAAKy0J,OAAOlkI,QAC7B,OAAOvwB,KAAKuwB,QAAUmnI,CACxB,EAGAJ,EAASh6J,UAAU0qF,OAAS,WAC1B,IAAI2vE,EAAc33J,KAAKy0J,OAAOjkI,SAC9B,OAAOxwB,KAAKwwB,SAAWmnI,CACzB,EAGAL,EAASh6J,UAAUizB,MAAQ,WACzB,IAAImnI,EAAa13J,KAAKy0J,OAAOlkI,QACzByiD,EAAYhzE,KAAKy0J,OAAOzhF,YAC5B,OAAIhzE,KAAK6iB,IAAM7iB,KAAKy0J,OAAO1hF,qBAAuB,GAC3BhpC,EAAI2tH,EAAY1kF,IAG9BA,CAEX,EAGAskF,EAASh6J,UAAUkzB,OAAS,WAC1B,IAAImnI,EAAc33J,KAAKy0J,OAAOjkI,SAC1B0iD,EAAalzE,KAAKy0J,OAAOvhF,aAC7B,OAAIlzE,KAAKihB,IAAMjhB,KAAKy0J,OAAOxhF,mBAAqB,GACxBlpC,EAAI4tH,EAAazkF,IAGhCA,CAEX,EAGAokF,EAASh6J,UAAUo6J,WAAa,WAC9B,OAAO13J,KAAKy0J,OAAOlkI,OACrB,EAGA+mI,EAASh6J,UAAUq6J,YAAc,WAC/B,OAAO33J,KAAKy0J,OAAOjkI,QACrB,EAGA8mI,EAASh6J,UAAUswF,SAAW,SAAS5sF,GAChCA,IACHA,EAAS,CAACq2J,EAAKl4J,SAAUk4J,EAAKl4J,SAAUk4J,EAAKl4J,SAAUk4J,EAAKl4J,WAG9D,IAAI81B,EAAOj1B,KAAK6nF,UAAY7nF,KAAK+nF,SAAW,EACxC7yD,EAAQl1B,KAAK6nF,UAAY7nF,KAAK+nF,SAAW,EACzC5yD,EAASn1B,KAAK8nF,UAAY9nF,KAAKgoF,SAAW,EAC1C5yD,EAAMp1B,KAAK8nF,UAAY9nF,KAAKgoF,SAAW,EAO3C,OALAqvE,EAAKtyI,IAAI/jB,EAAO,GAAIi0B,EAAMG,GAC1BiiI,EAAKtyI,IAAI/jB,EAAO,GAAIk0B,EAAOE,GAC3BiiI,EAAKtyI,IAAI/jB,EAAO,GAAIk0B,EAAOC,GAC3BkiI,EAAKtyI,IAAI/jB,EAAO,GAAIi0B,EAAME,GAEnBn0B,CACT,EAGAs2J,EAASh6J,UAAUw6F,OAAS,WAG1B,GAAe,IAAX93F,KAAKyhB,EACP,OAAO,KAGT,IAAI0+D,EAAWngF,KAAKmyF,UAEhB1wE,EAAIzhB,KAAKyhB,EAAI,EAMjB,OAAO,IAAI61I,EAHHj/I,KAAKsC,MAAM3a,KAAK6iB,EAAI,GACpBxK,KAAKsC,MAAM3a,KAAKihB,EAAI,GAEFQ,EAAG0+D,EAE/B,EAGAm3E,EAASh6J,UAAU8oD,SAAW,SAASplD,GACrC,GAAIhB,KAAKyhB,IAAMzhB,KAAKmyF,UAAUt5C,UAAUt1C,OAAS,EAC/C,OAAO,KAGT,IAAI48E,EAAWngF,KAAKmyF,UAChB1wE,EAAIzhB,KAAKyhB,EAAI,EAWjB,OATAzgB,EAASA,GAAU,IAIZgC,KAAK,IAAIs0J,EAAS,EAAEt3J,KAAK6iB,EAAK,EAAE7iB,KAAKihB,EAAKQ,EAAG0+D,IACpDn/E,EAAOgC,KAAK,IAAIs0J,EAAS,EAAEt3J,KAAK6iB,EAAK,EAAE7iB,KAAKihB,EAAE,EAAGQ,EAAG0+D,IACpDn/E,EAAOgC,KAAK,IAAIs0J,EAAS,EAAEt3J,KAAK6iB,EAAE,EAAG,EAAE7iB,KAAKihB,EAAKQ,EAAG0+D,IACpDn/E,EAAOgC,KAAK,IAAIs0J,EAAS,EAAEt3J,KAAK6iB,EAAE,EAAG,EAAE7iB,KAAKihB,EAAE,EAAGQ,EAAG0+D,IAE7Cn/E,CAET,EAGAs2J,EAASh6J,UAAUywF,UAAY,WAE7B,IAAI5N,EAAWngF,KAAKmyF,UAChBjsB,EAAQia,EAAS20E,gBAGjBW,EAAevvF,EAAMpwD,IAAI9V,MAC7B,GAAIy1J,EACF,OAAOA,EAaT,IAVA,IAAI5yI,EAAI7iB,KAAK6iB,EACT5B,EAAIjhB,KAAKihB,EACTQ,EAAIzhB,KAAKyhB,EACT5N,EAAQ7T,KAAKy0J,OAEbiB,EAAO7hJ,EAAMk/D,qBAAuB,EACpC4iF,EAAO9hJ,EAAMo/D,mBAAqB,EAElCjyE,EAAS,GAEJwC,EAAI,EAAGA,EAAI+wJ,EAAgBhxJ,OAAQC,IAAK,CAC/C,IAGIoyJ,EAAO/yI,EAHG0xI,EAAgB/wJ,GAAG,GAI7BqyJ,EAAO50I,EAHGszI,EAAgB/wJ,GAAG,GAI7BsyJ,EAAOr0I,EAEP,GAAKm0I,GAAQA,GAAQF,GAAQ,GAAKG,GAAQA,GAAQF,GACpD30J,EAAOgC,KAAK,IAAIs0J,EAAS1B,EAAMC,EAAMC,EAAM31E,GAE/C,CAKA,OAFAja,EAAMnhD,IAAI/kB,KAAMgB,GAETA,CAET,EAGAs2J,EAASh6J,UAAUusC,KAAO,WACxB,OAAOA,EAAK7pC,KAAKyhB,EAAGzhB,KAAKihB,EAAGjhB,KAAK6iB,EACnC,EAGAy0I,EAASh6J,UAAUgsB,OAAS,SAAS6Z,GACnC,OAAQnjC,KAAKmyF,YAAchvD,EAAKgvD,WAC5BnyF,KAAKyhB,IAAM0hB,EAAK1hB,GAAKzhB,KAAKihB,IAAMkiB,EAAKliB,GAAKjhB,KAAK6iB,IAAMsgB,EAAKtgB,CAChE,EAGAy0I,EAASh6J,UAAU+rC,IAAM,SAASlG,GAChC,OAAQkG,EAAIrpC,KAAKyhB,EAAG0hB,EAAK1hB,IAAM4nB,EAAIrpC,KAAKihB,EAAGkiB,EAAKliB,IAAMooB,EAAIrpC,KAAK6iB,EAAGsgB,EAAKtgB,EACzE,EAGAy0I,EAASh6J,UAAU0K,IAAM,WACvB,MAAO,YAAcg3E,KAAKn8D,EAAI,KAAOm8D,KAAK/9D,EAAI,KAAO+9D,KAAKv9D,EAAI,GAChE,EAYAqoB,EAASytH,EAAW3kF,GAGpB2kF,EAAUj6J,UAAUizB,MAAQ,WAC1B,OAAOvwB,KAAKq/E,MACd,EAGAk4E,EAAUj6J,UAAUkzB,OAAS,WAC3B,OAAOxwB,KAAKs/E,OACd,EAGAi4E,EAAUj6J,UAAU01E,UAAY,WAC9B,OAAOhzE,KAAKw3J,UACd,EAGAD,EAAUj6J,UAAU41E,WAAa,WAC/B,OAAOlzE,KAAKy3J,WACd,EAGAF,EAAUj6J,UAAUs3J,yBAA2B,SAASO,GAEtD,IAAI5kI,EAAQvwB,KAAKuwB,QACbC,EAASxwB,KAAKwwB,SACdwiD,EAAYhzE,KAAKgzE,YACjBE,EAAalzE,KAAKkzE,aAElBkjF,EAAcjB,EAAY5kI,QAC1B8lI,EAAelB,EAAY3kI,SAC3B8lI,EAAkBnB,EAAYniF,YAC9BujF,EAAmBpB,EAAYjiF,aAEnC,OAAI3iD,EAAQ6lI,IAAgB,EACnB,IAAI50J,MAAM,iDACA+uB,EAAQ,QAAU6lI,GAGjC5lI,EAAS6lI,IAAiB,EACrB,IAAI70J,MAAM,kDACAgvB,EAAS,QAAU6lI,GAGlCrjF,EAAYsjF,IAAoB,EAC3B,IAAI90J,MAAM,sDACAwxE,EAAY,QAAUsjF,GAGrCpjF,EAAaqjF,IAAqB,EAC7B,IAAI/0J,MAAM,uDACA0xE,EAAa,QAAUqjF,QAF1C,CAKF,EA+CAjvH,EAAahqC,UAAU8iF,YAAc,WAEnC,IADA,IAAIA,EAAc,EACT58E,EAAI,EAAGA,EAAIxD,KAAK64C,UAAUt1C,OAAQC,IAAK,CAC9C,IAAIqQ,EAAQ7T,KAAK64C,UAAUr1C,GAC3B48E,EAAc/nE,KAAKJ,IAAImoE,EAAavsE,EAAMm/D,UAAWn/D,EAAMq/D,WAC7D,CACA,OAAOkN,CACT,EAGA94C,EAAahqC,UAAU+1F,WAAa,SAASx/E,EAAO7S,GAElD,IAAI8xF,EAAa9yF,KAAK64C,UAAUxuC,QAAQwJ,GACpC6iJ,EAAO7iJ,EAAMk/D,qBAAuB,EACpC4jF,EAAO9iJ,EAAMo/D,mBAAqB,EAEjCjyE,IACHA,EAAS,IAGX,IAAK,IAAI6hB,EAAI,EAAGA,GAAK6zI,EAAM7zI,IACzB,IAAK,IAAI5B,EAAI,EAAGA,GAAK01I,EAAM11I,IACzBjgB,EAAOgC,KAAK,IAAIs0J,EAASz0I,EAAG5B,EAAG6xE,EAAY9yF,OAI/C,OAAOgB,CAET,EAGAsmC,EAAahqC,UAAUs5J,aAAe,SAAS9uJ,EAAM+L,GACnD,IAAIgjJ,EAAM72J,KAAK+0J,KAGft2H,EAAK1Z,IAAI8xI,EAAK,EAAG,EAAG,EAAG,GACvBp4H,EAAK3E,cAAc+8H,EAAKA,EAAK/uJ,EAAKgvJ,qBAGlC,IAAIj0I,EAAI,GAAMg0I,EAAI,GACd51I,EAAI,GAAM41I,EAAI,GAGdxrE,EAAQrrF,KAAK64C,UAAUxuC,QAAQwJ,GAC/B6jJ,EAAa7jJ,EAAM0c,QACnBonI,EAAc9jJ,EAAM2c,SACpBwiD,EAAYn/D,EAAMm/D,YAClBE,EAAar/D,EAAMq/D,aACnBwiF,EAAO7hJ,EAAMk/D,qBACb4iF,EAAO9hJ,EAAMo/D,mBAMjB,OAAO,IAAIqkF,EAHCnuH,EAAM9wB,KAAKsC,MAAMkI,EAAI60I,EAAa1kF,GAAY,EAAG0iF,EAAO,GACxDvsH,EAAM9wB,KAAKsC,MAAMsG,EAAI02I,EAAczkF,GAAa,EAAGyiF,EAAO,GAEpCtqE,EAAOrrF,KAC3C,EAGAsnC,EAAahqC,UAAU41F,aAAe,SAASprF,EAAM+L,EAAO7S,GAC1D,IAAIk2J,EAAWl3J,KAAKg1J,UAChBmC,EAAen3J,KAAK60J,cAKxB,GAHA7zJ,EAASA,GAAU,GAEnB8G,EAAKkO,KAAKkhJ,GACa,IAAnBA,EAAS3mI,OAAmC,IAApB2mI,EAAS1mI,OAEnC,OAAOxvB,EAGT,IAAI0sF,EAAe1tF,KAAK42J,aAAa9uJ,EAAM+L,GAE3C,IADYsjJ,EAAa1pE,OAAO3lF,EAAM4lF,EAAc1sF,GAElD,MAAM,IAAIQ,MAAM,gCAGlB,OAAOR,CACT,EAGAsmC,EAAa8vH,KAAO9vH,EAAahqC,UAAU85J,KAAOE,EAClDhwH,EAAa5nC,KAAO4nC,EAAahqC,UAAUoC,KAAO,OAClD43J,EAAS53J,KAAO43J,EAASh6J,UAAUoC,KAAO,OAG1Cic,EAAOxe,QAAUmqC,C,+BChbjB,IAAIwC,EAAWt7B,EAAQ,IACnBq7B,EAAOr7B,EAAQ,IACf66B,EAAM76B,EAAQ,IACdopJ,EAASppJ,EAAQ,IACjBokE,EAAQpkE,EAAQ,IAChB9O,EAAO8O,EAAQ,IAUnB,SAASqpJ,EAAap2I,EAAG0+D,GACvBngF,KAAKyhB,EAAIA,EACTzhB,KAAKmyF,UAAYhS,EACjBngF,KAAKy0J,OAASt0E,EAAStnC,UAAUp3B,EACnC,CA4EA,SAASq2I,EAAcjlF,GACrB7yE,KAAK6D,YAAYupC,OAAOztC,KAAKK,KAAM6yE,GACnC7yE,KAAKq/E,OAASxM,EAAgBtiD,KAChC,CAoCA,SAASgX,EAAiBiR,GACxB,GAAkC,UAA9B94C,EAAK84C,GACP,MAAM,IAAIh3C,MAAM,+BAGlBxB,KAAK64C,UAAY++G,EAAOr/G,cAAcC,EAAqBs/G,GAC3D93J,KAAKizF,oBAAsB2kE,EAAOh/G,wBAAwB54C,KAAK64C,UACjE,CAvHAg/G,EAAav6J,UAAU2qF,KAAO,WAC5B,OAAO,CACT,EAGA4vE,EAAav6J,UAAU4qF,KAAO,WAC5B,OAAO,CACT,EAGA2vE,EAAav6J,UAAUuqF,QAAU,WAC/B,MAAO,EACT,EAGAgwE,EAAav6J,UAAUwqF,QAAU,WAC/B,MAAO,EACT,EAGA+vE,EAAav6J,UAAUyqF,OAAS,WAC9B,OAAO,CACT,EAGA8vE,EAAav6J,UAAU0qF,OAAS,WAC9B,OAAO,CACT,EAGA6vE,EAAav6J,UAAUw6F,OAAS,WAC9B,OAAe,IAAX93F,KAAKyhB,EACA,KAEF,IAAIo2I,EAAa73J,KAAKyhB,EAAI,EAAGzhB,KAAKmyF,UAC3C,EAGA0lE,EAAav6J,UAAU8oD,SAAW,SAASplD,GACzC,OAAIhB,KAAKyhB,IAAMzhB,KAAKmyF,UAAUt5C,UAAUt1C,OAAS,EACxC,OAETvC,EAASA,GAAU,IACZgC,KAAK,IAAI60J,EAAa73J,KAAKyhB,EAAI,EAAGzhB,KAAKmyF,YACvCnxF,EACT,EAGA62J,EAAav6J,UAAUywF,UAAY,WACjC,MAAO,EACT,EAGA8pE,EAAav6J,UAAUusC,KAAO,WAC5B,OAAOA,EAAK7pC,KAAKyhB,EACnB,EAGAo2I,EAAav6J,UAAUgsB,OAAS,SAAS6Z,GACvC,OAAOnjC,KAAKmyF,YAAchvD,EAAKgvD,WAAanyF,KAAKyhB,IAAM0hB,EAAK1hB,CAC9D,EAGAo2I,EAAav6J,UAAU+rC,IAAM,SAASlG,GACpC,OAAOkG,EAAIrpC,KAAKyhB,EAAG0hB,EAAK1hB,EAC1B,EAGAo2I,EAAav6J,UAAU0K,IAAM,WAC3B,MAAO,gBAAkBg3E,KAAKv9D,EAAI,GACpC,EAQAqoB,EAASguH,EAAellF,GAGxBklF,EAAcx6J,UAAUizB,MAAQ,WAC9B,OAAOvwB,KAAKq/E,MACd,EAGAy4E,EAAcx6J,UAAUkzB,OAAS,WAC/B,OAAOxwB,KAAKq/E,OAAO,CACrB,EAGAy4E,EAAcx6J,UAAU01E,UAAY,WAClC,OAAOhzE,KAAKq/E,MACd,EAGAy4E,EAAcx6J,UAAU41E,WAAa,WACnC,OAAOlzE,KAAKq/E,OAAO,CACrB,EAwBA93C,EAAiBjqC,UAAU8iF,YAAc,WAEvC,IADA,IAAIA,EAAc,EACT58E,EAAI,EAAGA,EAAIxD,KAAK64C,UAAUt1C,OAAQC,IAAK,CAC9C,IAAIqQ,EAAQ7T,KAAK64C,UAAUr1C,GAC3B48E,EAAc/nE,KAAKJ,IAAImoE,EAAavsE,EAAMm/D,UAAWn/D,EAAMq/D,WAC7D,CACA,OAAOkN,CACT,EAGA74C,EAAiBjqC,UAAU+1F,WAAa,SAASx/E,EAAO7S,GACtD,IAAI8xF,EAAa9yF,KAAK64C,UAAUxuC,QAAQwJ,GAGxC,OAFA7S,EAASA,GAAU,IACZgC,KAAK,IAAI60J,EAAa/kE,EAAY9yF,OAClCgB,CACT,EAGAumC,EAAiBjqC,UAAU41F,aAAe,SAASprF,EAAM+L,EAAO7S,GAC9D,IAAIg+E,EAAO,IAAI64E,EAAa73J,KAAK64C,UAAUxuC,QAAQwJ,GAAQ7T,OAC3DgB,EAASA,GAAU,IACZuC,OAAS,EAChBvC,EAAOgC,KAAKg8E,EACd,EAGAz3C,EAAiB6vH,KAAO7vH,EAAiBjqC,UAAU85J,KAAOS,EAC1DtwH,EAAiB7nC,KAAO6nC,EAAiBjqC,UAAUoC,KAAO,WAC1Dm4J,EAAan4J,KAAOm4J,EAAav6J,UAAUoC,KAAO,WAGlDic,EAAOxe,QAAUoqC,C,+BC/KjB,IAAIzuB,EAAetK,EAAQ,IACvBkxB,EAAOlxB,EAAQ,IAAakxB,KAC5BjB,EAAOjwB,EAAQ,IAAaiwB,KAC5ByL,EAAa17B,EAAQ,IACrB+6B,EAAa/6B,EAAQ,KACrBu7B,EAAMv7B,EAAQ,IACd47B,EAAO57B,EAAQ,IACf26B,EAAQ36B,EAAQ,IAChBg7B,EAAUh7B,EAAQ,IAClB86B,EAAU96B,EAAQ,KAClB46B,EAAqB56B,EAAQ,IAW7BupJ,EAAa1/I,KAAK+Q,GAAG,EAQrB4uI,EAAkB,KA+DtB,SAASxwH,EAAgB8a,EAAQ21G,GAE/Bj4J,KAAKk4J,KAAO51G,GAAwB,MAAdA,EAAO61G,IAAc71G,EAAO61G,IA5EnC,EA6Efn4J,KAAKo4J,OAAS91G,GAA0B,MAAhBA,EAAO+1G,MAAgB/1G,EAAO+1G,MA5ErC,EA6EjBr4J,KAAKs4J,MAAQh2G,GAAyB,MAAfA,EAAOi2G,KAAej2G,EAAOi2G,KA5EpC,EA6EhBv4J,KAAKw4J,KAAOl2G,GAAwB,MAAdA,EAAOtsB,IAAcssB,EAAOtsB,IAAM+hI,EACxD/3J,KAAKq/E,OAAS/8B,GAA0B,MAAhBA,EAAO/xB,MAC7B+xB,EAAO/xB,MArFQ,EAsFjBvwB,KAAKs/E,QAAUh9B,GAA2B,MAAjBA,EAAO9xB,OAC9B8xB,EAAO9xB,OAtFS,EAuFlBxwB,KAAKy4J,mBAAqBn2G,GAAsC,MAA5BA,EAAOo2G,kBACzCp2G,EAAOo2G,kBAjFoB,EAkF7B14J,KAAK24J,mBAAqBr2G,GAAsC,MAA5BA,EAAOs2G,kBACzCt2G,EAAOs2G,kBAlFoB,EAqF7B54J,KAAK64J,SAAWZ,GAAW,KAG3Bj4J,KAAK84J,YAAcp5H,EAAKvgC,SACxBa,KAAK+4J,eAAiBr5H,EAAKvgC,SAG3Ba,KAAKg5J,SAAW,CACdv6H,EAAKt/B,SACLs/B,EAAKt/B,SACLs/B,EAAKt/B,SACLs/B,EAAKt/B,SACLs/B,EAAKt/B,UAIPa,KAAKi5J,oBAAqB,EAG1Bj5J,KAAKk5J,QAAU,CAAC,EAChBl5J,KAAKm5J,MAAQ,CAAC,EACdn5J,KAAKo5J,QAAU36H,EAAKt/B,SAGpBa,KAAKqxF,SACP,CAEAv4E,EAAa0uB,GAMbA,EAAgBlqC,UAAUihD,QAAU,WAClCnV,EAAmBppC,KACrB,EAOAwnC,EAAgBlqC,UAAU66J,IAAM,WAC9B,OAAOn4J,KAAKk4J,IACd,EAOA1wH,EAAgBlqC,UAAU+6J,MAAQ,WAChC,OAAOr4J,KAAKo4J,MACd,EAOA5wH,EAAgBlqC,UAAUi7J,KAAO,WAC/B,OAAOv4J,KAAKs4J,KACd,EAGA9wH,EAAgBlqC,UAAUo7J,kBAAoB,WAC5C,OAAO14J,KAAKy4J,kBACd,EAGAjxH,EAAgBlqC,UAAUs7J,kBAAoB,WAC5C,OAAO54J,KAAK24J,kBACd,EAOAnxH,EAAgBlqC,UAAU04B,IAAM,WAC9B,OAAOh2B,KAAKw4J,IACd,EAOAhxH,EAAgBlqC,UAAUizB,MAAQ,WAChC,OAAOvwB,KAAKq/E,MACd,EAOA73C,EAAgBlqC,UAAUkzB,OAAS,WACjC,OAAOxwB,KAAKs/E,OACd,EASA93C,EAAgBlqC,UAAU0Y,KAAO,SAASA,GAIxC,OAHAA,EAAOA,GAAQ,CAAC,GACXua,MAAQvwB,KAAKq/E,OAClBrpE,EAAKwa,OAASxwB,KAAKs/E,QACZtpE,CACT,EASAwxB,EAAgBlqC,UAAUwuG,WAAa,SAASxpD,GAM9C,OALAA,EAASA,GAAU,CAAC,GACb61G,IAAMn4J,KAAKk4J,KAClB51G,EAAO+1G,MAAQr4J,KAAKo4J,OACpB91G,EAAOi2G,KAAOv4J,KAAKs4J,MACnBh2G,EAAOtsB,IAAMh2B,KAAKw4J,KACXl2G,CACT,EAOA9a,EAAgBlqC,UAAU26J,QAAU,WAClC,OAAOj4J,KAAK64J,QACd,EAOArxH,EAAgBlqC,UAAU+7J,OAAS,SAASlB,GAC1Cn4J,KAAKs5J,eACLt5J,KAAKk5J,QAAQf,IAAMA,EACnBn4J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAUi8J,SAAW,SAASlB,GAC5Cr4J,KAAKs5J,eACLt5J,KAAKk5J,QAAQb,MAAQA,EACrBr4J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAUk8J,QAAU,SAASjB,GAC3Cv4J,KAAKs5J,eACLt5J,KAAKk5J,QAAQX,KAAOA,EACpBv4J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAUm8J,OAAS,SAASzjI,GAC1Ch2B,KAAKs5J,eACLt5J,KAAKk5J,QAAQljI,IAAMA,EACnBh2B,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAGA1xH,EAAgBlqC,UAAUo8J,qBAAuB,SAAShB,GACxD14J,KAAKs5J,eACLt5J,KAAKk5J,QAAQR,kBAAoBA,EACjC14J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAGA1xH,EAAgBlqC,UAAUq8J,qBAAuB,SAASf,GACxD54J,KAAKs5J,eACLt5J,KAAKk5J,QAAQN,kBAAoBA,EACjC54J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAUs8J,UAAY,SAASC,GAC7C75J,KAAKq5J,OAAOr5J,KAAKk4J,KAAO2B,EAC1B,EAOAryH,EAAgBlqC,UAAUw8J,YAAc,SAASC,GAC/C/5J,KAAKu5J,SAASv5J,KAAKo4J,OAAS2B,EAC9B,EAOAvyH,EAAgBlqC,UAAU08J,WAAa,SAASC,GAC9Cj6J,KAAKw5J,QAAQx5J,KAAKs4J,MAAQ2B,EAC5B,EAOAzyH,EAAgBlqC,UAAU48J,UAAY,SAASC,GAC7Cn6J,KAAKy5J,OAAOz5J,KAAKw4J,KAAO2B,EAC1B,EAOA3yH,EAAgBlqC,UAAUo0J,QAAU,SAAS17I,GAC3ChW,KAAKs5J,eACLt5J,KAAKk5J,QAAQ3oI,MAAQva,EAAKua,MAC1BvwB,KAAKk5J,QAAQ1oI,OAASxa,EAAKwa,OAC3BxwB,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAUgvG,cAAgB,SAAShqD,GACjDtiD,KAAKs5J,eACLt5J,KAAKk5J,QAAQf,IAAM71G,EAAO61G,IAC1Bn4J,KAAKk5J,QAAQb,MAAQ/1G,EAAO+1G,MAC5Br4J,KAAKk5J,QAAQX,KAAOj2G,EAAOi2G,KAC3Bv4J,KAAKk5J,QAAQljI,IAAMssB,EAAOtsB,IAC1Bh2B,KAAKk5J,QAAQR,kBAAoBp2G,EAAOo2G,kBACxC14J,KAAKk5J,QAAQN,kBAAoBt2G,EAAOs2G,kBACxC54J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOA1xH,EAAgBlqC,UAAU88J,WAAa,SAASnC,GAC9Cj4J,KAAK64J,SAAWZ,GAAW,KAC3Bj4J,KAAKqxF,SACP,EAGA7pD,EAAgBlqC,UAAUg8J,aAAe,WACvC,IAAIh3G,EAAStiD,KAAKk5J,QAClB52G,EAAO61G,IAAM,KACb71G,EAAO+1G,MAAQ,KACf/1G,EAAOi2G,KAAO,KACdj2G,EAAOtsB,IAAM,KACbssB,EAAO/xB,MAAQ,KACf+xB,EAAO9xB,OAAS,IAClB,EAGAgX,EAAgBlqC,UAAU+zF,QAAU,SAAS/uC,GAG7B,MAAVA,IACFtiD,KAAKs5J,eACLh3G,EAAStiD,KAAKk5J,SAIhB,IAAImB,EAASr6J,KAAKk4J,KACdoC,EAAWt6J,KAAKo4J,OAChBmC,EAAUv6J,KAAKs4J,MACfkC,EAASx6J,KAAKw4J,KACdiC,EAAuBz6J,KAAKy4J,mBAC5BiC,EAAuB16J,KAAK24J,mBAC5BgC,EAAW36J,KAAKq/E,OAChBu7E,EAAY56J,KAAKs/E,QAerB,GAZAh9B,EAAO61G,IAAoB,MAAd71G,EAAO61G,IAAc71G,EAAO61G,IAAMkC,EAC/C/3G,EAAO+1G,MAAwB,MAAhB/1G,EAAO+1G,MAAgB/1G,EAAO+1G,MAAQiC,EACrDh4G,EAAOi2G,KAAsB,MAAfj2G,EAAOi2G,KAAej2G,EAAOi2G,KAAOgC,EAClDj4G,EAAOtsB,IAAoB,MAAdssB,EAAOtsB,IAAcssB,EAAOtsB,IAAMwkI,EAC/Cl4G,EAAO/xB,MAAwB,MAAhB+xB,EAAO/xB,MAAgB+xB,EAAO/xB,MAAQoqI,EACrDr4G,EAAO9xB,OAA0B,MAAjB8xB,EAAO9xB,OAAiB8xB,EAAO9xB,OAASoqI,EACxDt4G,EAAOo2G,kBAAgD,MAA5Bp2G,EAAOo2G,kBAChCp2G,EAAOo2G,kBAAoB+B,EAC7Bn4G,EAAOs2G,kBAAgD,MAA5Bt2G,EAAOs2G,kBAChCt2G,EAAOs2G,kBAAoB8B,EAGzB16J,KAAK64J,YACPv2G,EAAStiD,KAAK64J,SAASv2G,IAErB,MAAM,IAAI9gD,MAAM,oBAQpB,IAAIq5J,GAHJv4G,EAAStiD,KAAK86J,WAAWx4G,IAGL61G,IAChB4C,EAAWz4G,EAAO+1G,MAClB2C,EAAU14G,EAAOi2G,KACjB0C,EAAS34G,EAAOtsB,IAChBklI,EAAW54G,EAAO/xB,MAClB4qI,EAAY74G,EAAO9xB,OACnB4qI,EAAuB94G,EAAOo2G,kBAC9B2C,EAAuB/4G,EAAOs2G,kBAGlC,IAAKxuH,EAAKywH,KAAYzwH,EAAK2wH,KAAc3wH,EAAK4wH,KACzC5wH,EAAK6wH,KAAY7wH,EAAK8wH,KAAc9wH,EAAK+wH,KACzC/wH,EAAKgxH,KAA0BhxH,EAAKixH,GACvC,MAAM,IAAI75J,MAAM,uCAIlBxB,KAAKk4J,KAAO2C,EACZ76J,KAAKo4J,OAAS2C,EACd/6J,KAAKs4J,MAAQ0C,EACbh7J,KAAKw4J,KAAOyC,EACZj7J,KAAKq/E,OAAS67E,EACdl7J,KAAKs/E,QAAU67E,EACfn7J,KAAKy4J,mBAAqB2C,EAC1Bp7J,KAAK24J,mBAAqB0C,EAGtBR,IAAWR,GAAUU,IAAaT,GAAYU,IAAYT,GAC1DU,IAAWT,GAAUU,IAAaP,GAAYQ,IAAcP,GAC5DQ,IAAyBX,GACzBY,IAAyBX,IAC3B16J,KAAKi5J,oBAAqB,EAC1Bj5J,KAAK8f,KAAK,WAERo7I,IAAaP,GAAYQ,IAAcP,GACzC56J,KAAK8f,KAAK,SAGd,EAGA0nB,EAAgBlqC,UAAUw9J,WAAa,SAASx4G,GAE9CtiD,KAAKs7J,sBAAsBh5G,GAI3B,IAAIi5G,EAAShyH,EAAW2lD,KAAK72E,KAAK+Q,GAAIk5B,EAAO/xB,MAAO+xB,EAAO9xB,QACvDgrI,EAASl4J,MAAMi4J,GAAUljJ,KAAK+Q,GAAK/Q,KAAKL,IAAIK,KAAK+Q,GAAImyI,GAGzD,OAFAj5G,EAAOtsB,IAAMmT,EAAMmZ,EAAOtsB,IAAKgiI,EAAiBwD,EAASxD,GAElD11G,CACT,EAGA9a,EAAgBlqC,UAAUg+J,sBAAwB,SAASh5G,GAWzD,MATI,QAASA,IACXA,EAAO61G,IAAMpuH,EAAIuY,EAAO61G,IAAM9/I,KAAK+Q,IAAK,EAAE/Q,KAAK+Q,IAAM/Q,KAAK+Q,IAExD,UAAWk5B,IACbA,EAAO+1G,MAAQtuH,EAAIuY,EAAO+1G,MAAQhgJ,KAAK+Q,IAAK,EAAE/Q,KAAK+Q,IAAM/Q,KAAK+Q,IAE5D,SAAUk5B,IACZA,EAAOi2G,KAAOxuH,EAAIuY,EAAOi2G,KAAOlgJ,KAAK+Q,IAAK,EAAE/Q,KAAK+Q,IAAM/Q,KAAK+Q,IAEvDk5B,CACT,EAaA9a,EAAgBlqC,UAAU0uG,mBAAqB,SAAS0B,EAAQ1sG,GAE9D,IAAIy6J,EAAUz7J,KAAKk4J,KACfwD,EAAY17J,KAAKo4J,OAEjBuD,EAAWjuD,EAAOyqD,IAClByD,EAAaluD,EAAO2qD,MAGpBwD,EAAUF,EAAW,EAAEtjJ,KAAK+Q,GAC5B0yI,EAAUH,EAAW,EAAEtjJ,KAAK+Q,GAC5B/Q,KAAKsJ,IAAIk6I,EAAUJ,GAAWpjJ,KAAKsJ,IAAIg6I,EAAWF,GACpDE,EAAWE,EAEJxjJ,KAAKsJ,IAAIm6I,EAAUL,GAAWpjJ,KAAKsJ,IAAIg6I,EAAWF,KACzDE,EAAWG,GAIb,IAAIC,EAAYH,EAAa,EAAEvjJ,KAAK+Q,GAChC4yI,EAAYJ,EAAa,EAAEvjJ,KAAK+Q,GAWpC,OAVI/Q,KAAKsJ,IAAIo6I,EAAYL,GAAarjJ,KAAKsJ,IAAIi6I,EAAaF,GAC1DE,EAAaG,EAEN1jJ,KAAKsJ,IAAIo6I,EAAYL,GAAarjJ,KAAKsJ,IAAIi6I,EAAaF,KAC/DE,EAAaI,IAGfh7J,EAASA,GAAU,CAAC,GACbm3J,IAAMwD,EACb36J,EAAOq3J,MAAQuD,EACR56J,CAET,EAGAwmC,EAAgBlqC,UAAUwsG,4BAA8B,SAASgC,GAM/D,IAAImwD,EAAOj8J,KAAKw4J,KACZ0D,EAAO3yH,EAAW6lD,KAAK6sE,EAAMj8J,KAAKq/E,OAAQr/E,KAAKs/E,SAC/Ch8E,MAAM44J,KACRA,EAAOD,GAITj8J,KAAK45J,UAAU9tD,EAAWqwD,YAAcD,EAAsB,EAAfpwD,EAAWjpF,EAAQq5I,EAAOpwD,EAAWqsD,KACpFn4J,KAAK85J,YAAYhuD,EAAWswD,YAAcH,EAAsB,EAAfnwD,EAAW7qF,EAAQi7I,EAAOpwD,EAAWusD,OACtFr4J,KAAKg6J,YAAYluD,EAAWysD,MAC5Bv4J,KAAKk6J,UAAUpuD,EAAWuwD,KAAOJ,EACnC,EAGAz0H,EAAgBlqC,UAAUg/J,kBAAoB,WAC5C,IAAIn2E,EAAanmF,KAAK84J,YAClBxsE,EAAgBtsF,KAAK+4J,eACrB/jI,EAAUh1B,KAAKg5J,SAEnB,GAAIh5J,KAAKi5J,mBAAoB,CAC3B,IAAI1oI,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAEd28E,EAAOj8J,KAAKw4J,KACZ0D,EAAO3yH,EAAW6lD,KAAK6sE,EAAM1rI,EAAOC,GACpCoF,EAASrF,EAAQC,EAEjBkoI,EAAoB14J,KAAKy4J,mBACzBG,EAAoB54J,KAAK24J,mBAE7B,GAA0B,IAAtBD,GAAiD,IAAtBE,EAAyB,CACtD,IAAI2D,EAAelkJ,KAAK42E,KAAyB,EAApBypE,EAAwBrgJ,KAAKwd,IAAIqmI,EAAK,IAC/DM,EAAenkJ,KAAK42E,KAAyB,EAApB2pE,EAAwBvgJ,KAAKwd,IAAIomI,EAAK,IAC/DQ,EAAOz8J,KAAKm5J,MAChBsD,EAAKnmI,YAAwC,KAAzB4lI,EAAK,EAAIK,GAAoBlkJ,KAAK+Q,GACtDqzI,EAAKjmI,aAAyC,KAAzB0lI,EAAK,EAAIK,GAAoBlkJ,KAAK+Q,GACvDqzI,EAAKvmI,UAAsC,KAAzB+lI,EAAK,EAAIO,GAAoBnkJ,KAAK+Q,GACpDqzI,EAAKrmI,YAAwC,KAAzB6lI,EAAK,EAAIO,GAAoBnkJ,KAAK+Q,GACtDsW,EAAK3J,2BAA2BowD,EAAYs2E,GAAO,EAAG,EACxD,MACE/8H,EAAKhK,YAAYywD,EAAY81E,EAAMrmI,GAAS,EAAG,GAGjD8J,EAAKhO,QAAQy0D,EAAYA,EAAYnmF,KAAKs4J,OAC1C54H,EAAKlO,QAAQ20D,EAAYA,EAAYnmF,KAAKo4J,QAC1C14H,EAAKjO,QAAQ00D,EAAYA,EAAYnmF,KAAKk4J,MAE1Cx4H,EAAKxV,OAAOoiE,EAAenG,GAE3BnmF,KAAK08J,iBAAiBv2E,EAAYnxD,GAElCh1B,KAAKi5J,oBAAqB,CAC5B,CACF,EAGAzxH,EAAgBlqC,UAAUo/J,iBAAmB,SAASz6I,EAAG/T,GAGvDuwB,EAAK1Z,IAAI7W,EAAE,GAAI+T,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAK,GACxDwc,EAAK1Z,IAAI7W,EAAE,GAAI+T,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAK,GACxDwc,EAAK1Z,IAAI7W,EAAE,GAAI+T,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAK,GACxDwc,EAAK1Z,IAAI7W,EAAE,GAAI+T,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,GAAK,GACxDwc,EAAK1Z,IAAI7W,EAAE,GAAI+T,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,IAAMA,EAAE,IAAK,EAC1D,EAOAulB,EAAgBlqC,UAAUgzB,WAAa,WAErC,OADAtwB,KAAKs8J,oBACEt8J,KAAK84J,WACd,EAOAtxH,EAAgBlqC,UAAUw5J,kBAAoB,WAE5C,OADA92J,KAAKs8J,oBACEt8J,KAAK+4J,cACd,EAYAvxH,EAAgBlqC,UAAUwwF,WAAa,SAAS6uE,GAC9C38J,KAAKs8J,oBAQL,IANA,IAAItnI,EAAUh1B,KAAKg5J,SACf4D,EAAS58J,KAAKo5J,QAKT51J,EAAI,EAAGA,EAAIwxB,EAAQzxB,OAAQC,IAAK,CAGvC,IAFA,IAAIq5J,EAAQ7nI,EAAQxxB,GAChBs5J,GAAS,EACJ5+H,EAAI,EAAGA,EAAIy+H,EAAUp5J,OAAQ26B,IAAK,CACzC,IAAI6+H,EAASJ,EAAUz+H,GACvBO,EAAK1Z,IAAI63I,EAAQG,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI,GAC9Ct+H,EAAKxF,IAAI4jI,EAAOD,IAAW,IAC7BE,GAAS,EAEb,CACA,IAAKA,EACH,OAAO,CAEX,CACA,OAAO,CACT,EAQAt1H,EAAgBlqC,UAAU01F,YAAc,SAASn6C,GAgB/C,IAHA,IAAImkH,EAAiB9yH,IAAelqC,KAAKs/E,QACrC29E,EAAc5kJ,KAAKwd,IAAI,GAAM71B,KAAKw4J,MAE7Bh1J,EAAI,EAAGA,EAAIq1C,EAAUt1C,OAAQC,IAAK,CACzC,IAAIqQ,EAAQglC,EAAUr1C,GACtB,GAAIy5J,EAAcppJ,EAAM2c,UAAYwsI,EAClC,OAAOnpJ,CAEX,CAEA,OAAOglC,EAAUA,EAAUt1C,OAAS,EAEtC,EAYAikC,EAAgBlqC,UAAUkxG,oBAAsB,SAASd,EAAQ1sG,GAC/D,IAAI61J,EAAM72J,KAAKo5J,QAEVp4J,IACHA,EAAS,CAAC,GAGZ,IAAIuvB,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAGlB,GAAI/uD,GAAS,GAAKC,GAAU,EAG1B,OAFAxvB,EAAO6hB,EAAI,KACX7hB,EAAOigB,EAAI,KACJ,KAIT,IAAIk3I,EAAMzqD,EAAOyqD,IACbE,EAAQ3qD,EAAO2qD,MACfx1I,EAAIxK,KAAK2S,IAAImtI,GAAO9/I,KAAK4S,IAAIotI,GAC7Bp3I,GAAK5I,KAAK2S,IAAIqtI,GACd52I,GAAKpJ,KAAK4S,IAAIktI,GAAO9/I,KAAK4S,IAAIotI,GAOlC,OANA55H,EAAK1Z,IAAI8xI,EAAKh0I,EAAG5B,EAAGQ,EAAG,GAGvBgd,EAAK3E,cAAc+8H,EAAKA,EAAK72J,KAAKswB,cAG9BumI,EAAI,IAAM,GAGZ71J,EAAO6hB,EAAI0N,GAASsmI,EAAI,GAAKA,EAAI,GAAK,GAAK,EAC3C71J,EAAOigB,EAAIuP,GAAU,EAAIqmI,EAAI,GAAKA,EAAI,IAAM,EAQvC71J,IALLA,EAAO6hB,EAAI,KACX7hB,EAAOigB,EAAI,KACJ,KAIX,EAYAumB,EAAgBlqC,UAAU4/J,oBAAsB,SAASxvD,EAAQ1sG,GAC/D,IAAI61J,EAAM72J,KAAKo5J,QAEVp4J,IACHA,EAAS,CAAC,GAGZ,IAAIuvB,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAGd69E,EAAO,EAAIzvD,EAAO7qF,EAAI0N,EAAQ,EAC9B6sI,EAAO,EAAI,EAAI1vD,EAAOzsF,EAAIuP,EAC9BiO,EAAK1Z,IAAI8xI,EAAKsG,EAAMC,EAAM,EAAG,GAG7B3+H,EAAK3E,cAAc+8H,EAAKA,EAAK72J,KAAK82J,qBAGlC,IAAI1+I,EAAIC,KAAK0T,KAAK8qI,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAMnE,OALA71J,EAAOm3J,IAAM9/I,KAAK2kB,MAAM65H,EAAI,IAAKA,EAAI,IACrC71J,EAAOq3J,MAAQhgJ,KAAK0iB,KAAK87H,EAAI,GAAKz+I,GAAKC,KAAK+Q,GAAG,EAE/CppB,KAAKs7J,sBAAsBt6J,GAEpBA,CACT,EAaAwmC,EAAgBlqC,UAAUoxG,kCAAoC,SAC1DhB,EAAQY,EAAQN,GAClBA,EAAkBA,GAAmB,GAErC,IAAIx9E,EAASxwB,KAAKs/E,QACd/uD,EAAQvwB,KAAKq/E,OACbrpD,EAAMh2B,KAAKw4J,KACX9iI,EAAc,GAAMlF,EAASnY,KAAKwd,IAAIG,EAAM,GAE5CrlB,EAAY,GA0BhB,OAvBAA,GAAa,cAAgB64B,EAAQjZ,EAAM,GAAK,OAChD5f,GAAa,cAAgB64B,EAAQhZ,EAAO,GAAK,OACjD7f,GAAa,qCAGbA,GAAa,eAAiB64B,EAAQ9T,GAAe,OACrD/kB,GAAa,cAAgB64B,EAAQ9T,GAAe,OAGpD/kB,GAAa,WAAa64B,GAASxpC,KAAKs4J,OAAS,QACjD3nJ,GAAa,WAAa64B,GAASxpC,KAAKo4J,QAAU,QAClDznJ,GAAa,WAAa64B,EAAQxpC,KAAKk4J,MAAQ,QAG/CvnJ,GAAa,WAAa64B,GAASkkE,EAAOyqD,KAAO,QACjDxnJ,GAAa,WAAa64B,EAAQkkE,EAAO2qD,OAAS,QAGlD1nJ,GAAa,cAAgB64B,GAAS8kE,GAAU,OAGhD39F,GAAaq9F,EAAkB,GAGjC,EAOAxmE,EAAgB61H,MAAQ,CAQtBlF,IAAK,SAASngJ,EAAKC,GACjB,OAAO,SAAkBqqC,GAEvB,OADAA,EAAO61G,IAAMhvH,EAAMmZ,EAAO61G,IAAKngJ,EAAKC,GAC7BqqC,CACT,CACF,EAQA+1G,MAAO,SAASrgJ,EAAKC,GACnB,OAAO,SAAoBqqC,GAEzB,OADAA,EAAO+1G,MAAQlvH,EAAMmZ,EAAO+1G,MAAOrgJ,EAAKC,GACjCqqC,CACT,CACF,EAQAi2G,KAAM,SAASvgJ,EAAKC,GAClB,OAAO,SAAmBqqC,GAExB,OADAA,EAAOi2G,KAAOpvH,EAAMmZ,EAAOi2G,KAAMvgJ,EAAKC,GAC/BqqC,CACT,CACF,EAQA45G,KAAM,SAASlkJ,EAAKC,GAClB,OAAO,SAAmBqqC,GACxB,IAAI/xB,EAAQ+xB,EAAO/xB,MACfC,EAAS8xB,EAAO9xB,OACpB,GAAID,EAAQ,GAAKC,EAAS,EAAG,CAC3B,IAAI8sI,EAAO/zH,EAAW2lD,KAAKl3E,EAAKuY,EAAOC,GACnC+sI,EAAOh0H,EAAW2lD,KAAKj3E,EAAKsY,EAAOC,GACvC8xB,EAAOtsB,IAAMmT,EAAMmZ,EAAOtsB,IAAKsnI,EAAMC,EACvC,CACA,OAAOj7G,CACT,CACF,EAQA25G,KAAM,SAASjkJ,EAAKC,GAClB,OAAO,SAAmBqqC,GAExB,OADAA,EAAOtsB,IAAMmT,EAAMmZ,EAAOtsB,IAAKhe,EAAKC,GAC7BqqC,CACT,CACF,EASAk7G,WAAY,SAASxnJ,GACnB,OAAO,SAAyBssC,GAC9B,IAAI9xB,EAAS8xB,EAAO9xB,OACpB,GAAIA,EAAQ,CACV,IAAIwsI,EAAiB9yH,IAAe1Z,EAChCitI,EAAS,EAAIplJ,KAAK42E,KAAK+tE,EAAiBhnJ,GAC5CssC,EAAOtsB,IAAMmT,EAAMmZ,EAAOtsB,IAAKynI,EAAQ3nI,IACzC,CACA,OAAOwsB,CACT,CACF,EAaAo7G,YAAa,SAASC,EAAeC,EAASC,GAG5C,OAFAA,EAAqB,MAAXA,EAAkBA,EAAUD,EAE/Bt0H,EACL9B,EAAgB61H,MAAMG,WAAWG,GACjCn2H,EAAgB61H,MAAMpB,KAAK,EAAG2B,GAC9Bp2H,EAAgB61H,MAAMnB,KAAK,EAAG2B,GAC9Br2H,EAAgB61H,MAAMhF,OAAOhgJ,KAAK+Q,GAAG,EAAG/Q,KAAK+Q,GAAG,GACpD,GAKFoe,EAAgB9nC,KAAO8nC,EAAgBlqC,UAAUoC,KAAO,cAGxDic,EAAOxe,QAAUqqC,C,+BCh9BjB,IAAI1uB,EAAetK,EAAQ,IACvBkxB,EAAOlxB,EAAQ,IAAakxB,KAC5BjB,EAAOjwB,EAAQ,IAAaiwB,KAC5ByL,EAAa17B,EAAQ,IACrB47B,EAAO57B,EAAQ,IACf26B,EAAQ36B,EAAQ,IAChB46B,EAAqB56B,EAAQ,IAgB7BsvJ,EAAY,CACd,EACA,EACA,EACA,GAEEC,EAAW,EACZ,GACA,EACA,EACA,GA4EH,SAASt2H,EAAS6a,EAAQ21G,GAExB,IAAM31G,GAAqC,MAA3BA,EAAO07G,iBACrB,MAAM,IAAIx8J,MAAM,oCAIlBxB,KAAKi+J,GAAK37G,GAAsB,MAAZA,EAAOz/B,EAAYy/B,EAAOz/B,EArGjC,GAsGb7iB,KAAKk+J,GAAK57G,GAAsB,MAAZA,EAAOrhC,EAAYqhC,EAAOrhC,EArGjC,GAsGbjhB,KAAKm+J,MAAQ77G,GAAyB,MAAfA,EAAO+5G,KAAe/5G,EAAO+5G,KArGpC,EAsGhBr8J,KAAKo+J,kBAAoB97G,EAAO07G,iBAChCh+J,KAAKq/E,OAAS/8B,GAA0B,MAAhBA,EAAO/xB,MAC7B+xB,EAAO/xB,MA9GQ,EA+GjBvwB,KAAKs/E,QAAUh9B,GAA2B,MAAjBA,EAAO9xB,OAC9B8xB,EAAO9xB,OA/GS,EAkHlBxwB,KAAK64J,SAAWZ,GAAW,KAG3Bj4J,KAAK84J,YAAcp5H,EAAKvgC,SACxBa,KAAK+4J,eAAiBr5H,EAAKvgC,SAG3Ba,KAAKg5J,SAAW,CACd,EACA,EACA,EACA,GAIFh5J,KAAKi5J,oBAAqB,EAG1Bj5J,KAAKk5J,QAAU,CAAC,EAChBl5J,KAAK+0J,KAAOt2H,EAAKt/B,SAGjBa,KAAKqxF,SACP,CAEAv4E,EAAa2uB,GAMbA,EAASnqC,UAAUihD,QAAU,WAC3BnV,EAAmBppC,KACrB,EAOAynC,EAASnqC,UAAUulB,EAAI,WACrB,OAAO7iB,KAAKi+J,EACd,EAOAx2H,EAASnqC,UAAU2jB,EAAI,WACrB,OAAOjhB,KAAKk+J,EACd,EAOAz2H,EAASnqC,UAAU++J,KAAO,WACxB,OAAOr8J,KAAKm+J,KACd,EAOA12H,EAASnqC,UAAU0gK,iBAAmB,WACpC,OAAOh+J,KAAKo+J,iBACd,EAOA32H,EAASnqC,UAAUizB,MAAQ,WACzB,OAAOvwB,KAAKq/E,MACd,EAOA53C,EAASnqC,UAAUkzB,OAAS,WAC1B,OAAOxwB,KAAKs/E,OACd,EASA73C,EAASnqC,UAAU0Y,KAAO,SAASA,GAIjC,OAHAA,EAAOA,GAAQ,CAAC,GACXua,MAAQvwB,KAAKq/E,OAClBrpE,EAAKwa,OAASxwB,KAAKs/E,QACZtpE,CACT,EASAyxB,EAASnqC,UAAUwuG,WAAa,SAASxpD,GAMvC,OALAA,EAASA,GAAU,CAAC,GACbz/B,EAAI7iB,KAAKi+J,GAChB37G,EAAOrhC,EAAIjhB,KAAKk+J,GAChB57G,EAAO+5G,KAAOr8J,KAAKm+J,MACnB77G,EAAO07G,iBAAmBh+J,KAAKo+J,kBACxB97G,CACT,EAOA7a,EAASnqC,UAAU26J,QAAU,WAC3B,OAAOj4J,KAAK64J,QACd,EAOApxH,EAASnqC,UAAU+gK,KAAO,SAASx7I,GACjC7iB,KAAKs5J,eACLt5J,KAAKk5J,QAAQr2I,EAAIA,EACjB7iB,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAUghK,KAAO,SAASr9I,GACjCjhB,KAAKs5J,eACLt5J,KAAKk5J,QAAQj4I,EAAIA,EACjBjhB,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAUihK,QAAU,SAASlC,GACpCr8J,KAAKs5J,eACLt5J,KAAKk5J,QAAQmD,KAAOA,EACpBr8J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAUkuF,QAAU,SAASgzE,GACpCx+J,KAAKq+J,KAAKr+J,KAAKi+J,GAAKO,EACtB,EAOA/2H,EAASnqC,UAAUwuF,QAAU,SAAS2yE,GAEpCz+J,KAAKs+J,KAAKt+J,KAAKk+J,GAAKO,EACtB,EAOAh3H,EAASnqC,UAAUohK,WAAa,SAASC,GACvC3+J,KAAKu+J,QAAQv+J,KAAKm+J,MAAQQ,EAC5B,EAOAl3H,EAASnqC,UAAUshK,oBAAsB,SAASZ,GAChDh+J,KAAKs5J,eACLt5J,KAAKk5J,QAAQ8E,iBAAmBA,EAChCh+J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAUo0J,QAAU,SAAS17I,GACpChW,KAAKs5J,eACLt5J,KAAKk5J,QAAQ3oI,MAAQva,EAAKua,MAC1BvwB,KAAKk5J,QAAQ1oI,OAASxa,EAAKwa,OAC3BxwB,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAUgvG,cAAgB,SAAShqD,GAC1CtiD,KAAKs5J,eACLt5J,KAAKk5J,QAAQr2I,EAAIy/B,EAAOz/B,EACxB7iB,KAAKk5J,QAAQj4I,EAAIqhC,EAAOrhC,EACxBjhB,KAAKk5J,QAAQmD,KAAO/5G,EAAO+5G,KAC3Br8J,KAAKk5J,QAAQ8E,iBAAmB17G,EAAO07G,iBACvCh+J,KAAKqxF,QAAQrxF,KAAKk5J,QACpB,EAOAzxH,EAASnqC,UAAU88J,WAAa,SAASnC,GACvCj4J,KAAK64J,SAAWZ,GAAW,KAC3Bj4J,KAAKqxF,SACP,EAGA5pD,EAASnqC,UAAUg8J,aAAe,WAChC,IAAIh3G,EAAStiD,KAAKk5J,QAClB52G,EAAOz/B,EAAI,KACXy/B,EAAOrhC,EAAI,KACXqhC,EAAO+5G,KAAO,KACd/5G,EAAO07G,iBAAmB,KAC1B17G,EAAO/xB,MAAQ,KACf+xB,EAAO9xB,OAAS,IAClB,EAGAiX,EAASnqC,UAAU+zF,QAAU,SAAS/uC,GAGtB,MAAVA,IACFtiD,KAAKs5J,eACLh3G,EAAStiD,KAAKk5J,SAIhB,IAAI2F,EAAO7+J,KAAKi+J,GACZa,EAAO9+J,KAAKk+J,GACZa,EAAU/+J,KAAKm+J,MACfa,EAAsBh/J,KAAKo+J,kBAC3BzD,EAAW36J,KAAKq/E,OAChBu7E,EAAY56J,KAAKs/E,QAYrB,GATAh9B,EAAOz/B,EAAgB,MAAZy/B,EAAOz/B,EAAYy/B,EAAOz/B,EAAIg8I,EACzCv8G,EAAOrhC,EAAgB,MAAZqhC,EAAOrhC,EAAYqhC,EAAOrhC,EAAI69I,EACzCx8G,EAAO+5G,KAAsB,MAAf/5G,EAAO+5G,KAAe/5G,EAAO+5G,KAAO0C,EAClDz8G,EAAO07G,iBAA8C,MAA3B17G,EAAO07G,iBAC/B17G,EAAO07G,iBAAmBgB,EAC5B18G,EAAO/xB,MAAwB,MAAhB+xB,EAAO/xB,MAAgB+xB,EAAO/xB,MAAQoqI,EACrDr4G,EAAO9xB,OAA0B,MAAjB8xB,EAAO9xB,OAAiB8xB,EAAO9xB,OAASoqI,EAGpD56J,KAAK64J,YACPv2G,EAAStiD,KAAK64J,SAASv2G,IAErB,MAAM,IAAI9gD,MAAM,oBAKpB,IAAIo0J,EAAOtzG,EAAOz/B,EACdgzI,EAAOvzG,EAAOrhC,EACdg+I,EAAU38G,EAAO+5G,KACjB6C,EAAsB58G,EAAO07G,iBAC7B9C,EAAW54G,EAAO/xB,MAClB4qI,EAAY74G,EAAO9xB,OAGvB,IAAK4Z,EAAKwrH,KAAUxrH,EAAKyrH,KAAUzrH,EAAK60H,KACnC70H,EAAK80H,KAAyB90H,EAAK8wH,KAAc9wH,EAAK+wH,GACzD,MAAM,IAAI35J,MAAM,uCAIlBy9J,EAAU91H,EAAM81H,EA/XK,KA+XsBnpI,KAG3C91B,KAAKi+J,GAAKrI,EACV51J,KAAKk+J,GAAKrI,EACV71J,KAAKm+J,MAAQc,EACbj/J,KAAKo+J,kBAAoBc,EACzBl/J,KAAKq/E,OAAS67E,EACdl7J,KAAKs/E,QAAU67E,EAGXvF,IAASiJ,GAAQhJ,IAASiJ,GAAQG,IAAYF,GAC9CG,IAAwBF,GACxB9D,IAAaP,GAAYQ,IAAcP,IACzC56J,KAAKi5J,oBAAqB,EAC1Bj5J,KAAK8f,KAAK,WAERo7I,IAAaP,GAAYQ,IAAcP,GACzC56J,KAAK8f,KAAK,SAGd,EAGA2nB,EAASnqC,UAAU6hK,OAAS,WAC1B,OAAOn/J,KAAKm+J,KACd,EAGA12H,EAASnqC,UAAU8hK,OAAS,WAC1B,IAAIpB,EAAmBh+J,KAAKo+J,kBACxBxoI,EAAS51B,KAAKq/E,OAASr/E,KAAKs/E,QAC5B+/E,EAAQr/J,KAAKm+J,MACbmB,EAAQD,EAAQrB,EAAmBpoI,EAIvC,OAHItyB,MAAMg8J,KACRA,EAAQD,GAEHC,CACT,EAGA73H,EAASnqC,UAAUwsG,4BAA8B,SAASgC,GACxD,IAAI5gF,EAAQlrB,KAAKq8J,OACbgD,EAAQr/J,KAAKm/J,SACbG,EAAQt/J,KAAKo/J,SAGjBp/J,KAAKwrF,QAAQsgB,EAAWqwD,YAAckD,EAAQvzD,EAAWjpF,EAAIqI,GAC7DlrB,KAAK8rF,QAAQggB,EAAWswD,YAAckD,EAAQxzD,EAAW7qF,EAAIiK,GAC7DlrB,KAAK0+J,WAAW5yD,EAAWuwD,KAAOnxI,EACpC,EAGAuc,EAASnqC,UAAUg/J,kBAAoB,WACrC,IAAIn2E,EAAanmF,KAAK84J,YAClBxsE,EAAgBtsF,KAAK+4J,eACrB/jI,EAAUh1B,KAAKg5J,SAGnB,GAAIh5J,KAAKi5J,mBAAoB,CAC3B,IAAIp2I,EAAI7iB,KAAKi+J,GACTh9I,EAAIjhB,KAAKk+J,GACTmB,EAAQr/J,KAAKm/J,SACbG,EAAQt/J,KAAKo/J,SAGbhqI,EAAUJ,EAAQ,GAAM,GAAM/T,EAAK,GAAMq+I,EACzCpqI,EAAUF,EAAQ,GAAMnS,EAAI,GAAO,GAAMw8I,EACzClqI,EAAUH,EAAQ,GAAM,GAAM/T,EAAK,GAAMq+I,EACzCrqI,EAAUD,EAAQ,GAAMnS,EAAI,GAAO,GAAMw8I,EAG7C3/H,EAAK/I,MAAMwvD,EAAYlxD,EAAMC,EAAOC,EAAQC,GAAM,EAAG,GACrDsK,EAAKxV,OAAOoiE,EAAenG,GAE3BnmF,KAAKi5J,oBAAqB,CAC5B,CACF,EAOAxxH,EAASnqC,UAAUgzB,WAAa,WAE9B,OADAtwB,KAAKs8J,oBACEt8J,KAAK84J,WACd,EAOArxH,EAASnqC,UAAUw5J,kBAAoB,WAErC,OADA92J,KAAKs8J,oBACEt8J,KAAK+4J,cACd,EAYAtxH,EAASnqC,UAAUwwF,WAAa,SAAS6uE,GACvC38J,KAAKs8J,oBAOL,IALA,IAAItnI,EAAUh1B,KAAKg5J,SAKVx1J,EAAI,EAAGA,EAAIwxB,EAAQzxB,OAAQC,IAAK,CAKvC,IAJA,IAAI65J,EAAQroI,EAAQxxB,GAChB8tB,EAAOwsI,EAAUt6J,GACjB6lC,EAAM00H,EAASv6J,GACfs5J,GAAS,EACJ5+H,EAAI,EAAGA,EAAIy+H,EAAUp5J,OAAQ26B,IAAK,CACzC,IAAI0+H,EAASD,EAAUz+H,GACvB,GAAImL,EAAM,GAAKuzH,EAAOtrI,GAAQ+rI,GAASh0H,EAAM,GAAKuzH,EAAOtrI,GAAQ+rI,EAAO,CACtEP,GAAS,EACT,KACF,CACF,CACA,IAAKA,EACH,OAAO,CAEX,CACA,OAAO,CACT,EAQAr1H,EAASnqC,UAAU01F,YAAc,SAASlnD,GAexC,IAHA,IAAIkxH,EAAiB9yH,IAAelqC,KAAKuwB,QACrCgvI,EAAav/J,KAAKm+J,MAEb36J,EAAI,EAAGA,EAAIsoC,EAAOvoC,OAAQC,IAAK,CACtC,IAAIqQ,EAAQi4B,EAAOtoC,GACnB,GAAI+7J,EAAa1rJ,EAAM0c,SAAWysI,EAChC,OAAOnpJ,CAEX,CAEA,OAAOi4B,EAAOA,EAAOvoC,OAAS,EAEhC,EAYAkkC,EAASnqC,UAAUkxG,oBAAsB,SAASd,EAAQ1sG,GACxD,IAAI61J,EAAM72J,KAAK+0J,KAEV/zJ,IACHA,EAAS,CAAC,GAGZ,IAAIuvB,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAGlB,GAAI/uD,GAAS,GAAKC,GAAU,EAG1B,OAFAxvB,EAAO6hB,EAAI,KACX7hB,EAAOigB,EAAI,KACJ,KAIT,IAAI4B,EAAI6qF,GAAsB,MAAZA,EAAO7qF,EAAY6qF,EAAO7qF,EA3lB/B,GA4lBT5B,EAAIysF,GAAsB,MAAZA,EAAOzsF,EAAYysF,EAAOzsF,EA3lB/B,GA8lBbwd,EAAK1Z,IAAI8xI,EAAKh0I,EAAI,GAAK,GAAM5B,GAAI,EAAG,GACpCwd,EAAK3E,cAAc+8H,EAAKA,EAAK72J,KAAKswB,cAGlC,IAAK,IAAI9sB,EAAI,EAAGA,EAAI,EAAGA,IACrBqzJ,EAAIrzJ,IAAMqzJ,EAAI,GAOhB,OAHA71J,EAAO6hB,EAAI0N,GAASsmI,EAAI,GAAK,GAAK,EAClC71J,EAAOigB,EAAIuP,GAAU,EAAIqmI,EAAI,IAAM,EAE5B71J,CACT,EAYAymC,EAASnqC,UAAU4/J,oBAAsB,SAASxvD,EAAQ1sG,GACxD,IAAI61J,EAAM72J,KAAK+0J,KAEV/zJ,IACHA,EAAS,CAAC,GAGZ,IAAIuvB,EAAQvwB,KAAKq/E,OACb7uD,EAASxwB,KAAKs/E,QAGd69E,EAAO,EAAIzvD,EAAO7qF,EAAI0N,EAAQ,EAC9B6sI,EAAO,EAAI,EAAI1vD,EAAOzsF,EAAIuP,EAU9B,OATAiO,EAAK1Z,IAAI8xI,EAAKsG,EAAMC,EAAM,EAAG,GAG7B3+H,EAAK3E,cAAc+8H,EAAKA,EAAK72J,KAAK82J,qBAGlC91J,EAAO6hB,EAAI,GAAMg0I,EAAI,GACrB71J,EAAOigB,EAAI,GAAM41I,EAAI,GAEd71J,CACT,EAOAymC,EAAS41H,MAAQ,CAQfx6I,EAAG,SAAS7K,EAAKC,GACf,OAAO,SAAgBqqC,GAErB,OADAA,EAAOz/B,EAAIsmB,EAAMmZ,EAAOz/B,EAAG7K,EAAKC,GACzBqqC,CACT,CACF,EAQArhC,EAAG,SAASjJ,EAAKC,GACf,OAAO,SAAgBqqC,GAErB,OADAA,EAAOrhC,EAAIkoB,EAAMmZ,EAAOrhC,EAAGjJ,EAAKC,GACzBqqC,CACT,CACF,EAQA+5G,KAAM,SAASrkJ,EAAKC,GAClB,OAAO,SAAmBqqC,GAExB,OADAA,EAAO+5G,KAAOlzH,EAAMmZ,EAAO+5G,KAAMrkJ,EAAKC,GAC/BqqC,CACT,CACF,EAQAk7G,WAAY,SAASxnJ,GACnB,OAAO,SAAyBssC,GAC9B,GAAIA,EAAO/xB,OAAS,GAAK+xB,EAAO9xB,QAAU,EACxC,OAAO8xB,EAET,IAAI/xB,EAAQ+xB,EAAO/xB,MACfivI,EAAUt1H,IAAe3Z,EAAQva,EAErC,OADAssC,EAAO+5G,KAAOlzH,EAAMmZ,EAAO+5G,KAAMmD,EAAS1pI,KACnCwsB,CACT,CACF,EASAm9G,SAAU,SAASznJ,EAAKC,GACtB,OAAO,SAAuBqqC,GAE5B,IAAIo9G,EAAUznJ,EAAMD,EAGhBsqC,EAAO+5G,KAAOqD,IAChBp9G,EAAO+5G,KAAOqD,GAIhB,IAAIC,EAAO3nJ,EAAM,GAAMsqC,EAAO+5G,KAC1B3F,EAAOz+I,EAAM,GAAMqqC,EAAO+5G,KAG9B,OAFA/5G,EAAOz/B,EAAIsmB,EAAMmZ,EAAOz/B,EAAG88I,EAAMjJ,GAE1Bp0G,CACT,CACF,EASAs9G,SAAU,SAAS5nJ,EAAKC,GACtB,OAAO,SAAuBqqC,GAG5B,GAAIA,EAAO/xB,OAAS,GAAK+xB,EAAO9xB,QAAU,EACxC,OAAO8xB,EAIT,IACIpkC,EADsBokC,EAAO/xB,MAAQ+xB,EAAO9xB,OACb8xB,EAAO07G,iBAGtC0B,GAAWznJ,EAAMD,GAAOkG,EAGxBokC,EAAO+5G,KAAOqD,IAChBp9G,EAAO+5G,KAAOqD,GAIhB,IAAIG,EAAO7nJ,EAAM,GAAMsqC,EAAO+5G,KAAOn+I,EACjCy4I,EAAO1+I,EAAM,GAAMqqC,EAAO+5G,KAAOn+I,EAGrC,OAFAokC,EAAOrhC,EAAIkoB,EAAMmZ,EAAOrhC,EAAG4+I,EAAMlJ,GAE1Br0G,CACT,CACF,EAUAw9G,UAAW,WACT,OAAO,SAAwBx9G,GAC7B,GAAGA,EAAO/xB,OAAS,GAAK+xB,EAAO9xB,QAAU,EACvC,OAAO8xB,EAET,IAmBIq9G,EAAMjJ,EAUNmJ,EAAMlJ,EA7BNoJ,EAAsBz9G,EAAO/xB,MAAQ+xB,EAAO9xB,OAG5CwvI,EAAiBD,EAAsBz9G,EAAO07G,iBAsClD,OAlCI17G,EAAO07G,kBAAoB+B,IAC7Bz9G,EAAO+5G,KAAOhkJ,KAAKL,IAAIsqC,EAAO+5G,KANZ,IAWhB/5G,EAAO07G,kBAAoB+B,IAC7Bz9G,EAAO+5G,KAAOhkJ,KAAKL,IAAIsqC,EAAO+5G,KAAM2D,IAMlC19G,EAAO+5G,KAlBS,EAmBlBsD,EAAOjJ,EAAO,IAEdiJ,EAAO,EAAM,GAAMr9G,EAAO+5G,KArBR,EAsBlB3F,EAAO,EAAM,GAAMp0G,EAAO+5G,KAtBR,GA4BhB/5G,EAAO+5G,KAAO2D,EAChBH,EAAOlJ,EAAO,IAEdkJ,EAAO,EAAM,GAAMv9G,EAAO+5G,KAAO2D,EACjCrJ,EAAO,EAAM,GAAMr0G,EAAO+5G,KAAO2D,GAInC19G,EAAOz/B,EAAIsmB,EAAMmZ,EAAOz/B,EAAG88I,EAAMjJ,GACjCp0G,EAAOrhC,EAAIkoB,EAAMmZ,EAAOrhC,EAAG4+I,EAAMlJ,GAE1Br0G,CACT,CACF,GAKF7a,EAAS/nC,KAAO+nC,EAASnqC,UAAUoC,KAAO,OAG1Cic,EAAOxe,QAAUsqC,C,+BC71BjB,IAAI3uB,EAAetK,EAAQ,IACvBu2E,EAAev2E,EAAQ,IACvByxJ,EAAWzxJ,EAAQ,KACnB06B,EAAQ16B,EAAQ,IAChBm7B,EAAQn7B,EAAQ,KAChBy7B,EAAMz7B,EAAQ,IAId0xJ,EAAqB,CACvBr9I,EAAG,IACH5B,EAAG,IACHQ,EAAG,IACHvT,EAAG,QA+BL,SAASw5B,EAAey4H,EAAgBh0F,GAEtCA,EAAOA,GAAc,CAAC,EAEtBnsE,KAAKogK,UAAY,IAAIH,EAAS,CAC5BI,YAAal0F,EAAKk0F,aA7BG,IAgCvBrgK,KAAKsgK,YAAcn0F,EAAKo0F,YA7BF,IA8BtBvgK,KAAKwgK,UAAY,CAAC,EAElBxgK,KAAKygK,gBAAkBN,CACzB,CAqHA,SAASO,EAAej7H,GAEtB,OAAO,IAAItd,OADK,OAASsd,EAAW,OACP,IAC/B,CAtHA3sB,EAAa4uB,GAGbA,EAAepqC,UAAUizF,UAAY,SAASxR,EAAOC,EAAM/8E,GAEzD,IAgCI0+J,EAhCA7hK,EAAOkB,KAEPugK,EAAavgK,KAAKsgK,YAClBM,EAAW5gK,KAAKwgK,UAEhBK,EAAa7gK,KAAKygK,gBAAgBzhF,GAClCt2E,EAAMm4J,EAAWn4J,IACjBm3E,EAAOghF,EAAWhhF,KAElBD,EAAYb,EAAMa,UAAU77C,KAAKg7C,EAAOr2E,EAAKm3E,GAwB7CihF,EAAWF,EAASl4J,GACxB,GAAgB,MAAZo4J,EAAkB,CACpB,IACIhzH,EADc7D,IACU62H,EACxBhzH,EAAUyyH,EAEZI,EAAcJ,EAAazyH,GAG3B6yH,EAAc,SACPC,EAASl4J,GAEpB,CAEA,IAAIq4J,EAAUp3H,EAAM5F,KAAK,KAAM48H,GAE/B,OAAOz3H,EAAM63H,GAtCA,SAAS9+J,GAIpB,OAAOnD,EAAKshK,UAAUp9J,KAAK48E,GAAW,SAASlhF,EAAKugF,GAC9CvgF,GACEA,aAAeqmF,IAEjB67E,EAASl4J,GAAOuhC,IAChBnrC,EAAKghB,KAAK,eAAgBphB,EAAKsgF,IAEjC/8E,EAAKvD,EAAKsgF,YAGH4hF,EAASl4J,GAChBzG,EAAK,KAAM+8E,EAAMC,GAErB,GACF,GAoBO/1C,CAAuBjnC,EAChC,EAoBAylC,EAAes5H,WAAa,SAASt4J,EAAKyjE,GAGxC,IAAI80F,GAFJ90F,EAAOA,GAAQ,CAAC,IAEQA,EAAK+0F,yBAvHD,SA2H5B,OAAO,IAAIx5H,EAFCykC,EAAKg1F,kBAiBjB,SAAqBniF,GACnB,OAAe,IAAXA,EAAKv9D,EAQX,SAAoBu9D,GAClB,IAAI/9D,EAAIggJ,EAAU52J,QAAQ20E,EAAKq1E,MAAQ,EACvC,MAAO,CACL3rJ,IAAKyjE,EAAKg1F,kBACVthF,KAAM,CAAEh9D,EAAG,EAAG5B,EAAGA,EAAGsP,MAAO,EAAGC,OAAQ,EAAE,GAE5C,CAbW4wI,CAAWpiF,GAGXqiF,EAAeriF,EAE1B,EAxBmDqiF,EAElBl1F,GAEjC,SAASk1F,EAAeriF,GACtB,IAAIsiF,EAAU54J,EAEd,IAAK,IAAI+8B,KAAYy6H,EAAoB,CACvC,IAAIqB,EAAmBrB,EAAmBz6H,GACtC+7H,EAASd,EAAej7H,GACxBg8H,EAAgBziF,EAAKxhF,eAAe+jK,GAAoBviF,EAAKuiF,GAAoB,GACrFD,EAAUA,EAAQnpJ,QAAQqpJ,EAAQC,EACpC,CAEA,MAAO,CAAE/4J,IAAK44J,EAChB,CAkBF,EAOA3lJ,EAAOxe,QAAUuqC,C,+BClLjB,IAAI67C,EAAY/0E,EAAQ,IACpBu7B,EAAMv7B,EAAQ,IAGlB,SAASyxJ,EAAS9zF,GAChBnsE,KAAK0hK,aAAev1F,GAAQA,EAAKk0F,aAAe,EAChDrgK,KAAKyjF,QAAUtX,KAAUA,EAAKuX,SAAU,EAExC1jF,KAAK2hK,MAAQ,GACb,IAAK,IAAIn+J,EAAI,EAAGA,EAAIxD,KAAK0hK,aAAcl+J,IACrCxD,KAAK2hK,MAAM3+J,KAAK,IAAIugF,EAAUpX,IAGhCnsE,KAAK0G,MAAQ,CACf,CAGAu5J,EAAS3iK,UAAUiG,OAAS,WAE1B,IADA,IAAIguB,EAAM,EACD/tB,EAAI,EAAGA,EAAIxD,KAAK2hK,MAAMp+J,OAAQC,IACrC+tB,GAAOvxB,KAAK2hK,MAAMn+J,GAAGD,SAEvB,OAAOguB,CACT,EAGA0uI,EAAS3iK,UAAU0F,KAAO,SAASxD,EAAI8jF,GACrC,IAAI9/E,EAAIxD,KAAK0G,MACT+sE,EAASzzE,KAAK2hK,MAAMn+J,GAAGR,KAAKxD,EAAI8jF,GAEpC,OADAtjF,KAAK0G,MAAQqjC,EAAI/pC,KAAK0G,MAAQ,EAAG1G,KAAK0hK,cAC/BjuF,CACT,EAGAwsF,EAAS3iK,UAAUymF,MAAQ,WACzB,IAAK/jF,KAAKyjF,QAAS,CACjBzjF,KAAKyjF,SAAU,EACf,IAAK,IAAIjgF,EAAI,EAAGA,EAAIxD,KAAK0hK,aAAcl+J,IACrCxD,KAAK2hK,MAAMn+J,GAAGugF,OAElB,CACF,EAGAk8E,EAAS3iK,UAAU0mF,OAAS,WAC1B,GAAIhkF,KAAKyjF,QAAS,CAChBzjF,KAAKyjF,SAAU,EACf,IAAK,IAAIjgF,EAAI,EAAGA,EAAIxD,KAAK0hK,aAAcl+J,IACrCxD,KAAK2hK,MAAMn+J,GAAGwgF,QAElB,CACF,EAGAroE,EAAOxe,QAAU8iK,C,+BC7CjB,SAASt4H,EAAkBs3C,GACzBj/E,KAAKqwF,OAASpR,CAChB,CAEAt3C,EAAkBrqC,UAAU2hF,MAAQ,WAClC,OAAOj/E,KAAKqwF,MACd,EAEA1oD,EAAkBrqC,UAAUizF,UAAY,SAASxR,EAAOC,EAAM/8E,GAC5D,IAAInD,EAAOkB,KAEPsJ,EAAUqP,YAAW,WACvB1W,EAAK,KAAM+8E,EAAMlgF,EAAKuxF,OACxB,GAAG,GAOH,OALA,WACE33E,aAAapP,GACbrH,EAAK8E,MAAM,KAAMD,UACnB,CAGF,EAEA6U,EAAOxe,QAAUwqC,C,+BChCjB,IAAIC,EAAcp5B,EAAQ,IACtBs7B,EAAWt7B,EAAQ,IACnBsK,EAAetK,EAAQ,IACvB46B,EAAqB56B,EAAQ,IAcjC,SAASq5B,EAAa9B,GACpB/lC,KAAK6D,YAAYupC,OAAOztC,KAAKK,KAAM+lC,GACnC/lC,KAAKo/E,WAAa,CACpB,CAEAt1C,EAASjC,EAAcD,GACvB9uB,EAAa+uB,GAKbA,EAAavqC,UAAUihD,QAAU,WAC/BnV,EAAmBppC,KACrB,EAEA6nC,EAAavqC,UAAU6wE,UAAY,WACjC,OAAOnuE,KAAKo/E,UACd,EAEAv3C,EAAavqC,UAAU8wE,UAAY,WACjC,OAAO,CACT,EAQAvmC,EAAavqC,UAAUskK,UAAY,WACjC5hK,KAAKo/E,aACLp/E,KAAK8f,KAAK,SACZ,EAEAnE,EAAOxe,QAAU0qC,C,+BCnDjB,IAAIkC,EAAMv7B,EAAQ,IAOlB,SAASsB,EAAIk+E,GACX,GAAgB,MAAZA,KACE7a,SAAS6a,IAAa31E,KAAKsC,MAAMqzE,KAAcA,GAAYA,EAAW,GAC1E,MAAM,IAAIxsF,MAAM,yBAElBxB,KAAKiuF,UAAYD,GAVG,GAYpBhuF,KAAK6hK,YAAc,GACnB7hK,KAAK8hK,YAAc,GACnB,IAAK,IAAIt+J,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAClCxD,KAAK6hK,YAAY7+J,KAAK,IACtBhD,KAAK8hK,YAAY9+J,KAAK,IAExBhD,KAAKmuF,MAAQ,CACf,CAGAr+E,EAAIxS,UAAUwY,IAAM,SAASnY,GAG3B,IAFA,IAAIkjB,EAAIkpB,EAAIpsC,EAAIksC,OAAQ7pC,KAAKiuF,WACzB8zE,EAAY/hK,KAAK6hK,YAAYhhJ,GACxBrd,EAAI,EAAGA,EAAIu+J,EAAUx+J,OAAQC,IAAK,CACzC,IAAIkrF,EAAcqzE,EAAUv+J,GAC5B,GAAI7F,EAAI2rB,OAAOolE,GAGb,OAFgB1uF,KAAK8hK,YAAYjhJ,GACHrd,EAGlC,CACA,OAAO,IACT,EAKAsM,EAAIxS,UAAUynB,IAAM,SAASpnB,EAAK4G,GAIhC,IAHA,IAAIsc,EAAIkpB,EAAIpsC,EAAIksC,OAAQ7pC,KAAKiuF,WACzB8zE,EAAY/hK,KAAK6hK,YAAYhhJ,GAC7BmhJ,EAAYhiK,KAAK8hK,YAAYjhJ,GACxBrd,EAAI,EAAGA,EAAIu+J,EAAUx+J,OAAQC,IAAK,CACzC,IAAIkrF,EAAcqzE,EAAUv+J,GAC5B,GAAI7F,EAAI2rB,OAAOolE,GAAc,CAC3B,IAAIG,EAAgBmzE,EAAUx+J,GAG9B,OAFAu+J,EAAUv+J,GAAK7F,EACfqkK,EAAUx+J,GAAKe,EACRsqF,CACT,CACF,CAIA,OAHAkzE,EAAU/+J,KAAKrF,GACfqkK,EAAUh/J,KAAKuB,GACfvE,KAAKmuF,QACE,IACT,EAIAr+E,EAAIxS,UAAUqxF,IAAM,SAAShxF,GAI3B,IAHA,IAAIkjB,EAAIkpB,EAAIpsC,EAAIksC,OAAQ7pC,KAAKiuF,WACzB8zE,EAAY/hK,KAAK6hK,YAAYhhJ,GAC7BmhJ,EAAYhiK,KAAK8hK,YAAYjhJ,GACxBrd,EAAI,EAAGA,EAAIu+J,EAAUx+J,OAAQC,IAAK,CACzC,IAAIkrF,EAAcqzE,EAAUv+J,GAC5B,GAAI7F,EAAI2rB,OAAOolE,GAAc,CAG3B,IAFA,IAAIG,EAAgBmzE,EAAUx+J,GAErB06B,EAAI16B,EAAG06B,EAAI6jI,EAAUx+J,OAAS,EAAG26B,IACxC6jI,EAAU7jI,GAAK6jI,EAAU7jI,EAAE,GAC3B8jI,EAAU9jI,GAAK8jI,EAAU9jI,EAAE,GAK7B,OAHA6jI,EAAUx+J,OAASw+J,EAAUx+J,OAAS,EACtCy+J,EAAUz+J,OAASy+J,EAAUz+J,OAAS,EACtCvD,KAAKmuF,QACEU,CACT,CACF,CACA,OAAO,IACT,EAGA/+E,EAAIxS,UAAUsY,IAAM,SAASjY,GAG3B,IAFA,IAAIkjB,EAAIkpB,EAAIpsC,EAAIksC,OAAQ7pC,KAAKiuF,WACzB8zE,EAAY/hK,KAAK6hK,YAAYhhJ,GACxBrd,EAAI,EAAGA,EAAIu+J,EAAUx+J,OAAQC,IAAK,CACzC,IAAIkrF,EAAcqzE,EAAUv+J,GAC5B,GAAI7F,EAAI2rB,OAAOolE,GACb,OAAO,CAEX,CACA,OAAO,CACT,EAGA5+E,EAAIxS,UAAU0Y,KAAO,WACnB,OAAOhW,KAAKmuF,KACd,EAGAr+E,EAAIxS,UAAUw3C,MAAQ,WACpB,IAAK,IAAItxC,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAClCxD,KAAK6hK,YAAYr+J,GAAGD,OAAS,EAC7BvD,KAAK8hK,YAAYt+J,GAAGD,OAAS,EAE/BvD,KAAKmuF,MAAQ,CACf,EAKAr+E,EAAIxS,UAAUiD,QAAU,SAASf,GAE/B,IADA,IAAIg8B,EAAQ,EACHh4B,EAAI,EAAGA,EAAIxD,KAAKiuF,UAAWzqF,IAGlC,IAFA,IAAIu+J,EAAY/hK,KAAK6hK,YAAYr+J,GAC7Bw+J,EAAYhiK,KAAK8hK,YAAYt+J,GACxB06B,EAAI,EAAGA,EAAI6jI,EAAUx+J,OAAQ26B,IACpC1+B,EAAGuiK,EAAU7jI,GAAI8jI,EAAU9jI,IAC3B1C,GAAS,EAGb,OAAOA,CACT,EAEA7f,EAAOxe,QAAU2S,C,+BC/HjB,IAAIi6B,EAAMv7B,EAAQ,IASlB,SAASkhF,EAAO1B,GACd,IAAK7a,SAAS6a,IAAa31E,KAAKsC,MAAMqzE,KAAcA,GAAYA,EAAW,EACzE,MAAM,IAAIxsF,MAAM,4BAElBxB,KAAKiuF,UAAYD,EAKjBhuF,KAAKiiK,UAAY,IAAIr0J,MAAM5N,KAAKiuF,WAChCjuF,KAAKu0E,OAAS,EACdv0E,KAAKmuF,MAAQ,CACf,CAEAuB,EAAOpyF,UAAUmxF,OAAS,SAASjrF,GACjC,OAAOumC,EAAI/pC,KAAKu0E,OAAS/wE,EAAGxD,KAAKiuF,UACnC,EAOAyB,EAAOpyF,UAAUyY,IAAM,SAASgwB,GAC9B,GAAuB,IAAnB/lC,KAAKiuF,UACP,OAAOloD,EAET/lC,KAAK0uD,OAAO3oB,GACZ,IAAIm8H,EACAliK,KAAKmuF,QAAUnuF,KAAKiuF,UAAYjuF,KAAKiiK,UAAUjiK,KAAKyuF,OAAO,IAAM,KAOrE,OANAzuF,KAAKiiK,UAAUjiK,KAAKyuF,OAAOzuF,KAAKmuF,QAAUpoD,EACtC/lC,KAAKmuF,MAAQnuF,KAAKiuF,UACpBjuF,KAAKmuF,QAELnuF,KAAKu0E,OAASv0E,KAAKyuF,OAAO,GAErByzE,CACT,EAIAxyE,EAAOpyF,UAAUoxD,OAAS,SAAS3oB,GACjC,IAAK,IAAIviC,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAAK,CACnC,IAAI6qF,EAAkBruF,KAAKiiK,UAAUjiK,KAAKyuF,OAAOjrF,IACjD,GAAIuiC,EAAQzc,OAAO+kE,GAAkB,CACnC,IAAK,IAAInwD,EAAI16B,EAAG06B,EAAIl+B,KAAKmuF,MAAQ,EAAGjwD,IAClCl+B,KAAKiiK,UAAUjiK,KAAKyuF,OAAOvwD,IAAMl+B,KAAKiiK,UAAUjiK,KAAKyuF,OAAOvwD,EAAI,IAGlE,OADAl+B,KAAKmuF,QACEE,CACT,CACF,CACA,OAAO,IACT,EAGAqB,EAAOpyF,UAAUsY,IAAM,SAASmwB,GAC9B,IAAK,IAAIviC,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAC9B,GAAIuiC,EAAQzc,OAAOtpB,KAAKiiK,UAAUjiK,KAAKyuF,OAAOjrF,KAC5C,OAAO,EAGX,OAAO,CACT,EAGAksF,EAAOpyF,UAAU0Y,KAAO,WACtB,OAAOhW,KAAKmuF,KACd,EAGAuB,EAAOpyF,UAAUw3C,MAAQ,WACvB90C,KAAKiiK,UAAU1+J,OAAS,EACxBvD,KAAKu0E,OAAS,EACdv0E,KAAKmuF,MAAQ,CACf,EAKAuB,EAAOpyF,UAAUiD,QAAU,SAASf,GAElC,IADA,IAAIg8B,EAAQ,EACHh4B,EAAI,EAAGA,EAAIxD,KAAKmuF,MAAO3qF,IAC9BhE,EAAGQ,KAAKiiK,UAAUjiK,KAAKyuF,OAAOjrF,KAC9Bg4B,GAAS,EAEX,OAAOA,CACT,EAEA7f,EAAOxe,QAAUuyF,C,iBCnHjB,YACA/zE,EAAOxe,QAAUglK,C,+CCgBjB,IAAIrpJ,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAajC,SAAS85B,EAAsB6rD,GAC7B,IAAIA,EACF,MAAM,IAAI3yF,MAAM,oDAGlBxB,KAAKq0F,WAAaF,EAClBn0F,KAAK80F,UAAY,IAAIrsD,CACvB,CACA3vB,EAAawvB,GAKbA,EAAsBhrC,UAAUihD,QAAU,WACxCnV,EAAmBppC,KACrB,EAMAsoC,EAAsBhrC,UAAU8kK,YAAc,SAAS50H,GACrDxtC,KAAK80F,UAAUtnD,SAAWA,EAC1BxtC,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,UACvD,EAMAxsD,EAAsBhrC,UAAU+kK,YAAc,SAAS50H,GACrDztC,KAAK80F,UAAUrnD,SAAWA,EAC1BztC,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,UACvD,EAEAn5E,EAAOxe,QAAUmrC,C,+BClDjB,IAAIxvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAgBjC,SAAS+5B,EAA0BxC,EAASouD,EAAW3mD,EAAUC,GAC/D,IAAI1H,EACF,MAAM,IAAIvkC,MAAM,sDAElB,IAAI2yF,EACF,MAAM,IAAI3yF,MAAM,wDAElB,IAAIgsC,EACF,MAAM,IAAIhsC,MAAM,uDAElB,IAAIisC,EACF,MAAM,IAAIjsC,MAAM,uDAGlBxB,KAAK29C,SAAW5X,EAEhB/lC,KAAKsiK,cAAgBtiK,KAAKy0F,aAAa1wD,KAAK/jC,MAC5CA,KAAKuiK,gBAAkBviK,KAAK20F,eAAe5wD,KAAK/jC,MAEhD+lC,EAAQlsB,iBAAiB,YAAa7Z,KAAKsiK,eAC3Cv8H,EAAQlsB,iBAAiB,UAAW7Z,KAAKuiK,iBACzCx8H,EAAQlsB,iBAAiB,aAAc7Z,KAAKuiK,iBAC5Cx8H,EAAQlsB,iBAAiB,aAAc7Z,KAAKsiK,eAC5Cv8H,EAAQlsB,iBAAiB,YAAa7Z,KAAKuiK,iBAC3Cx8H,EAAQlsB,iBAAiB,WAAY7Z,KAAKuiK,iBAE1CviK,KAAKq0F,WAAaF,EAClBn0F,KAAKs0F,UAAY9mD,EACjBxtC,KAAKu0F,UAAY9mD,EACjBztC,KAAK80F,UAAY,IAAIrsD,EAErBzoC,KAAK+0F,WAAY,CACnB,CACAj8E,EAAayvB,GAKbA,EAA0BjrC,UAAUihD,QAAU,WAC5Cv+C,KAAK29C,SAASriC,oBAAoB,YAAatb,KAAKsiK,eACpDtiK,KAAK29C,SAASriC,oBAAoB,UAAWtb,KAAKuiK,iBAClDviK,KAAK29C,SAASriC,oBAAoB,aAActb,KAAKuiK,iBACrDviK,KAAK29C,SAASriC,oBAAoB,aAActb,KAAKsiK,eACrDtiK,KAAK29C,SAASriC,oBAAoB,YAAatb,KAAKuiK,iBACpDviK,KAAK29C,SAASriC,oBAAoB,WAAYtb,KAAKuiK,iBACnDn5H,EAAmBppC,KACrB,EAEAuoC,EAA0BjrC,UAAUm3F,aAAe,WACjDz0F,KAAK+0F,WAAY,EAEjB/0F,KAAK80F,UAAUtnD,SAAWxtC,KAAKs0F,UAC/Bt0F,KAAK80F,UAAUrnD,SAAW,EAC1BztC,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,WACrD90F,KAAK8f,KAAK,SACZ,EAEAyoB,EAA0BjrC,UAAUq3F,eAAiB,WAChD30F,KAAK+0F,YACN/0F,KAAK80F,UAAUrnD,SAAWztC,KAAKu0F,UAC/Bv0F,KAAK8f,KAAK,oBAAqB9f,KAAKq0F,WAAYr0F,KAAK80F,WACrD90F,KAAK8f,KAAK,aAGZ9f,KAAK+0F,WAAY,CACnB,EAEAp5E,EAAOxe,QAAUorC,C,+BCrFjB,IAAIzvB,EAAetK,EAAQ,IACvBi6B,EAAWj6B,EAAQ,IACnBy7B,EAAMz7B,EAAQ,IACd46B,EAAqB56B,EAAQ,IAWjC,SAASg0J,EAAgBr2F,GACvBA,EAAOA,GAAQ,CAAC,EAEhBnsE,KAAKinG,SAAW,GAEhBjnG,KAAKyiK,YAAc,CAAE,IAAK,IAAK,cAAe,cAAe,OAAQ,MAAO,QAAS,QAErFziK,KAAK0iK,KAAOv2F,EAAKw2F,eAAiB14H,EAElCjqC,KAAK4iK,iBAAmB,CAAE,EAE1B5iK,KAAK6iK,eAAiB,CAAEn5D,QAAS1pG,KAAK4iK,iBAAkBj5D,SAAU,KACpE,CAEA7wF,EAAa0pJ,GAGbA,EAAgBllK,UAAUyY,IAAM,SAAShQ,GACvC,IAAI/F,KAAK4V,IAAI7P,GAAb,CAIA,IAAI+8J,EAAW,CAAC,EAChB9iK,KAAKyiK,YAAYliK,SAAQ,SAAS4zF,GAChC2uE,EAAS3uE,GAAa,CACpB2uE,SAAU,IAAIr6H,EACdu6D,KAAM,KAEV,IAEA,IAAI+/D,EAA2B/iK,KAAKmmG,gBAAgBpiE,KAAK/jC,KAAM8iK,GAE3DtiK,EAAS,CACXuF,SAAUA,EACV+8J,SAAUA,EACVC,yBAA0BA,GAG5Bh9J,EAAS8T,iBAAiB,oBAAqBkpJ,GAE/C/iK,KAAKinG,SAASjkG,KAAKxC,EApBnB,CAqBF,EAGAgiK,EAAgBllK,UAAUoxD,OAAS,SAAS3oD,GAC1C,IAAIoE,EAAQnK,KAAKgjK,iBAAiBj9J,GAClC,GAAIoE,GAAS,EAAG,CACd,IAAI3J,EAASR,KAAKinG,SAAS38F,OAAOH,EAAO,GAAG,GAC5C3J,EAAOuF,SAASuV,oBAAoB,oBAAqB9a,EAAOuiK,yBAClE,CACF,EAGAP,EAAgBllK,UAAUsY,IAAM,SAAS7P,GACvC,OAAO/F,KAAKgjK,iBAAiBj9J,IAAa,CAC5C,EAGAy8J,EAAgBllK,UAAU0lK,iBAAmB,SAASj9J,GACpD,IAAK,IAAIvC,EAAI,EAAGA,EAAIxD,KAAKinG,SAAS1jG,OAAQC,IACxC,GAAIxD,KAAKinG,SAASzjG,GAAGuC,WAAaA,EAChC,OAAOvC,EAGX,OAAQ,CACV,EAGAg/J,EAAgBllK,UAAUoZ,KAAO,WAE/B,IADA,IAAI45I,EAAY,GACP9sJ,EAAI,EAAGA,EAAIxD,KAAKinG,SAAS1jG,OAAQC,IACxC8sJ,EAAUttJ,KAAKhD,KAAKinG,SAASzjG,GAAGuC,UAElC,OAAOuqJ,CACT,EAGAkS,EAAgBllK,UAAU6oG,gBAAkB,SAAS88D,EAAgB9uE,EAAW2uE,GAC9E,IAAII,EAAoBD,EAAe9uE,GAEvC,IAAK+uE,EACH,MAAM,IAAI1hK,MAAM,6BAA+B2yF,GAGjD,IAAIgvE,EAAUnjK,KAAK0iK,OACnBQ,EAAkBJ,SAASj1H,OAAOi1H,GAAWK,EAAUD,EAAkBlgE,MAAM,KAC/EkgE,EAAkBlgE,KAAOmgE,EAEzBnjK,KAAK8f,KAAK,SACZ,EAGA0iJ,EAAgBllK,UAAU8lK,sBAAwB,WAChD,IAAK,IAAI5/J,EAAI,EAAGA,EAAIxD,KAAKyiK,YAAYl/J,OAAQC,IAC3CxD,KAAK4iK,iBAAiB5iK,KAAKyiK,YAAYj/J,IAAM,CAEjD,EAGAg/J,EAAgBllK,UAAUosG,QAAU,WAClC,IAAIvV,EACAwV,GAAW,EAEX7C,EAAc9mG,KAAK0iK,OAEvB1iK,KAAKojK,wBAEL,IAAK,IAAI5/J,EAAI,EAAGA,EAAIxD,KAAKinG,SAAS1jG,OAAQC,IAGxC,IAFA,IAAI6/J,EAAiBrjK,KAAKinG,SAASzjG,GAAGs/J,SAE7B7gJ,EAAI,EAAGA,EAAIjiB,KAAKyiK,YAAYl/J,OAAQ0e,IAAK,CAEhD,IAAIihJ,EAAoBG,EADxBlvE,EAAYn0F,KAAKyiK,YAAYxgJ,IAEzB6gJ,EAAWI,EAAkBJ,SAIV,MAAnBA,EAASvnI,SACXv7B,KAAK4iK,iBAAiBzuE,IAAc2uE,EAASvnI,OAE7CunI,EAASvnI,OAAS,MAIpB,IAAIuS,GAAWg5D,EAAco8D,EAAkBlgE,MAAM,IACjDj1D,EAAqB+0H,EAAS/0H,mBAAmBD,GAElDC,IACD/tC,KAAK4iK,iBAAiBzuE,IAAcpmD,GAItC,IAAIu1H,EAAkBR,EAAS90H,cAAcF,GAC7Cg1H,EAASt1H,SAAW81H,EAGjBA,IACD35D,GAAW,GAGbu5D,EAAkBlgE,KAAO8D,CAC3B,CAIF,OADA9mG,KAAK6iK,eAAel5D,SAAWA,EACxB3pG,KAAK6iK,cACd,EAGAL,EAAgBllK,UAAUihD,QAAU,WAElC,IADA,IAAI+xG,EAAYtwJ,KAAK0W,OACZlT,EAAI,EAAGA,EAAI8sJ,EAAU/sJ,OAAQC,IACpCxD,KAAK0uD,OAAO4hG,EAAU9sJ,IAGxB4lC,EAAmBppC,KACrB,EAGA2b,EAAOxe,QAAUqlK,C,+BC7KjB,IAAI1pJ,EAAetK,EAAQ,IAEvBw5B,EAAax5B,EAAQ,KACrBg6B,EAAWh6B,EAAQ,KACnBm6B,EAAQn6B,EAAQ,KAChB+0J,EAAQ/0J,EAAQ,KAEhBw4B,EAAax4B,EAAQ,IAErBg1J,EAAgBh1J,EAAQ,KACxB4uC,EAAiB5uC,EAAQ,IAEzBu6B,EAA0Bv6B,EAAQ,KAClC44B,EAA2B54B,EAAQ,IAEnCk4B,EAAoBl4B,EAAQ,IAAck4B,kBAC1CL,EAAc73B,EAAQ,IAAc63B,YACpCI,EAAcj4B,EAAQ,IAAci4B,YAEpC6D,EAAQ97B,EAAQ,KAChBw7B,EAAOx7B,EAAQ,IACf46B,EAAqB56B,EAAQ,IAkCjC,SAASk6B,EAAO82C,EAAYrT,GAC1BA,EAAOA,GAAQ,CAAC,EAEhBnsE,KAAKi+E,YAAcuB,EAGnB94C,EAAkB84C,GAGlBx/E,KAAKk/E,OAAS,IAAIl4C,EAAWmlC,EAAK4S,OAGlC33C,EAAyBpnC,KAAKk/E,QAG9Bl/E,KAAKi+E,YAAY5uB,YAAYrvD,KAAKk/E,OAAOM,cAOzCx/E,KAAKmqG,kBAAoB/iG,SAASq5C,cAAc,OAChDpa,EAAYrmC,KAAKmqG,mBACjB1jE,EAAYzmC,KAAKmqG,mBACjB3qB,EAAWnwB,YAAYrvD,KAAKmqG,mBAG5BnqG,KAAKmuF,MAAQ,CAAC,EACdnuF,KAAKyjK,aACLzjK,KAAK0jK,oBAAsB1jK,KAAKyjK,WAAW1/H,KAAK/jC,MAChDmH,OAAO0S,iBAAiB,SAAU7Z,KAAK0jK,qBAGvC1jK,KAAK8sG,YAAc,IAAI9kE,EAAWhoC,KAAKk/E,QAGvCl/E,KAAK2jK,UAAY,IAAIn7H,EACrBxoC,KAAK4jK,gBAAkB76H,EAAwB/oC,KAAK2jK,UAAW3jK,KAAKmqG,kBAAmBh+B,EAAKgpB,UAC5Fn1F,KAAK2jK,UAAUz6D,OAAOlpG,KAAK8sG,aAG3B9sG,KAAK6jK,oBAAsBzmH,EAAetnC,IAAI9V,KAAKmqG,kBAAmB,SACtEnqG,KAAK8jK,oBAAsB1mH,EAAetnC,IAAI9V,KAAKmqG,kBAAmB,SAGtEnqG,KAAK+jK,YAAc,IAAIP,EAAcxjK,KAAK2jK,UAAW,gBAAiBnkF,EAAYrT,EAAK63F,SAAW73F,EAAK63F,QAAQC,MAAQ,CAAC,GAGxHjkK,KAAK8sG,YAAYn4D,QAGjB30C,KAAKkkK,QAAU,GAIflkK,KAAKmkK,cAAgB,KAKrBnkK,KAAKokK,eAAiB,KAGtBpkK,KAAKqkK,oBAAsB,KAI3BrkK,KAAKskK,oBAAsBtkK,KAAKukK,mBAAmBxgI,KAAK/jC,MAIxDA,KAAKwyF,mBAAqBxyF,KAAK8f,KAAKikB,KAAK/jC,KAAM,cAI/CA,KAAKwkK,WAAa,IAAIjB,EACtBvjK,KAAKwkK,WAAW7vH,QAGhB30C,KAAKykK,uBAAyBzkK,KAAK0kK,gBAAgB3gI,KAAK/jC,MACxDA,KAAK6Z,iBAAiB,aAAc7Z,KAAKykK,wBAGzCzkK,KAAK2kK,yBAA2B3kK,KAAK4kK,kBAAkB7gI,KAAK/jC,MAC5DA,KAAKwkK,WAAW3qJ,iBAAiB,UAAW7Z,KAAK2kK,0BAIjD3kK,KAAK6kK,qBAAuB7kK,KAAK6qG,aAAa9mE,KAAK/jC,MACnDA,KAAK2jK,UAAU9pJ,iBAAiB,SAAU7Z,KAAK6kK,sBAC/C7kK,KAAK6Z,iBAAiB,cAAe7Z,KAAK6kK,sBAG1C7kK,KAAK8kK,cAAgB,IACvB,CAEAhsJ,EAAa4vB,GAMbA,EAAOprC,UAAUihD,QAAU,WAczB,IAAK,IAAItvC,KAZT9H,OAAOmU,oBAAoB,SAAUtb,KAAK0jK,qBAEtC1jK,KAAKmkK,eACPnkK,KAAK+kK,2BAA2B/kK,KAAKmkK,eAGnCnkK,KAAKokK,gBACPpkK,KAAK+kK,2BAA2B/kK,KAAKokK,gBAGvCpkK,KAAK+jK,YAAYxlH,UAEMv+C,KAAK4jK,gBAC1B5jK,KAAK4jK,gBAAgB30J,GAAYsvC,UAGnC,KAAOv+C,KAAKkkK,QAAQ3gK,QAClBvD,KAAKglK,aAAahlK,KAAKkkK,QAAQ,IAGjClkK,KAAKi+E,YAAYtvB,YAAY3uD,KAAKk/E,OAAOM,cAEzCx/E,KAAKk/E,OAAO3gC,UACZv+C,KAAK8sG,YAAYvuD,UACjBv+C,KAAK2jK,UAAUplH,UACfv+C,KAAK2jK,UAAY,KAEb3jK,KAAKqkK,qBACPrkK,KAAKqkK,sBAGPj7H,EAAmBppC,KACrB,EASA0oC,EAAOprC,UAAUmmK,WAAa,WAC5B,IAAIztJ,EAAOhW,KAAKmuF,MAChBn4E,EAAKua,MAAQvwB,KAAKi+E,YAAYg+D,YAC9BjmI,EAAKwa,OAASxwB,KAAKi+E,YAAYi+D,aAC/Bl8I,KAAKk/E,OAAOwyE,QAAQ17I,EACtB,EAOA0yB,EAAOprC,UAAUyhF,MAAQ,WACvB,OAAO/+E,KAAKk/E,MACd,EAOAx2C,EAAOprC,UAAU6rG,WAAa,WAC5B,OAAOnpG,KAAK8sG,WACd,EAOApkE,EAAOprC,UAAU63F,SAAW,WAC1B,OAAOn1F,KAAK2jK,SACd,EAOAj7H,EAAOprC,UAAUkiF,WAAa,WAC5B,OAAOx/E,KAAKi+E,WACd,EAsBAv1C,EAAOprC,UAAU2nK,YAAc,SAAS94F,GACtCA,EAAOA,GAAQ,CAAC,EAEhB,IAAI6+B,EAAQhrG,KAAKklK,iBAAiB,CAAEp9J,KAAMqkE,EAAKrkE,OAU/C,OARAkjG,EAAMC,YAAY,CAChB59F,OAAQ8+D,EAAK9+D,OACb8yE,SAAUhU,EAAKgU,SACfoT,cAAepnB,EAAKonB,cACpB2X,iBAAkB/+B,EAAK++B,iBACvBC,UAAWh/B,EAAKg/B,YAGXH,CACT,EAiBAtiE,EAAOprC,UAAU4nK,iBAAmB,SAAS/4F,GAG3C,IAAI6+B,EAAQ,IAAIriE,EAAM3oC,MAFtBmsE,EAAOA,GAAQ,CAAC,GAEiBrkE,MAGjC,OAFA9H,KAAKkkK,QAAQlhK,KAAKgoG,GAEXA,CACT,EAGAtiE,EAAOprC,UAAUinK,mBAAqB,WACpC,IAAI/gK,EACAsvD,EAEAisB,EAAQ/+E,KAAKk/E,OACbimF,EAAenlK,KAAKmkK,cACpBiB,EAAgBplK,KAAKokK,eAErBiB,EAAYtmF,EAAM8qB,aAIlBy7D,EAAY,GAShB,GARIF,IACFE,EAAYA,EAAUtuJ,OAAOouJ,EAAcv7D,eAEzCs7D,IACFG,EAAYA,EAAUtuJ,OAAOmuJ,EAAat7D,eAIU,IAAlDxxF,KAAKsJ,IAAI0jJ,EAAU9hK,OAAS+hK,EAAU/hK,QACxC,MAAM,IAAI/B,MAAM,+BAGlB,GAAI8jK,EAAU/hK,OAAS8hK,EAAU9hK,OAE/B,IAAKC,EAAI,EAAGA,EAAI6hK,EAAU9hK,OAAQC,IAEhC,GADAsvD,EAAQuyG,EAAU7hK,GACd8hK,EAAUj7J,QAAQyoD,GAAS,EAAG,CAChC9yD,KAAKulK,sBAAsBzyG,GAC3B,KACF,CAGJ,GAAIwyG,EAAU/hK,OAAS8hK,EAAU9hK,OAE/B,IAAKC,EAAI,EAAGA,EAAI8hK,EAAU/hK,OAAQC,IAChCsvD,EAAQwyG,EAAU9hK,GACd6hK,EAAUh7J,QAAQyoD,GAAS,GAC7B9yD,KAAKwlK,iBAAiB1yG,EAAOtvD,EAQrC,EAGAklC,EAAOprC,UAAUkoK,iBAAmB,SAAS1yG,EAAOtvD,GAIlDsvD,EAAMygC,gBACNvzF,KAAKk/E,OAAO0yE,SAAS9+F,EAAOtvD,EAC9B,EAGAklC,EAAOprC,UAAUioK,sBAAwB,SAASzyG,GAChD9yD,KAAKk/E,OAAO6yE,YAAYj/F,GACxBA,EAAM0gC,kBACN1gC,EAAM88B,eAAeuB,gBACvB,EAGAzoD,EAAOprC,UAAUmoK,wBAA0B,SAASz6D,GAClDA,EAAMnxF,iBAAiB,cAAe7Z,KAAKskK,qBAC3Ct5D,EAAMnxF,iBAAiB,aAAc7Z,KAAKwyF,mBAC5C,EAGA9pD,EAAOprC,UAAUynK,2BAA6B,SAAS/5D,GACrDA,EAAM1vF,oBAAoB,cAAetb,KAAKskK,qBAC9Ct5D,EAAM1vF,oBAAoB,aAActb,KAAKwyF,mBAC/C,EAOA9pD,EAAOprC,UAAU0nK,aAAe,SAASh6D,GACvC,IAKI9sE,EACA0rE,EANApmG,EAAIxD,KAAKkkK,QAAQ75J,QAAQ2gG,GAC7B,GAAIxnG,EAAI,EACN,MAAM,IAAIhC,MAAM,2BAMlB,GAAIxB,KAAKmkK,gBAAkBn5D,EAAO,CAKhC,IAFAhrG,KAAK+kK,2BAA2B/5D,GAChCpB,EAASoB,EAAMnB,aACV3rE,EAAI,EAAGA,EAAI0rE,EAAOrmG,OAAQ26B,IAC7Bl+B,KAAKulK,sBAAsB37D,EAAO1rE,IAEhCl+B,KAAKqkK,sBACPrkK,KAAKqkK,sBACLrkK,KAAKqkK,oBAAsB,MAE7BrkK,KAAKmkK,cAAgB,KACrBnkK,KAAK8f,KAAK,cACZ,CAEA,GAAI9f,KAAKokK,iBAAmBp5D,EAAO,CAKjC,IAFAhrG,KAAK+kK,2BAA2B/5D,GAChCpB,EAASoB,EAAMnB,aACV3rE,EAAI,EAAGA,EAAI0rE,EAAOrmG,OAAQ26B,IAC7Bl+B,KAAKulK,sBAAsB37D,EAAO1rE,IAEpCl+B,KAAKokK,eAAiB,IACxB,CAEApkK,KAAKkkK,QAAQ55J,OAAO9G,EAAG,GAEvBwnG,EAAMzsD,SACR,EAMA7V,EAAOprC,UAAUooK,iBAAmB,WAClC,KAAO1lK,KAAKkkK,QAAQ3gK,OAAS,GAC3BvD,KAAKglK,aAAahlK,KAAKkkK,QAAQ,GAEnC,EAQAx7H,EAAOprC,UAAUqoK,SAAW,SAAS36D,GACnC,OAAOhrG,KAAKkkK,QAAQ75J,QAAQ2gG,IAAU,CACxC,EAOAtiE,EAAOprC,UAAUsoK,WAAa,WAC5B,MAAO,GAAG5uJ,OAAOhX,KAAKkkK,QACxB,EAUAx7H,EAAOprC,UAAU0tG,MAAQ,WACvB,OAAOhrG,KAAKmkK,aACd,EAQAz7H,EAAOprC,UAAUwK,KAAO,WACtB,IAAIkjG,EAAQhrG,KAAKmkK,cACjB,OAAIn5D,EACKA,EAAMljG,OAER,IACT,EAYA4gC,EAAOprC,UAAUiuG,OAAS,SAASjpD,EAAQ6pB,EAAMlqE,GAE/C,IAAI+oG,EAAQhrG,KAAKmkK,cACbn5D,GACFA,EAAMO,OAAOjpD,EAAQ6pB,EAAMlqE,EAE/B,EAaAymC,EAAOprC,UAAU4uG,cAAgB,SAAS1sG,EAAIyC,GAC5C,IAAI+oG,EAAQhrG,KAAKmkK,cACZn5D,GAGLA,EAAMkB,cAAc1sG,EAAIyC,EAC1B,EASAymC,EAAOprC,UAAUutG,aAAe,WAC9B,IAAIG,EAAQhrG,KAAKmkK,cACZn5D,GAGLA,EAAMH,cACR,EAWAniE,EAAOprC,UAAU+uG,SAAW,WAC1B,IAAIrB,EAAQhrG,KAAKmkK,cACjB,GAAKn5D,EAGL,OAAOA,EAAMqB,UACf,EAcA3jE,EAAOprC,UAAUuoK,gBAAkB,SAASv8J,EAAS+iG,GACnDrsG,KAAKwkK,WAAWsB,YAAYx8J,GAC5BtJ,KAAK8kK,cAAgBz4D,CACvB,EAOA3jE,EAAOprC,UAAUyoK,kBAAoB,WACnC/lK,KAAK6qG,eACL7qG,KAAK0kK,iBACP,EAGAh8H,EAAOprC,UAAUonK,gBAAkB,WACjC1kK,KAAKwkK,WAAW7vH,OAClB,EAGAjM,EAAOprC,UAAUsnK,kBAAoB,WACnC,IAAIoB,EAAehmK,KAAK8kK,cACnBkB,GAGLhmK,KAAKksG,cAAc85D,EACrB,EAKA,SAASC,EAAwB1hK,EAAK2hK,EAAUC,GACjCD,EAASr8D,aACftpG,SAAQ,SAASuyD,GACtBA,EAAM6/B,aAAa,CAAE/kC,QAASrpD,GAChC,IAEA2hK,EAASh8D,kBAAkB1qB,aAAa95C,MAAMkoB,QAAUrpD,CAC1D,CAuBAmkC,EAAOprC,UAAUguG,YAAc,SAAS46D,EAAU/5F,EAAMlqE,GACtD,IAAInD,EAAOkB,KAEXmsE,EAAOA,GAAQ,CAAC,EAChBlqE,EAAOA,GAAQ+nC,EAEf,IAAI+0C,EAAQ/+E,KAAKk/E,OAEbinF,EAAWnmK,KAAKmkK,cAGpB,GAAIgC,IAAaD,EAAjB,CAKA,GAAIlmK,KAAKkkK,QAAQ75J,QAAQ67J,GAAY,EACnC,MAAM,IAAI1kK,MAAM,2BAKdxB,KAAKqkK,sBACPrkK,KAAKqkK,sBACLrkK,KAAKqkK,oBAAsB,MAG7B,IAAI+B,EAAiBD,EAAWA,EAASt8D,aAAe,GACpDw8D,EAAiBH,EAASr8D,aAC1By8D,EAAcvnF,EAAM8qB,aAKxB,GAAIs8D,IAAcG,EAAY/iK,SAAW6iK,EAAe7iK,QACnD+iK,EAAY/iK,OAAS,GAAK+iK,EAAY,IAAMF,EAAe,IAC9D,MAAM,IAAI5kK,MAAM,iCAUlB,IANA,IAAIkqG,EAAsC,MAA3Bv/B,EAAKw/B,mBAChBx/B,EAAKw/B,mBAzEiB,IA0EtB99D,EAAkC,MAAzBs+B,EAAKo6F,iBACdp6F,EAAKo6F,iBAAmBN,EAGnBziK,EAAI,EAAGA,EAAI6iK,EAAe9iK,OAAQC,IACzCxD,KAAKwlK,iBAAiBa,EAAe7iK,IA2BvCxD,KAAKqkK,oBAAsB/5H,EAAMohE,GAvBjC,SAAqBnnG,GACnBspC,EAAOtpC,EAAK2hK,EAAUC,EACxB,IAOA,WACE,GAAIrnK,EAAKslK,eAAgB,CACvBtlK,EAAKimK,2BAA2BjmK,EAAKslK,gBACrCgC,EAAiBtnK,EAAKslK,eAAev6D,aACrC,IAAK,IAAIrmG,EAAI,EAAGA,EAAI4iK,EAAe7iK,OAAQC,IACzC1E,EAAKymK,sBAAsBa,EAAe5iK,IAE5C1E,EAAKslK,eAAiB,IACxB,CACAtlK,EAAKulK,oBAAsB,KAC3BpiK,GACF,IAMAjC,KAAKmkK,cAAgB+B,EACrBlmK,KAAKokK,eAAiB+B,EAGtBnmK,KAAK8f,KAAK,eACV9f,KAAK8f,KAAK,cAMV9f,KAAKylK,wBAAwBS,EA1E7B,MAFEjkK,GA6EJ,EAGA0Z,EAAOxe,QAAUurC,C,+BC/sBjB,IAAI5vB,EAAetK,EAAQ,IACvBi7B,EAAWj7B,EAAQ,IACnBy7B,EAAMz7B,EAAQ,IAEdshF,EAAiB,CACnB4b,SAAU51E,KAwBZ,SAASytI,EAAMp3F,GAEbA,EAAO1iC,EAAS0iC,GAAQ,CAAC,EAAG2jB,GAE5B9vF,KAAKksH,UAAY//C,EAAKu/B,SAEtB1rG,KAAKwmK,WAAa,KAElBxmK,KAAKymK,QAAU,KAEfzmK,KAAK0mK,OAAS1mK,KAAK0mK,OAAO3iI,KAAK/jC,KAEjC,CAEA8Y,EAAayqJ,GAObA,EAAMjmK,UAAUq3C,MAAQ,WACtB30C,KAAKwmK,WAAav8H,IACE,MAAhBjqC,KAAKymK,SAAmBzmK,KAAKksH,UAAYp2F,KAC3C91B,KAAK2mK,OAAO3mK,KAAKksH,UAErB,EAOAq3C,EAAMjmK,UAAUugG,QAAU,WACxB,OAA0B,MAAnB79F,KAAKwmK,UACd,EAMAjD,EAAMjmK,UAAUyH,KAAO,WACrB/E,KAAKwmK,WAAa,KACE,MAAhBxmK,KAAKymK,UACP/tJ,aAAa1Y,KAAKymK,SAClBzmK,KAAKymK,QAAU,KAEnB,EAGAlD,EAAMjmK,UAAUqpK,OAAS,SAAStjE,GAChCrjG,KAAKymK,QAAU9tJ,WAAW3Y,KAAK0mK,OAAQrjE,EACzC,EAGAkgE,EAAMjmK,UAAU06C,UAAY,WAC1Bt/B,aAAa1Y,KAAKymK,SAClBzmK,KAAKymK,QAAU,IACjB,EAGAlD,EAAMjmK,UAAUopK,OAAS,WACvB,IACI54H,EADc7D,IACUjqC,KAAKwmK,WAC7BtiF,EAAYlkF,KAAKksH,UAAYp+E,EAEjC9tC,KAAKg4C,YAEDksC,GAAa,GACflkF,KAAK8f,KAAK,WACV9f,KAAKwmK,WAAa,MACTtiF,EAAYpuD,KACrB91B,KAAK2mK,OAAOziF,EAEhB,EAMAq/E,EAAMjmK,UAAUouG,SAAW,WACzB,OAAO1rG,KAAKksH,SACd,EAUAq3C,EAAMjmK,UAAUwoK,YAAc,SAASp6D,GACrC1rG,KAAKksH,UAAYxgB,EACM,MAAnB1rG,KAAKwmK,YACPxmK,KAAK0mK,QAET,EAGA/qJ,EAAOxe,QAAUomK,C,+BCjIjB,IAAI95H,EAAWj7B,EAAQ,IACnB46B,EAAqB56B,EAAQ,IAE7Bo4J,EAAc,CAChBh/D,OAAQ,OACRi/D,SAAU,UACVn7G,SAAU,WAsBZ,SAAS83G,EAAcruE,EAAUp9C,EAAIhS,EAASomC,GAC5CA,EAAO1iC,EAAS0iC,GAAQ,CAAC,EAAGy6F,GAK5B5mK,KAAK29C,SAAW5X,EAChB/lC,KAAK2jK,UAAYxuE,EACjBn1F,KAAKkwF,IAAMn4C,EAEX/3C,KAAK8mK,WAAY,EAEjB9mK,KAAK+mK,iBAAmB/mK,KAAKgnK,WAAWjjI,KAAK/jC,KAAMmsE,EAAKy7B,QACxD5nG,KAAKinK,mBAAqBjnK,KAAKgnK,WAAWjjI,KAAK/jC,KAAMmsE,EAAK06F,UAC1D7mK,KAAKknK,mBAAqBlnK,KAAKgnK,WAAWjjI,KAAK/jC,KAAMmsE,EAAKzgB,UAC1D1rD,KAAKmnK,mBAAqBnnK,KAAKgnK,WAAWjjI,KAAK/jC,KAAMA,KAAK29C,SAASjY,MAAM0hI,QAEzEpnK,KAAKqnK,yBAA2BrnK,KAAKsnK,kBAAkBvjI,KAAK/jC,MAE5Dm1F,EAASt7E,iBAAiB,gBAAiB7Z,KAAKqnK,0BAChDlyE,EAASt7E,iBAAiB,iBAAkB7Z,KAAKqnK,0BACjDlyE,EAASt7E,iBAAiB,UAAW7Z,KAAKqnK,0BAC1ClyE,EAASt7E,iBAAiB,WAAY7Z,KAAKqnK,0BAE3CrnK,KAAKsnK,mBACP,CAKA9D,EAAclmK,UAAUihD,QAAU,WAChCv+C,KAAKunK,yBAAyBvnK,KAAK2jK,UAAUnjK,OAAOR,KAAKkwF,MACzDlwF,KAAKmnK,qBAELnnK,KAAK2jK,UAAUroJ,oBAAoB,gBAC/Btb,KAAKqnK,0BACTrnK,KAAK2jK,UAAUroJ,oBAAoB,iBAC/Btb,KAAKqnK,0BACTrnK,KAAK2jK,UAAUroJ,oBAAoB,UAC/Btb,KAAKqnK,0BACTrnK,KAAK2jK,UAAUroJ,oBAAoB,WAC/Btb,KAAKqnK,0BAETj+H,EAAmBppC,KACrB,EAEAwjK,EAAclmK,UAAUgqK,kBAAoB,WAC1C,IAAInyE,EAAWn1F,KAAK2jK,UAChB5rH,EAAK/3C,KAAKkwF,IACViF,EAASkS,WAAalS,EAAS30F,OAAOu3C,GAAIsvD,QAC5CrnG,KAAKwnK,uBAAuBryE,EAAS30F,OAAOu3C,IAE5C/3C,KAAKunK,yBAAyBpyE,EAAS30F,OAAOu3C,GAElD,EAEAyrH,EAAclmK,UAAUkqK,uBAAyB,SAASC,GACnDznK,KAAK8mK,YACRW,EAAc1hK,SAAS8T,iBAAiB,SAAU7Z,KAAK+mK,kBACvDU,EAAc1hK,SAAS8T,iBAAiB,WAAY7Z,KAAKinK,oBAErDQ,EAAc7/D,OAChB5nG,KAAK+mK,mBAEL/mK,KAAKinK,qBAGPjnK,KAAK8mK,WAAY,EAErB,EAEAtD,EAAclmK,UAAUiqK,yBAA2B,SAASE,GACtDznK,KAAK8mK,YACPW,EAAc1hK,SAASuV,oBAAoB,SAAUtb,KAAK+mK,kBAC1DU,EAAc1hK,SAASuV,oBAAoB,WAAYtb,KAAKinK,oBAE5DjnK,KAAKknK,qBAELlnK,KAAK8mK,WAAY,EAErB,EAEAtD,EAAclmK,UAAU0pK,WAAa,SAASI,GAC5CpnK,KAAK29C,SAASjY,MAAM0hI,OAASA,CAC/B,EAEAzrJ,EAAOxe,QAAUqmK,C,+BClHjB,IAAI/kI,EAAOjwB,EAAQ,IAAaiwB,KAC5BiB,EAAOlxB,EAAQ,IAAakxB,KA0ChC,SAASgoI,EAAaC,EAAO1+B,EAAQjoI,IASrC,SAAqC4J,EAAKgW,EAAGU,GAC3C,IAAIuB,EAAIjC,EAAE,GAAIK,EAAIL,EAAE,GAAIa,EAAIb,EAAE,GAAIsB,EAAItB,EAAE,GACxChW,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,GAAKY,EACjDtX,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,GAAKG,EAAIH,EAAE,GAAKY,EACjDtX,EAAI,GAAK0W,EAAE,GAAKuB,EAAIvB,EAAE,GAAKL,EAAIK,EAAE,IAAMG,EAAIH,EAAE,IAAMY,EACnDtX,EAAI,GAAK0W,EAAE,IAAMuB,EAAIvB,EAAE,IAAML,EAAIK,EAAE,IAAMG,EAAIH,EAAE,IAAMY,CAEvD,CAfE0lJ,CAA4B5mK,EAAQ2mK,EAAO1+B,EAAOzhD,aAClD/oD,EAAK1oB,IAAI/U,EAAQA,EAAQioI,EAAO3hD,YAClC,CAyBA,IAAIugF,EAAWppI,EAAKt/B,SAgBpBwc,EAAOxe,QAAU,CACfusB,SA/DF,SAAkBo+I,GAChB,IAAI9mK,EAAS8mK,GAAa,CAAC,EAG3B,OAFA9mK,EAAOsmF,YAActmF,EAAOsmF,aAAe7oD,EAAKt/B,SAChD6B,EAAOwmF,YAAcxmF,EAAOwmF,aAAe9nD,EAAKvgC,SACzC6B,CACT,EA2DE0mK,aAAcA,EACdK,iBAlBF,SAA0BC,EAAW/+B,GAKnC,IAJA,IAAI14G,EAAQy3I,EAAUz3I,MAClBC,EAASw3I,EAAUx3I,OACnB/oB,EAAOugK,EAAUvgK,KAEbjE,EAAI,EAAGA,EAAI+sB,EAAQC,EAAQhtB,IACjCi7B,EAAK1Z,IAAI8iJ,EAAUpgK,EAAO,EAAFjE,EAAI,GAAG,IAAKiE,EAAO,EAAFjE,EAAI,GAAG,IAAKiE,EAAO,EAAFjE,EAAI,GAAG,IAAKiE,EAAO,EAAFjE,EAAI,GAAG,KAClFkkK,EAAaG,EAAU5+B,EAAQ4+B,GAC/BpgK,EAAO,EAAFjE,EAAI,GAAiB,IAAZqkK,EAAS,GACvBpgK,EAAO,EAAFjE,EAAI,GAAiB,IAAZqkK,EAAS,GACvBpgK,EAAO,EAAFjE,EAAI,GAAiB,IAAZqkK,EAAS,GACvBpgK,EAAO,EAAFjE,EAAI,GAAiB,IAAZqkK,EAAS,EAE3B,E,+BCrFA,IAAIp+H,EAAWj7B,EAAQ,IAGnBy5J,EAAe,IAEfn4E,EAAiB,CACnBo4E,SAJiB,GAKjBC,WALiB,GAMjBC,SANiB,GAOjBC,SAAUJ,EACVK,WAAYL,EACZM,SAAUN,EACVO,YAAa,EACbC,UAAW,MAsGb9sJ,EAAOxe,QAvFP,SAAoBgvE,GAIlB,IAAI+7F,GAFJ/7F,EAAO1iC,EAAS0iC,GAAQ,CAAC,EAAG2jB,IAERo4E,SAChBC,EAAah8F,EAAKg8F,WAClBC,EAAWj8F,EAAKi8F,SAChBC,EAAWl8F,EAAKk8F,SAChBC,EAAan8F,EAAKm8F,WAClBC,EAAWp8F,EAAKo8F,SAChBC,EAAcr8F,EAAKq8F,YACnBC,EAAYt8F,EAAKs8F,UAErB,OAAO,WAEL,IASIC,EACAC,EACAC,EACAC,EAZA/H,EAAW,EACXgI,EAAe,EACfC,EAAiB,EACjBC,EAAe,EAEfC,EAAkB,EAClBC,EAAoB,EACpBC,EAAkB,EAOtB,OAAO,SAAc7mH,EAAQwkD,GAO3B,GALA4hE,GAAa5hE,EAAcg6D,GAAY,IACvCmI,EAAkB5wJ,KAAKL,IAAI8wJ,EAAeJ,EAAYL,EAAUH,GAChES,EAAWM,EAAkBP,EAC7BpmH,EAAO61G,IAAM71G,EAAO61G,IAAMwQ,EAEP,MAAfH,GAAuBlmH,EAAO+1G,QAAUmQ,EAAa,CACvD,IAAIY,EAAc,GAAML,EAAiBA,EAAiBT,EAGxDY,EAFE7wJ,KAAKsJ,IAAI6mJ,EAAclmH,EAAO+1G,OAAS+Q,EAErB/wJ,KAAKL,IAAI+wJ,EAAiBL,EAAYJ,EAAYH,GAGlD9vJ,KAAKJ,IAAI8wJ,EAAiBL,EAAYJ,EAAY,GAGxEM,EAAaM,EAAoBR,EAC7BF,EAAclmH,EAAO+1G,QACvB/1G,EAAO+1G,MAAQhgJ,KAAKJ,IAAIuwJ,EAAalmH,EAAO+1G,MAAQuQ,IAElDJ,EAAclmH,EAAO+1G,QACvB/1G,EAAO+1G,MAAQhgJ,KAAKL,IAAIwwJ,EAAalmH,EAAO+1G,MAAQuQ,GAExD,CAEA,GAAiB,MAAbH,GAAqBnmH,EAAOtsB,MAAQwyI,EAAa,CACnD,IAAIa,EAAY,GAAML,EAAeA,EAAeT,EAGlDY,EAFE9wJ,KAAKsJ,IAAI8mJ,EAAYnmH,EAAOtsB,KAAOqzI,EAEnBhxJ,KAAKL,IAAIgxJ,EAAeN,EAAYH,EAAUH,GAG9C/vJ,KAAKJ,IAAI+wJ,EAAeN,EAAYH,EAAU,GAGlEM,EAAWM,EAAkBT,EACzBD,EAAYnmH,EAAOtsB,MACrBssB,EAAOtsB,IAAM3d,KAAKJ,IAAIwwJ,EAAWnmH,EAAOtsB,IAAM6yI,IAE5CJ,EAAYnmH,EAAOtsB,MACrBssB,EAAOtsB,IAAM3d,KAAKL,IAAIywJ,EAAWnmH,EAAOtsB,IAAM6yI,GAElD,CAOA,OALA/H,EAAWh6D,EACXgiE,EAAeG,EACfF,EAAiBG,EACjBF,EAAeG,EAER7mH,CAET,CAEF,CAEF,C,+BCtGA3mC,EAAOxe,QAXP,SAAeqC,EAAIqH,GAQjB8R,YAPA,WACM9R,GAAQA,EAAKtD,OAAS,EACxB/D,EAAGuH,MAAM,KAAMF,GAEfrH,GAEJ,GACqB,EACvB,C,+BCAAmc,EAAOxe,QAJP,SAAkBmsK,GAChB,OAAOA,EAAMjxJ,KAAK+Q,GAAK,GACzB,C,+BCEAzN,EAAOxe,QAJP,SAAkB4tB,GAChB,OAAa,IAANA,EAAY1S,KAAK+Q,EAC1B,C,mCCxBAzN,EAAOxe,QAAU,CAAE2qB,OAAQ,MAAO48B,SAAU,cAAegC,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,we,0mECYxF,aAEQ,EAAmBl4C,EAAQ,GAAS,eACtC,EAAqCA,EAAQ,IAA3Cma,EAAY,eAAEnU,EAAgB,mBAEhC,EAIFhG,EAAQ,IAHV6F,EAAe,kBACfE,EAAc,iBACdD,EAAe,kBAGXm3B,EAAMj9B,EAAQ,IACd,EAA4EA,EAAQ,IAAlFgO,EAAiB,oBAAEC,EAAmB,sBAAgBW,EAAa,2BACrEmsJ,EAAmB/6J,EAAQ,KAK7Bg7J,EAAwB,EAyE5BrsK,oBAAA,SAAwC0L,G,+HAgCtC,GA5BM4gK,EAAW,GACf30J,MAJI40J,IACF7gK,IAAY,UAAWA,GAAW,UAAWA,IAI/C8f,aAAY,EACZqiB,WAAYvuB,EACZ3R,SAAU0R,EACVnI,gBAAe,EACfE,eAAc,EACdD,gBAAe,EACfE,iBAAgB,EAChBi3B,IAAG,EACHh4B,MAAOi2J,GACJ7gK,GAGC8gK,EAAmB,0BAAyBH,EAAqB,IACjEz+H,EAAY9wB,EAAewvJ,EAAY3+J,UACvC7B,EAAM,IAAIwgK,EAAYh+H,IAAI,UAAWk+H,EAAkB5+H,EAAW0+H,EAAYz+H,mBAE9E4+H,EAAoBvsK,OAAOgT,OAAO,CAAEpH,IAAG,GAAIwgK,IAQf3lK,MAER,IAAtB2lK,EAAY30J,QAAyC,IAAtB20J,EAAYh2J,MAE7C,OADAxK,EAAI7G,KAAK,qEACT,GAAO,IAGT,GAAIqnK,EAAY52J,OAGd,OAFA5J,EAAI7G,KAAK,oCACT6G,EAAImrD,MAAM,eAAgBq1G,EAAY52J,QACtC,GAAO42J,EAAY52J,QAiBrB,IAdMg3J,EAAiD,CACrD/0J,MAAoC,kBAAtB20J,EAAY30J,OAAsB20J,EAAY30J,MAAMhR,KAC9D,CAAEA,KAAM2lK,EAAY30J,MAAMhR,MAC1B,CAAEgmK,yBAA0B,QAChCr2J,MAAoC,kBAAtBg2J,EAAYh2J,OAAsBg2J,EAAYh2J,MAAM3P,KAC9D,CAAEA,KAAM2lK,EAAYh2J,MAAM3P,MAC1B,KAGiBgR,MAAM4jG,8BAA+B,EAC5DmxD,EAAuBp2J,MAAMilG,8BAA+B,EAI3B,kBAAtB+wD,EAAY30J,MAUrB,GAT4D,mBAAjD20J,EAAY30J,MAAM2jG,6BAC3BoxD,EAAuB/0J,MAAM2jG,2BAA6BgxD,EAAY30J,MAAM2jG,4BAG1E,6BAA8BgxD,EAAY30J,QAC5Ci1J,EAA2BN,EAAY30J,MAAMi1J,gCACtCN,EAAY30J,MAAMi1J,0BAGrB,6BAA8BN,EAAY30J,MAEzC,IAAI,CAAC,OAAQ,UAAU6C,OAAM,YAAQ,WAAU8xJ,EAAY30J,MAAuCg1J,wBAA7D,IAE1C,MAAM1sJ,EAAc,wDAAyD,CAAC,OAAQ,WAEtFysJ,EAAuB/0J,MAAMg1J,yBAA2BL,EAAY30J,MAAMg1J,wB,MAL1ED,EAAuB/0J,MAAMg1J,yBAA2B,OAS3B,kBAAtBL,EAAYh2J,OAA8E,mBAAjDg2J,EAAYh2J,MAAMglG,6BACpEoxD,EAAuBp2J,MAAMglG,2BAA6BgxD,EAAYh2J,MAAMglG,4BAG7C,kBAAtBgxD,EAAY30J,cACd20J,EAAY30J,MAAMhR,KAEM,kBAAtB2lK,EAAYh2J,cACdg2J,EAAYh2J,MAAM3P,KAGrBkmK,EAAyB,CAC7Bl1J,MAAO20J,EAAY30J,MACnBrB,MAAOg2J,EAAYh2J,OAGfw2J,EAAyD,kBAAtBR,EAAY30J,OAAsB20J,EAAY30J,MAAMm1J,0B,iBAGvE,O,sBAAA,GAAOA,EACvBV,EAAiBtgK,EAAKwgK,EAAY9gJ,aAAcqhJ,GAChDP,EAAY9gJ,aAAaqhJ,I,OAStB,OAXDh0D,EAAc7lG,SAId+5J,EAAiB,SAClBl0D,EAAYm0D,mBAAgB,EAC5Bn0D,EAAYo0D,mBAGjBnhK,EAAI7G,KAAK,+CAAgD8nK,GAElD,GAAM9lK,QAAQ6P,IACnBi2J,EAAkBv6J,KAAI,SAAM8kG,GAAgB,qC,kEACZ,UAA1BA,EAAiB3hG,MAAoBi3J,EACG,GAAMM,yBAAuB51D,EAAkBs1D,EAA0B9gK,IADjH,M,OAEF,OADMkH,EAAoC8C,SAAlCq3J,EAAU,aAAEC,EAAiB,oBACrC,GAAO,IAAIX,EAAkBv1J,gBAAgBi2J,EAAU,SAClDT,EAAuB/0J,OACvB80J,GAAiB,CACpBW,kBAAiB,M,OAEd,GAA8B,UAA1B91D,EAAiB3hG,KAC1B,SAAO,IAAI82J,EAAkBv1J,gBAAgBogG,EAAgB,OACxDo1D,EAAuB/0J,OACvB80J,K,iBAGP,SAAO,IAAIA,EAAkBt1J,gBAAgBmgG,EAAgB,OACxDo1D,EAAuBp2J,OACvBm2J,K,mBAjBT,SAAOz5J,U,OAuBP,M,WADAlH,EAAIoC,KAAK,+BAAgCm/J,GACnCA,E,giDCrOV,aA2DA,GA1DYh8J,EAAQ,IA0DpB,WAKE,WAAY8pD,EAA2BmyG,GACrC,KAAKC,WAAapyG,EAClB,KAAKqyG,aAAeF,EACpB,KAAKG,oBAAqB,CAC5B,CAqFF,OA/EEvtK,sBAAIwtK,qBAAM,C,IAAV,WACE,OAAO,KAAKH,WAAWI,MACzB,E,gCAMAztK,sBAAIwtK,0BAAW,C,IAAf,WACE,OAAO,KAAKF,YACd,E,gCAMAttK,sBAAIwtK,wBAAS,C,IAAb,WACE,OAAO,KAAKH,WAAWj1F,WACzB,E,gCAQAo1F,mBAAA,WACE,GAAI,KAAKD,mBACP,MAAM,IAAIppK,MAAS,KAAKspK,OAAM,8DAIhC,OADA,KAAKJ,WAAWxpF,SACT98E,QAAQvD,SACjB,EAMAgqK,oBAAA,WAEE,OADA,KAAKH,WAAWzhE,UACT7kG,QAAQvD,SACjB,EAKMgqK,2BAAN,SAAqBE,G,oGAIL,OAHRC,EAAsB,KAAKN,WAAWj1F,YAC5C,KAAKi1F,WAAWn4G,aAEF,GAAMw4G,K,OAGG,OAHjB32J,EAAQjE,SACd,KAAKw6J,aAAev2J,EAEG,GAAM,KAAKs2J,WAAWtuH,QAAQhoC,I,OAMrD,OANMsgG,EAAiBvkG,SACnB66J,EACF,KAAKN,WAAWxpF,SAEhB,KAAKwpF,WAAWzhE,UAElB,GAAOyL,G,QAMTm2D,+BAAA,WAEE,OADA,KAAKD,oBAAqB,EACnB,KAAK3hE,SACd,EAMA4hE,iBAAA,WACE,KAAKH,WAAWn4G,aAChB,KAAKo4G,aAAa5lK,MACpB,EACF,EA9FA,IAAa5H,0BAiGbA,yBAAA,SACEs3G,EACAs1D,EACA9gK,G,sGAGoB,O,sBAAA,GAAMgiK,wCAAsClB,EAA0B9gK,I,OAGxF,OAHMqvD,EAAYnoD,SACZm6J,EAAahyG,EAAUlc,QAAQq4D,GAC/B81D,EAAoB,IAAIM,EAAsBvyG,EAAWm8C,GAC/D,GAAO,CAAE61D,WAAU,EAAEC,kBAAiB,I,OAItC,O,WADAthK,EAAIoC,KAAK,sEAAsE6/J,GAC/E,GAAO,CAAEZ,WAAY71D,I,uhDCxKzB,IAAM02D,EAAgB38J,EAAQ,KAGxB48J,GAFM58J,EAAQ,IAEE,CACpB68J,MAAO,CACLC,iBAAkB,QAClBC,WAAY,gBAEdC,QAAS,CACPF,iBAAkB,QAClBC,WAAY,qBAiDZE,EAAkB,IAAI37J,IAC1B3S,wCAAA,SACE4sK,EACA9gK,G,mHAEIyiK,EAAiBD,EAAgB31J,IAAIi0J,EAAyBe,QAC9D,YAEF,KADIa,EAAeP,EAAcrB,EAAyBe,SAExD,MAAM,IAAItpK,MAAM,gDAAgDuoK,EAAyBe,QAGnFQ,EAAkCK,EAAY,iBAA5BJ,EAAgBI,EAAY,WAC/CC,EAAU7B,EAAyB8B,cACnCC,EAAiBF,EAAO,IAAIL,E,iBAIX,O,sBADtBtiK,EAAImrD,MAAM,mCAAoC03G,GACxB,GAAMX,EAAcW,I,cAApCC,EAAgB57J,SACtBlH,EAAImrD,MAAM,iCAAkC23G,GAEtCC,EAASD,EAAc7xJ,QAlDJ,SAAC/J,G,IAAEm7J,EAAgB,mBAAEzhB,EAAM,SAAE5gJ,EAAG,MAC7D,IAAK4gJ,EAAOoiB,aAAepiB,EAAOttG,YAChC,MAAM,IAAI/6C,MAAM,gGAGlB,IAAM0qK,EAAgBriB,EAAOoiB,aAC7BhjK,EAAImrD,MAAM,oBAAoB83G,GAC9B,IAAMC,EAAoBb,EAAiBp/J,MAAM,KAAKyD,KAAI,YAAW,cAAO/D,EAAP,IAC/DwgK,EAAiBF,EAAchgK,MAAM,KAAKyD,KAAI,YAAW,cAAO/D,EAAP,IAC/D,GAAiC,IAA7BugK,EAAkB5oK,QAA0C,IAA1B6oK,EAAe7oK,OACnD,MAAM,IAAI/B,MAAM,sCAAsC8pK,EAAgB,KAAKY,GAG7E,GAAIC,EAAkB,KAAOC,EAAe,GAC1C,MAAM,IAAI5qK,MAAM,2CAA2C0qK,EAAa,0BAA0BZ,EAAgB,KAGpH,GAAIc,EAAe,GAAKD,EAAkB,GACxC,MAAM,IAAI3qK,MAAM,2CAA2C0qK,EAAa,0BAA0BZ,EAAgB,KAGpH,IAAMe,EAAc,IAAIxtH,aAClBtC,EAAcstG,EAAOttG,YAAY8vH,GAEvC,GADAA,EAAY9yH,SACPgD,EACH,MAAM,IAAI/6C,MAAM,6DAEpB,CAwBM8qK,CAAuB,CACrBhB,iBAAgB,EAChBzhB,OAAM,EACN5gJ,IAAG,IAGA+iK,EAAO3hG,gBAAR,OACFphE,EAAImrD,MAAM,wCAAyCw3G,GACnD,GAAMI,EAAO1oJ,KAAK,CAAEsoJ,QAAO,M,OAA3Bz7J,SACAlH,EAAImrD,MAAM,uC,wBAGZs3G,EAAiB,CACfZ,OAAQf,EAAyBe,OACjCzgG,cAAe,WAAM,SAAOA,eAAP,EACrBkiG,YAAa,WAAM,SAAOA,aAAP,EACnB92F,UAAW,WAAM,SAAOA,WAAP,EACjBljB,WAAY,WAAM,SAAOA,YAAP,EAClB2uB,OAAQ,WAAM,SAAOA,QAAP,EACd+nB,QAAS,WAAM,SAAOA,SAAP,EACf1qD,QAAS,WAAM,SAAOA,SAAP,EACfiuH,WAAY,SAACtrF,GAAoB,SAAOsrF,WAAWtrF,EAAlB,EACjC9kC,QAAS,SAACqwH,GACRxjK,EAAImrD,MAAM,YAAaq4G,EAAY10H,IAC/Bi0H,EAAOO,eACTP,EAAOz5G,aAGT,IAAMyjD,EAAcg2D,EAAO5vH,QAAQ,IAAIpJ,YAAY,CAACy5H,KACpD,IAAKz2D,EACH,MAAM,IAAIx0G,MAAM,gDAElB,IAAM8oK,EAAat0D,EAAYm0D,iBAAiB,GAChD,IAAKG,EACH,MAAM,IAAI9oK,MAAM,yDAGlB,OADAwqK,EAAO9qF,SACAopF,CACT,GAEFmB,EAAgB1mJ,IAAIglJ,EAAyBe,OAAQY,G,aAIrD,M,WADAziK,EAAI7H,MAAM,wCAAwC0qK,EAAeY,GAC3DA,E,OAGV,SAAOhB,G,sCCnIT/vJ,EAAOxe,QAAW,SAASwvK,GACjB,MAAkBA,EAAK,SAAbC,EAAQD,EAAK,IAC/B,MAAI,CAAC96D,EAAU+6D,GAAKjwF,MAAK,YAAO,OAACkwF,CAAD,IACvB,SAAmClxJ,GACxC,OAAOvX,QAAQtD,OAAO,IAAIU,MAAM,qBAAqBma,EAAM,oCAC7D,GAEFgxJ,EAAMG,6BAA+B,CACnC,EAEK,SAAuBnxJ,GAC5B,OAAIA,KAAUgxJ,EAAMG,6BACX1oK,QAAQvD,QAAQ8rK,EAAMG,6BAA6BnxJ,IAKrD,IAAIymB,SAAS,QAAS,kBAAkB,IAAIwqI,EAAIjxJ,EAAQk2F,GAAS,oDAAoDl2F,EAAM,WAA3H,CAAuIgxJ,EAChJ,EACF,CAnBkB,CAmBhBhgK,W,+BCnBF,IAAI8J,EAAUjI,EAAQ,IAAUiI,QAC5BoE,EAAerM,EAAQ,IAAUqM,aACjCgN,EAAsBrZ,EAAQ,IAAUqZ,oBACxCg0B,EAAertC,EAAQ,IAAcqtC,aAErCkxH,EAAQlyJ,IACRmyJ,EAAenlJ,IACfolJ,EAAqB,WAAVF,EACX32B,EAAsB,YAAV22B,EACZG,EAAqB,WAAVH,EAEXI,EAAqBF,EAAWD,EAAa5kJ,MAAQ,KA4FzD,SAASglJ,EAAqDC,GAC5D,IAAIC,EAA2B1/J,MAAMiJ,KAAKw2J,EAAMjtK,UAAU0zC,MAAK,SAASy5H,GACtE,MAAqB,mBAAdA,EAAK7tK,MAA6B6tK,EAAKC,SAChD,IAEA,IAAKF,EACH,OAAO,KAGT,IAAIG,EAA4BJ,EAAMv3J,IAAIw3J,EAAyBI,kBAC/DC,EAA6BN,EAAMv3J,IAAIw3J,EAAyBM,mBAEhEC,EAAiC,CACnC,CAAElwK,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,KAAM+B,KAAM,UACnB,CAAE/B,IAAK,OAAQ+B,KAAM,UACrB,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,MAAO+B,KAAM,WAGlBouK,EAAsCD,EAA+B72J,OAAO,CAC9E,CAAErZ,IAAK,UAAW+B,KAAM,WACxB,CAAE/B,IAAK,gBAAiB+B,KAAM,YAG5BquK,EAAwCN,EACxCK,EAAoC79J,QAAO,SAAS26G,EAAQojD,GAI5D,OAHApjD,EAAOojD,EAAQrwK,YAAc8vK,EAA0BO,EAAQrwK,OAASqwK,EAAQtuK,KAC5E+tK,EAA0BO,EAAQrwK,KAClB,YAAhBqwK,EAAQrwK,KAA4B,KACjCitH,CACT,GAAG,IACD,KAEAqjD,EAAyCN,EACzCE,EAA+B59J,QAAO,SAAS26G,EAAQojD,GAIvD,OAHApjD,EAAOojD,EAAQrwK,YAAcgwK,EAA2BK,EAAQrwK,OAASqwK,EAAQtuK,KAC7EiuK,EAA2BK,EAAQrwK,KACnC,KACGitH,CACT,GAAG,IACD,KAEJ,MAAO,CACL,CAAEjtH,IAAK,2BAA4B+B,KAAM,UACzC,CAAE/B,IAAK,2BAA4B+B,KAAM,UACzC,CAAE/B,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,YAAa+B,KAAM,UAC1B,CAAE/B,IAAK,sBAAuB+B,KAAM,UACpC,CAAE/B,IAAK,uBAAwB+B,KAAM,UACrC,CAAE/B,IAAK,8BAA+B+B,KAAM,UAC5C,CAAE/B,IAAK,0BAA2B+B,KAAM,UACxC,CAAE/B,IAAK,YAAa+B,KAAM,WAC1B,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,WAAY+B,KAAM,WACzB,CAAE/B,IAAK,mBAAoB+B,KAAM,UACjC,CAAE/B,IAAK,eAAgB+B,KAAM,UAC7B,CAAE/B,IAAK,oBAAqB+B,KAAM,UAClC,CAAE/B,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,0BAA2B+B,KAAM,UACxC,CAAE/B,IAAK,sBAAuB+B,KAAM,UACpC,CAAE/B,IAAK,QAAS+B,KAAM,SAAUwuK,MAAO,SAAS3sK,GAAS,MAAiB,eAAVA,EAAyB,cAAgBA,CAAO,GAChH,CAAE5D,IAAK,qBAAsB+B,KAAM,UACnC,CAAE/B,IAAK,cAAe+B,KAAM,UAC5B,CAAE/B,IAAK,WAAY+B,KAAM,YACzBuQ,QAAO,SAAS26G,EAAQojD,GAIxB,OAHApjD,EAAOojD,EAAQrwK,YAAc2vK,EAAyBU,EAAQrwK,OAASqwK,EAAQtuK,KAC1EsuK,EAAQE,MAAQF,EAAQE,MAAMZ,EAAyBU,EAAQrwK,MAAQ2vK,EAAyBU,EAAQrwK,KACzG,KACGitH,CACT,GAAG,CACDujD,eAAgBJ,EAChBK,gBAAiBH,GAErB,CAOA,SAASI,EAA8ChB,GACrD,IAAIC,EAA2B1/J,MAAMiJ,KAAKw2J,EAAMjtK,UAAU0zC,MAAK,SAASy5H,GACtE,MAAqB,mBAAdA,EAAK7tK,MAA6B6tK,EAAKC,SAChD,IAEA,IAAKF,EACH,OAAO,KAGT,IAAIG,EAA4BJ,EAAMv3J,IAAIw3J,EAAyBI,kBAC/DC,EAA6BN,EAAMv3J,IAAIw3J,EAAyBM,mBAEhEC,EAAiC,CACnC,CAAElwK,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,KAAM2wK,OAAQ,CAAC,UAAW,aAAc5uK,KAAM,UACrD,CAAE/B,IAAK,OAAQ2wK,OAAQ,CAAC,cAAe5uK,KAAM,UAC7C,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,WAAY2wK,OAAQ,CAAC,aAAc5uK,KAAM,UAChD,CAAE/B,IAAK,MAAO+B,KAAM,WAGlBouK,EAAsCD,EAA+B72J,OAAO,CAC9E,CAAErZ,IAAK,UAAW+B,KAAM,WACxB,CAAE/B,IAAK,gBAAiB+B,KAAM,YAG5B6uK,EAAiB,CACnB74B,KAAM,OACN84B,cAAe,QACfC,QAAS,QACTC,gBAAiB,SAGfX,EAAwCN,EACxCK,EAAoC79J,QAAO,SAAS26G,EAAQojD,GAC5D,IAAIrwK,EAAMqwK,EAAQM,QAAUN,EAAQM,OAAOx6H,MAAK,SAASn2C,GACvD,OAAOA,KAAO8vK,CAChB,KAAMO,EAAQrwK,IAMd,OALAitH,EAAOojD,EAAQrwK,YAAc8vK,EAA0B9vK,KAASqwK,EAAQtuK,KAC5D,kBAAR/B,GACE4wK,EAAed,EAA0B9vK,KACzC8vK,EAA0B9vK,GACpB,YAARA,GAA4B,KACzBitH,CACT,GAAG,IACD,KAEAqjD,EAAyCN,EACzCE,EAA+B59J,QAAO,SAAS26G,EAAQojD,GACvD,IAAIrwK,EAAMqwK,EAAQM,QAAUN,EAAQM,OAAOx6H,MAAK,SAASn2C,GACvD,OAAOA,KAAOgwK,CAChB,KAAMK,EAAQrwK,IAMd,OALAitH,EAAOojD,EAAQrwK,YAAcgwK,EAA2BhwK,KAASqwK,EAAQtuK,KAC7D,kBAAR/B,GACE4wK,EAAeZ,EAA2BhwK,KAC1CgwK,EAA2BhwK,GAC7B,KACGitH,CACT,GAAG,IACD,KAEJ,MAAO,CACL,CAAEjtH,IAAK,2BAA4B+B,KAAM,UACzC,CAAE/B,IAAK,2BAA4B+B,KAAM,UACzC,CAAE/B,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,YAAa+B,KAAM,UAC1B,CAAE/B,IAAK,sBAAuB+B,KAAM,UACpC,CAAE/B,IAAK,uBAAwB+B,KAAM,UACrC,CAAE/B,IAAK,8BAA+B+B,KAAM,UAC5C,CAAE/B,IAAK,0BAA2B+B,KAAM,UACxC,CAAE/B,IAAK,YAAa+B,KAAM,WAC1B,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,WAAY+B,KAAM,WACzB,CAAE/B,IAAK,mBAAoB+B,KAAM,UACjC,CAAE/B,IAAK,eAAgB+B,KAAM,UAC7B,CAAE/B,IAAK,oBAAqB+B,KAAM,UAClC,CAAE/B,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,0BAA2B+B,KAAM,UACxC,CAAE/B,IAAK,sBAAuB+B,KAAM,UACpC,CAAE/B,IAAK,QAAS+B,KAAM,UACtB,CAAE/B,IAAK,qBAAsB+B,KAAM,UACnC,CAAE/B,IAAK,cAAe+B,KAAM,UAC5B,CAAE/B,IAAK,WAAY+B,KAAM,YACzBuQ,QAAO,SAAS26G,EAAQojD,GAIxB,OAHApjD,EAAOojD,EAAQrwK,YAAc2vK,EAAyBU,EAAQrwK,OAASqwK,EAAQtuK,KAC3E4tK,EAAyBU,EAAQrwK,KACjC,KACGitH,CACT,GAAG,CACDujD,eAAgBJ,EAChBK,gBAAiBH,GAErB,CASA,SAASh4D,EAAU04D,EAAgB77J,EAAM87J,GACvC,IAAIC,EAA0C,UAAlBD,EAA4B,aAAe,eACvE,OAAID,EAAeE,GACVF,EAAeE,KAAyBl/J,KAAI,SAASm/J,GAC1D,OAAOA,EAAiB16J,KAC1B,IAAGnH,QAAO,SAASmH,GACjB,OAAOA,GAASA,EAAMtB,OAASA,CACjC,IAGK2D,EAAQk4J,EADoB,UAAlBC,EAA4B,kBAAoB,uBACpB,SAASj1D,GAEpD,OAAOA,EADkB,UAAT7mG,EAAmB,iBAAmB,mBAExD,GACF,CAuCA,SAASi8J,EAA4BJ,EAAgBv6J,GACnD,OAAO,IAAIhQ,SAAQ,SAASvD,EAASC,GAC/BqsK,GAAsBA,EAAqB,GAC7CwB,EAAe57H,UAAS,SAASvpC,GAC/B3I,EAAQ,CAACmuK,EAA6BxlK,EAAU4K,IAClD,GAAG,KAAMtT,GAGX6tK,EAAe57H,SAAS3+B,GAAOlT,MAAK,SAASsI,GAC3C3I,EAmGN,SAAwC2I,GACtC,IAAIylK,EAAU,KAIVC,EAAW,GAEXC,EAAgB,KAChBC,EAAiB,KACjBh7J,EAAQ,KACRo3G,EAAQ,KACR6jD,EAAa,KAEjB7lK,EAASjJ,SAAQ,SAASgtK,GACxB,OAAQA,EAAK7tK,MACX,IAAK,cACHuvK,EAAU1B,EACV,MACF,IAAK,eACH2B,EAASlsK,KAAKuqK,GACd,MACF,IAAK,eACH8B,EAAa9B,EACb,MACF,IAAK,QACHn5J,EAAQm5J,EACR,MACF,IAAK,QACH/hD,EAAQ+hD,EACR,MACF,IAAK,qBACH4B,EAAgB5B,EAChB,MACF,IAAK,sBACH6B,EAAiB7B,EAGvB,IAEA,IAAI+B,EAAWl7J,GAASA,EAAMm7J,aAE1BlC,EAAQ,GACRkC,EAAeD,EAAWF,EAAiBD,EAmJ/C,OArJkBG,EAAW,CAACL,GAAWC,GAI7B3uK,SAAQ,SAAS8M,GAC3B,IAAImiK,EAAoB,GACpBC,EAAc,CAChBpiK,EACAgiK,EACAj7J,EACAo3G,EACA+jD,GAAgBA,EAAajkD,OAASj+G,EAAOi+G,KAAOikD,EAAe,MAGrE,SAASG,EAAa5rK,GACpB,IAAI6rK,EAAcF,EAAY37H,MAAK,SAAS87H,GAC1C,OAAOA,GAA0C,qBAArBA,EAAW9rK,EACzC,KAAM,KAEN,OAAO6rK,EAAcA,EAAY7rK,GAAQ,IAC3C,CAEA,IAAIwnH,EAAOokD,EAAa,QACJ,kBAATpkD,IACTkkD,EAAkBlkD,KAAO/pG,OAAO+pG,IAGlC,IAAIn9C,EAAYuhG,EAAa,aAC7BF,EAAkBrhG,UAAY91D,KAAKmN,MAAM2oD,GAEzC,IAAI0hG,EAAWH,EAAa,YACJ,kBAAbG,IACTA,EAAWA,EAAS3jK,MAAM,KAC1BsjK,EAAkB14F,UAAY+4F,EAASA,EAAStsK,OAAS,IAG3D,IAAI6nH,EAAgBskD,EAAa,iBACJ,kBAAlBtkD,IACTokD,EAAkBpkD,cAAgB/yG,KAAKmN,MAAsB,IAAhB4lG,IAG/C,IAAI3wG,EAASi1J,EAAa,UACJ,kBAAXj1J,IACT+0J,EAAkB/0J,OAASpC,KAAKmN,MAAe,IAAT/K,IAGxC,IAAIq1J,EAAaJ,EAAa,cACJ,kBAAfI,IACLR,EACFE,EAAkBO,mBAAqBD,GAEvCN,EAAkBQ,eAAiBF,EACnCN,EAAkBS,gBAAkB77J,EAAM07J,aAI9C,IAAII,EAAcR,EAAa,eACJ,kBAAhBQ,IACLZ,EACFE,EAAkBW,oBAAsBD,GAExCV,EAAkBY,gBAAkBF,EACpCV,EAAkBa,iBAAmBj8J,EAAM87J,cAI/C,IAAII,EAAkBZ,EAAa,mBACJ,kBAApBY,IACTd,EAAkBF,EAAW,oBAAsB,iBAAmBgB,GAGxE,IAAI5kD,EAAgBgkD,EAAa,iBACJ,kBAAlBhkD,IACT8jD,EAAkB9jD,cAAgBA,GAGpC,IAAIR,EAAYwkD,EAAa,aACJ,kBAAdxkD,IACTskD,EAAkBtkD,UAAYA,GAGhC,IAAIK,EAAcmkD,EAAa,eACJ,kBAAhBnkD,IACTikD,EAAkBjkD,YAAcA,GAGlC,IAAII,EAAkB+jD,EAAa,mBACJ,kBAApB/jD,IACT6jD,EAAkB7jD,gBAAkBA,GAGtC,IAAIR,EAAcukD,EAAa,eACJ,kBAAhBvkD,IACTqkD,EAAkBrkD,YAAcA,GAGlC,IAAIolD,EAAab,EAAa,cACJ,kBAAfa,IACTA,EAAal4J,KAAKmN,MA5jBY,MA4jBN+qJ,GACpBjB,EACFE,EAAkBgB,iBAAmBD,EAErCf,EAAkBiB,gBAAkBF,GAIxC,IAAIG,EAAuBhB,EAAa,wBACJ,kBAAzBgB,IACTlB,EAAkBmB,qBAAuBD,GAG3C,IAAIE,EAAkBlB,EAAa,mBACJ,kBAApBkB,IACTpB,EAAkBoB,gBAAkBA,GAGtC,IAAIC,EAAgBnB,EAAa,iBACJ,kBAAlBmB,IACTrB,EAAkBqB,cAAgBA,GAGpC,IAAIC,EAA4BpB,EAAa,6BACJ,kBAA9BoB,IACTtB,EAAkBsB,0BAA4BA,GAGhD,IAAIC,EAAkBrB,EAAa,mBACJ,kBAApBqB,IACTvB,EAAkBuB,gBAAkBA,GAGtC,IAAIC,EAAgBtB,EAAa,iBACJ,kBAAlBsB,IACTxB,EAAkBwB,cAAgBA,GAGpC,IAAIC,EAAoBvB,EAAa,qBACJ,kBAAtBuB,IACTzB,EAAkByB,kBAAoBA,GAGxC,IAAIC,EAA2BxB,EAAa,4BACJ,kBAA7BwB,IACT1B,EAAkB0B,yBAA2BA,GAG/C7D,EAAMrqK,KAAKwsK,EACb,IAEOnC,CACT,CAjSc8D,CAA+B3nK,GACzC,GAAG1I,EACL,GACF,CAuBA,SAASkuK,EAA6BxlK,EAAU4K,GAC9C,IAAIg9J,EAAa5nK,EAASxI,SAAS8yC,MAAK,SAAS82E,GAC/C,MAAuB,SAAhBA,EAAOlrH,MAAmBkrH,EAAO2iD,KAAK,iBAAmBn5J,EAAM2jC,EACxE,IAEIy3H,EAAoB,GA4DxB,OA1DI4B,IACF5B,EAAkBrhG,UAAY91D,KAAKmN,MAAMrS,OAAOi+J,EAAWjjG,YAC3DqhG,EAAoB4B,EAAWC,QAAQphK,QAAO,SAASo9J,EAAOvpK,GAC5D,OAAQA,GACN,IAAK,gBACHupK,EAAMv2F,UAAYs6F,EAAW7D,KAAKzpK,GAClC,MACF,IAAK,UACHupK,EAAMjiD,cAAgBj4G,OAAOi+J,EAAW7D,KAAKzpK,IAC7C,MACF,IAAK,qBACHupK,EAAM5yJ,OAAStH,OAAOi+J,EAAW7D,KAAKzpK,IACtC,MACF,IAAK,sBACHupK,EAAM4C,gBAAkB98J,OAAOi+J,EAAW7D,KAAKzpK,IAC/C,MACF,IAAK,uBACHupK,EAAMgD,iBAAmBl9J,OAAOi+J,EAAW7D,KAAKzpK,IAChD,MACF,IAAK,qBACHupK,EAAM2C,eAAiB78J,OAAOi+J,EAAW7D,KAAKzpK,IAC9C,MACF,IAAK,sBACHupK,EAAM+C,gBAAkBj9J,OAAOi+J,EAAW7D,KAAKzpK,IAC/C,MACF,IAAK,yBACHupK,EAAM0C,mBAAqB58J,OAAOi+J,EAAW7D,KAAKzpK,IAClD,MACF,IAAK,0BACHupK,EAAM8C,oBAAsBh9J,OAAOi+J,EAAW7D,KAAKzpK,IACnD,MACF,IAAK,qBACHupK,EAAMiE,eAAiBn+J,OAAOi+J,EAAW7D,KAAKzpK,IAC9C,MACF,IAAK,oBACHupK,EAAMkE,cAAgBp+J,OAAOi+J,EAAW7D,KAAKzpK,IAC7C,MACF,IAAK,wBACHupK,EAAMmE,kBAAoBr+J,OAAOi+J,EAAW7D,KAAKzpK,IACjD,MACF,IAAK,OACHupK,EAAMvpK,GAAQstK,EAAW7D,KAAKzpK,GAC9B,MACF,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,kBACL,IAAK,mBACHupK,EAAMvpK,GAAQqP,OAAOi+J,EAAW7D,KAAKzpK,IAIzC,OAAOupK,CACT,GAAGmC,IAGEA,CACT,CA6MA,SAASiC,EAAwBjoK,EAAU8lK,GAOzC9lK,EAAWA,GAAY,IAAIsG,IAE3B,IAAIm/J,EAAU,KACVC,EAAW,KAWf1lK,EAASjJ,SAAQ,SAASgtK,GACxB,IAAIA,EAAK+B,SAGT,OAAQ/B,EAAK7tK,MACX,IAAK,cACHuvK,EAAU1B,EACV2B,EAAW1lK,EAASsM,IAAIy3J,EAAKmE,UAC7B,MACF,IAAK,eACHxC,EAAW3B,EACX0B,EAAUzlK,EAASsM,IAAIy3J,EAAKmE,UAGlC,IAEA,IAAIplH,EAAQgjH,EAAWL,EAAUC,EAC7ByC,EAASrC,EAAWJ,EAAWD,EAEnC,SAASS,EAAa5rK,GACpB,OAAIwoD,GAAgC,qBAAhBA,EAAMxoD,GACjBwoD,EAAMxoD,GAEX6tK,GAAkC,qBAAjBA,EAAO7tK,GACnB6tK,EAAO7tK,GAET,IACT,CAEA,IAAI0rK,EAAoB,GACpBrhG,EAAYuhG,EAAa,aAC7BF,EAAkBrhG,UAAY91D,KAAKmN,MAAM2oD,GAEzC,IAAIm9C,EAAOokD,EAAa,QACJ,kBAATpkD,IACTkkD,EAAkBlkD,KAAO/pG,OAAO+pG,IAGlC,IAAIJ,EAAYwkD,EAAa,aACJ,kBAAdxkD,IACTskD,EAAkBtkD,UAAYA,GAGhC,IAAIK,EAAcmkD,EAAa,eACJ,kBAAhBnkD,IACTikD,EAAkBjkD,YAAcA,GAGlC,IAAIJ,EAAcukD,EAAa,eACJ,kBAAhBvkD,IACTqkD,EAAkBrkD,YAAcA,GAGlC,IAAIC,EAAgBskD,EAAa,iBACJ,kBAAlBtkD,IAITokD,EAAkBpkD,cAAgB/yG,KAAKmN,MAAsB,IAAhB4lG,IAG/C,IAAI3wG,EAASi1J,EAAa,UACJ,kBAAXj1J,IACT+0J,EAAkB/0J,OAASpC,KAAKmN,MAAe,IAAT/K,IAGxC,IAAI82J,EAAgB7B,EAAa,iBACJ,kBAAlB6B,IACT/B,EAAkB+B,cAAgBl5J,KAAKmN,MAAM+rJ,IAG/C,IAAI7lD,EAAgBgkD,EAAa,iBACJ,kBAAlBhkD,IACT8jD,EAAkB9jD,cAAgBA,GAGpC,IAAIC,EAAkB+jD,EAAa,mBACJ,kBAApB/jD,IACT6jD,EAAkB7jD,gBAAkBA,GAGtC,IAAI6lD,EAAoB9B,EAAa,iBACJ,kBAAtB8B,IACThC,EAAkBgC,kBAAoBn5J,KAAKmN,MAAMgsJ,IAGnD,IAAId,EAAuBhB,EAAa,wBACJ,kBAAzBgB,IACTlB,EAAkBmB,qBAAuBD,GAG3C,IAAIE,EAAkBlB,EAAa,mBACJ,kBAApBkB,IACTpB,EAAkBoB,gBAAkBA,GAGtC,IAAIC,EAAgBnB,EAAa,iBACJ,kBAAlBmB,IACTrB,EAAkBqB,cAAgBA,GAGpC,IAAIC,EAA4BpB,EAAa,6BACJ,kBAA9BoB,IACTtB,EAAkBsB,0BAA4BA,GAGhD,IAAIC,EAAkBrB,EAAa,mBACJ,kBAApBqB,IACTvB,EAAkBuB,gBAAkBA,GAGtC,IAAIC,EAAgBtB,EAAa,iBACJ,kBAAlBsB,IACTxB,EAAkBwB,cAAgBA,GAGpC,IAAIC,EAAoBvB,EAAa,qBACJ,kBAAtBuB,IACTzB,EAAkByB,kBAAoBA,GAGxC,IAAIC,EAA2BxB,EAAa,4BAK5C,MAJwC,kBAA7BwB,IACT1B,EAAkB0B,yBAA2BA,GAGxC1B,CACT,CA+FA7zJ,EAAOxe,QAn2BP,SAAkBwxK,EAAgB9lK,GAChC,OAAM8lK,GAAqD,oBAA5BA,EAAe57H,SAYhD,SAAmB47H,EAAgB9lK,GACjC,IAAI+oK,EAAmB37D,EAAU04D,EAAgB,QAAS,SACtDkD,EAAmB57D,EAAU04D,EAAgB,QAAS,SACtDmD,EAAoB77D,EAAU04D,EAAgB,SAC9CoD,EAAoB97D,EAAU04D,EAAgB,SAE9ClkD,EAAgB,CAClBunD,uBAAwB,KACxBrnD,qBAAsB,GACtBE,qBAAsB,GACtBC,sBAAuB,GACvBC,sBAAuB,IAGrBknD,EAAqBx7J,EAAQ,CAC/B,CAACm7J,EAAkB,wBAAwB,GAC3C,CAACC,EAAkB,wBAAwB,GAC3C,CAACC,EAAmB,yBAAyB,GAC7C,CAACC,EAAmB,yBAAyB,KAC5C,SAASG,GACV,IAAIr/J,EAASq/J,EAAO,GAChBC,EAAiBD,EAAO,GACxB5C,EAAW4C,EAAO,GACtB,OAAOr/J,EAAOlD,KAAI,SAASyE,GACzB,OA2PN,SAAuBu6J,EAAgBv6J,EAAOvL,GAG5C,GAAqC,qBAFrCA,EAAUA,GAAW,IAEFupK,eAAiCnF,EAClD,OAAO8B,EAA4BJ,EAAgBv6J,GAErD,GAAuC,qBAA5BvL,EAAQwpK,gBAAmCj8B,EACpD,OA4CJ,SAA8Bu4B,EAAgBv6J,EAAOk7J,GACnD,OAAO,IAAIlrK,SAAQ,SAASvD,EAASC,GACnC6tK,EAAe57H,SAAS3+B,GAAOlT,MAAK,SAASsI,GAC3C3I,EAAQ,CAAC4wK,EAAwBjoK,EAAU8lK,IAC7C,GAAGxuK,EACL,GACF,CAlDWwxK,CAAqB3D,EAAgBv6J,EAAOvL,EAAQymK,UAE7D,GAAsC,qBAA3BzmK,EAAQ0pK,eAAkCrF,EACnD,MAAsC,qBAA3BrkK,EAAQ0pK,eAAqD,YAAnB12H,IAC5CkzH,EAA4BJ,EAAgBv6J,GAK9ChQ,QAAQtD,OAAO,IAAIU,MAAM,CAC9B,wDACA,mEACA8b,KAAK,OAET,OAAOlZ,QAAQtD,OAAO,IAAIU,MAAM,8CAClC,CAjRagxK,CAAc7D,EAAgBv6J,EAAO/W,OAAOgT,OAAO,CACxDi/J,SAAUA,GACTzmK,IAAU3H,MAAK,SAASuxK,GACzBA,EAAgBlyK,SAAQ,SAASmyK,GAC/BA,EAAWv4H,QAAU/lC,EAAM2jC,GAC3B0yE,EAAc0nD,GAAgBnvK,KAAK0vK,EACrC,GACF,GACF,GACF,IAEA,OAAOtuK,QAAQ6P,IAAIg+J,GAAoB/wK,MAAK,WAC1C,OAcJ,SAAwCytK,EAAgB9lK,GAGtD,GAAqC,qBAFrCA,EAAUA,GAAW,IAEFupK,eAAiCnF,GACb,qBAA3BpkK,EAAQ0pK,eAAkCrF,EACpD,OAAOyB,EAAe57H,WAAW7xC,KAC/BksK,GAEJ,GAAsC,qBAA3BvkK,EAAQwpK,gBAAkCj8B,EACnD,OAAOu4B,EAAe57H,WAAW7xC,KAAKmtK,GAExC,OAAOjqK,QAAQtD,OAAO,IAAIU,MAAM,8CAClC,CA1BWmxK,CAA+BhE,EAAgB9lK,EACxD,IAAG3H,MAAK,SAAS0xK,GAEf,OADAnoD,EAAcunD,uBAAyBY,EAChCnoD,CACT,GACF,CAlDSooD,CAAUlE,EAAgB9lK,GAFxBzE,QAAQtD,OAAO,IAAIU,MAAM,kDAGpC,C,+BCLAma,EAAOxe,QAVP,SAAsBi8G,GACpB,MAAyB,kBAAdtqG,WAC4B,kBAA3BA,UAAU4Z,cAC8B,oBAAxC5Z,UAAU4Z,aAAaC,cACjCywF,EAAcA,GAAe,CAAEtkG,OAAO,EAAMrB,OAAO,GAC5C3E,UAAU4Z,aAAaC,aAAaywF,IAEtCh1G,QAAQtD,OAAO,IAAIU,MAAM,iCAClC,C,+BClBgC,oBAArBgT,iBACTmH,EAAOxe,QAAUqX,iBAEjBmH,EAAOxe,QAAU,WACf,MAAM,IAAIqE,MAAM,oCAClB,C,+BCL6B,oBAApByxC,gBACTt3B,EAAOxe,QAAU81C,gBAEjBt3B,EAAOxe,QAAU,WACf,MAAM,IAAIqE,MAAM,mCAClB,C,+BCNF,GAAiC,oBAAtBonB,kBAET,QAAQ/N,EADWrM,EAAQ,IAAWqM,iBAEpC,IAAK,SACHc,EAAOxe,QAAUqR,EAAQ,KACzB,MACF,IAAK,UACHmN,EAAOxe,QAAUqR,EAAQ,KACzB,MACF,IAAK,SACHmN,EAAOxe,QAAUqR,EAAQ,KACzB,MACF,QACEmN,EAAOxe,QAAUyrB,uBAIrBjN,EAAOxe,QAAU,WACf,MAAM,IAAIqE,MAAM,qCAClB,C,+BClBF,IAAIuxG,EAA8BvkG,EAAQ,KACtCklE,EAAcllE,EAAQ,IACtBs7B,EAAWt7B,EAAQ,IACnB6kG,EAAQ7kG,EAAQ,KAChBwkC,EAAcxkC,EAAQ,KACtBskK,EAAmBtkK,EAAQ,KAC3BukK,EAAWvkK,EAAQ,IACnBG,EAAOH,EAAQ,IACf8Z,EAAc9Z,EAAQ,IAAW8Z,YAEjC0qJ,EAA4C,YAA5BD,EAASl3H,eAa7B,SAASo3H,EAAwBC,EAAe95D,GAC9C,KAAM,gBAAgB65D,GACpB,OAAO,IAAIA,EAAwBC,EAAe95D,GAGpD1lC,EAAY/zE,KAAK,MAEjBuzK,EAAgBA,GAAiB,GACjC,IAAIC,EAAmB91K,OAAOgT,OAAO6iK,EAAcE,mBAC/C,CAAEC,cAAeH,EAAcE,oBAC/B,GAAIF,GAERvkK,EAAK4Z,eAAe,KAAM,eAC1B5Z,EAAK4Z,eAAe,KAAM,wBAE1B,IAAI+qJ,EAAYP,EAASl3H,aAAas3H,EAAiBh6H,cACnDw1H,EAAiB,IAAI/lJ,kBAAkBuqJ,EAAkB/5D,GAE7D/7G,OAAOkQ,iBAAiB,KAAM,CAC5BgmK,sBAAuB,CACrB11K,MAAO,IAAIiS,IACXrR,UAAU,GAEZ+0K,aAAc,CACZ31K,MAAO,IAAIm1C,GAEbygI,gBAAiB,CACf51K,MAAO8wK,GAET+E,mBAAoB,CAClB71K,MAAO,KACPY,UAAU,GAEZk1K,oBAAqB,CACnB91K,MAAO,KACPY,UAAU,GAEZm1K,yBAA0B,CACxB/1K,MAAO,IAAIiS,IACXrR,UAAU,GAEZo1K,WAAY,CACVh2K,MAAOy1K,GAETx4D,SAAU,CACRj9G,MAAO,IAAIiS,KAEbgkK,qBAAsB,CACpBj2K,MAAO,IAAIw1G,GAEb0gE,eAAgB,CACdl2K,MAAO,IAAIiS,IACXrR,UAAU,GAEZu1K,iBAAkB,CAChBz1K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK49J,mBAAqB,KAAKA,mBAAqB/E,EAAeqF,gBAC5E,GAEFC,kBAAmB,CACjB11K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK69J,oBAAsB,KAAKA,oBAAsBhF,EAAesF,iBAC9E,GAEFC,eAAgB,CACd31K,YAAY,EACZuX,IAAK,WACH,OAAI,KAAK49J,mBACA,mBACE,KAAKC,oBACP,oBAEFhF,EAAeuF,cACxB,KAIJ,IAAIp1K,EAAO,KAEX6vK,EAAe90J,iBAAiB,eAAe,SAAuBlE,GACpEw+J,EAAgBx+J,EAAM4hC,SACtBz4C,EAAKgb,cAAcnE,EACrB,IAEAg5J,EAAe90J,iBAAiB,wBAAwB,WAChB,WAAlC80J,EAAeuF,iBACjBp1K,EAAKy0K,sBAAwB,IAAIzjK,IAAIhR,EAAKi1K,iBAEvCj1K,EAAK40K,oBAAuB50K,EAAK60K,qBACpC70K,EAAKgb,cAAc/S,MAAMjI,EAAMgI,UAEnC,IAEA6nK,EAAeyF,QAAU,WAEvB,EAGkD,oBAAzCxrJ,kBAAkBtrB,UAAU64G,UACrCw4D,EAAe0F,UAAU,KAAKb,cAEhC7kK,EAAKgL,gBAAgBiP,kBAAkBtrB,UAAW,KAAMqxK,EAC1D,CA2PA,SAAS2F,EAAe3F,EAAgBn7J,EAAOy/F,GAiB7C,IAIIx5F,EApB0B86J,EAgB1BC,EAAoBhhK,EAAQm7J,EAAe+E,mBAAqB/E,EAAegF,oBAC/Ec,EAAqBjhK,EAAQm7J,EAAegF,oBAAsBhF,EAAe+E,mBACjFgB,EAAoBlhK,EAAQ,mBAAqB,oBACjDmhK,EAAsBnhK,EAAQ,sBAAwB,uBAG1D,IAAKA,GAASihK,GAA2C,WAArBxhE,EAAYvzG,KAC9C+Z,EAoDJ,SAAyBk1J,EAAgBiG,GAEvC,IAAIJ,EAAoB7F,EAAe+E,mBACvC,OAAO/E,EAAe8E,gBAAgBkB,oBAAoBH,GAAmBtzK,MAAK,WAEhF,OADAytK,EAAe+E,mBAAqB,KAC7B/E,EAAekG,qBAAqBD,EAC7C,IAAG1zK,MAAK,WAINytK,EAAemF,qBAAqBtgE,OACtC,GACF,CAhEcshE,CAAgBnG,EAAgB17D,QACrC,GAAyB,UAArBA,EAAYvzG,KAAkB,CACvC,GAAIivK,EAAeuF,iBAAmBQ,GAAuD,WAAlC/F,EAAeuF,eAExE,OAAO9vK,QAAQtD,OAAO,IAAIU,MAAM,eAAiBgS,EAAQ,QAAU,UACjE,mBAAqBm7J,EAAeuF,iBAOnCM,GAAmE,QAA9C7F,EAAemF,qBAAqBvyK,OAC5DotK,EAAemF,qBAAqBrgE,QAEtC,IAAIshE,EAAyBpG,EAAeuF,eAtChBK,EAuCPtwI,EAAOgvE,GAtCxBz/F,EACFm7J,EAAe+E,mBAAqBa,EAEpC5F,EAAegF,oBAAsBY,EAoCvC96J,EAAUrV,QAAQvD,UAGd8tK,EAAeuF,iBAAmBa,GACpCt7J,EAAQvY,MAAK,WACXytK,EAAe70J,cAAc,IAAIk7J,MAAM,wBACzC,G,KAG4B,aAArB/hE,EAAYvzG,OACjBivK,EAAeuF,iBAAmBQ,EAEpCj7J,EAAUrV,QAAQtD,OAAO,IAAIU,MAAM,oBAChCgS,EAAQ,QAAU,UAAY,mBAAqBm7J,EAAeuF,kBA5CnE1gK,EACFm7J,EAAe+E,mBAAqB,KAEpC/E,EAAegF,oBAAsB,KAkDrChF,EAAeiF,yBAA2B,IAAI9jK,IAAI6+J,EAAeoF,gBACjEpF,EAAeoF,eAAiB,IAAIjkK,IAAI6+J,EAAe4E,wBAEvD95J,EAAUrV,QAAQvD,WACVK,MAAK,WACXytK,EAAe70J,cAAc,IAAIk7J,MAAM,wBACzC,MAIJ,OAAOv7J,GAAWk1J,EAAe8E,gBAAgBkB,GAAqB1wI,EAAOgvE,GAC/E,CAuBA,SAASgiE,EAA4BtG,EAAgB77J,GACnD,QAAS67J,EAAeuG,kBAAkBphI,MAAK,SAASqhI,GACtD,OAAOA,EAAYhzI,UAAYgzI,EAAYhzI,SAAS/tB,OAAS+gK,EAAYhzI,SAAS/tB,MAAMtB,OAASA,CACnG,GACF,CAEA,SAASmxB,EAAOgvE,GACd,OAAIA,aAAuBF,GACrBE,EAAYC,aACPD,EAAYC,aAGhB,IAAIhgE,sBAAsB+/D,EACnC,CAUA,SAASmiE,IACP,MAAO,sBAAuBC,eAAe/3K,aACtC,sBAAuB+3K,eAAe/3K,UAC/C,CAsBA,SAAS62K,EAAgBmB,GAiBvB,OAhBAj4K,OAAOI,eAAe63K,EAAa,iBAAkB,CACnDz3K,MAAsC,QAA/By3K,EAAYt3D,eACf,KACAs3D,EAAYt3D,iBAEdo3D,KAKF/3K,OAAOI,eAAe63K,EAAa,oBAAqB,CACtDz3K,MAAyC,QAAlCy3K,EAAYC,kBACf,KACAD,EAAYC,oBAGbD,CACT,CAWA,SAASp6H,EAAsBo4H,EAAWkC,EAAez7H,GACvD,MAAqB,YAAdu5H,EACHP,EAAS/2H,iCAAiCw5H,EAAez7H,GACzDg5H,EAASh3H,2BAA2By5H,EAAez7H,EACzD,CA3aAjQ,EAASmpI,EAAyBv/F,GAEkB,oBAAzC9qD,kBAAkBtrB,UAAU64G,UAKrC88D,EAAwB31K,UAAU64G,SAAW,WAC3C,IAAItvG,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrBsN,EAAQvN,EAAK,GACjB,GAA4C,WAAxC,KAAK4sK,gBAAgBS,eACvB,MAAM,IAAI1yK,MAAM,gCAAkC4S,EAAM2jC,GAAK,KACzD3jC,EAAMtB,KAAO,kCAGnB,IAAIsoG,EAAS,KAAKN,SAAShlG,IAAI1B,GAC/B,GAAIgnG,GAAUA,EAAOhnG,MACnB,MAAM,IAAI5S,MAAM,gCAAkC4S,EAAM2jC,GAAK,KACzD3jC,EAAMtB,KAAO,uCAQnB,OANA,KAAK2gK,gBAAgBgC,aAAa,KAAKjC,cACvC,KAAKA,aAAar9D,SAAS/hG,GAC3B,KAAKq/J,gBAAgBY,UAAU,KAAKb,cAEpCp4D,EAAS,IAAI03D,EAAiB1+J,GAC9B,KAAK0mG,SAAS/1F,IAAI3Q,EAAOgnG,GAClBA,CACT,EAMA63D,EAAwB31K,UAAU44G,YAAc,SAAqBkF,GACnE,GAA4C,WAAxC,KAAKq4D,gBAAgBS,eACvB,MAAM,IAAI1yK,MAAM,+DAGlB,IAAI4S,EAAQgnG,EAAOhnG,MACdA,IAGLgnG,EAAS,KAAKN,SAAShlG,IAAI1B,KACbgnG,EAAOhnG,QACnBgnG,EAAOhnG,MAAQ,KACf,KAAKq/J,gBAAgBgC,aAAa,KAAKjC,cACvC,KAAKA,aAAat9D,YAAY9hG,GAC9B,KAAKq/J,gBAAgBY,UAAU,KAAKb,cAExC,EAEAP,EAAwB31K,UAAUo4K,WAAa,WAC7C,OAAO9nK,MAAMiJ,KAAK,KAAKikG,SAAS16G,SAClC,GAEA6yK,EAAwB31K,UAAU44G,YAAc,SAAqBkF,GACnE,GAA4C,WAAxC,KAAKq4D,gBAAgBS,eACvB,MAAM,IAAI1yK,MAAM,+DAElB,IACE,KAAKiyK,gBAAgBv9D,YAAYkF,EAMjC,CALA,MAAO5uG,GAKP,CAEJ,EAGFymK,EAAwB31K,UAAUq4K,gBAAkB,SAAyBC,GAC3E,IACIn8J,EADA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WAErBhI,EAAO,KAaX,OAPE2a,EAJ0B,sBAAxB,KAAKy6J,eAIG,KAAKJ,qBAAqBj+H,KAAK,OAAO30C,MAAK,WACnD,OAAOpC,EAAK20K,gBAAgBkC,gBAAgBC,EAC9C,IAEU,KAAKnC,gBAAgBkC,gBAAgBC,GAG1C/uK,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAKAw5J,EAAwB31K,UAAUi8C,MAAQ,WACZ,WAAxB,KAAK26H,iBACP,KAAKR,mBAAqB,KAC1B,KAAKC,oBAAsB,KAC3B,KAAKF,gBAAgBl6H,QAEzB,EAQA05H,EAAwB31K,UAAUu4K,aAAe,WAC/C,IACIp8J,EADA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WAErBhI,EAAO,KAqCX,OAlCE2a,EADE,KAAKk6J,oBACG,KAAKF,gBAAgBoB,qBAAqB,KAAKlB,qBAAqBzyK,MAAK,WAKjF,OADApC,EAAKg1K,qBAAqBtgE,QACnB10G,EAAK20K,gBAAgBoC,cAC9B,IAAG30K,MAAK,SAA+B0zK,GAOrC,OANA91K,EAAK60K,oBAAsB,KAI3B70K,EAAK80K,yBAAyB9+H,QAEvB,IAAIi+D,EAA4B,CACrCrzG,KAAM,SACNq6C,IAAKmB,EAAsBp8C,EAAK+0K,WAAY/0K,EAAKi1K,eAAgBa,EAAO76H,MAE5E,IAAG,SAAkD34C,GAEnD,MADAtC,EAAK60K,oBAAsB,KACrBvyK,CACR,IAEU,KAAKqyK,gBAAgBoC,eAAe30K,MAAK,SAAS0zK,GAK1D,OAFA91K,EAAK80K,yBAAyB9+H,QAEvB,IAAIi+D,EAA4B,CACrCrzG,KAAM,SACNq6C,IAAKmB,EAAsBp8C,EAAK+0K,WAAY/0K,EAAKi1K,eAAgBa,EAAO76H,MAE5E,IAGKlzC,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAEAw5J,EAAwB31K,UAAUw4K,YAAc,WAC9C,IAAIjvK,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrB+B,GAAWhC,EAAKtD,OAAS,EAAIsD,EAAK,GAAKA,EAAK,KAAO,GACnD/H,EAAO,KAEX,GAAIwpB,IAAe,CAEjB,GAAIzf,EAAQktK,sBAAwB,KAAKC,qBAAuBhD,IAAiBiC,EAA4B,KAAM,UAAW,QACrHpsK,EAAQotK,oBACf,IACE,KAAKD,kBAAoBhD,EACrB,KAAK15H,eAAe,QAAS,CAAEe,UAAW,aAC1C,KAAKf,eAAe,Q,CACxB,MAAO9sC,GACP,OAAOpI,QAAQtD,OAAO0L,E,EAI1B,GAAI3D,EAAQktK,sBAAwB,KAAKG,qBAAuBlD,IAAiBiC,EAA4B,KAAM,UAAW,QACrHpsK,EAAQktK,oBACf,IACE,KAAKG,kBAAoBlD,EACrB,KAAK15H,eAAe,QAAS,CAAEe,UAAW,aAC1C,KAAKf,eAAe,Q,CACxB,MAAO9sC,GACP,OAAOpI,QAAQtD,OAAO0L,E,GAK5B,IAAIiN,EAAU,KAAKg6J,gBAAgBqC,YAAYjtK,GAAS3H,MAAK,SAASqzK,GAKpE,OAFAz1K,EAAK80K,yBAAyB9+H,QAEvB,IAAIi+D,EAA4B,CACrCrzG,KAAM60K,EAAM70K,KACZq6C,IAAKmB,EAAsBp8C,EAAK+0K,WAAY/0K,EAAKi1K,eAAgBQ,EAAMx6H,MAE3E,IAEA,OAAOlzC,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAEAw5J,EAAwB31K,UAAU64K,kBAAoB,SAA2BC,EAAOC,GACtFA,EAmLF,SAA6BA,GAC3BA,EAAkBh5K,OAAOgT,OAAO,GAAIgmK,GAChCjB,KAAgC,sBAAuBiB,IACzDA,EAAgBd,kBAAoBc,EAAgBt4D,mBAEtD,OAAOs4D,CACT,CAzLoBC,CAAoBD,GACtC,IAAIf,EAAc,KAAK7B,gBAAgB0C,kBAAkBC,EAAOC,GAEhE,OADAlC,EAAgBmB,GACTA,CACT,EAEArC,EAAwB31K,UAAUq3K,oBAAsB,WACtD,IAAI9tK,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrBmsG,EAAcpsG,EAAK,GAInB,KAAK+sK,yBAAyB59J,KAAO,IACvC,KAAK+9J,eAAiB,IAAIjkK,IAAI,KAAK8jK,0BACnC,KAAKA,yBAAyB9+H,SAGhC,IAAIr7B,EAAU66J,EAAe,MAAM,EAAMrhE,GACzC,OAAOpsG,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAEAw5J,EAAwB31K,UAAUu3K,qBAAuB,WACvD,IAAIhuK,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrBmsG,EAAcpsG,EAAK,GAIvB,KAAK+sK,yBAAyB9+H,QAE9B,IAAIr7B,EAAU66J,EAAe,MAAM,EAAOrhE,GAC1C,OAAOpsG,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAEA9K,EAAK+K,gBACHkP,kBAAkBtrB,UAClB21K,EAAwB31K,UACxB,mBA4LFqe,EAAOxe,QAAU81K,C,+BC3gBjBt3J,EAAOxe,QA/BP,SAA0BiX,GACxB/W,OAAOkQ,iBAAiB,KAAM,CAC5B6G,MAAO,CACL7V,YAAY,EACZV,MAAOuW,EACP3V,UAAU,IAGhB,C,+BCZA,IAAIi1E,EAAcllE,EAAQ,IACtB+nK,EAA+B/nK,EAAQ,KACvCs7B,EAAWt7B,EAAQ,IACnBgoK,EAAsBhoK,EAAQ,IAAewtC,iCAC7CrtC,EAAOH,EAAQ,IAsBnB,SAASioK,EAAyBvD,GAChC,KAAM,gBAAgBuD,GACpB,OAAO,IAAIA,EAAyBvD,GAGtCx/F,EAAY/zE,KAAK,MAEjBgP,EAAK4Z,eAAe,KAAM,wBAG1B,IAAIomJ,EAAiB,IAAI/lJ,kBAAkBsqJ,GAE3C71K,OAAOkQ,iBAAiB,KAAM,CAC5BmpK,6BAA8B,CAC5B74K,MAAO,KACPY,UAAU,GAEZk4K,UAAW,CACT94K,OAAO,EACPY,UAAU,GAEZg1K,gBAAiB,CACf51K,MAAO8wK,GAETiI,aAAc,CACZ/4K,OAAO,EACPY,UAAU,GAEZs1K,eAAgB,CACdl2K,MAAO,IAAIiS,KAEb+mK,kBAAmB,CACjBt4K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK6gK,UAAY,WAAa,KAAKlD,gBAAgBoD,iBAC5D,GAEF7C,iBAAkB,CAChBz1K,YAAY,EACZuX,IAAK,WACH,OAAOghK,EAAyC,KAAKrD,gBAAgBO,iBAAkB,KAAK0C,6BAC9F,GAEFxC,eAAgB,CACd31K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK6gK,UAAY,SAAW,KAAKlD,gBAAgBS,cAC1D,KAIJ,IACIa,EADAj2K,EAAO,KAGX6vK,EAAe90J,iBAAiB,wBAAwB,WACtD,IAAK/a,EAAK83K,cAAgB93K,EAAKo1K,iBAAmBa,EAAwB,CACxEA,EAAyBj2K,EAAKo1K,eAM9B,IAAI6C,EAAsBj4K,EAAKgb,cAAc/S,MAAMg9B,KAAKjlC,EAAKgb,cAAehb,EAAMgI,WAC9EhI,EAAK63K,UACPh+J,WAAWo+J,GAEXA,G,CAGN,IAEApoK,EAAKgL,gBAAgBiP,kBAAkBtrB,UAAW,KAAMqxK,EAC1D,CA+IA,SAASqI,EAASrI,EAAgBn7J,EAAOyjK,GACvC,IAAItC,EAAsBnhK,EAAQ,sBAAwB,uBAE1D,OADAm7J,EAAeiI,cAAe,EACvBjI,EAAe8E,gBAAgBkB,GAAqB,IAAI4B,EAA6B,CAC1F72K,KAAM,cACJwB,KAAK+1K,GAAgB/1K,MAAK,SAAiCF,GAE7D,OADA2tK,EAAeiI,cAAe,EACvB51K,CACT,IAAG,SAAwCI,GAEzC,MADAutK,EAAeiI,cAAe,EACxBx1K,CACR,GACF,CAgBA,SAAS81K,EAAgCvI,EAAgB17D,EAAa1/F,GAIpE,IAAIo7J,EAAe+H,8BAAqD,UAArBzjE,EAAYvzG,KAA/D,CAIA,IAAIuH,EAAQgsG,EAAYl5D,IAAI9yC,MAAM,oBAClC,GAAKA,EAAL,CAIA,IAAIkwK,EAAWlwK,EAAM,GACrB0nK,EAAe+H,6BAA+BnjK,EAAS,CACrDq0F,OAAQ,UACR0xC,QAAS,UACT69B,GAAYA,C,EAChB,CAcA,SAASL,EAAyC7jE,EAAakkE,GAC7D,OAAIlkE,GAAoC,WAArBA,EAAYvzG,MAAqBy3K,EAC3C,IAAIZ,EAA6B,CACtC72K,KAAMuzG,EAAYvzG,KAClBq6C,IAAKk5D,EAAYl5D,IAAI5hC,QAAQ,kBAAmB,WAAag/J,KAG1DlkE,CACT,CAjNAnpE,EAAS2sI,EAA0B/iG,GAMnCr2E,OAAOI,eAAeg5K,EAAyBn5K,UAAW,eAAgB,CACxEiB,YAAY,EACZV,MAAOuG,QAAQvD,QAAQ,CACrBu2K,IAAK,GACLtzK,KAAM,OAIV2yK,EAAyBn5K,UAAUu4K,aAAe,WAChD,IACIp8J,EADA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WAErBhI,EAAO,KAOX,OALA2a,EAAU,KAAKg6J,gBAAgBoC,eAAe30K,MAAK,SAA+B0zK,GAEhF,OADAsC,EAAgCp4K,EAAM81K,GAC/BkC,EAAyClC,EAAQ91K,EAAK43K,6BAC/D,IAE0B,oBAAZ7vK,EAAK,GACf8H,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EASAg9J,EAAyBn5K,UAAUw4K,YAAc,WAC/C,IAEIr8J,EAFA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrB+B,GAAWhC,EAAKtD,OAAS,EAAIsD,EAAK,GAAKA,EAAK,KAAO,GAEnD/H,EAAO,KAEX,GAA4B,qBAAxB,KAAKo1K,gBACmB,sBAAxB,KAAKA,eAAwC,CAC/C,IAAI1gK,EAAgC,qBAAxB,KAAK0gK,eACjBz6J,EAAUu9J,EAAS,KAAMxjK,GAAO,WAC9B,OAAO1U,EAAKg3K,YAAYjtK,EAC1B,G,MAEA4Q,EAAU3a,EAAK20K,gBAAgBqC,YAAYjtK,GAU7C,OAPA4Q,EAAUA,EAAQvY,MAAK,SAASqzK,GAC9B,OAAO,IAAIgC,EAA6B,CACtC72K,KAAM60K,EAAM70K,KACZq6C,IAAKy8H,EAAoB13K,EAAKi1K,eAAgBQ,EAAMx6H,MAExD,IAEOlzC,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAMAg9J,EAAyBn5K,UAAUq3K,oBAAsB,WACvD,IAEIl7J,EAFA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrBmsG,EAAcpsG,EAAK,GAOvB,OAJIosG,GAAoC,WAArBA,EAAYvzG,MAA6C,qBAAxB,KAAKw0K,iBACvDz6J,EAAUrV,QAAQtD,OAAO,IAAIU,MAAM,uDAGjCiY,EACK5S,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,EAGC,KAAKg6J,gBAAgBkB,oBAAoB5tK,MAAM,KAAK0sK,gBAAiB5sK,EAC9E,EAaA4vK,EAAyBn5K,UAAUu3K,qBAAuB,WACxD,IAEIp7J,EAFA5S,EAAO,GAAG/B,MAAMnF,KAAKmH,WACrBmsG,EAAcpsG,EAAK,GAEnB/H,EAAO,KAoBX,OAlBIm0G,GAAuC,sBAAxB,KAAKihE,iBACG,WAArBjhE,EAAYvzG,KACd+Z,EAAUrV,QAAQtD,OAAO,IAAIU,MAAM,wDACL,UAArByxG,EAAYvzG,OACrB+Z,EAAUu9J,EAAS,MAAM,GAAO,WAC9B,OAAOl4K,EAAK20K,gBAAgBoB,qBAAqB5hE,EACnD,MAICx5F,IACHA,EAAU,KAAKg6J,gBAAgBoB,qBAAqB5hE,IAGtDx5F,EAAUA,EAAQvY,MAAK,WACrBg2K,EAAgCp4K,EAAMm0G,GAAa,EACrD,IAEOpsG,EAAKtD,OAAS,EACjBoL,EAAKqL,cAAcP,EAAS5S,EAAK,GAAIA,EAAK,IAC1C4S,CACN,EAKAg9J,EAAyBn5K,UAAUi8C,MAAQ,WACb,WAAxB,KAAK26H,iBACP,KAAKyC,WAAY,EACjB,KAAKlD,gBAAgBl6H,QAEzB,EAEA5qC,EAAK+K,gBACHkP,kBAAkBtrB,UAClBm5K,EAAyBn5K,UACzB,mBAwEFqe,EAAOxe,QAAUs5K,C,+BCvTjB,IAAI/iG,EAAcllE,EAAQ,IACtBs7B,EAAWt7B,EAAQ,IACnB6kG,EAAQ7kG,EAAQ,KAChBukK,EAAWvkK,EAAQ,IACnBG,EAAOH,EAAQ,IAEfwkK,EAA4C,YAA5BD,EAASl3H,eAEzBX,EAAwB83H,EACxBD,EAAS/2H,iCACT+2H,EAASh3H,2BAEb,SAASs7H,EAAwBnE,GAC/B,KAAM,gBAAgBmE,GACpB,OAAO,IAAIA,EAAwBnE,GAGrCx/F,EAAY/zE,KAAK,MAEjBgP,EAAK4Z,eAAe,KAAM,eAC1B5Z,EAAK4Z,eAAe,KAAM,4BAC1B5Z,EAAK4Z,eAAe,KAAM,wBAC1B5Z,EAAK4Z,eAAe,KAAM,SAE1B,IAAIomJ,EAAiB,IAAI/lJ,kBAAkBsqJ,GAE3C71K,OAAOkQ,iBAAiB,KAAM,CAC5BgmK,sBAAuB,CACrB11K,MAAO,IAAIiS,IACXrR,UAAU,GAEZu3K,kBAAmB,CACjBn4K,MAAO,KACPY,UAAU,GAEZk4K,UAAW,CACT94K,OAAO,EACPY,UAAU,GAEZg1K,gBAAiB,CACf51K,MAAO8wK,GAET+E,mBAAoB,CAClB71K,MAAO,KACPY,UAAU,GAEZk1K,oBAAqB,CACnB91K,MAAO,KACPY,UAAU,GAEZm1K,yBAA0B,CACxB/1K,MAAO,IAAIiS,IACXrR,UAAU,GAEZq1K,qBAAsB,CACpBj2K,MAAO,IAAIw1G,GAEb0gE,eAAgB,CACdl2K,MAAO,IAAIiS,IACXrR,UAAU,GAEZy3K,kBAAmB,CACjBr4K,MAAO,KACPY,UAAU,GAEZu1K,iBAAkB,CAChBz1K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK49J,oBAAsB,KAAKD,gBAAgBO,gBACzD,GAEFrlD,mBAAoB,CAClBpwH,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK6gK,UAAY,SAAW,KAAKlD,gBAAgB9kD,kBAC1D,GAEFkoD,kBAAmB,CACjBt4K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK6gK,UAAY,WAAa,KAAKlD,gBAAgBoD,iBAC5D,GAEF5C,kBAAmB,CACjB11K,YAAY,EACZuX,IAAK,WACH,OAAO,KAAK69J,qBAAuB,KAAKF,gBAAgBQ,iBAC1D,GAEFC,eAAgB,CACd31K,YAAY,EACZuX,IAAK,WACH,OAAI,KAAK6gK,UACA,SACE,KAAKjD,mBACP,mBACE,KAAKC,oBACP,oBAEF,KAAKF,gBAAgBS,cAC9B,KAIJ,IAAIp1K,EAAO,KAEX6vK,EAAe90J,iBAAiB,eAAe,SAAuBlE,GACpEw+J,EAAgBx+J,EAAM4hC,SACtBz4C,EAAKgb,cAAcnE,EACrB,IAEAg5J,EAAe90J,iBAAiB,4BAA4B,WACtD/a,EAAK63K,WAGT73K,EAAKgb,cAAc/S,MAAMjI,EAAMgI,UACjC,IAEA6nK,EAAe90J,iBAAiB,wBAAwB,WAClD/a,EAAK63K,YAG6B,WAAlChI,EAAeuF,iBACjBp1K,EAAKy0K,sBAAwB,IAAIzjK,IAAIhR,EAAKi1K,iBAEvCj1K,EAAK40K,oBAAuB50K,EAAK60K,qBACpC70K,EAAKgb,cAAc/S,MAAMjI,EAAMgI,WAEnC,IAMA6nK,EAAe90J,iBAAiB,SAAS,SAAiBlE,GACxD7W,EAAK60K,oBAAsB,KAC3B70K,EAAKgb,cAAcnE,EACrB,IAEAhH,EAAKgL,gBAAgBiP,kBAAkBtrB,UAAW,KAAMqxK,EAC1D,CAwIA,SAAS2F,EAAe3F,EAAgBn7J,EAAOy/F,GAiB7C,IAhB8BshE,EAgB1BC,EAAoBhhK,EAAQm7J,EAAe+E,mBAAqB/E,EAAegF,oBAC/Ec,EAAqBjhK,EAAQm7J,EAAegF,oBAAsBhF,EAAe+E,mBACjFgB,EAAoBlhK,EAAQ,mBAAqB,oBACjDmhK,EAAsBnhK,EAAQ,sBAAwB,uBAE1D,IAAKA,GAASihK,GAA2C,WAArBxhE,EAAYvzG,KAC9C,OA2CJ,SAAyBivK,EAAgBiG,GACvC,IAAIJ,EAAoB7F,EAAe+E,mBACvC,OAAO/E,EAAe8E,gBAAgBkB,oBAAoBH,GAAmBtzK,MAAK,WAEhF,OADAytK,EAAe+E,mBAAqB,KAC7B/E,EAAekG,qBAAqBD,EAC7C,IAAG1zK,MAAK,WACNytK,EAAemF,qBAAqBtgE,OACtC,GACF,CAnDWshE,CAAgBnG,EAAgB17D,GAClC,GAAyB,UAArBA,EAAYvzG,KAAkB,CACvC,GAAIivK,EAAeuF,iBAAmBQ,GAAuD,WAAlC/F,EAAeuF,eACxE,OAAO9vK,QAAQtD,OAAO,IAAIU,MAAM,eAAiBgS,EAAQ,QAAU,UACjE,mBAAqBm7J,EAAeuF,iBAGnCM,GAAmE,QAA9C7F,EAAemF,qBAAqBvyK,OAC5DotK,EAAemF,qBAAqBrgE,QAEtC,IAAIshE,EAAyBpG,EAAeuF,eAI5C,OApC4BK,EAiCPthE,EAhCjBz/F,EACFm7J,EAAe+E,mBAAqBa,EAEpC5F,EAAegF,oBAAsBY,EAgCnC5F,EAAeuF,iBAAmBa,EAC7B3wK,QAAQvD,UAAUK,MAAK,WAC5BytK,EAAe70J,cAAc,IAAIk7J,MAAM,wBACzC,IAGK5wK,QAAQvD,S,CACV,MAAyB,aAArBoyG,EAAYvzG,KACjBivK,EAAeuF,iBAAmBQ,EAC7BtwK,QAAQtD,OAAO,IAAIU,MAAM,oBAC7BgS,EAAQ,QAAU,UAAY,mBAAqBm7J,EAAeuF,kBArCnE1gK,EACFm7J,EAAe+E,mBAAqB,KAEpC/E,EAAegF,oBAAsB,KA0CvChF,EAAeiF,yBAA2B,IAAI9jK,IAAI6+J,EAAeoF,gBACjEpF,EAAeoF,eAAiB,IAAIjkK,IAAI6+J,EAAe4E,uBAEhDnvK,QAAQvD,UAAUK,MAAK,WAC5BytK,EAAe70J,cAAc,IAAIk7J,MAAM,wBACzC,KAGKrG,EAAe8E,gBAAgBkB,GAAqB1hE,EAC7D,CAmBA,SAASgiE,EAA4BtG,EAAgB77J,GACnD,QAAS67J,EAAeuG,kBAAkBphI,MAAK,SAASqhI,GACtD,OAAOA,EAAYhzI,UAAYgzI,EAAYhzI,SAAS/tB,OAAS+gK,EAAYhzI,SAAS/tB,MAAMtB,OAASA,CACnG,GACF,CAOA,SAASqhK,EAAgBmB,GACvB,OAAOj4K,OAAOkQ,iBAAiB+nK,EAAa,CAC1Cv3D,kBAAmB,CACjBlgH,MAAyC,QAAlCy3K,EAAYv3D,kBACf,KACAu3D,EAAYv3D,mBAElBC,eAAgB,CACdngH,MAAsC,QAA/By3K,EAAYt3D,eACf,KACAs3D,EAAYt3D,iBAGtB,CAjPAl0E,EAASutI,EAAyB3jG,GAElC2jG,EAAwB/5K,UAAUq4K,gBAAkB,SAAyBC,GAC3E,IAAI92K,EAAO,KACX,MAA4B,sBAAxB,KAAKo1K,eACA,KAAKJ,qBAAqBj+H,KAAK,OAAO30C,MAAK,WAChD,OAAOpC,EAAK20K,gBAAgBkC,gBAAgBC,EAC9C,IAEK,KAAKnC,gBAAgBkC,gBAAgBC,EAC9C,EAEAyB,EAAwB/5K,UAAUw4K,YAAc,SAAqBjtK,GACnEA,EAAUxL,OAAOgT,OAAO,GAAIxH,GAC5B,IAAI/J,EAAO,KAIX,GAAI+J,EAAQktK,sBAAwB,KAAKC,qBAAuBhD,IAAiBiC,EAA4B,KAAM,UAAW,QACrHpsK,EAAQotK,oBACf,IACE,KAAKD,kBAAoBhD,EACrB,KAAK15H,eAAe,QAAS,CAAEe,UAAW,aAC1C,KAAKf,eAAe,Q,CACxB,MAAO9sC,GACP,OAAOpI,QAAQtD,OAAO0L,E,EAI1B,GAAI3D,EAAQktK,sBAAwB,KAAKG,qBAAuBlD,IAAiBiC,EAA4B,KAAM,UAAW,QACrHpsK,EAAQktK,oBACf,IACE,KAAKG,kBAAoBlD,EACrB,KAAK15H,eAAe,QAAS,CAAEe,UAAW,aAC1C,KAAKf,eAAe,Q,CACxB,MAAO9sC,GACP,OAAOpI,QAAQtD,OAAO0L,E,EAI1B,OAAO,KAAKinK,gBAAgBqC,YAAYjtK,GAAS3H,MAAK,SAASqzK,GAK7D,OAFAz1K,EAAK80K,yBAAyB9+H,QAEvB,IAAI5B,sBAAsB,CAC/BxzC,KAAM60K,EAAM70K,KACZq6C,IAAKmB,EAAsBp8C,EAAKi1K,eAAgBQ,EAAMx6H,MAE1D,GACF,EAEAs9H,EAAwB/5K,UAAUu4K,aAAe,SAAsBhtK,GACrE,IAAI/J,EAAO,KAEX,OAAI,KAAK60K,oBACA,KAAKF,gBAAgBoB,qBAAqB,KAAKlB,qBAAqBzyK,MAAK,WAE9E,OADApC,EAAKg1K,qBAAqBtgE,QACnB10G,EAAK20K,gBAAgBoC,cAC9B,IAAG30K,MAAK,SAA+B0zK,GAOrC,OANA91K,EAAK60K,oBAAsB,KAI3B70K,EAAK80K,yBAAyB9+H,QAEvBk+H,EAAgB,IAAI9/H,sBAAsB,CAC/CxzC,KAAMk1K,EAAOl1K,KACbq6C,IAAKmB,EAAsBp8C,EAAKi1K,eAAgBa,EAAO76H,OACpD66H,CACP,IAAG,SAAkDxzK,GAEnD,MADAtC,EAAK60K,oBAAsB,KACrBvyK,CACR,IAGK,KAAKqyK,gBAAgBoC,aAAahtK,GAAS3H,MAAK,SAA+B0zK,GAKpF,OAFA91K,EAAK80K,yBAAyB9+H,QAEvBk+H,EAAgB,IAAI9/H,sBAAsB,CAC/CxzC,KAAMk1K,EAAOl1K,KACbq6C,IAAKmB,EAAsBp8C,EAAKi1K,eAAgBa,EAAO76H,OACpD66H,CACP,GACF,EAEAyC,EAAwB/5K,UAAU64K,kBAAoB,SAA2BC,EAAOC,GACtF,IAAIf,EAAc,KAAK7B,gBAAgB0C,kBAAkBC,EAAOC,GAEhE,OADAlC,EAAgBmB,GACTA,CACT,EAEA+B,EAAwB/5K,UAAU44G,YAAc,SAAqBkF,GACnEA,EAAOG,aAAa,MACpB,KAAKk4D,gBAAgBv9D,YAAYkF,EACnC,EAEAi8D,EAAwB/5K,UAAUq3K,oBAAsB,SAA6B1hE,GAOnF,OAJI,KAAK2gE,yBAAyB59J,KAAO,IACvC,KAAK+9J,eAAiB,IAAIjkK,IAAI,KAAK8jK,0BACnC,KAAKA,yBAAyB9+H,SAEzBw/H,EAAe,MAAM,EAAMrhE,EACpC,EAEAokE,EAAwB/5K,UAAUu3K,qBAAuB,SAA8B5hE,GAIrF,OADA,KAAK2gE,yBAAyB9+H,QACvBw/H,EAAe,MAAM,EAAOrhE,EACrC,EAEAokE,EAAwB/5K,UAAUi8C,MAAQ,WACxC,IAAI,KAAKo9H,UAAT,CAGA,KAAKA,WAAY,EACjB,KAAKlD,gBAAgBl6H,QACrB,IAAIz6C,EAAO,KACX6Z,YAAW,WACT7Z,EAAKgb,cAAc,IAAIk7J,MAAM,6BAC7Bl2K,EAAKgb,cAAc,IAAIk7J,MAAM,wBAC/B,G,CACF,EAEArmK,EAAK+K,gBACHkP,kBAAkBtrB,UAClB+5K,EAAwB/5K,UACxB,mBA+GFqe,EAAOxe,QAAUk6K,C,+BCjYjB,GAAqC,oBAA1BnkI,sBAET,QAAQr4B,EADWrM,EAAQ,IAAWqM,iBAEpC,IAAK,SACHc,EAAOxe,QAAUqR,EAAQ,KACzB,MACF,IAAK,UACHmN,EAAOxe,QAAUqR,EAAQ,KACzB,MACF,QACEmN,EAAOxe,QAAU+1C,2BAIrBv3B,EAAOxe,QAAU,WACf,MAAM,IAAIqE,MAAM,yCAClB,C,+BCdF,IAAMsoC,EAAWt7B,EAAQ,IACnB8oK,EAAuB9oK,EAAQ,KAErC,SAAS6F,EAAgBogG,EAAkB5rG,GACzC,IAAMuL,EAAQ,IAAIkjK,EAAqB7iE,EAAkB5rG,GAEzD,OADAxL,OAAO2G,eAAeoQ,EAAOC,EAAgB/W,WACtC8W,CACT,CAEA01B,EAASz1B,EAAiBijK,GAE1B37J,EAAOxe,QAAUkX,C,ohBCdT,EAAU7F,EAAQ,IAA8B,MAClDmlG,EAAanlG,EAAQ,KAuB3B,cAME,WAAYimG,EAAkB5rG,GAA9B,WACQ0hK,GAA2B,OAAP,QAAO,IAAP1hK,OAAO,EAAPA,EAAS0hK,oBAAqB,KAG1CthK,GAFdqO,cAAMm9F,EAAkB5rG,IAAQ,MAEN,KAClB,EAAmC4rG,EAAgB,MAA5C8iE,OAAkB,MAAG,GAAE,EAChC,EAAmE9iE,EAAiB35F,cAAlF1K,aAAUonK,OAAe,MAAG,GAAE,EAAEtmK,YAASumK,OAAc,MAAG,GAAE,E,OAEpEp6K,OAAOkQ,iBAAiB+J,EAAM,CAC5BogK,0BAA2B,CACzB75K,MAAO,CAAEmd,SAAUw8J,EAAiB9uE,QAAS+uE,EAAgBrB,MAAOmB,GACpE94K,UAAU,GAEZk5K,0BAA2B,CACzB95K,OAAQ41C,KACHn8B,EAAK2hG,+BACgB,kBAAdnqG,WAC2B,kBAA3BA,UAAU4Z,cACkC,oBAA5C5Z,UAAU4Z,aAAa7O,kBACqB,oBAA5C/K,UAAU4Z,aAAakvJ,kBACxB,OAAP,QAAO,IAAP/uK,OAAO,EAAPA,EAASihK,2BAA4B,OACrC,UAEN+N,gBAAiB,CACfh6K,MAAO,WACLiR,UAAU4Z,aAAakvJ,mBAAmB12K,MAAK,YAK7C,IAAM42K,EAAoBC,EAAYjkI,MAAK,SAAC3jC,G,IAAE6K,EAAQ,WACpD,MAAgB,eAD0C,QACb,YAAbA,CAClC,IAEI88J,GAAqB,CAAC,WAAY,WAAWn7F,MAAK,YACpD,OAAOm7F,EAAkBrnK,KAAU6G,EAAKogK,0BAA0BjnK,EACpE,MACExH,EAAI7G,KAAK,0DACT6G,EAAImrD,MAAM,wBAAwB98C,EAAKogK,0BAA0B18J,SAAQ,SAAS1D,EAAKogK,0BAA0BtB,MAAK,KACtHntK,EAAImrD,MAAM,wBAAwB0jH,EAAkB98J,SAAQ,SAAS88J,EAAkB1B,MAAK,KAC5F9+J,EAAKogK,0BAA4BI,EACjCxgK,EAAK0gK,wBAAwBxtK,OAAM,YAAS,SAAIa,KAAK,sBAAsBjK,EAAM2J,QAArC,IAEhD,IAAG,YACD9B,EAAIoC,KAAK,qCAAqCjK,EAAM2J,QACtD,GACF,GAEFktK,qCAAsC,CACpCp6K,MAAO,KACPY,UAAU,GAEZ8rK,kBAAmB,CACjBhsK,YAAY,EACZV,MAAO0sK,EACP9rK,UAAU,KAIdwK,EAAImrD,MAAM,4BAA6B98C,EAAKqgK,2BAC5CrgK,EAAK4gK,qC,CACP,CA0KF,OA7O8B3gK,OAqE5BlD,qBAAA,WACE,MAAO,qBAAqB,KAAKmjC,YAAW,KAAK,KAAKO,GAAE,GAC1D,EAEA1jC,mBAAA,SAAO+gG,GAGL,OAFAA,EAAK3mE,YAAMy6D,OAAOvpG,KAAK,KAAMy1G,IAC1BH,OAAQ,EACJG,CACT,EAKA/gG,iBAAA,WACE,OAAOo6B,YAAMumE,KAAKjuG,MAAM,KAAMD,UAChC,EAKAuN,+CAAA,sBACQ,EAAgG,KAAhF+kG,EAAW,eAA6B0wD,EAAwB,4BAAQ7gK,EAAG,OAEzF,GADiB,KAAKshK,kBAAoB,KAAKA,kBAAkBkC,YAAc,KAAKh4D,kBACtD35F,cAAa,SAE7Cq9J,EAA+C,SAAAC,GACnD,OAAOA,IAAsBp9J,GAAkC,YAAtBo9J,CAC3C,EAEMC,EAAgC,SAASC,EAAkCC,GAC/E,YAD+E,QAAAA,MAC7C,kBAAvBA,EACFJ,EAA6CI,GAC3C3qK,MAAMC,QAAQ0qK,GAChBA,EAAmB5gK,MAAMwgK,GACvBI,EAAmBC,MACrBF,EAAkCC,EAAmBC,QACnDD,EAAmBE,OACrBH,EAAkCC,EAAmBE,MAGhE,CAXsC,CAWpCr/D,EAAYp+F,UAEmB,SAA7B8uJ,GAAuCuO,EACpC,KAAKJ,uCACRhvK,EAAI7G,KAAK,mEACT0M,UAAU4Z,aAAa7O,iBAAiB,eAAgB,KAAKg+J,iBAC7D,KAAKI,qCAAuC,WAC1ChvK,EAAI7G,KAAK,yFACT0M,UAAU4Z,aAAapN,oBAAoB,eAAgBhE,EAAKugK,iBAChEvgK,EAAK2gK,qCAAuC,IAC9C,IAGFhvK,EAAI7G,KAAK,uEACL,KAAK61K,sCACP,KAAKA,uCAGX,EAKA5jK,4BAAA,SAAgB+kG,GAAhB,WAEE,OADA,KAAK3hE,KAAK2c,MAAM,oBAAqBglD,GACjC,KAAKmxD,kBACA,KAAKA,kBAAkBmO,gBAAe,WAC3C,OAAOjqI,YAAM6qE,gBAAgB35G,KAAK2X,EAAM8hG,EAC1C,IAGK3qE,YAAM6qE,gBAAgB35G,KAAK,KAAMy5G,EAC1C,EAKA/kG,kCAAA,sBACQ+kG,EAAc/7G,OAAOgT,OAAO,GAAI,KAAKuoG,cACrC+/D,EAAqBt7K,OAAOgT,OAAO,GAAI+oG,EAAa,CAAEp+F,SAAU,KAAK08J,0BAA0B18J,WACrG,OAAO,KAAK49J,QAAQD,GAAoBz3K,MAAK,WAI3CoW,EAAKshG,aAAeQ,EACpB9hG,EAAK4gK,oCACP,GACF,EAOA7jK,oBAAA,WACE,OAAOo6B,YAAMw6D,QAAQliG,MAAM,KAAMD,UACnC,EAeAuN,mBAAA,WACE,OAAOo6B,YAAMyyC,OAAOn6E,MAAM,KAAMD,UAClC,EAoCAuN,oBAAA,WACE,OAAOo6B,YAAMmqI,QAAQ7xK,MAAM,KAAMD,UACnC,EAQAuN,iBAAA,WAOE,OANI,KAAKk2J,mBACP,KAAKA,kBAAkBxlK,OAErB,KAAKkzK,sCACP,KAAKA,uCAEAxpI,YAAM1pC,KAAKgC,MAAM,KAAMD,UAChC,EACF,EA7OA,CAtB6B0H,EAAQ,IAERqqK,CAAqBllE,IA+RlDh4F,EAAOxe,QAAUkX,C,+BCnSjB,IAAMkjG,EAAgB/oG,EAAQ,KA2C9BmN,EAAOxe,QAjCP,SAA2Bi4G,GAGzB,IAAMl2D,EAAsB1wC,EAAQ,IAC9B2wC,EAAS,GACTu6D,EAAex6D,EAAoBy7D,YAAYx7D,GAEjD25H,EAfa,EAoCjB,OAnBA,SAASx+D,IAEP,OADAw+D,IACOvhE,EAAcmC,EAActE,EAAGD,UAlBd,KAkB8Cj0G,MAAK,YACzE,QAAK22G,MAGDihE,EAAe,IACVx+D,IAGX,IAAG9vG,OAAM,WAGP,OAAO,CACT,GACF,CAIO8vG,GAAiBrlC,SAAQ,WAC9B/1B,EAAoBR,QAAQS,EAC9B,GACF,C,+BCtCA,IAAMrV,EAAWt7B,EAAQ,IAEnBuqK,EAAuBvqK,EAAQ,KAErC,SAAS8F,EAAgBmgG,EAAkB5rG,GACzC,IAAMuL,EAAQ,IAAI2kK,EAAqBtkE,EAAkB5rG,GAEzD,OADAxL,OAAO2G,eAAeoQ,EAAOE,EAAgBhX,WACtC8W,CACT,CAEA01B,EAASx1B,EAAiBykK,GAE1Bp9J,EAAOxe,QAAUmX,C,ohBCfT,EAAU9F,EAAQ,IAA8B,MAClDyoG,EAAoBzoG,EAAQ,KAC5BqqK,EAAuBrqK,EAAQ,KAC/B2tG,EAAa3tG,EAAQ,KACnB,EAAqBA,EAAQ,GAAa,iBAmBlD,cAME,WAAYimG,EAAkB5rG,GAA9B,W,OACEA,EAAUxL,OAAOgT,OAAO,CACtB2oK,2BAA4BvlI,KACvB14B,EAAiB05F,IACG,qBAAbrtG,UAC2B,oBAA3BA,SAASq5C,eACpB53C,GAEHyO,cAAMm9F,EAAkB5rG,IAAQ,KAEhCxL,OAAOkQ,iBAAiB+J,EAAM,CAC5B2hK,4BAA6B,CAC3Bp7K,MAAOgL,EAAQmwK,2BACXA,EACA,MAENE,mCAAoC,CAClCr7K,MAAO,KACPY,UAAU,KAOV6Y,EAAK2hK,8BACP3hK,EAAK4hK,mCAAqC5hK,EAAK2hK,4BAA4B3hK,EAAMlQ,W,CAErF,CAqNF,OAvP8BmQ,OAoC5BjD,qBAAA,WACE,MAAO,qBAAqB,KAAKkjC,YAAW,KAAK,KAAKO,GAAE,GAC1D,EAKAzjC,qCAAA,WACE,OAAOm6B,YAAM4tE,yBAAyB18G,KAAK,KAAM,KAAKu5G,aAAa8B,aACrE,EAKA1mG,iBAAA,WACE,OAAOm6B,YAAMumE,KAAKjuG,MAAM,KAAMD,UAChC,EAKAwN,uCAAA,SAA2B6kK,GAA3B,WACQC,EAAmB,KAAK3kE,iBACxBA,EAAmB0kE,EAAe,KAAKzkE,eAAiB0kE,EAE9D,OAAO,KAAKlgE,aAAaO,oBAAoBhF,GAC1CjqG,OAAM,YAAS,SAAKitC,KAAKpsC,KACxB,6DAA8D,CAAEjK,MAAK,EAAEqzG,iBAAgB,GADzE,IAEfvzG,MAAK,WACJoW,EAAKi9F,kBAAoB4kE,EAAeC,EAAmB,IAC7D,GACJ,EAsBA9kK,yBAAA,WACE,KAAKmjC,KAAK2c,MAAM,gDAChB,IAAMpzD,EAASytC,YAAM0uE,aAAap2G,MAAM,KAAMD,WAE9C,OAAK,KAAK4tG,gBAIV,KAAKj9D,KAAK2c,MAAM,kFAAoF,KAAKsgD,gBACzG,KAAK2kE,4BAA2B,GAEzBr4K,GANE,KAAKy2C,KAAKpsC,KAAK,wDAO1B,EAwBAiJ,4BAAA,sBACE,KAAKmjC,KAAK2c,MAAM,oDAChB,IAAMpzD,EAASytC,YAAMyuE,gBAAgBn2G,MAAM,KAAMD,WAMjD,OAJA,KAAK2wC,KAAK2c,MAAM,kFAChB,KAAKilH,6BACFn4K,MAAK,WAAM,SAAK08G,iCAAL,IAEP58G,CACT,EAQAsT,oBAAA,WACE,IAAMtT,EAASytC,YAAMw6D,QAAQliG,MAAM,KAAMD,WAIzC,OAHI,KAAK4tG,iBACP,KAAKA,eAAerN,SAAU,GAEzBrmG,CACT,EAiBAsT,mBAAA,SAAO+yF,QAAA,QAAAA,MACL,IAAMrmG,EAASytC,YAAMyyC,OAAOn6E,MAAM,KAAMD,WAUxC,OATI,KAAK4tG,iBACP,KAAKA,eAAerN,QAAUA,EAE1BA,IACF,KAAKwW,iBACL,KAAKpmE,KAAK2c,MAAM,kFAAoF,KAAKsgD,gBACzG,KAAK2kE,4BAA2B,KAG7Br4K,CACT,EAoCAsT,oBAAA,sBACM,KAAK4kK,qCACP,KAAKA,qCACL,KAAKA,mCAAqC,MAG5C,IAAMz/J,EAAUg1B,YAAMmqI,QAAQ7xK,MAAM,KAAMD,WAY1C,OAXI,KAAKwxD,WACP7+C,EAAQvY,MAAK,WACXoW,EAAKgmG,mBACP,IAGE,KAAK27D,6BACPx/J,EAAQw7D,SAAQ,WACd39D,EAAK4hK,mCAAqC5hK,EAAK2hK,4BAA4B3hK,EAAMlQ,SACnF,IAEKqS,CACT,EAQAnF,iBAAA,WAKE,OAJI,KAAK4kK,qCACP,KAAKA,qCACL,KAAKA,mCAAqC,MAErCzqI,YAAM1pC,KAAKgC,MAAM,KAAMD,UAChC,EACF,EAvPA,CAjB6B+xK,EAAqB18D,IAkRlD,SAAS68D,EAA2BM,EAAiBhhF,GAC3C,IAAMrvF,EAAQqwK,EAAe,KACrBlkE,EAAyBkkE,EAAe,SAApC7kE,EAAqB6kE,EAAe,iBAExD,SAASC,IACFD,EAAgB7jG,YAGrBxsE,EAAI7G,KAAK,6BAGTgzG,EAAGK,OAAOv0G,MAAK,WAAM,SAAkBk0G,EAAI9c,EAAtB,IAA4Bp3F,MAAK,YACpD,GAAK22G,EAaL,OATA5uG,EAAIoC,KAAK,gCAKTiuK,EAAgB9kG,QAIT8kG,EAAgBthE,WAZrB/uG,EAAI7G,KAAK,oDAab,IAAGoI,OAAM,YACPvB,EAAIoC,KAAK,wCAAyCjK,EACpD,IAAG6zE,SAAQ,YAETmgC,EAAKkkE,EAAgBtlE,YACVoB,EAAG1xB,QACZ0xB,EAAGrxB,QAIL0wB,EAAiBn5F,oBAAoB,SAAUi+J,IAC/C9kE,EAAmB6kE,EAAgB7kE,kBAClB56F,iBAAiB,SAAU0/J,EAC9C,IACF,CAKA,OAFA9kE,EAAiB56F,iBAAiB,SAAU0/J,GAErC,WACL9kE,EAAiBn5F,oBAAoB,SAAUi+J,EACjD,CACF,CA8BA59J,EAAOxe,QAAUmX,C,ohBCtWT,EAAiB9F,EAAQ,IAAS,aAClC,EAA8CA,EAAQ,IAAuB,0CAQrF,cAME,WAAYvF,GAAZ,MACEwlC,cAAO,K,OAEPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5BkiK,mBAAoB,CAClB37K,MAAO,KACPY,UAAU,GAEZg7K,sBAAuB,CACrB57K,MAAO,KACPY,UAAU,GAEZg5C,KAAM,CACJ55C,MAAOoL,GAETywK,eAAgB,CACd77K,MAAO,KACPY,UAAU,GAEZk7K,OAAQ,CACN97K,MAAO,KACPY,UAAU,KAId6Y,EAAK7B,GAAG,OAAO,YACb6B,EAAKkiK,mBAAqBvuK,KAAKg/B,MAC/B3yB,EAAKmiK,sBAAwBxuK,KAAKg/B,MAClC3yB,EAAKoiK,eAAiBt3K,EACtBkV,EAAKqiK,OAAS,GACdriK,EAAKsiK,aAAa,MAAOtiK,EAAKuiK,gBAChC,IAEAviK,EAAK7B,GAAG,UAAU,WAChB,IAAMhO,EAAO6P,EAAKuiK,gBAClBviK,EAAKkiK,mBAAqB,KAC1BliK,EAAKmiK,sBAAwB,KAC7BniK,EAAKoiK,eAAiB,KACtBpiK,EAAKqiK,OAAS,KACdriK,EAAKsiK,aAAa,SAAUnyK,EAC9B,IAEA6P,EAAK7B,GAAG,SAAS,WACf6B,EAAKsiK,aAAa,QAAStiK,EAAKuiK,gBAClC,IAEAviK,EAAK7B,GAAG,QAAQ,YACd6B,EAAKsiK,aAAa,OAAQv8K,OAAOgT,OAAO,CAAEtF,QAAO,GAAIuM,EAAKuiK,iBAC5D,IAEAviK,EAAK7B,GAAG,SAAS,WAAM,SAAKqkK,iBAAL,I,CACzB,CAoFF,OA7I0CviK,OA8DxCqkG,0BAAA,WACE,IAAK,KAAK89D,eACR,MAAO,GAGH,MAAiF,KAAKA,eAApFphH,EAAS,YACX7wD,EAAO,CAAE+1G,cADiB,gBACFC,aADgB,eACFC,eADkB,iBACFC,mBADsB,sBAkBlF,OAhBAl2G,EAAK3D,KAAOw0D,EAAUyhH,OAAS,iBAE/B,CAAC,aAAc,mBAAoB,UAAW,gBAAiB,iBAAkB,WAAWx5K,SAAQ,YAClG,IAAMgE,EAAM+zD,EAAU,IAAI7nD,GACP,qBAARlM,IACTkD,EAAKgJ,GAAQlM,EAEjB,IAEAlH,OAAOiH,KAAKmD,GAAMlH,SAAQ,YACxB,IAAMgE,EAAMkD,EAAKgJ,GACE,mBAARlM,IACTkD,EAAKgJ,GAAQlM,EAAM,OAAS,QAEhC,IAEOkD,CACT,EAOAm0G,4BAAA,WACE,GAAK,KAAK+9D,QAAW,KAAKD,eAA1B,CAGA,IAAMM,EAAY,KAAKN,eAAephH,UAAU2hH,WAChD,GAAKD,EAAL,CAGA,IAAM/vI,EAAMh/B,KAAKg/B,MACjB,KAAIA,EAAM,KAAKuvI,mBAAqB,KAApC,CAIA,IAAM92K,EAAQ,CAAEw3K,gBAAiBF,EAAUG,QAAQ,yBAOnD,GANA,CAAC,oBAAqB,wBAAyB,wBAAyB,oBAAqB,qBAAqB55K,SAAQ,YACxHmC,EAAMoB,GAAQk2K,EAAUI,gBAAgBt2K,EAC1C,IACA,KAAK01K,mBAAqBvvI,EAC1B,KAAK0vI,OAAO32K,KAAKN,KAEbunC,EAAM,KAAKwvI,sBAAwBh8J,GAAvC,CAGA,KAAKg8J,sBAAwBxvI,EAC7B,IACMowI,EADQ,KAAKV,OAAOrvK,OAAO,GACV2F,QAAO,SAACoqK,EAAUxjH,EAAS7oD,GAOhD,OANA3Q,OAAOiH,KAAK5B,GAAOnC,SAAQ,YACpB85K,EAASv2K,KACZu2K,EAASv2K,GAAQ,GAEnBu2K,EAASv2K,IAAUu2K,EAASv2K,GAAQkK,EAAK6oD,EAAQ/yD,KAAUkK,EAAI,EACjE,IACOqsK,CACT,GAAG,IAEHh9K,OAAOiH,KAAK+1K,GAAU95K,SAAQ,YAC5B85K,EAASv2K,GAAQyoD,WAAW8tH,EAASv2K,GAAMw2K,QAAQ,GACrD,IACA,KAAKV,aAAa,QAASv8K,OAAOgT,OAAO,GAAIgqK,EAAU,KAAKR,iB,IAC9D,EAKAj+D,yBAAA,SAAa93G,EAAM2D,GACjB,KAAKgwC,KAAK2c,MAAM,kBAAkBtwD,EAAQ2D,GAC1C,KAAKqY,KAAK,QAAS,CAAEhc,KAAI,EAAE2D,KAAI,GACjC,EACF,EA7IA,CAA0CiY,GA+I1C/D,EAAOxe,QAAUy+G,C,+BCrJjB,IAAM9xE,EAAWt7B,EAAQ,IAEnB+rK,EAAsB/rK,EAAQ,KAEpC,SAAS+F,EAAe1L,GACtB,IAAMuL,EAAQ,IAAImmK,EAAoB1xK,GAEtC,OADAxL,OAAO2G,eAAeoQ,EAAOG,EAAejX,WACrC8W,CACT,CAEA01B,EAASv1B,EAAgBgmK,GAEzB5+J,EAAOxe,QAAUoX,C,ohBCfXq/D,EAAQplE,EAAQ,IAChBgsK,EAAyBhsK,EAAQ,KAkDvC,cAKE,WAAY3F,GAAZ,MASQ4xK,EAAkB,IAAIC,GAR5B7xK,EAAUxL,OAAOgT,OAAO,CACtBqqK,gBAAiBF,EACjBz8D,kBAAmB,KACnBC,eAAgB,KAChBC,SAAS,GACRp1G,IAE6B6xK,iBAE9B7xK,EAAQk1G,kBACRl1G,EAAQm1G,eACRn1G,EAAQo1G,S,OAEV3mG,cAAMmjK,EAAgB1iI,GAAI,OAAQlvC,IAAQ,KAE1CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5B4hG,aAAc,CACZr7G,MAAO48K,GAET1iI,GAAI,CACFx5C,YAAY,EACZV,MAAO48K,EAAgB1iI,IAEzBgmE,kBAAmB,CACjBx/G,YAAY,EACZV,MAAOgL,EAAQk1G,mBAEjBC,eAAgB,CACdz/G,YAAY,EACZV,MAAOgL,EAAQm1G,gBAEjBC,QAAS,CACP1/G,YAAY,EACZV,MAAOgL,EAAQo1G,SAEjB08D,SAAU,CACRp8K,YAAY,EACZV,MAAqC,OAA9BgL,EAAQk1G,mBACiB,OAA3Bl1G,EAAQm1G,kB,CAGnB,CAUF,OAzD6BzmG,OAsD3BhD,iBAAA,SAAK9M,GACH,KAAKyxG,aAAa38C,KAAK90D,EACzB,EACF,EAzDA,CAA6BmsE,GA0E7Bj4D,EAAOxe,QAAUoX,C,ohBC7HX2pG,EAAuB1vG,EAAQ,KAC/B0J,EAAW1J,EAAQ,GAAW0J,SAQpC,cAOE,WAAY6lG,EAAmB68D,EAAgB38D,GAA/C,MACExvE,YAAMv2B,IAAY6lG,EAAmB68D,EAAgB38D,IAAQ,K,OAC7D5gH,OAAOkQ,iBAAiB+J,EAAM,CAC5BujG,QAAS,CACPh9G,MAAO,IAAIgS,KAEbgrK,cAAe,CACbh9K,MAAO,IAAIgS,O,CAGjB,CAqFF,OAtG8B0H,OAwB5BmjK,sBAAA,SAAU34J,GACR,KAAK84F,QAAQ9kG,IAAIgM,EACnB,EAMA24J,wBAAA,SAAY34J,GACV,KAAK84F,QAAQ9kE,OAAOh0B,EACtB,EAOA24J,2BAAA,SAAepF,GAEb,OADA,KAAKuF,cAAc9kK,IAAIu/J,GAChB,IACT,EASAoF,kBAAA,sBACQ34J,EAAQ,IAAI24J,EAChB,KAAK38D,kBACL,KAAKC,eACL,KAAKC,SAGP,OAFA,KAAK68D,UAAU/4J,GACfA,EAAM5I,KAAK,WAAW,WAAM,SAAK4hK,YAAYh5J,EAAjB,IACrBA,CACT,EAOA24J,8BAAA,SAAkBpF,GAEhB,OADA,KAAKuF,cAAc9kI,OAAOu/H,GACnB,IACT,EAQAoF,iBAAA,SAAKjzK,GAeH,OAdA,KAAKozK,cAAct6K,SAAQ,YACzB,IACE+0K,EAAY/4G,KAAK90D,EAEjB,CADA,MAAOrG,GACP,CAEJ,IACA,KAAKy5G,QAAQt6G,SAAQ,YACnB,IACEwhB,EAAMw6C,KAAK90D,EAEX,CADA,MAAOrG,GACP,CAEJ,IACO,IACT,EAEAs5K,iBAAA,WACE,KAAKG,cAAct6K,SAAQ,YAAe,SAAYg5C,OAAZ,IAC1C,KAAKshE,QAAQt6G,SAAQ,YAAS,SAAMwE,MAAN,IAC9B0pC,YAAM1pC,KAAI,UACZ,EACF,EAtGA,CAA8Bm5G,GAwG9BviG,EAAOxe,QAAUu9K,C,4sECnHjB,YAGA,SAEA,SACA,SACA,SACA,SACA,SACA,SACA,OAEQ,EAAclsK,EAAQ,IAAoB,UAC5Ci9B,EAAMj9B,EAAQ,IACdkR,EAAelR,EAAQ,IACvBq0G,EAAqBr0G,EAAQ,KAC7B+0G,EAAgB/0G,EAAQ,KACxBo2G,EAAoBp2G,EAAQ,KAC5B,EAA4BA,EAAQ,KAAlCskG,EAAS,YAAEpgG,EAAU,aACvB,EAGFlE,EAAQ,IAFV2gC,EAA+B,kCAC/B0C,EAAoB,uBAUhBmpI,EAIW,gBAJXA,EASO,YATPA,EAca,kBAdbA,EAmBU,eAnBVA,EAyBW,gBAzBXA,EA+BqB,0BA/BrBA,EAoCU,eAwBhB,SAASC,EAAiBp9K,GACxB,OAAiB,OAAVA,GAAmC,qBAAVA,CAClC,CAEA,IAAIw5C,EAAa,EAWjB,cAqBE,WAAYtuC,EAAeF,GAA3B,MACE4lC,cAAO,KApBDn3B,cAAc,IAAI4jK,QAClB5jK,cAAc,IAAI4jK,QAClB5jK,aAAa,IAAI4jK,QACjB5jK,wBAAwB,IAAI4jK,QAC5B5jK,eAAe,IAAI4jK,QACnB5jK,iBAAiB,IAAI4jK,QACrB5jK,0BAA0B,IAAIurG,EAC9BvrG,2BAA2B,IAAIurG,EAC/BvrG,kBAAmC,GACnCA,8BAA8B,IAAIurG,EAYxC,IAAMpmE,EAAkB5zC,EAChB,EAA2E4zC,EAAe,YAA1F9/B,OAAW,MAAG,OAAM,EAAE1J,EAAqDwpC,EAAe,OAApE7/B,OAAM,MAAG,MAAK,EAAExM,EAAqCqsC,EAAe,SAApDivD,OAAQ,MAzG5B,IAyGoD,EAExEyvE,EAAW1+H,EAAgB0+H,UAAYz+J,EAAUC,EAAaC,G,OAEpEtF,EAAKmgC,KAAO,IAAIhM,EAAI,UAAWn0B,EAAM8jK,oBAAmBA,uBACxD9jK,EAAK+jK,cAAgB3vE,EACrBp0F,EAAKkgC,YAAcH,IACnB//B,EAAKgkK,YAAY3mI,QACjBr9B,EAAKikK,kBAAkBxyK,EAAO4T,EAAaw+J,G,CAC7C,CAoUF,OArWmC5jK,OAmCjCikK,qBAAA,WACE,MAAO,eAAe,KAAKhkI,YAAW,GACxC,EAKAgkI,iBAAA,WACE,KAAKC,UAAW,CAClB,EAEQD,qCAAR,SAAiCE,GAE/B,OADA,KAAKJ,YAAYv2K,OACV,CACL42K,WAAY,KAAKL,YAAYM,qBAC7BC,cAAe,CACbC,KAAM,KAAKC,YAAYH,qBACvBI,IAAK,KAAKC,WAAWL,qBACrBjN,eAAgB,KAAKuN,sBAAsBN,qBAC3Cx/H,QAAS,KAAK+/H,eAAeP,qBAC7BzhK,MAAO,KAAKiiK,aAAaR,sBAE3BvO,MAAO,CACL5yJ,OAAQ4hK,WAAuB,OAAdX,QAAc,IAAdA,OAAc,EAAdA,EAAgBjhK,QACjC8yG,IAAK8uD,WAAuB,OAAdX,QAAc,IAAdA,OAAc,EAAdA,EAAgBnuD,KAC9B+uD,WAAYD,WAAuB,OAAdX,QAAc,IAAdA,OAAc,EAAdA,EAAgBY,aAEvCC,8BAA+Bb,EAAiBA,EAAea,8BAAgC,KAC/FC,kBAAmBd,EAAiBA,EAAec,kBAAoB,GACvEC,eAAgB,KAAKC,gBAErBC,IAAKN,WAAuB,OAAdX,QAAc,IAAdA,OAAc,EAAdA,EAAgBiB,KAElC,EAEcnB,kCAAd,SAAuCoB,EAAkBvuK,EAA0BwuK,G,sGAGjF,GAFA,KAAKplI,KAAK2c,MAAM,mBAAoBwoH,GAC9BE,EAAoB,KAAKzB,cAAgB,IAC3C,KAAKI,SACP,MAAM,IAAIj6K,MAAM,WAGZu7K,EAAc34K,QAAQvD,UAAUK,KAAKmN,GACvCohF,EAAuB,KACrButF,EAAiB,IAAI54K,SAAQ,SAAC64K,EAAUn8K,GAC5C2uF,EAAQ92E,YAAW,WACjB7X,EAAO+7K,GAAgB,IAAIr7K,MAASo7K,EAAQ,aAC9C,GAAGE,EACL,I,iBAEiB,O,sBAAA,GAAM14K,QAAQmxG,KAAK,CAACynE,EAAgBD,K,OACnD,SADe5sK,U,cAGD,OAAVs/E,GACF/2E,aAAa+2E,G,6BAKX+rF,mCAAR,SAA+BniI,GAA/B,WACE,OAAO,IAAIj1C,SAAQ,YACjB,IAAI84K,EAEJ7jI,EAAGx/B,iBAAiB,4BAA4B,WAChB,aAA1Bw/B,EAAGs1E,oBACLr3G,EAAK2kK,WAAWtnI,QAEY,cAA1B0E,EAAGs1E,qBACLr3G,EAAK2kK,WAAWl3K,OAChBuS,EAAK6lK,gBAAgBnC,KAChBkC,GAAiBA,GAAyC,cAAxBA,EAAc37K,QACnDV,IAGN,IAGAw4C,EAAGx/B,iBAAiB,yBAAyB,WAChB,eAAvBw/B,EAAGq1E,iBACLp3G,EAAK4kK,sBAAsBvnI,QAEF,cAAvB0E,EAAGq1E,kBACLp3G,EAAK4kK,sBAAsBn3K,OAC3BuS,EAAK6lK,gBAAgBnC,GAEzB,IAGA,IACIoC,EADU/jI,EAAGq8H,aACO/lK,KAAI,YAAU,SAAOytK,SAAP,IAAkBtpI,KAAKmnI,GACpC,qBAAdmC,IACTF,EAAgBE,GACFvjK,iBAAiB,eAAe,WAChB,eAAxBqjK,EAAc37K,OAChB+V,EAAKykK,YAAYpnI,QAES,cAAxBuoI,EAAc37K,QAChB+V,EAAKykK,YAAYh3K,OACjBuS,EAAK6lK,gBAAgBnC,GACS,cAA1B3hI,EAAGs1E,oBACL9tH,IAGN,GAEJ,GACF,EAEQ26K,2BAAR,SAAuBrrK,G,IAAEpH,EAAK,QAAEkK,gBAAA0J,OAAW,MAAGy+J,sBAAmB,EAAEhrK,UAAAuzG,OAAK,MAAGy3D,gBAAa,EAMhFiC,EAAiB,IAAIz4D,EACzB77G,EACAqyK,WACAA,cACAz+J,EACAgnG,EAN4B,IAU9B05D,EAAejhI,QAAQ,qBAAsB,yBAC7C,IAAMgkE,EAAgB,IAAImD,EAAc85D,EAAgBpyK,KAAKg/B,MAAO,KAAKwN,MAGnE6lI,OAAiBp7K,EACvB,MAAO,CACLq7K,iBAAkB,SAACptK,G,QAAEy6G,EAAM,SACnB4yD,EAAc5yD,EAAOyiD,MAAM5yJ,QAAU6iK,EACrCG,EAAW7yD,EAAOyiD,MAAM9/C,KAAO+vD,EAC/BI,EAAkB9yD,EAAOyiD,MAAMiP,YAAcgB,EAC7CK,EAAY/yD,EAAO+xD,KAAOW,EAG1BM,EAA2B,IAAI9tK,IACrC86G,EAAO4xD,kBAAkBj8K,SAAQ,YAC/B,GAAIs9K,EAAeC,eAAiBD,EAAeE,SAAU,CAC3D,IAAIC,EAAYJ,EAAyB9nK,IAAI+nK,EAAeC,gBAAkB,GAC1EE,EAAU3zK,QAAQwzK,EAAeE,UAAY,GAC/CC,EAAUh7K,KAAK66K,EAAeE,UAEhCH,EAAyB74J,IAAI84J,EAAeC,cAAeE,E,CAE/D,IACA,IAAMxB,EAAoBppK,KAAKC,UAAUhW,OAAO4gL,YAAYL,IAEtDM,EAAkB,CACtBp6K,KAAM,SACN8P,MAAO,YACPC,MAAO+2G,EAAOxpH,MAAQ,QAAU,OAChC6P,QAAS,CACPyB,WAAU,EACVyrK,aAAcrrE,EAAU,MACxB2pE,eAAgBrpK,KAAKC,UAAUu3G,EAAO6xD,gBACtCd,WAAY/wD,EAAO+wD,WACnByC,WAAYxzD,EAAOixD,cAAcC,KACjCuC,UAAWzzD,EAAOixD,cAAcG,IAChCsC,qBAAsB1zD,EAAOixD,cAAclN,eAC3C4P,cAAe3zD,EAAOixD,cAAcz/H,QACpCoiI,YAAa5zD,EAAOixD,cAAc1hK,MAClCskK,uBAA4D,QAApC,IAAOlC,qCAA6B,eAAEpO,eAC9DuQ,wBAA6D,QAApC,IAAOnC,qCAA6B,eAAEnO,gBAC/DoO,kBAAiB,EACjBgB,YAAW,EACXC,SAAQ,EACRC,gBAAe,EACfC,SAAQ,EACRv8K,MAAOwpH,EAAOxpH,QAGlBg/G,EAActgG,KAAK,QAASo+J,GAC5BvlK,YAAW,WAAM,SAAe45C,YAAf,GAA6B,IAChD,EAEJ,EAEcipH,8BAAd,SAAgCzyK,EAAe4T,EAAqBw+J,G,6HAC9DwD,EAAkC,GAClCC,EAA2B,GACvBrB,EAAqB,KAAKsB,eAAe,CAAE91K,MAAK,EAAE4T,YAAW,IAAG,iB,iBAGxD,O,wBADVmiK,EAAW,GACD,GAAM,KAAKC,sBAAsB,iBAAiB,WAAM,OAACC,mBAAkBC,iBAAe,CAAE1uJ,MAAO,IAAKC,OAAQ,MAAxD,K,OAMrD,OANjBmuJ,EAAcxuK,SAEd,KAAKgtK,gBAAgBnC,GACrB,KAAKl7J,KAAK,QAAS,CAAE6+J,YAAW,IAEhC,KAAKxC,eAAexnI,QACH,GAAM,KAAKoqI,sBAAsB,wBAAwB,WAAM,4BAAmBh2K,EAAOoyK,EAA1B,GAAqC,IAAIhsI,I,OAWpG,OAXjBx8B,EAAaxC,SAEjB,KAAKgsK,eAAep3K,OACpB,KAAKo4K,gBAAgBnC,GAEfkE,EAA8B,IAAIt2J,kBAAkB,CAAEjW,WAAU,EAAEygK,mBAAoB,QAAS+L,aAAc,eAC7GC,EAAgC,IAAIx2J,kBAAkB,CAAEjW,WAAU,EAAEwsK,aAAc,eACxFP,EAAI57K,KAAKk8K,GACTN,EAAI57K,KAAKo8K,GAET,KAAKhD,aAAaznI,QACG,GAAM,KAAKoqI,sBAAsB,0BAA0B,gD,8DAgBhE,OAfdG,EAASrlK,iBAAiB,gBAAgB,SAAClE,GAAqC,SAAMigK,WAAawJ,EAAWzJ,gBAAgBhgK,EAAMigK,UAApD,IAChFwJ,EAAWvlK,iBAAiB,gBAAgB,SAAClE,GAAqC,SAAMigK,WAAasJ,EAASvJ,gBAAgBhgK,EAAMigK,UAAlD,IAElF+I,EAAYp+K,SAAQ,YAAS,SAAS41G,SAAS/hG,EAAlB,IAEvBirK,EAAmD,IAAIj7K,SAAQ,YACnE,IAAIk7K,EAAmC,GACvCF,EAAWvlK,iBAAiB,SAAS,YACnCylK,EAAat8K,KAAK2S,EAAMvB,OACpBkrK,EAAa/7K,SAAWo7K,EAAYp7K,QACtC1C,EAAQy+K,EAEZ,GACF,IAEc,GAAMJ,EAASpJ,e,OAE7B,OAFMvB,EAAQpkK,SACRovK,EAAehL,EACrB,GAAM2K,EAASvK,oBAAoB4K,I,OACnC,OADApvK,SACA,GAAMivK,EAAWvK,qBAAqB0K,I,OAEvB,OAFfpvK,SAEe,GAAMivK,EAAWvJ,gB,OAChC,OADMjB,EAASzkK,SACf,GAAMivK,EAAWzK,oBAAoBC,I,OACrC,OADAzkK,SACA,GAAM+uK,EAASrK,qBAAqBD,I,OACpC,OADAzkK,SACA,GAAM,KAAKqvK,uBAAuBN,I,OAElC,OAFA/uK,SAEA,GAAOkvK,G,SACN,IAAIxtI,I,OASP,OApCM4tI,EAAetvK,SA4BrB,KAAK2P,KAAK,QAAS,CAAEw/J,aAAY,IACjCG,EAAal/K,SAAQ,YACnB6T,EAAMyF,iBAAiB,SAAS,WAAM,SAAK49B,KAAKpsC,KAAK+I,EAAMtB,KAAO,SAA5B,IACtCsB,EAAMyF,iBAAiB,QAAQ,WAAM,SAAK49B,KAAKpsC,KAAK+I,EAAMtB,KAAO,SAA5B,IACrCsB,EAAMyF,iBAAiB,UAAU,WAAM,SAAK49B,KAAKpsC,KAAK+I,EAAMtB,KAAO,WAA5B,GACzC,IACA,KAAKqqK,gBAAgBnC,GAErB,GAAM,KAAK+D,sBAAsB,4BAA4B,WAC3D,OAAO,IAAI36K,SAAQ,YACjB,IAAM2hC,EAAU3+B,SAASq5C,cAAc,SACvC1a,EAAQqwE,UAAW,EACnBrwE,EAAQswE,aAAc,EACtBtwE,EAAQkvE,OAAQ,EAChBlvE,EAAQovE,UAAY,IAAIniE,YAAYysI,GACpCX,EAAS97K,KAAK+iC,GACdzuB,EAAKwI,KAAK,eAAgBimB,GAC1BA,EAAQ8uE,UAAYh0G,CACtB,GACF,GAAG,IAAIgxC,I,OAIgB,OAfvB1hC,SAYA,KAAKisK,aAAar3K,OAClB,KAAKo4K,gBAAgBnC,GAEE,GAAM,KAAK+D,sBAAsB,8BACtD,WAAM,SAAKW,4BAA4BpoK,EAAK+jK,cAoF3C,CACLsB,IAAK,GACLliK,OAAQ,GACR8yG,IAAK,GACLoyD,gBAAiB,GACjBC,gBAAiB,GACjBtD,WAAY,GACZC,8BAA+B,KAC/BC,kBAAmB,IA5FkE0C,EAAUE,EAArF,K,OAEO,OAHTS,EAAiB1vK,SAGR,GAAM,KAAK4uK,sBAAsB,mBAAmB,WAAM,SAAKe,yBAAyBD,EAA9B,K,cAAnEj1D,EAASz6G,SACfotK,EAAiB,CAAE3yD,OAAM,IACzB,KAAK9qG,KAAK,YAAa8qG,G,gCAGjBm1D,EAAkB,KAAKD,2BAC7BvC,EAAiB,CAAE3yD,OAAM,OAAOm1D,GAAe,CAAE3+K,MAAY,OAALopK,QAAK,IAALA,OAAK,EAALA,EAAOtiK,eAC/D,KAAK4X,KAAK,SAAU0qJ,EAAOuV,G,qBAE3BnB,EAAIr+K,SAAQ,YAAM,SAAGg5C,OAAH,IAClBolI,EAAYp+K,SAAQ,YAAS,SAAMwE,MAAN,I,8BAInBy2K,6BAAd,SAA+BE,EAAgCsE,EAA6BC,G,0HACpE,SAAMC,6BAA2B,CAAEj9D,UAAW+8D,EAAUG,WAAYF,K,cAApFG,EAAgBjwK,SACdg+D,EAAuIiyG,EAAa,UAAzIl1D,EAA4Hk1D,EAAa,UAA9H10D,EAAiH00D,EAAa,cAA/GC,EAAkGD,EAAa,QAAtG70D,EAAyF60D,EAAa,YAAzFh1D,EAA4Eg1D,EAAa,cAA1E3lK,EAA6D2lK,EAAa,OAAlE7D,EAAqD6D,EAAa,8BAAnC5D,EAAsB4D,EAAa,kBACtJE,EAAc5E,EAAejhK,OAAOlX,OAAS,EACnDm4K,EAAejhK,OAAOzX,KAAKyX,GAC3BihK,EAAenuD,IAAIvqH,KAAKooH,GAExB,KAAKm1D,wBAAwBC,UAAUt1D,EAAW/8C,GAClD,KAAKsyG,4BAA4BD,UAAU90D,EAAev9C,GAC1D,KAAKuyG,yBAAyBF,UAAUj1D,EAAa80D,GACjDC,IAEF5E,EAAeiE,gBAAgB38K,KAA0C,IAArC,KAAKu9K,wBAAwBzqK,MAAe,GAChF4lK,EAAekE,gBAAgB58K,KAA8C,IAAzC,KAAKy9K,4BAA4B3qK,MAAe,GAC9E6qK,EAAqB,KAAKD,yBAAyB5qK,MACnD8qK,EAAqBvoK,KAAKL,IAAI,IAA0B,IAArB2oK,GAEzCjF,EAAeY,WAAWt5K,KAAK49K,GAEzBr9C,EAAQs9C,eAAaz1D,EAAe3wG,EAAQkmK,GAClDjF,EAAeiB,IAAI35K,KAAKugI,IAGrBm4C,EAAea,gCAClBb,EAAea,8BAAgCA,GAGD,IAA5Cb,EAAec,kBAAkBj5K,SACnCm4K,EAAec,kBAAoBA,G,YAIzBhB,wCAAd,SAA0C9vE,EAAkBgwE,EAAgCsE,EAA6BC,G,oGAIvH,OAHM1vE,EAAYtlG,KAAKg/B,MACjB62I,EAAgBzoK,KAAKL,IAAI,IAAM0zF,GAErC,GAAMq1E,kBAAgBD,I,OAEtB,OAFA3wK,SAEA,GAAM,KAAK6wK,iBAAiBtF,EAAgBsE,EAAUC,I,cAAtD9vK,UAEM8wK,EAAoBv1E,GAAYzgG,KAAKg/B,MAAQsmE,IAE3B,EACL,GAAM,KAAKmvE,4BAA4BuB,EAAmBvF,EAAgBsE,EAAUC,IADnG,M,OACFvE,EAAiBvrK,S,iBAEnB,SAAOurK,G,QAGDF,4BAAR,SAAwB13K,GACtB,IAAM4nG,EAAWzgG,KAAKg/B,MAAQ,KAAKqxI,YAAYM,qBAAqBjnI,MACpE,KAAK+nI,gBAAgB15K,KAAK,CAAE0oG,SAAQ,EAAE5nG,KAAI,IAC1C,KAAKgc,KAAK,WAAYhc,EACxB,EACF,EArWA,CAAmC4b,GAAtBviB,kBA6ebA,eAAA,SAA6B4L,EAAeF,GAE1C,YAF0C,QAAAA,MACxB,IAAI2yK,EAAczyK,EAAOF,EAE7C,C,+FCzlBA,iBAKE,aAHQ,eAA2B3G,EAIjC,KAAKyyC,OACP,CAoBF,OAlBE4uH,kBAAA,WAEE,OADA,KAAKhvF,OAAStpE,KAAKg/B,MACZ,IACT,EAEAs5H,iBAAA,WAEE,OADA,KAAKvuD,KAAO/pG,KAAKg/B,MACV,IACT,EAEAs5H,+BAAA,WACE,MAAO,CACL5uH,MAAO,KAAK4/B,OACZjsB,IAAK,KAAK0sD,KAEVtJ,cAAwBxpG,IAAd,KAAK8yG,UAAqB9yG,EAAY,KAAK8yG,KAAO,KAAKzgC,OAErE,EACF,EA3BA,GAAap3E,S,mHCFb,IAAM+jL,EAAK,OAEX/jL,eAAA,SAA6BowH,EAAa9yG,EAAgBmyG,GAExD,IAAMu0D,EAA2B5zD,EAAgB,EAAT9yG,EAAc,GAGlD2mK,EAAU,EACd,QAAQ,GACN,KAAKD,EAAmB,IACtBC,EAAUF,EAAMC,EAAmB,GACnC,MACF,KAAKA,EAAmB,IACtBC,EAAUF,GAAOC,EAAmB,KAAO,GAK/C,IAAQ,IACDv0D,GAAiBw0D,EAAU,IAC9BA,EAAU/oK,KAAKJ,IAAImpK,EAAyB,IAAfx0D,EAAoB,WAGjDw0D,EAAU,EAWd,OANoB,EACjB,KAAQA,EACR,KAAWA,GACXA,EAAU,KACV,IAAMA,EAGX,EAEAjkL,aAAA,SAA2BkkL,GAezB,OAbKA,EAEOA,EAAW,IACb,EACEA,EAAW,EACb,EACEA,EAAW,IACb,EACEA,EAAW,EACb,EAEA,EAVA,CAaZ,C,6sDCjCA,SAASC,EAAc12D,EAAwB22D,EAAkBzuK,EAAgB0uK,GAC/E,IAAI5nI,EAAoB,GASxB,OARAgxE,EAAOrqH,SAAQ,YAEa,IAAvBihL,EAAYj+K,SAAgBi+K,EAAYrkK,SAASowJ,EAAK7tK,OACtC,IAAhBoT,EAAKvP,SAAgBuP,EAAKqK,SAASowJ,EAAKz6J,OACf,kBAAnBy6J,EAAKgU,IACZ3nI,EAAQ52C,KAAKuqK,EAAKgU,GAEtB,IACO3nI,CACT,CA0CA,SAAS6nI,EAA2BhoF,GAYlC,MAXuC,CACrC,CAAE97F,IAAK,cAAe+B,KAAM,UAC5B,CAAE/B,IAAK,gBAAiB+B,KAAM,UAC9B,CAAE/B,IAAK,OAAQ+jL,QAAS,CAAC,cAAehiL,KAAM,UAC9C,CAAE/B,IAAK,UAAW+jL,QAAS,CAAC,KAAM,aAAchiL,KAAM,UACtD,CAAE/B,IAAK,WAAY+B,KAAM,UACzB,CAAE/B,IAAK,WAAY+jL,QAAS,CAAC,aAAchiL,KAAM,UACjD,CAAE/B,IAAK,MAAO+B,KAAM,UACpB,CAAE/B,IAAK,gBAAiB+B,KAAM,WAGMuQ,QAAO,SAAS26G,EAAaojD,GACjE,IAAI2T,EAAgB,CAAC3T,EAAQrwK,KACzBqwK,EAAQ0T,UACVC,EAAgBA,EAAc3qK,OAAOg3J,EAAQ0T,UAE/C,IAAI/jL,EAAMgkL,EAAc7tI,MAAK,YAAO,YAAO2lD,CAAP,IAKpC,OAJI97F,UAAc87F,EAAM97F,KAASqwK,EAAQtuK,OACvCkrH,EAAOojD,EAAQrwK,KAAO87F,EAAM97F,IAGvBitH,CACT,GAAG,GACL,C,qFAhEAztH,6BAAA,SAAiDgT,G,IAAE8yG,EAAS,YAAEk9D,EAAU,a,4HAC5B,SAAM/7K,QAAQ6P,IAAI,CAACgvG,EAAWk9D,GAAYxwK,KAAI,YAAM,SAAGojC,UAAH,M,OAmC9F,OAnCM9/B,kBAAoC7C,SAAmE,IAAtGwxK,EAAc,KAAEC,EAAe,KAEhCC,EAAaR,EAAcO,EAAiB,YAAa,CAAC,SAAU,CAAC,gBACrE1zG,EAAY2zG,EAAWv+K,OAAS,EAAIu+K,EAAW,GAAK,EAKpDrnK,EAAS6mK,EAAcO,EAAiB,SAAU,CAAC,SAAU,CAAC,gBAAgB5xK,QAAO,SAAC2Q,EAAG2I,GAAM,YAAKtR,IAAI2I,EAAG2I,EAAZ,GAAgB,GAK/G82J,EAAUiB,EAAcO,EAAiB,kBAAmB,CAAC,QAAS,SAAU,CAAC,gBAAgB5xK,QAAO,SAAC2Q,EAAG2I,GAAM,SAAIA,CAAJ,GAAO,GACzHgiG,EAAc+1D,EAAcO,EAAiB,cAAe,CAAC,QAAS,SAAU,CAAC,gBAAgB5xK,QAAO,SAAC2Q,EAAG2I,GAAM,SAAIA,CAAJ,GAAO,GAIzHw4J,EAAqBT,EAAcM,EAAgB,gBAAiB,CAAC,QAAS,SAAU,CAAC,uBAAuB3xK,QAAO,SAAC2Q,EAAG2I,GAAM,YAAKtR,IAAI2I,EAAG2I,EAAZ,GAAgB,GAGjJy4J,EAAuBV,EAAcO,EAAiB,uBAAwB,GAAI,CAAC,mBAAmB5xK,QAAO,SAAC2Q,EAAG2I,GAAM,YAAKtR,IAAI2I,EAAG2I,EAAZ,GAAgB,GACvI6hG,EAA+D,KAA9C42D,GAAwBD,GAEzC72D,EAAYo2D,EAAcM,EAAgB,YAAa,GAAI,CAAC,mBAAmB3xK,QAAO,SAAC2Q,EAAG2I,GAAM,SAAIA,CAAJ,GAAO,GACvGmiG,EAAgB41D,EAAcO,EAAiB,gBAAiB,GAAI,CAAC,mBAAmB5xK,QAAO,SAAC2Q,EAAG2I,GAAM,SAAIA,CAAJ,GAAO,GAEhHgzJ,EAsCR,SAA4ClP,GAC1C,IAAI4U,EAAsC,KACpCC,EAA6C,GACnD7U,EAAM9sK,SAAQ,YACM,cAAdgtK,EAAK7tK,MAAwB6tK,EAAK0U,wBACpCA,EAA0B1U,EAAK0U,wBACR,mBAAd1U,EAAK7tK,MACdwiL,EAAel/K,KAAKuqK,EAExB,IAEA,IAAM4U,EAAgCD,EAAepuI,MAAK,YAExD,SAAKu2F,UAEJ43C,GAA2BrrG,EAAK7+B,KAAOkqI,CAFxC,IAKF,IAAKE,EACH,OAAO,KAGT,IAAM7U,EAA2B6U,EAC3B1U,EAA4BJ,EAAMv3J,IAAIw3J,EAAyBI,kBAC/DC,EAA6BN,EAAMv3J,IAAIw3J,EAAyBM,mBACtE,IAAKH,IAA8BE,EACjC,OAAO,KAGT,MAAO,CACLQ,eAAgBsT,EAA2BhU,GAC3CW,gBAAiBqT,EAA2B9T,GAEhD,CAvEwCyU,CAAmCP,GAEnErF,EAA4C,GAClDqF,EAAgBthL,SAAQ,YACJ,oBAAdgtK,EAAK7tK,MAA4C,qBAAd6tK,EAAK7tK,MAC1C88K,EAAkBx5K,KAAKy+K,EAA2BlU,GAEtD,IACA,GAAO,CAAEp/F,UAAS,EAAE1zD,OAAM,EAAE4lK,QAAO,EAAE90D,YAAW,EAAEH,cAAa,EAAEF,UAAS,EAAEQ,cAAa,EAAE6wD,8BAA6B,EAAEC,kBAAiB,I,mHCpE7I,IAAMv7D,EAAmBzyG,EAAQ,KACzB,EAAgBA,EAAQ,IAAoB,YAC9C,EAAkDA,EAAQ,IAAxD+/B,EAAiB,oBAAEU,EAAwB,2BAGnD,QAIA9xC,qBAAA,SAAmC4L,EAAeoyK,GAChD,OAAO,IAAI/2K,SAAQ,SAACvD,EAASC,GAC3B,IAAMs/G,EAAgB,IAAIiiE,eAapBC,EAAmB,IAAIrhE,EAAiBk6D,EAZpB,CACxBr7D,eAAgB,KAChBM,cAAa,EACbZ,UAAW,CACT+iE,KAAM,UACNC,WAAW,EACXz5K,MAAOA,EACPrJ,KAAM,MACNkM,QAAS62K,KAKTxgL,GAAO,EACXqgL,EAAiBnpK,KAAK,SAAS,WACxBlX,IACHA,GAAO,EACPnB,EAAO,IAAImuC,GAEf,IAEAqzI,EAAiB7sK,GAAG,WAAW,SAACitK,GAMtB,MAAqCA,EAAW,KAA1C33K,EAA+B23K,EAAW,QAAjCC,EAAsBD,EAAW,YAApBhjL,EAASgjL,EAAW,KAC1C,SAAThjL,GAA4B,UAATA,GAAsBuC,IAC5CA,GAAO,EACM,SAATvC,EACFmB,EAAQ8hL,GAER7hL,EAAOytC,EAAkBC,EAAMzjC,IAEjCu3K,EAAiB/oI,QAErB,GACF,GACF,C,+BC/CA,iBAME,WAAYqpI,EAAkB/5K,GAA9B,WAMQg6K,GALNh6K,EAAUxL,OAAOgT,OAAO,CACtBvB,UAAS,UACT3H,OAAM,QACL0B,IAEiBiG,UACdg0K,EAAaD,EAAIC,YAAc,CAAEpjL,KAAM,MACzCA,EAAOojL,EAAWpjL,KAEhB,EAAkCojL,EAAWpjL,KAAO,CACxDkjC,QAAS,CACP/kC,MAAO,CAAC,SAAU,eAEpBklL,UAAW,CACTllL,MAAO,WACL,IAAMmlL,EAAiBtjL,IAAS4X,EAAK5X,MAAQ4X,EAAK2rK,SAClDvjL,EAAO4X,EAAK5X,KACRsjL,GACFJ,GAEJ,GAEFM,QAAS,CACPrlL,MAAOilL,IAEP,CACFlgJ,QAAS,CACP/kC,MAAO,CAAC,WAEVklL,UAAW,CACTllL,MAAO+kL,GAETM,QAAS,CACPrlL,MAAOgL,EAAQ1B,SAxBXy7B,EAAO,UAAEmgJ,EAAS,YAAEG,EAAO,UA4BnC7lL,OAAOkQ,iBAAiB,KAAM,CAC5B01K,SAAU,CACR1kL,YAAY,EACZuX,IAAG,WACD,MAA6B,mBAAf+sK,EAAIM,QACdN,EAAIM,MAEV,GAEFzjL,KAAM,CACJnB,YAAY,EACZuX,IAAG,WACD,OAAOgtK,EAAWpjL,MAAQ,IAC5B,GAEFqjL,UAAS,EACTngJ,QAAO,EACPsgJ,QAAO,GAEX,CAmBF,OAdE/kE,kBAAA,sBACE,KAAKv7E,QAAQriC,SAAQ,YACnB+W,EAAK4rK,QAAQrpK,iBAAiBlE,EAAO2B,EAAKyrK,UAC5C,GACF,EAKA5kE,iBAAA,sBACE,KAAKv7E,QAAQriC,SAAQ,YACnB+W,EAAK4rK,QAAQ5nK,oBAAoB3F,EAAO2B,EAAKyrK,UAC/C,GACF,EACF,EAlFA,GAoFApnK,EAAOxe,QAAUghH,C,86BCnFjB,cAQE,WAAY3vE,GAAZ,WACQ3nC,EAAO,GAAG/B,MAAMnF,KAAKmH,UAAW,GACtCwQ,sBAASzQ,MAAI,KACbxJ,OAAO2G,eAAesT,EAAM+2B,EAAY/wC,WAExC,IAAM8D,EAAQI,MAAMuF,MAAMuQ,EAAMzQ,G,OAChCzF,EAAM0C,KAAO,cAEbzG,OAAOI,eAAe6Z,EAAM,OAAQ,CAClCzZ,MAAO2wC,EACPjwC,YAAY,IAGdlB,OAAOgS,oBAAoBjO,GAAOb,SAAQ,SAASkQ,GACjDpT,OAAOI,eAAe,KAAMgT,EAAM,CAChC5S,MAAOuD,EAAMqP,GACblS,YAAY,GAEhB,GAAG+Y,G,CACL,CAUF,OArC0BC,OAiCxB82B,qBAAA,WACE,IAAMtjC,EAAU,KAAKA,QAAU,KAAK,KAAKA,QAAY,GACrD,OAAU,KAAKjH,KAAI,IAAI,KAAK0qC,KAAOzjC,CACrC,EACF,EArCA,CAA0BvJ,OAuC1Bma,EAAOxe,QAAUkxC,C,ggBCrCjBlxC,WAAA,SAAyBiD,GACvB,OAAIA,GAAUA,EAAOmD,OAIZ,CAAEyU,IAHGK,KAAKL,IAAG,MAARK,KAAI,OAAQjY,KAGV6X,IAFFI,KAAKJ,IAAG,MAARI,KAAI,OAAQjY,KAELksH,QADHlsH,EAAO6P,QAAO,SAACmzK,EAAOvlL,GAAU,SAAQA,CAAR,GAAe,GAAKuC,EAAOmD,QAGtE,IACT,C,wGCZApG,iBAAA,WAGE,IAAMkmL,EAAsB70K,EAAQ,IAC9B2wC,EAAS,GACTu6D,EAAe2pE,EAAoB1oE,YAAYx7D,GAC/CmkI,EAAa5pE,EAAa6pE,mBAC1BC,EAAMF,EAAWlnI,QAAQs9D,EAAa+pE,gCAC5CH,EAAW3uI,QACX,IAAMvgC,EAAQovK,EAAI7pE,OAAOwwD,iBAAiB,GACpCuZ,EAAetvK,EAAMrP,KAK3B,OAJAqP,EAAMrP,KAAO,WACX2+K,EAAa/jL,KAAKyU,GAClBivK,EAAoB3kI,QAAQS,EAC9B,EACO/qC,CACT,C,wGChBAjX,iBAAA,SAA+BgT,G,IAAA8C,aAAgC,GAAE,EAAhC7C,UAAAmgB,OAAK,MAAG,IAAG,EAAErf,WAAAsf,OAAM,MAAG,IAAG,EAClD2tD,EAAS9gF,OAAOgT,OACpBjJ,SAASq5C,cAAc,UAAW,CAAElwB,MAAK,EAAEC,OAAM,IAG/C4sG,EAAMj/C,EAAOM,WAAW,MAC5B2+C,EAAIO,UAAY,QAChBP,EAAIumD,SAAS,EAAG,EAAGxlG,EAAO5tD,MAAO4tD,EAAO3tD,QACxC,IAAIi0E,GAAU,EACdl5C,uBAAsB,SAASq4H,IAC7B,IAAKn/E,EAAS,CAEZ,IAAMrsF,EAAIC,KAAKmN,MAAsB,IAAhBnN,KAAKC,UACpBgK,EAAIjK,KAAKmN,MAAsB,IAAhBnN,KAAKC,UACpBiR,EAAIlR,KAAKmN,MAAsB,IAAhBnN,KAAKC,UACpBsI,EAAIvI,KAAKmN,MAAsB,IAAhBnN,KAAKC,UAC1B8kH,EAAIO,UAAY,QAAQvlH,EAAC,KAAKkK,EAAC,KAAKiH,EAAC,KAAK3I,EAAC,IAC3Cw8G,EAAIumD,SAAStrK,KAAKC,SAAWiY,EAAOlY,KAAKC,SAAWkY,EAAQ,GAAI,IAChE+6B,sBAAsBq4H,E,CAE1B,IACA,IACMxvK,EADS+pE,EAAOo/B,cAAc,IACftH,YAAY,GAC3BytE,EAAetvK,EAAMrP,KAM3B,OALAqP,EAAMrP,KAAO,WACX0/F,GAAU,EACVi/E,EAAa/jL,KAAKyU,EACpB,EAEOA,CACT,C,+BChCQ,MAAqB5F,EAAQ,IAAW,iBAC1C,EAAwCA,EAAQ,IAA9CqM,EAAY,eAAEgN,EAAmB,sBACnCg8J,EAA8Br1K,EAAQ,KACtCs1K,EAAyBt1K,EAAQ,KACjCu1K,EAAmBv1K,EAAQ,KAC3Bo2G,EAAoBp2G,EAAQ,KAC5Bw1K,EAAwBx1K,EAAQ,KAEhC,EAIFA,EAAQ,IAHV6F,EAAe,kBACfE,EAAc,iBACdD,EAAe,kBAGX2vK,EAAkCz1K,EAAQ,KAC1C01K,EAAO11K,EAAQ,KACf21K,EAAc31K,EAAQ,KAEtB,EAKFA,EAAQ,GAJV2F,EAAY,eACZ8F,EAAc,iBACd3D,EAAY,eACZnH,EAAgB,mBAGZ,EAUFX,EAAQ,IATV6N,EAAmB,sBACnBG,EAAiB,oBACjBC,EAAmB,sBACnBH,EAAa,gBACbC,EAAc,iBACdG,EAAS,YACTd,EAAQ,WACRC,EAAW,cACCpN,EAAC,aAGTsmE,EAAoBvmE,EAAQ,IAC5B+0G,EAAgB/0G,EAAQ,KACxB41K,EAAa51K,EAAQ,IACnB,EAA6BA,EAAQ,KAAkB,yBAEzD61K,EAAmC,WAAnBxpK,KAA+BgN,IAIjDy8J,EAAe,EAEfC,GAAwB,EACxBC,GAA4B,EAEhC,GAAIH,EAAe,CACT,IAAOI,EAAkDJ,EAAa,MAApCK,EAAuBL,EAAa,MAC9EG,EAA4BC,EAAqB,IAA8B,KAAvBA,GAA6BC,EAAqB,C,CAG5G,IAAMC,EAAgC,IAAI90K,IAAI,CAC5C,CAAE+0K,SAAS,EAAOC,cAAc,EAAM/gL,KAAM,4BAC5C,CAAE8gL,SAAS,EAAOC,cAAc,EAAM/gL,KAAM,cAAeghL,QAAS,cACpE,CAAEF,SAAS,EAAOC,cAAc,EAAM/gL,KAAM,qBAC5C,CAAE8gL,SAAS,EAAOC,cAAc,EAAO/gL,KAAM,gBAAiBghL,QAAS,gBACvE,CAAEF,SAAS,EAAOC,cAAc,EAAO/gL,KAAM,WAAYghL,QAAS,kBAG9DC,EAAoC,IAAIl1K,IAAI,CAChD,CAAE+0K,SAAS,EAAOC,cAAc,EAAO/gL,KAAM,YAAaghL,QAAS,sDACnE,CAAEF,SAAS,EAAOC,cAAc,EAAO/gL,KAAM,mBAAoBghL,QAAS,mDAi2B5E,SAASE,EAAiBn8K,EAASI,EAAKg8K,GACtCA,EAAiB1kL,SAAQ,YACf,MAAyCkQ,EAAI,QAApC3M,EAAgC2M,EAAI,KAA9Bq0K,EAA0Br0K,EAAI,QAArBo0K,EAAiBp0K,EAAI,aACjD3M,KAAQ+E,GAAoC,qBAAlBA,EAAQ/E,KAChCghL,GAAWD,IACbh8K,EAAQi8K,GAAWj8K,EAAQ/E,IAEzB+gL,UACKh8K,EAAQ/E,GAEZ8gL,GAAY,CAAC,QAAS,OAAOznK,SAASlU,EAAI4K,SAC7C5K,EAAIoC,KAAK,uBAAuBvH,EAAI,SAAQghL,EACxC,qDAAqDA,EAAO,aAC5D,8CACJr0K,EAAKm0K,SAAU,GAGrB,GACF,CAEA,SAASM,EAAuBvwK,EAAW1L,EAAKk8K,EAAoB7xK,EAA6BzK,EAAS81K,GACxG,IAAMyG,EAA4BzwK,EAAU0wK,gCAAgCF,EAAoB7xK,GAEhG,OADArK,EAAImrD,MAAM,mCAAoCgxH,GACvC,IAAIv8K,EAAQk7K,iBAAiBqB,EAA2BzG,EAAa91K,EAC9E,CAEA,SAASy8K,EAAWz8K,EAASolH,EAAkBa,GAC7C,IAAMy2D,EAAO,IAAIrB,EAAKj2D,EAAkBa,EAAejmH,GACjDI,EAAMJ,EAAQI,IAUpB,OARAA,EAAImrD,MAAM,uBAAwBmxH,GAClCz2D,EAAcr5G,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACvC,iBAAVA,IACF0H,EAAI7G,KAAK,0BAA2BmjL,EAAKr9K,YACzC4mH,EAAc74G,eAAe,eAAgBsxG,GAEjD,IAEOg+D,CACT,CAEA,SAASC,EAAoBz8K,EAAOF,EAAS8L,EAAWwwK,EAAoBnpG,EAAiBiyC,GAE3F,OADAplH,EAAQI,IAAImrD,MAAM,gCACXz/C,EAAUynC,QACf6xE,EAAiB14C,WACjBxsE,EACAo8K,EACAnpG,EACAnzE,EACJ,CAEA,SAAS48K,EAAe58K,EAAS68K,GAC/B,IAAMz8K,EAAMJ,EAAQI,IAapB,OAXAJ,EAAQ88K,uBAAyB98K,EAAQgK,OACrChK,EAAQ88K,sBACV18K,EAAI7G,KAAK,qMAKT6G,EAAI7G,KAAK,uBACT6G,EAAImrD,MAAM,WAAYvrD,IAGjBA,EAAQ6zC,kBAAkB7zC,GAAS3H,MAAK,SAAiCy9K,GAC9E,IAAMllK,EAAUisK,EAAkB/G,GAWlC,OATAllK,EAAQjP,OAAM,WACR3B,EAAQ88K,wBACV18K,EAAI7G,KAAK,8DACTu8K,EAAYp+K,SAAQ,YAClB6T,EAAMrP,MACR,IAEJ,IAEO0U,CACT,GACF,CAEA,SAASmsK,EAAuBC,GAC9B,IAAMC,EAAqC,kBAAnBD,EACpB,CAAEr6D,MAAOq6D,GACTA,EACJ,OAAQC,EAASt6D,MAAMr0G,eACrB,IAAK,OACH,OAAO9Z,OAAOgT,OAAO,CAAE01K,KAAK,GAAQD,GAEtC,IAAK,MACH,OAAOzoL,OAAOgT,OAAO,CAAE21K,WAAW,GAASF,GAE7C,QACE,OAAOA,EAGb,CAEAnqK,EAAOxe,QAn0BP,SAAiB4L,EAAOF,GAItB,GAHuB,qBAAZA,IACTA,EAAU,KAEPsG,EAAiBtG,GACpB,OAAOksE,EAAkBj0E,OAAO2N,EAAEgG,aAAa,UAAW,WAG5D,IAMIxL,EANEwiC,EAAM5iC,EAAQ4iC,KAAO24I,EACrBp5I,EAAaniC,EAAQmiC,YAAcvuB,EACnC3R,EAAWjC,EAAQiC,UAAY0R,EAC/BuuB,EAAY9wB,EAAenP,GAC3B6+J,EAAmB,gBAAe2a,EAAY,IAGpD,IACEr7K,EAAM,IAAIwiC,EAAI,UAAWk+H,EAAkB5+H,EAAWC,E,CACtD,MAAO5pC,GACP,OAAO2zE,EAAkBj0E,OAAOM,E,CAMlC4jL,EAAiBn8K,EAASI,EAAK07K,GAE/B,IAAMlzK,EAAqD,SAAjC5I,EAAQkzE,qBAMlC,GALItqE,IAEF5I,EAAQkzE,qBAAuB,CAAC,CAAEyvC,MAAO,MAAOw6D,WAAW,EAAMv0K,mBAAmB,KAGlF5I,EAAQo9K,iBAAmBx0K,EAE7B,OADAxI,EAAI7H,MAAM,uFACH2zE,EAAkBj0E,OAAO2N,EAAEyO,eAAe,UAC/C,wFA+BJ,IAAMgpK,EAAwB,GACU,kBA7BxCr9K,EAAUxL,OAAOgT,OAAO,CACtB0D,uBAAuB,EACvBzC,iBAAiB,EACjB60K,YAAY,EACZxpK,YAAaN,EACb8mG,cAAe,KACfijE,UAAU,EACV/xK,gBAAe,EACfE,eAAc,EACdwvK,iBAAgB,EAChBzvK,gBAAe,EACfm3B,IAAG,EACHj3B,iBAAgB,EAChBw2B,WAAU,EACVlgC,SAAQ,EACRu7K,gBAAiB,KACjBJ,gBAAiB,KACjBniL,KAAM,KACNg8G,gBAAgB,EAChBvuG,gBAAgB,EAChBuqE,qBAAsB,GACtBC,qBAAsB,GACtB4nC,MAAOrnG,EACPM,OAAQL,EACR5H,UAAWwvK,GACV7tK,EAAazN,KAIGy9K,mBACjBJ,EAAsBtiE,QAAU/6G,EAAQy9K,kBAE1C,IACMjJ,EAAiB,IADAx0K,EAAQu9K,SAAWxhE,EAAoBo/D,GAE5Dj7K,EACA6S,EACAC,EACAhT,EAAQ8T,YACR9T,EAAQ86G,MACRuiE,GAEI/K,EAAWz+J,EAAU7T,EAAQ8T,YAAa9T,EAAQ+T,QAClDwjG,EAAgB,IAAImD,EAAc85D,EAAgBpyK,KAAKg/B,MAAOhhC,EAAKJ,EAAQs6G,eAqBjF,IApBAt6G,EAAUxL,OAAOgT,OAAO,CAAE+vG,cAAa,EAAE+6D,SAAQ,GAAItyK,IAC7CI,IAAMA,EAKVu7K,IACED,GACiB,UAAjBt7K,EAAI6B,UAAyC,QAAjB7B,EAAI6B,WACpCy5K,GAAwB,EACxBt7K,EAAIoC,KAAK,CACP,gFACA,0EACA,6EACA,sEACA,4EACA,6FACAiS,KAAK,OAGY,kBAAVvU,EACT,OAAOgsE,EAAkBj0E,OAAO2N,EAAEgG,aAAa,QAAS,WAM1D,IAAMm1J,EAAoBvsK,OAAOgT,OAAO,GAAIxH,GAG5C,UAFO+gK,EAAkB9lK,KAErB,WAAY+E,EAAS,CACvB,IAAK+E,MAAMC,QAAQhF,EAAQgK,QACzB,OAAOkiE,EAAkBj0E,OAAO2N,EAAEgG,aAAa,iBAC7C,kEAEJ,IACE5L,EAAQgK,OAAShK,EAAQgK,OAAOlD,KAAI,YAAS,SAAayE,EAAOw1J,EAApB,G,CAC7C,MAAOxoK,GACP,OAAO2zE,EAAkBj0E,OAAOM,E,EAIpC,IAAMA,EAAQgkH,EAAyBv8G,EAAQuI,kBAC/C,GAAIhQ,EACF,OAAO2zE,EAAkBj0E,OAAOM,GAYlCyH,EAAQkW,4BAA8B,WACtClW,EAAQi+G,uBAAyB,WAC7Bj+G,EAAQuI,mBACVvI,EAAQkW,4BAA8B,OACtClW,EAAQi+G,uBAAyB,OAC7Bj+G,EAAQuI,iBAAiBqC,QAG3BuxK,EAAiBn8K,EAAQuI,iBAAiBqC,MAAOxK,EAAK87K,GAElD,cAAel8K,EAAQuI,iBAAiBqC,MAE1C5K,EAAQkW,4BAA8B,WACkC,WAA/DlW,EAAQuI,iBAAiBqC,MAAMsL,4BACxClW,EAAQkW,4BAA8B,SAEtClW,EAAQkW,4BAA8B,OAGpC,qBAAsBlW,EAAQuI,iBAAiBqC,MACjD5K,EAAQi+G,uBAAyB,WACkC,WAA1Dj+G,EAAQuI,iBAAiBqC,MAAMqzG,uBACxCj+G,EAAQi+G,uBAAyB,SAEjCj+G,EAAQi+G,uBAAyB,SAKvC,IACMnyG,GAAY,IAAI4xK,EADJ19K,EAAQ8L,WACM9L,EAAQsyK,SAAUtyK,GAElDI,EAAI7G,KAAK,wBACT6G,EAAImrD,MAAM,WAAYvrD,GAEtB,IAAMs8K,GAAqB,IAAIrB,EAAuB,CACpDuC,gBAAiBx9K,EAAQw9K,gBACzBJ,gBAAiBp9K,EAAQo9K,iBACxBx0K,GAEGuqE,GAAkB,CACtBlnE,MAAOjM,EAAQizE,qBAAqBnsE,IAAIi2K,GACxCnyK,MAAO5K,EAAQkzE,qBAAqBpsE,IAAIi2K,IAGpCtyK,GAA8B,IAAI2wK,EACtC90K,EAAiBtG,EAAQ0I,gBAAkB1I,EAAQ0I,eAAiB,IAQhEi1K,GAAwB3C,EAC5B4B,EAAe1hJ,KAAK,KAAMl7B,GAC1Bq8K,EAAuBnhJ,KAAK,KAAMpvB,GAAW1L,EAAKk8K,GAAoB7xK,GAA6BzK,GACnG28K,EAAoBzhJ,KAAK,KAAMh7B,EAAOF,EAAS8L,GAAWwwK,GAAoBnpG,IAC9EspG,EAAWvhJ,KAAK,KAAMl7B,IAkBxB,OAhBA29K,GAAsBtlL,MAAK,YAMzB,OALAm8K,EAAejhI,QAAQmpI,EAAKpwG,IAAKowG,EAAKt3D,iBAAiB94C,KACvDlsE,EAAI7G,KAAK,qBAAsBmjL,EAAKr9K,YACpCe,EAAI7G,KAAK,aAAcmjL,EAAKzhL,MAC5BmF,EAAImrD,MAAM,QAASmxH,GACnBA,EAAKpsK,KAAK,gBAAgB,WAAM,SAAeo5C,YAAf,IACzBgzH,CACT,IAAG,YACDlI,EAAe9qH,aACXi0H,GAAsB5xG,YACxB3rE,EAAI7G,KAAK,6CAET6G,EAAI7G,KAAK,oCAAqChB,EAElD,IAEOolL,EACT,C,+BCxZA,IAAMzxG,EAAoBvmE,EAAQ,IA6ClCmN,EAAOxe,QAlCP,SAAqCsoL,EAAgBP,EAAwBM,EAAqBF,GAChG,IAAImB,EACEC,EAAoB,IAAIllL,MAAM,YAEpC,OAAO,IAAIuzE,GAAkB,SAAkBl0E,EAASC,EAAQ6lL,GAC9D,IAAI14D,EACJw3D,GAAe,SAAiC9G,GAC9C,OAAIgI,IACK5xG,EAAkBj0E,OAAO4lL,IAElCz4D,EAAmBi3D,EAAuBvG,GACnC6G,EAAoBv3D,GAAkB/sH,MAAK,SAAsC0lL,GACtF,GAAID,IACF,MAAMD,EAGR,OADAD,EAAiCG,GAEnC,IACF,IAAG1lL,MAAK,SAAgC4tH,GACtC,GAAI63D,IAEF,MADA73D,EAAcv8D,aACRm0H,EAER7lL,EAAQykL,EAAWr3D,EAAkBa,GACvC,IAAGtkH,OAAM,SAAiBpJ,GACxBN,EAAOM,EACT,GACF,IAAG,WACGqlL,GACFA,EAA+BhzG,QAEnC,GACF,C,ohBChCA,cAME,WAAY0xG,EAAoB1zK,GAAhC,MACEg9B,cAAO,K,OAEP02I,EAAqB9nL,OAAOgT,OAAO,CACjCg2K,gBAAiB,KACjBJ,gBAAiB,MAChBd,GAEH9nL,OAAOkQ,iBAAiB+J,EAAM,CAC5B+uK,gBAAiB,CACfxoL,MAAOsnL,EAAmBkB,gBAC1B5nL,UAAU,GAEZwnL,gBAAiB,CACfpoL,MAAOsnL,EAAmBc,gBAC1BxnL,UAAU,GAEZgT,kBAAmB,CACjB5T,MAAO4T,K,CAGb,CAuCF,OAlEqC8F,OAiCnCusK,mBAAA,WACE,MAAO,CACLuC,gBAAiB,KAAKA,gBACtBJ,gBAAiB,KAAKA,gBAE1B,EAOAnC,mBAAA,SAAOqB,GAAP,WACEA,EAAqB9nL,OAAOgT,OAAO,CACjCg2K,gBAAiB,KAAKA,gBACtBJ,gBAAiB,KAAKA,iBACrBd,GAEuB,CACxB,kBACA,mBACAl1K,QAAO,SAAC42K,EAAmBC,GAK3B,OAJIxvK,EAAKwvK,KAAoB3B,EAAmB2B,KAC9CxvK,EAAKwvK,GAAkB3B,EAAmB2B,GAC1CD,GAAoB,GAEfA,CACT,IAAG,IAGD,KAAK/mK,KAAK,UAEd,EACF,EAlEA,CAXqBtR,EAAQ,IAAUkR,cAoFvC/D,EAAOxe,QAAU2mL,C,ohBCpFT,EAAqBt1K,EAAQ,IAAW,iBAC1C,EAAwDA,EAAQ,GAA9D2F,EAAY,eAAEO,EAAuB,0BAAE2F,EAAU,aACnD,EAAmC7L,EAAQ,IAA7BC,EAAC,aAAEC,EAAa,gBAC5B,EAAuBF,EAAQ,KAAkB,mBAEnD,EAIFA,EAAQ,IAHV6F,EAAe,kBACfE,EAAc,iBACdD,EAAe,kBAGXS,EAA6BvG,EAAQ,KACrCyG,EAA4BzG,EAAQ,KACpCwG,EAA6BxG,EAAQ,KA8B3C,cAOE,WAAYmG,EAAWgqK,EAAa91K,GAApC,WAaQk+K,GAZNl+K,EAAUxL,OAAOgT,OAAO,CACtBgE,gBAAe,EACfC,gBAAe,EACfC,eAAc,EACdC,iBAAgB,EAChBO,2BAA0B,EAC1BC,2BAA0B,EAC1BC,0BAAyB,EACzB0wK,uBAAuB,EACvB9yK,OAAQ8rK,GACP91K,IAE0B88K,sBACzB,IAAI91K,IAAI8uK,EAAY1xK,QAAO,YAAc,MAAoB,SAApB,EAAW6F,IAAX,KACzC,IAAIjD,I,OAERyH,cAAM3C,EAAW9L,IAAQ,KAEzBxL,OAAOkQ,iBAAiB+J,EAAM,CAC5B6oG,eAAgB,CACdtiH,MAAOgL,EAAQu3G,eAEjB4mE,iBAAkB,CAChBnpL,MAAOgL,EAAQwL,iBAEjB4yK,gBAAiB,CACfppL,MAAOgL,EAAQ0L,gBAEjB2yK,iBAAkB,CAChBrpL,MAAOgL,EAAQyL,iBAEjB6yK,kBAAmB,CACjBtpL,MAAOgL,EAAQ2L,kBAEjB4yK,4BAA6B,CAC3BvpL,MAAOgL,EAAQkM,4BAEjBsyK,2BAA4B,CAC1BxpL,MAAOgL,EAAQoM,2BAEjBqyK,4BAA6B,CAC3BzpL,MAAOgL,EAAQmM,4BAEjBuyK,cAAe,CACb1pL,MAAOkpL,GAETS,gBAAiB,CACfjpL,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU6yK,eACnB,KAIJlwK,EAAKmwK,8B,CACP,CAmhBF,OAllB+BlwK,OAwE7BwsK,sBAAA,SAAU3vK,EAAO2jC,EAAI29B,GACnB,IAAMgyG,EAAaj5I,YAAMy6E,UAAS,UAAC90G,EAAO2jC,GAI1C,OAHI2vI,GAA6B,iBAAf,KAAKnmL,OACrB,KAAKomL,eAAevzK,EAAOshE,GAEtBgyG,CACT,EAQA3D,2BAAA,SAAe3vK,EAAOshE,G,MAEdo1F,EAAgC,QAAvB,IAAMP,yBAAiB,eAAEO,OACxC,KAAKv1F,WAAW4gC,SAAS/hG,EAAM8kG,aAAc9kG,EAAMtQ,KAAM4xE,EAAUo1F,GACnE,KAAKrzH,KAAKr1C,KAAK,eAAeiY,EAAWjG,GAAO,GAAK,IAAKA,EAAM2jC,IAChE,KAAKN,KAAK2c,MAAS/5C,EAAWjG,GAAO,GAAK,IAAKA,EACjD,EAQA2vK,yBAAA,SAAa3vK,EAAO2jC,GAClB,IAAM6vI,EAAen5I,YAAM85E,aAAY,UAACn0G,EAAO2jC,GAM/C,OALI6vI,GAA+B,iBAAf,KAAKrmL,QACvB,KAAKg0E,WAAW2gC,YAAY9hG,EAAM8kG,cAClC,KAAKzhE,KAAKr1C,KAAK,aAAaiY,EAAWjG,GAAO,GAAK,IAAKA,EAAM2jC,IAC9D,KAAKN,KAAK2c,MAAS/5C,EAAWjG,GAAO,GAAK,IAAKA,IAE1CwzK,CACT,EAOA7D,4BAAA,WACE,OAAOt1I,YAAM26E,gBAAgBzpH,KAAK,MAAMqX,OAAO,CAC7C,CAAC,WAAY,iBACb,CAAC,UAAW,gBACZ,CAAC,UAAW,iBAEhB,EAEA+sK,qBAAA,WACE,MAAO,sBAAsB,KAAKvsI,aAAc,KAAK29B,IAAM,KAAK,KAAKA,IAAQ,IAAE,GACjF,EAKA4uG,wCAAA,sBACQ96K,EAAM,KAAKwuC,KAEjB,GAAmB,iBAAf,KAAKl2C,MAAT,CAIA,IAAMsmL,EAAqB,SAAAC,GACzB,IAAMpgE,EAAiBpwG,EAAKi+D,WAAWwyG,eAAeD,EAAW5uE,cAC7DwO,IACFA,EAAeze,UACfhgG,EAAImrD,MAAM,gBAAgB/5C,EAAWytK,GAAY,GAAK,IAAKA,EAAW/vI,IAE1E,EAEMiwI,EAAoB,SAAAF,GACxB,IAAMpgE,EAAiBpwG,EAAKi+D,WAAWwyG,eAAeD,EAAW5uE,cAC7DwO,IACFA,EAAexmC,SACfj4E,EAAImrD,MAAM,eAAe/5C,EAAWytK,GAAY,GAAK,IAAKA,EAAW/vI,IAEzE,EAEMkwI,EAAoB,SAAAH,GAGxB,IAAMpgE,EAAiBpwG,EAAKi+D,WAAWwyG,eAAeD,EAAW5uE,cAIjE,OAHIwO,GACFA,EAAe3iH,OAEV2iH,CACT,EAoCA,KAAKjyG,GAAG,gBAAiBoyK,GACzB,KAAKpyK,GAAG,eAAgBuyK,GACxB,KAAKvyK,GAAG,eAAgBwyK,GAExB,KAAK1yG,WAAW9/D,GAAG,gBAtCE,SAAf8xG,EAAehmH,GACnB0H,EAAImrD,MAAM,yBAA0B7yD,GACtB,iBAAVA,GACF0H,EAAImrD,MAAM,uCACV98C,EAAKi+D,WAAWt/D,eAAe,eAAgBsxG,GAC/CjwG,EAAKrB,eAAe,gBAAiB4xK,GACrCvwK,EAAKrB,eAAe,eAAgB+xK,GACpC1wK,EAAKrB,eAAe,eAAgBgyK,GAIpC3wK,EAAKyvG,QAAQxmH,SAAQ,YACnB,IAAMmnH,EAAiBugE,EAAkB7zK,GACrCszG,GACFtzG,EAAM8kG,aAAa6hE,YAAYrzD,EAAemI,kBAElD,IAEA5mH,EAAI7G,KAAK,2CAA2CkV,EAAKiwK,cAAcvxK,KAAI,uCAC3EsB,EAAKiwK,cAAchnL,SAAQ,YACzB6T,EAAMrP,MACR,KACmB,cAAVxD,IAIT0H,EAAI7G,KAAK,eAITuW,YAAW,WAAM,SAAKmH,KAAK,cAAV,GAA0B,GAE/C,IAQA,KAAKinG,QAAQxmH,SAAQ,YACnB+W,EAAKqwK,eAAevzK,EAAO1F,EAAcoQ,mBACzCxH,EAAK4wK,kCAAkC9zK,GAAO5J,OAAM,YAElDvB,EAAIoC,KAAK,qDAAqD+I,EAAK,IAAKhT,EAC1E,GACF,G,CACF,EAOA2iL,8CAAA,SAAkC+D,GAChC,IAAIK,EAAwBC,EAAoB,KAAKv1K,OAAQi1K,GAC7D,GAAIK,EACF,OAAO/jL,QAAQvD,QAAQsnL,GAGzB,IAAMl/K,EAAM,KAAKwuC,KACX34C,EAAO,KAEP4oH,EAAiB,KAAKnyC,WAAWwyG,eAAeD,EAAW5uE,cACjE,OAAKwO,EAIE,IAAItjH,SAAQ,SAACvD,EAASC,GAmF3B4mH,EAAejyG,GAAG,WAlFlB,SAASizG,IACP,IAAMtnH,EAAQsmH,EAAetmH,MAC7B,GAAIA,EAQF,OAPAsmH,EAAezxG,eAAe,UAAWyyG,GACzCz/G,EAAIoC,KAAK,yBAAyBgP,EAAWytK,GAAY,GAAK,KAAK1mL,EAAM2J,SACzEjM,EAAKypH,aAAau/D,EAAYA,EAAW/vI,IACzCp/B,YAAW,WACT7Z,EAAKghB,KAAK,yBAA0B1e,EAAO0mL,EAC7C,SACAhnL,EAAOM,GAIT,IAAKtC,EAAKioH,QAAQnxG,IAAIkyK,EAAW/vI,IAG/B,OAFA2vE,EAAezxG,eAAe,UAAWyyG,QACzC5nH,EAAO,IAAIU,MAAM,OAAOsmL,EAAU,qBAKpC,GADYpgE,EAAevyC,IAC3B,CAIAuyC,EAAezxG,eAAe,UAAWyyG,GAEzC,IAAM7/G,EAAU,CACdI,IAAG,EACH8L,2BAA4BjW,EAAKsoL,4BACjCnyK,0BAA2BnW,EAAKuoL,2BAChCryK,2BAA4BlW,EAAKwoL,6BAGnCa,EAAwBC,EAAoBtpL,EAAK+T,OAAQi1K,GAEzD,IAAMO,EAAiB,SAAA/1K,GACrB,SAAKwN,KAAK,eAAgBxN,EAAmB61K,EAA7C,EAEIG,EAAyB,WAC7B,SAAKxoK,KAAK,uBAAwBqoK,EAAlC,EAQGA,IACHA,EAAwBzzK,EAAwBozK,EAAYpgE,GAP5C,SAAAntG,GAChB4tK,EAAsBlyK,eAAe,eAAgBoyK,GACrDF,EAAsBlyK,eAAe,uBAAwBqyK,GAC7DxpL,EAAKypL,eAAehuK,EAAYnG,MAClC,GAGyFvL,GACvF/J,EAAKupH,qBAAqB8/D,IAG5BA,EAAsB1yK,GAAG,UAAW4yK,GACpCF,EAAsB1yK,GAAG,kBAAmB6yK,GAEpC,MAAUxpL,EAAKy2E,WAAU,MACnB,cAAVh0E,GAAmC,eAAVA,IACvBumL,EAAW7rE,yBACb6rE,EAAW7rE,wBAAwBxmG,GAAG,SAAS,YAC7C3W,EAAKqhH,eAAergG,KAAK,QAAS,CAChChc,KAAM6R,EAAM7R,KACZmN,QAAS0E,EAAMlO,KACfmM,MAAO,kBACPC,MAAO,QAEX,IAIEi0K,EAAWpzE,iBACbozE,EAAWjqE,iBACXiqE,EAAWzO,4BAA2B,KAG5B,cAAV93K,GACFoX,YAAW,WACT7Z,EAAKghB,KAAK,iBAAkBqoK,EAC9B,IAEFtnL,EAAQsnL,E,CACV,GAGF,IAvFS/jL,QAAQtD,OAAO,IAAIU,MAAM,yBAAyBsmL,EAAU,wBAwFvE,EAsEA/D,yBAAA,SAAayE,EAA8B3/K,GACzC,IAcIi/K,EAdEW,EAAmBL,EAAoB,KAAKv1K,OAAQ21K,GAC1D,GAAIC,EACF,OAAOrkL,QAAQvD,QAAQ4nL,GAGzB5/K,EAAUxL,OAAOgT,OAAO,CACtBpH,IAAK,KAAKwuC,KACVi+B,SAAUhnE,EAAcoQ,kBACxBzK,gBAAiB,KAAK2yK,iBACtBzyK,eAAgB,KAAK0yK,gBACrB3yK,gBAAiB,KAAK4yK,iBACtB1yK,iBAAkB,KAAK2yK,mBACtBt+K,GAGH,IACEi/K,EAAa3zK,EAAaq0K,EAA8B3/K,E,CACxD,MAAOzH,GACP,OAAOgD,QAAQtD,OAAOM,E,CAGxB,IAAMmpK,EAAoBud,EAAWvd,kBAC/Bme,EAAyB,KAAKnzG,WAAWk2F,gBAC3ClB,IAAsBme,EAAuBvrK,SAASotJ,EAAkBO,UAC1E,KAAKrzH,KAAKpsC,KAAQk/J,EAAkBO,OAAM,4DAC1CP,EAAkBoe,sBAGpB,IAAM9yG,EAAiBx4E,OAAO+C,OAAOsO,GACrC,IAAKmnE,EAAe14D,SAAStU,EAAQ6sE,UAEnC,OAAOtxE,QAAQtD,OAAO2N,EAAE2O,cAAc,oCAAqCy4D,IAG7E,IAAI+yG,EAAkB,KAAK1/D,UAAU4+D,EAAYA,EAAW/vI,GAAIlvC,EAAQ6sE,WACnE,KAAKqxC,QAAQjxG,IAAIgyK,EAAW/vI,IAEjC,OAAO,KAAKmwI,kCAAkCU,EAChD,EAeA7E,0BAAA,SAAclxK,GACZ,IAAKjF,MAAMC,QAAQgF,GAEjB,MAAMpE,EAAEgG,aAAa,SACnB,kFAEJ,OAAOrQ,QAAQ6P,IAAIpB,EAAOlD,IAAI,KAAKk5K,aAAc,MACnD,EAEA9E,gCAAA,WACE,KAAKtsI,KAAKpsC,KAAK,wGACjB,EA4BA04K,2CAAA,SAA+BzwK,GAC7B,GAA2C,kBAAhCA,GAC0B,OAAhCA,EAEH,MAAM7E,EAAEgG,aAAa,8BAA+B,+BAStD,MAPA,CAAC,QAAS,UAAUlU,SAAQ,YAC1B,GAAIkQ,KAAQ6C,IAA6E,kBAAtCA,EAA4B7C,IAAsBnN,MAAMgQ,EAA4B7C,KAErI,MAAMhC,EAAEgG,aAAa,+BAA+BhE,EAAQ,SAEhE,IACA,KAAK8kE,WAAWuzG,+BAA+Bx1K,GACxC,IACT,EAUAywK,0BAAA,SAAcoB,GACZ,GAAkC,qBAAvBA,GACwB,kBAAvBA,EAEV,MAAM12K,EAAEgG,aAAa,qBACnB,yCAGJ,GAAI0wK,EAAoB,CACtB,GAAI,KAAK5vG,WAAWwzG,gBAAgBt3K,mBAAqB0zK,EAAmBc,gBAE1E,MAAMx3K,EAAEgG,aAAa,qBAAsB,yFAG7C,CAAC,kBAAmB,mBAAmBlU,SAAQ,YAC7C,GAAwC,qBAA7B4kL,EAAmB10K,IACW,kBAA7B00K,EAAmB10K,IACG,OAA7B00K,EAAmB10K,GAEtB,MAAMhC,EAAEgG,aAAa,sBAAsBhE,EAAQ,4BAEvD,G,MACgC,OAAvB00K,IACTA,EAAqB,CAAEkB,gBAAiB,KAAMJ,gBAAiB,OAIjE,OADA,KAAK1wG,WAAW+2B,cAAc64E,GACvB,IACT,EAaApB,2BAAA,SAAe3vK,GACbkxG,EAAmBlxG,EAAO,CACxBC,gBAAiB,KAAK2yK,iBACtBzyK,eAAgB,KAAK0yK,gBACrB3yK,gBAAiB,KAAK4yK,iBACtB1yK,iBAAkB,KAAK2yK,oBAGzB,IAAIW,EAAa,KAAK/gE,QAAQjxG,IAAI1B,EAAM2jC,IACxC,IAAK+vI,EACH,OAAO,KAOT,GAJuB,KAAKvyG,WAAWwyG,eAAeD,EAAW5uE,cAClD8vE,cAAc,IAAIxnL,MAAM,OAAOsmL,EAAU,uBAExDA,EAAa,KAAKv/D,aAAau/D,EAAYA,EAAW/vI,KAEpD,OAAO,KAGT,IAAMowI,EAAwBC,EAAoB,KAAKv1K,OAAQi1K,GAI/D,OAHIK,GACF,KAAKx/D,wBAAwBw/D,GAExBA,CACT,EAYApE,4BAAA,SAAgBlxK,GAAhB,WACE,IAAKjF,MAAMC,QAAQgF,GAEjB,MAAMpE,EAAEgG,aAAa,SACnB,kFAGJ,OAAO5B,EAAO5C,QAAO,SAACg5K,EAAmB70K,GACvC,IAAM80K,EAAmB5xK,EAAKixK,eAAen0K,GAC7C,OAAO80K,EAAmBD,EAAkBjyK,OAAOkyK,GAAoBD,CACzE,GAAG,GACL,EACF,EAllBA,CA7BoBz6K,EAAQ,MA2uB5B,SAAS45K,EAAoBe,EAAmB/0K,GAC9C,OAAOxG,MAAMiJ,KAAKsyK,EAAkB/oL,UAAU0zC,MAAK,YAAoB,SAAiB1/B,QAAUA,GAC7Fq0K,EAAiBr0K,MAAMqgG,mBAAqBrgG,CADsB,KACZ,IAC7D,CAEAuH,EAAOxe,QAAU4mL,C,ohBCrvBjB,cAUE,WAAYpvK,EAAWP,EAAOQ,EAAW/L,G,OACvC4lC,YAAM95B,EAAWP,EAAOQ,EAAW/L,IAAQ,IAC7C,CAKF,OAjByC0O,OAcvCxC,qBAAA,WACE,MAAO,gCAAgC,KAAKyiC,YAAW,KAAK,KAAKo+B,SAAQ,GAC3E,EACF,EAjBA,CAT8BpnE,EAAQ,KA4BtCmN,EAAOxe,QAAU4X,C,ohBCnBjB,cAUE,WAAYJ,EAAWP,EAAOQ,EAAW/L,G,OACvC4lC,YAAM95B,EAAWP,EAAOQ,EAAW/L,IAAQ,IAC7C,CAKF,OAjBwC0O,OActCtC,qBAAA,WACE,MAAO,+BAA+B,KAAKuiC,YAAW,KAAK,KAAKo+B,SAAQ,GAC1E,EACF,EAjBA,CAT8BpnE,EAAQ,KA4BtCmN,EAAOxe,QAAU8X,C,ohBCnBjB,cAUE,WAAYN,EAAWP,EAAOQ,EAAW/L,G,OACvC4lC,YAAM95B,EAAWP,EAAOQ,EAAW/L,IAAQ,IAC7C,CAKF,OAjByC0O,OAcvCvC,qBAAA,WACE,MAAO,gCAAgC,KAAKwiC,YAAW,KAAK,KAAKo+B,SAAQ,GAC3E,EACF,EAjBA,CAT8BpnE,EAAQ,KA4BtCmN,EAAOxe,QAAU6X,C,ohBC5BX2+F,EAAanlG,EAAQ,KAmB3B,cAYE,WAAY2mE,EAAKo0C,EAAoB9zC,EAAWS,EAAeJ,EAAa0zC,EAAe3gH,G,OACzF4lC,YAAM0mC,EAAKo0C,EAAoB9zC,EAAWS,EAAeJ,EAAa0zC,EAAe3gH,IAAQ,IAC/F,CA6BF,OA3C+B0O,OAgB7BiuG,qBAAA,WACE,MAAO,sBAAsB,KAAKhuE,YAAW,KAAK,KAAK29B,IAAG,GAC5D,EAKAqwC,mBAAA,WACE/2E,YAAM8lC,OAAM,WACR,KAAKy/B,WAGP,KAAKA,SAASmB,UAAY,KAC1B,KAAKnB,SAAW,KAEpB,EASAwR,wBAAA,SAAY9vC,GACV,OAAOjnC,YAAMqnC,YAAW,UAACJ,EAC3B,EACF,EA3CA,CAlB8BlnE,EAAQ,IAER46K,CAAsBz1E,IAgGpDh4F,EAAOxe,QAAUqoH,C,ohBCrFjB,cAOE,WAAY7wG,EAAW9L,G,OACrB4lC,YAAM95B,EAAW9L,IAAQ,IAC3B,CAKF,OAd0C0O,OAWxCkuG,qBAAA,WACE,MAAO,iCAAiC,KAAKjuE,YAAW,KAAK,KAAKo+B,SAAQ,GAC5E,EACF,EAdA,CAd+BpnE,EAAQ,KA2DvCmN,EAAOxe,QAAUsoH,C,86BC3DX7xC,EAAQplE,EAAQ,IAChB,EAAmCA,EAAQ,IAA7BC,EAAC,aAAEC,EAAa,gBA+BpC,cAOE,WAAYymE,EAAKk0G,EAAmBxgL,GAApC,MACE4lC,YAAM46I,EAAkBtxI,GAAI,OAAQlvC,IAAQ,K,OAE5CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5BoyG,eAAgB,CACd7rH,OAAO,EACPY,UAAU,GAEZkrH,UAAW,CACT9rH,MAAO,KACPY,UAAU,GAEZg3E,UAAW,CACTl3E,YAAY,EACZV,OAAO,GAETq4E,cAAe,CACb33E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK4zG,cACd,GAEF3L,kBAAmB,CACjBx/G,YAAY,EACZV,MAAOwrL,EAAkBtrE,mBAE3BC,eAAgB,CACdz/G,YAAY,EACZV,MAAOwrL,EAAkBrrE,gBAE3BC,QAAS,CACP1/G,YAAY,EACZV,MAAOwrL,EAAkBprE,SAE3BvoC,SAAU,CACRn3E,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK6zG,SACd,GAEFgxD,SAAU,CACRp8K,YAAY,EACZV,MAA+C,OAAxCwrL,EAAkBtrE,mBACiB,OAArCsrE,EAAkBrrE,gBAEzB7oC,IAAK,CACH52E,YAAY,EACZV,MAAOs3E,KAIXk0G,EAAkB5zK,GAAG,WAAW,YAC9B6B,EAAKwI,KAAK,UAAWrY,EAAM6P,EAC7B,I,CACF,CAsCF,OAnG8BC,OAsE5BmuG,wBAAA,SAAYhwC,GACV,IAAMG,EAAc,GAAI,MAAI,EAAKx4E,OAAO+C,OAAOsO,KAC/C,IAAKmnE,EAAe14D,SAASu4D,GAE3B,MAAMjnE,EAAE2O,cAAc,WAAYy4D,GAKpC,OADA,KAAK8zC,UAAYj0C,EACV,IACT,EAKAgwC,wBAAA,WACE,EAOFA,4BAAA,SAAgBxvC,GACV,KAAKwzC,iBAAmBxzC,IAC1B,KAAKwzC,eAAiBxzC,EACtB,KAAKp2D,KAAKo2D,EAAgB,cAAgB,aAAc,MAE5D,EACF,EAnGA,CAA8BtC,GA2H9Bj4D,EAAOxe,QAAUuoH,C,ohBC/IjB,cAOE,WAAY/wG,EAAW9L,G,OACrB4lC,YAAM95B,EAAW9L,IAAQ,IAC3B,CAKF,OAdyC0O,OAWvCouG,qBAAA,WACE,MAAO,gCAAgC,KAAKnuE,YAAW,KAAK,KAAKo+B,SAAQ,GAC3E,EACF,EAdA,CAZ+BpnE,EAAQ,KA+CvCmN,EAAOxe,QAAUwoH,C,k0BC/CXyjE,EAAwB56K,EAAQ,KAChC2tG,EAAa3tG,EAAQ,KACrB0oG,EAA4B1oG,EAAQ,IAClC,EAAiBA,EAAQ,KAA6B,aACxDomC,EAAUpmC,EAAQ,IAElB86K,EAAwBF,EAAsBjtE,GAkBpD,cAYE,WAAYhnC,EAAKo0C,EAAoB9zC,EAAWS,EAAeJ,EAAa0zC,EAAe3gH,GAA3F,W,OACEA,EAAUxL,OAAOgT,OAAO,CACtB0O,4BAA6B,OAC7B+nG,uBAAwB,OACxByiE,iCAAiC,GAChC1gL,GAEHA,EAAUxL,OAAOgT,OAAO,CACtBy+H,qBAAsD,qBAAzBA,sBAAgF,SAAxCjmI,EAAQkW,4BAA0CyqK,EAAe16C,qBACtI26C,eAA0C,qBAAnBA,gBAAqE,SAAnC5gL,EAAQi+G,uBAAqC0iE,EAAeC,gBACpH5gL,GAEHyO,cAAM69D,EAAKo0C,EAAoB9zC,EAAWS,EAAeJ,EAAa0zC,EAAe3gH,IAAQ,KAE7FxL,OAAOkQ,iBAAiB+J,EAAM,CAC5BoyK,iCAAkC,CAChC7rL,OAAmD,IAA5CgL,EAAQ0gL,iCAAoF,SAAxC1gL,EAAQkW,6BAErE4qK,kCAAmC,CACjC9rL,MAAO,KACPY,UAAU,GAEZmoH,6BAA8B,CAC5B/oH,MAAOgL,EAAQkW,6BAEjB8nG,wBAAyB,CACvBhpH,MAAOgL,EAAQi+G,wBAEjB8iE,mBAAoB,CAClB/rL,MAAO,IAAIgsL,SAEbC,kBAAmB,CACjBjsL,MAAO,IAAIq2G,SAEb61E,gBAAiB,CACflsL,MAAO,IAAIq2G,SAEb81E,cAAe,CACbnsL,MAAO,IAAI+2C,GAAQ,WACjBt9B,EAAKuyG,eAAe,CAAExiB,SAAS,GACjC,GArEuB,IAqEI,IAE7B4iF,gBAAiB,CACfpsL,MAAO,IAAIgL,EAAQ4gL,gBAAe,YAIFz5K,EAAQ8jC,MAAK,YAAS,OAACx8B,EAAKsyK,mBAAmBh0K,IAAIlT,EAAMwD,OAAnC,KAElDgkL,EAAyB5yK,EAE7B,KAEF6yK,sBAAuB,CACrBtsL,MAAO,IAAIgL,EAAQimI,sBAAqB,YACtC,IAAIs7C,GAAsB,EAC1Bp6K,EAAQzP,SAAQ,aACM+W,EAAKsyK,mBAAmBh0K,IAAIlT,EAAMwD,UACnCxD,EAAMysI,iBACnBzsI,EAAMysI,gBACR73H,EAAKmgC,KAAK2c,MAAM,4CAChB98C,EAAKsyK,mBAAmB7zI,OAAOrzC,EAAMwD,UAErCoR,EAAKmgC,KAAK2c,MAAM,4CAChB98C,EAAKsyK,mBAAmB7zK,IAAIrT,EAAMwD,SAEpCkkL,GAAsB,EAE1B,IACIA,IACFC,EAAuB/yK,GAKvB4yK,EAAyB5yK,GAE7B,GAAG,CAAE6mC,UAAW,S,CAGtB,CA4NF,OAxT+B5mC,OAiG7BquG,mBAAA,SAAOxI,GACL,IAAMp8G,EAASytC,YAAM8lC,OAAO50E,KAAK,KAAMy9G,GAGvC,OADAitE,EAAuB,MAChBrpL,CACT,EAOA4kH,qBAAA,WACE,GAA0C,WAAtC,KAAKgB,6BACP,MAAM,IAAIplH,MAAM,wHAGlB,OADA,KAAKqoH,eAAe,CAAExiB,SAAS,IACxB,IACT,EAOAue,sBAAA,WACE,GAA0C,WAAtC,KAAKgB,6BACP,MAAM,IAAIplH,MAAM,yHAGlB,OADA,KAAKqoH,eAAe,CAAExiB,SAAS,IACxB,IACT,EAQAue,kCAAA,SAAsB0kE,GACpB,GAAqC,WAAjC,KAAKzjE,wBACP,MAAM,IAAIrlH,MAAM,mHAMlB,OAHI8oL,EAAmBv5K,kBACrB,KAAK84G,eAAe,CAAE94G,iBAAkBu5K,EAAmBv5K,mBAEtD,IACT,EAEA60G,0BAAA,SAAcxQ,GACZ,IAAMm1E,EAAe,KAAKT,kBAAkBh0K,IAAIs/F,GAC5Cm1E,IACFn1E,EAAG95F,oBAAoB,wBAAyBivK,EAAaC,YAC7Dp1E,EAAG95F,oBAAoB,wBAAyBivK,EAAaE,YAC7D,KAAKX,kBAAkB/zI,OAAOq/D,GAElC,EAEAwQ,wBAAA,SAAYxQ,GAAZ,WAEE,IADqB,KAAK00E,kBAAkBh0K,IAAIs/F,GAC7B,CACjB,IAAMo1E,EAAa,SAAA70K,GAAS,SAAK+0K,YAAY/0K,EAAOy/F,EAAxB,EACtBq1E,EAAa,SAAA90K,GAAS,SAAKg1K,YAAYh1K,EAAOy/F,EAAxB,EAG5BA,EAAGv7F,iBAAiB,wBAAyB2wK,GAC7Cp1E,EAAGv7F,iBAAiB,wBAAyB4wK,GAC7C,KAAKX,kBAAkB/kK,IAAIqwF,EAAI,CAAEo1E,WAAU,EAAEC,WAAU,EAAEG,YAJrC,SAAAj1K,GAAS,SAAKk1K,aAAal1K,EAAOy/F,EAAzB,G,CAMjC,EAEAwQ,wBAAA,SAAYjwG,EAAOm1K,GACjB,KAAKrzI,KAAK2c,MAAM,cAChB,IAAM22H,EAAYp1K,EAAMq1K,uBACxB,KAAKjB,gBAAgBhlK,IAAI+lK,EAASC,GAC1B,MAAgB,KAAKjB,kBAAkBh0K,IAAIg1K,GAAQ,YAC3DC,EAAUlxK,iBAAiB,SAAU+wK,GACrCP,EAAuB,KACzB,EAEAzkE,wBAAA,SAAYjwG,EAAOm1K,GACjB,KAAKrzI,KAAK2c,MAAM,cAChB,KAAK21H,gBAAgBh0I,OAAO+0I,GACpB,MAAgB,KAAKhB,kBAAkBh0K,IAAIg1K,GAAQ,YACzCn1K,EAAMq1K,uBACd1vK,oBAAoB,SAAUsvK,GACxCP,EAAuB,KACzB,EAEAzkE,yBAAA,WACEskE,EAAyB,KAC3B,EAEAtkE,mBAAA,SAAOxQ,GACL,IAAMp0G,EAASytC,YAAMy6D,OAAM,UAACkM,GAgB5B,MAd0C,SAAtC,KAAKwR,8BAGP,KAAKgjE,mBAAmB7zK,IAAI/U,GAG9B,KAAKmpL,sBAAsBz2H,QAAQ1yD,GACnC,KAAKipL,gBAAgBv2H,QAAQ1yD,GAEzB,KAAK0oL,mCACP,KAAKC,kCAAoC,KAAKA,mCA8GpD,SAAwCsB,GACtC,SAAS/gE,IACPmgE,EAAuBY,EACzB,CAGA,OADA/zE,EAA0BoB,mBAAmB,EAAG4R,GACzC,WACLhT,EAA0BqB,oBAAoB,EAAG2R,EACnD,CACF,CAvHyFghE,CAA+B,OAGpH,KAAKC,YAAYnqL,GACVA,CACT,EAEA4kH,mBAAA,SAAOxQ,GAAP,WACQp0G,EAASytC,YAAMg5D,OAAM,UAAC2N,GAkB5B,OAjBiBxnG,MAAMC,QAAQ7M,GAAUA,EAAS,CAACA,IAC1CT,SAAQ,YACf+W,EAAK6yK,sBAAsBl8C,UAAUloG,GACrCzuB,EAAK2yK,gBAAgBh8C,UAAUloG,GAC/BzuB,EAAKsyK,mBAAmB7zI,OAAOhQ,GAC/BzuB,EAAK8zK,cAAcrlJ,EACrB,IAE+B,IAA3B,KAAKguE,aAAa/9F,MAChB,KAAK2zK,oCACP,KAAKA,oCACL,KAAKA,kCAAoC,MAI7CU,EAAuB,MACvBH,EAAyB,MAClBlpL,CACT,EA4BA4kH,yBAAA,WACE,OAAOn3E,YAAM0uE,aAAap2G,MAAM,KAAMD,UACxC,EAgCA8+G,4BAAA,WACE,OAAOn3E,YAAMyuE,gBAAgBn2G,MAAM,KAAMD,UAC3C,EAEA8+G,qBAAA,WACE,MAAO,sBAAsB,KAAKpuE,YAAW,KAAK,KAAK29B,IAAG,GAC5D,EAUAywC,wBAAA,SAAYlwC,GACV,OAAOjnC,YAAMqnC,YAAW,UAACJ,EAC3B,EACF,EAxTA,CAA+B4zG,GAqU/B,SAASe,EAAuBgB,GAC9B,GAAsD,SAAlDA,EAAiBzkE,6BAArB,CAIA,IAAM0kE,EAAkBD,EAAiB70E,0BAA0BvpG,QAAO,YAAM,OAACo+K,EAAiBzB,mBAAmBh0K,IAAIw/F,EAAzC,KAMhE,KALGi2E,EAAiB70E,0BAA0BvpG,QAAO,YAAM,SAAiB88K,gBAAgBn0K,IAAIw/F,EAArC,IAGhD7xG,OAAS,GAAmC,YAA7B6D,SAAS4sE,iBAAiCs3G,EAAgB/nL,OAAS,IAG3G8nL,EAAiBrB,cAAcl1I,QAC/Bu2I,EAAiBxhE,eAAe,CAAExiB,SAAS,KACjCgkF,EAAiBrB,cAAcn1I,OAEzCw2I,EAAiBrB,cAAcr1I,O,CAEnC,CAEA,SAASu1I,EAAyBmB,GAChC,GAAiD,SAA7CA,EAAiBxkE,wBAArB,CAIA,IAAMykE,EAAkBD,EAAiB70E,0BAA0BvpG,QAAO,YAAM,OAACo+K,EAAiBzB,mBAAmBh0K,IAAIw/F,EAAzC,IAC1Em2E,EAAcF,EAAiB70E,0BAA0B7mG,KAAI,YACjE,IAAMo7K,EAAYM,EAAiBtB,gBAAgBj0K,IAAIs/F,GACvD,OAAO21E,EAAY,CAAE7uC,aAAc6uC,EAAUv6J,OAAQyrH,YAAa8uC,EAAUx6J,OAAU,CAAE2rH,aAAc,EAAGD,YAAa,EACxH,IACMuvC,EAAgBF,EAAgBt0K,OAAOu0K,GAC7C,GAAIC,EAAcjoL,OAAS,EAAG,CACtB,IAAC0P,EAAD,EAAkCu4K,EAAc3zK,MAAK,SAAC4zK,EAAKC,GAC/D,SAAIxvC,aAAewvC,EAAIzvC,YAAcwvC,EAAIvvC,aAAeuvC,EAAIxvC,YAAc,CAA1E,IAA4E,GADvEhpI,GAEDlC,EAAmB,CAAEyf,OAFN,eAE4BD,MAFf,eAGlC86J,EAAiBxhE,eAAe,CAAE94G,iBAAgB,G,EAEtD,CAiDA4K,EAAOxe,QAAUyoH,C,ohBClbjB,aACE,WAAYv6D,GACVhuD,OAAOkQ,iBAAiB,KAAM,CAC5Bo+K,UAAW,CACT9tL,MAAOwtD,IAGb,CAqBF,OAnBEm+H,oBAAA,WACA,EAEAA,sBAAA,WACA,EAEAA,wBAAA,SAAYsB,GACV,IAAMc,EAAe,KAAKC,eAAef,GAAS,GAClD,KAAKa,UAAU,CAACC,GAClB,EAEApC,0BAAA,SAAcsB,GACZ,IAAMgB,EAAiB,KAAKD,eAAef,GAAS,GACpD,KAAKa,UAAU,CAACG,GAClB,EAEAtC,2BAAA,SAAeuC,EAAc58C,GAC3B,MAAO,CAAEjpI,OAAQ6lL,EAAc58C,eAAc,EAC/C,EACF,EA5BA,GA8BA,2B,8CAAsD,QAAf53H,OAAe,EAAtD,CAAuCiyK,GAEvC,2B,8CAKA,QALiCjyK,OAC/By0K,mBAAA,SAAOlB,GACL,IAAMpoL,EAAQ,KAAKmpL,eAAef,GAAS,GAC3C,KAAKa,UAAU,CAACjpL,GAClB,EACF,EALA,CAAiC8mL,GAQjC7tK,EAAOxe,QAAU,CAAE8uL,yBAAwB,EAAED,mBAAkB,EAAExC,aAAY,E,ohBC3B7E,cAOE,WAAY70K,EAAW9L,G,OACrB4lC,YAAM95B,EAAW9L,IAAQ,IAC3B,CAKF,OAd0C0O,OAWxCsuG,qBAAA,WACE,MAAO,iCAAiC,KAAKruE,YAAW,KAAK,KAAKo+B,SAAQ,GAC5E,EACF,EAdA,CAd+BpnE,EAAQ,KA2DvCmN,EAAOxe,QAAU0oH,C,+BCrDjB,iBACE,aACExoH,OAAOkQ,iBAAiB,KAAM,CAC5B2+K,WAAY,CACVztL,UAAU,EACVZ,OAAO,IAGb,CA4BF,OAtBE+mH,oBAAA,WACA,EAMAA,uBAAA,WACE,QAAI,KAAKsnE,aACP,KAAKA,YAAa,GACX,EAGX,EAMAtnE,oBAAA,WACE,OAAO,KAAKsnE,UACd,EACF,EApCA,GAsCAvwK,EAAOxe,QAAUynH,C,k0BC5CT,EAAiBp2G,EAAQ,IAAS,aAEpC,EAIFA,EAAQ,IAHVoP,EAAsB,yBACtBC,EAAuB,0BACvBC,EAAY,eAGN,EAAYtP,EAAQ,GAAS,QAUrC,cAKE,WAAY8E,GAAZ,MACEm7B,cAAO,K,OAEPn7B,EAA8BjW,OAAOgT,OAAO,CAC1CmD,MAAOoK,EACPrK,OAAQsK,GACPvK,GAEHjW,OAAOkQ,iBAAiB+J,EAAM,CAC5B9D,MAAO,CACL3V,MAAOka,EAAQzE,EAA4BE,MAAOoK,EAAwBE,GACtExK,EAA4BE,MAC5BoK,EACJnf,UAAU,GAEZ8U,OAAQ,CACN1V,MAAOka,EAAQzE,EAA4BC,OAAQsK,EAAyBC,GACxExK,EAA4BC,OAC5BsK,EACJpf,UAAU,K,CAGhB,CAwBF,OAnD8C8Y,OAmC5C0sK,mBAAA,SAAO3wK,GAAP,WACEA,EAA8BjW,OAAOgT,OAAO,CAC1CmD,MAAO,KAAKA,MACZD,OAAQ,KAAKA,QACZD,GAEH,CACE,CAAC,QAASsK,EAAwB,GAClC,CAAC,SAAUC,EAAyB,IACpCtd,SAAQ,SAAC4P,G,IAAA8C,SAAC27J,EAAa,KAAE52J,EAAG,KAAEC,EAAG,KACjCX,EAAKs3J,GAAuE,kBAA/Ct7J,EAA4Bs7J,IACpD72J,EAAQzE,EAA4Bs7J,GAAgB52J,EAAKC,GAC1D3E,EAA4Bs7J,GAC5B52J,CACN,GACF,EACF,EAnDA,CAA8C0H,GAqD9C/D,EAAOxe,QAAU8mL,C,86BCvEXvkK,EAAelR,EAAQ,IACvB29K,EAAoB39K,EAAQ,KAC5Bw8G,EAAcx8G,EAAQ,KACpB,EAAgBA,EAAQ,GAAS,YAErC6oC,EAAa,EA+CjB,cAME,WAAY42E,EAAkBt5G,EAAW9L,GAAzC,IAqgB6B08K,EAAM92D,EArgBnC,EACEhgF,cAAO,KAEDxlC,EAAMJ,EAAQI,IAAIyuC,UAAU,UAAWpgC,GACvCk3G,EAAe,IAAI1+G,I,OAGzBzS,OAAOkQ,iBAAiB+J,EAAM,CAC5BmgC,KAAM,CACJ55C,MAAOoL,GAET29G,6BAA8B,CAC5B/oH,MAAOgL,EAAQkW,6BAA+B,YAEhD8nG,wBAAyB,CACvBhpH,MAAOgL,EAAQi+G,wBAA0B,YAE3CtvE,YAAa,CACX35C,QAASw5C,GAEXopE,SAAU,CACR5iH,MAAOgL,GAETujL,cAAe,CACbvuL,MAAO2wH,GAETj5C,WAAY,CACV13E,MAAO8W,GAETrD,gBAAiB,CACf/S,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK04G,aAAa14G,IAAInB,EAAU45G,qBAAuB,IAChE,GAEF89D,YAAa,CACX9tL,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAU85G,UAAUh5C,YAAa,CAC1C,GAEFw4C,iBAAkB,CAChB1vH,YAAY,EACZV,MAAOowH,GAETnqH,KAAM,CACJvF,YAAY,EACZV,MAAO8W,EAAU7Q,MAEnB0qH,aAAc,CACZjwH,YAAY,EACZV,MAAO2wH,GAETr5C,IAAK,CACH52E,YAAY,EACZV,MAAO8W,EAAUwgE,KAEnB5zE,MAAO,CACLhD,YAAY,EACZuX,IAAG,WACD,OAAOnB,EAAUpT,KACnB,GAEF+qL,YAAa,CACX/tL,YAAY,EACZV,MAAO8W,EAAU23K,eAsbzB,SAAsC/G,EAAMt3D,GAC1C,IAAM14G,EAAS,CAAC,eAAgB,wBAAwB5F,KAAI,YAAS,MAAC,CACpEm1G,UAAWnvG,EACX8sB,QAAS,W,IAAC,aAAAvzB,uBAAArI,kBAAY,SAAKiZ,KAAI,MAATylK,EAAI,GAAM5vK,GAAK,WAAS9O,IAAI,CAAEonH,MAA9B,EAF6C,IAKrE14G,EAAOhV,SAAQ,SAAC4P,G,IAAE20G,EAAS,YAAEriF,EAAO,UAClC,SAAiBhtB,GAAGqvG,EAAWriF,EAA/B,IAEF8iJ,EAAKpsK,KAAK,gBAAgB,WACxB,SAAO5Y,SAAQ,SAAC4P,G,IAAE20G,EAAS,YAAEriF,EAAO,UAClC,SAAiBxsB,eAAe6uG,EAAWriF,EAA3C,GADF,GAEJ,CA9bI8pJ,CAA6Bj1K,EAAM22G,GAgcRs3D,EA/bLjuK,GA+bWm3G,EA/bL95G,EAAU85G,WAgc9Bh5G,GAAG,WAAW,WACtB,IAAMooF,EAAU4wB,EAAUh5C,UAC1B8vG,EAAK9tI,KAAKr1C,KAAK,cAAay7F,EAAU,UAAY,YAClD0nF,EAAKzlK,KAAK,aAAY+9E,EAAU,UAAY,WAC9C,IAGF,SAA+B0nF,EAAM5wK,GACnC,IAAM1L,EAAMs8K,EAAK9tI,KAGjBxuC,EAAImrD,MAAM,uFAEVz/C,EAAU65G,aAAajuH,QAAQisL,EAAmBzoJ,KAAK,KAAMwhJ,IAC7Dt8K,EAAImrD,MAAM,oHAEVz/C,EAAUc,GAAG,uBAAwB+2K,EAAmBzoJ,KAAK,KAAMwhJ,IAEnE5wK,EAAUc,GAAG,0BAA0B,WAAM,SAAKqK,KAAK,yBAA0BylK,EAAKj0K,gBAAzC,IAG7CqD,EAAUc,GAAG,gBAAgB,SAAS8xG,EAAahmH,EAAOH,GAExD,OADA6H,EAAI7G,KAAK,yBAA0Bb,GAC3BA,GACN,IAAK,eACHgkL,EAAK/2D,aAAajuH,SAAQ,YACxB+mH,EAAYmlE,oBACd,IACAlH,EAAKzlK,KAAKve,EAAOgkL,EAAMnkL,GACvBmkL,EAAKt3D,iBAAiBp7G,OAAOtS,SAAQ,YACnCga,EAAY3F,WACd,IACAD,EAAUsB,eAAe,eAAgBsxG,GACzC,MACF,IAAK,eAIH5uG,YAAW,WAAM,SAAKmH,KAAK,eAAgB1e,EAA1B,GAAkC,GAEnD,MACF,QAIEuX,YAAW,WAAM,SAAKmH,KAAK,cAAV,GAA0B,GAEjD,GACF,CA/eI4sK,CAAsBp1K,EAAM3C,GA4ChC,SAAiC4wK,GAC/B,IAAMmD,EAAyBnD,EAAKt3D,iBAAiB14C,WAAWk2F,gBAChE8Z,EAAKt3D,iBAAiBr7G,YAAYrS,SAAQ,SAAC4P,G,IACnCo6J,EAD0C,QAChBA,kBAC5BA,IAAsBme,EAAuBvrK,SAASotJ,EAAkBO,UAC1Eya,EAAK9tI,KAAKpsC,KAAQk/J,EAAkBO,OAAM,4DAC1CP,EAAkBoe,qBAEtB,GACF,CApDIgE,CAAwBr1K,GAExBrO,EAAI7G,KAAK,sBAAuBkV,EAAKxT,MACrCmF,EAAImrD,MAAM,8BAA+BxmD,MAAMiJ,KAAKS,EAAK80K,cAAchsL,W,CACzE,CAqCF,OAvHmBmX,OAoFjB2sK,qBAAA,WACE,MAAO,UAAU,KAAK1sI,YAAW,KAAK,KAAK29B,IAAG,GAChD,EAOA+uG,uBAAA,WAGE,OAFA,KAAKzsI,KAAKr1C,KAAK,iBACf,KAAKmzE,WAAWhjB,aACT,IACT,EAQA2xH,qBAAA,sBACE,OAAO,KAAK3uG,WAAWxiC,WAAW7xC,MAAK,YACrC,aAAM2V,KAAK+1K,GAAWj9K,KAAI,SAACQ,G,IAAA8C,SAAC8kC,EAAE,KAAEvuC,EAAQ,KACtC,WAAIwhH,EAAYjzE,EAAI16C,OAAOgT,OAAO,GAAI7G,EAAU,CAC9CmhH,qBAAsBkiE,EAAqBv1K,EAAM9N,EAASmhH,sBAC1DE,qBAAsBgiE,EAAqBv1K,EAAM9N,EAASqhH,wBAF5D,GADF,GAOJ,EAEAq5D,mBAAA,WACE,OAAOt0K,EAAY,KACrB,EACF,EAvHA,CAAmB8P,GAoInB,SAASmtK,EAAqBtH,EAAM7S,GAClC,IAAM0S,EAA4BG,EAAKt3D,iBAAiB14C,WACxD,OAAOm9F,EAAWziK,QAAO,SAACyiK,EAAYoa,GACpC,IAAMvyK,EAAc6qK,EAA0BvyK,OAAOiD,IAAIg3K,EAAU3yI,SAC7D4yI,EAAc3H,EAA0B4H,UAAUzyK,GACxD,OAAOwyK,EACH,CAAC1vL,OAAOgT,OAAO,GAAIy8K,EAAW,CAAE3yI,QAAS4yI,EAAYh1I,MAAO/gC,OAAO07J,GACnEA,CACN,GAAG,GACL,CA0TA,SAAS8Z,EAAmBjH,EAAMr9D,GACxB,IAAMj/G,EAAoHs8K,EAAI,KAArFxmK,EAAiFwmK,EAAI,6BAA/Bz+D,EAA2By+D,EAAI,wBAChIj+D,EAAc,IAAI6kE,EAAkBjkE,EAAsB,CAAEj/G,IAAG,EAAE8V,4BAA2B,EAAE+nG,uBAAsB,IAE1H79G,EAAI7G,KAAK,qCAAsCklH,GAC/Ci+D,EAAK6G,cAAcrnK,IAAIuiG,EAAYnyC,IAAKmyC,GACxCi+D,EAAKzlK,KAAK,uBAAwBwnG,GAGlC,IAAM2lE,EAAiB,CACrB,CAAC,cAAe,0BAChB,CAAC,eAAgB,2BACjB,yBACA,gBACA,eACA,eACA,iBACA,8BACA,eACA,kBACA,0BACA,mBACA,kBACA,mBACA,qBACAt9K,KAAI,YACE,QAA4B/B,MAAMC,QAAQq/K,GAC5CA,EACA,CAACA,EAAaA,GAAY,GAFvBv3K,EAAK,KAAEqyG,EAAgB,KAI9B,SAASmlE,IACP,IAAMtmL,EAAO,GAAG/B,MAAMnF,KAAKmH,WAC3BD,EAAK28B,QAAQwkF,GACbnhH,EAAK7D,KAAKskH,GACVi+D,EAAKzlK,KAAI,MAATylK,EAAI,OAAS1+K,IACf,CAEA,OADAygH,EAAY7xG,GAAGE,EAAOw3K,GACf,CAACx3K,EAAOw3K,EACjB,IAEA7lE,EAAYnuG,KAAK,gBAAgB,WAC/B,IAAM7H,EAAkBi0K,EAAKj0K,gBAC7BrI,EAAI7G,KAAK,kCAAmCklH,GAC5Ci+D,EAAK6G,cAAcr2I,OAAOuxE,EAAYnyC,KACtC83G,EAAe1sL,SAAQ,YACrB+mH,EAAYrxG,eAAepP,EAAK,GAAIA,EAAK,GAC3C,IACA0+K,EAAKzlK,KAAK,0BAA2BwnG,GACjCA,IAAgBh2G,GAClBi0K,EAAKzlK,KAAK,yBAA0BylK,EAAKj0K,gBAE7C,GACF,CAmEAqK,EAAOxe,QAAU+mL,C,86BCplBjB,cAME,WAAYvvK,EAAW9L,GAAvB,MACE4lC,YAAM95B,EAAW9L,IAAQ,K,OACzByO,EAAKmwK,8BACLnwK,EAAK6B,KAAK,eAAgB7B,EAAKm1K,mBAAmB1oJ,KAAKzsB,I,CACzD,CAgGF,OA1GgCC,OAY9B40K,qBAAA,WACE,MAAO,uBAAuB,KAAK30I,aAAc,KAAK29B,IAAM,KAAK,KAAKA,IAAQ,IAAE,GAClF,EASAg3G,sBAAA,SAAUiB,EAAa7yK,EAAaw9B,GAClC,OAAKtJ,YAAMy6E,UAAS,UAACkkE,EAAar1I,IAGlCx9B,EAAY8yK,YAAYD,GACxB,KAAKttK,KAAK,kBAAmBstK,EAAa7yK,GACnC6yK,GAJE,IAKX,EAOAjB,iCAAA,SAAqB5xK,GACnB,IAAM+yK,EAAmB7+I,YAAM45E,qBAAoB,UAAC9tG,GACpD,OAAK+yK,GAGL,KAAKxtK,KAAK,iBAAkBwtK,GACrBA,GAHE,IAIX,EAIAnB,uCAAA,WACE,gBACK19I,YAAMq5E,2BAA0B,aAAE,CACrC,CAAC,qBAAsB,2BACvB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,yBAA0B,+BAC3B,CAAC,mBAAoB,oBACrB,CAAC,kBAAmB,oBAExB,EAKAqkE,+BAAA,sBACE,KAAKt5K,OAAOtS,SAAQ,YAClB,GAAIga,EAAYy7D,aAAc,CAC5B,IAAM5hE,EAAQmG,EAAYnG,MAC1BmG,EAAYgzK,eACZj2K,EAAKwI,KAAK,oBAAqB1L,EAAOmG,E,CAE1C,GACF,EASA4xK,yBAAA,SAAaiB,EAAa7yK,EAAaw9B,GACrC,IAAMy1I,EAAoB,KAAKzmE,QAAQjxG,IAAIiiC,GAC3C,OAAKy1I,GAIL/+I,YAAM85E,aAAY,UAACilE,EAAmBz1I,GACtCx9B,EAAYgzK,eACZ,KAAKztK,KAAK,oBAAqB0tK,EAAmBjzK,GAC3CizK,GANE,IAOX,EAOArB,oCAAA,SAAwB5xK,GACtB,KAAKg7D,WAAWk4G,eAAelzK,EAAYq7D,UAC3C,IAAM83G,EAAqBj/I,YAAMk6E,wBAAuB,UAACpuG,GACzD,OAAKmzK,GAGL,KAAK5tK,KAAK,mBAAoB4tK,GACvBA,GAHE,IAIX,EACF,EA1GA,CA9BoBl/K,EAAQ,MAsQ5BmN,EAAOxe,QAAUgvL,C,ohBC9PjB,cAME,WAAYhyI,EAAS8wE,EAAaP,GAAlC,MACEj8E,YAAM0L,EAAS8wE,EAAaP,IAAmB,K,OAE/CrtH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi5J,WAAY,CACV1yK,MAA8C,kBAAhCotH,EAAYwlD,gBACtBxlD,EAAYwlD,gBACZ,KACJlyK,YAAY,GAEdkc,OAAQ,CACN5c,MAAqC,kBAAvBotH,EAAYxwG,OACtBwwG,EAAYxwG,OACZ,KACJlc,YAAY,K,CAGlB,CACF,OAxBmCgZ,OAwBnC,EAxBA,CARwB/I,EAAQ,MAwChCmN,EAAOxe,QAAUitH,C,ohBC9BjB,cAME,WAAYjwE,EAAS8wE,EAAaP,GAAlC,MACEj8E,YAAM0L,EAAS8wE,EAAaP,IAAmB,KAE3CijE,EAAoB,KACmB,kBAAhC1iE,EAAYglD,iBACqB,kBAAjChlD,EAAYolD,mBACrBsd,EAAoB,GAEpBtwL,OAAOkQ,iBAAiBogL,EAAmB,CACzCp9J,MAAO,CACL1yB,MAAOotH,EAAYglD,gBACnB1xK,YAAY,GAEdiyB,OAAQ,CACN3yB,MAAOotH,EAAYolD,iBACnB9xK,YAAY,MAKlB,IAAIuS,EAAa,K,MACyB,kBAA/Bm6G,EAAY+kD,gBACoB,kBAAhC/kD,EAAYmlD,kBACrBt/J,EAAa,GAEbzT,OAAOkQ,iBAAiBuD,EAAY,CAClCyf,MAAO,CACL1yB,MAAOotH,EAAY+kD,eACnBzxK,YAAY,GAEdiyB,OAAQ,CACN3yB,MAAOotH,EAAYmlD,gBACnB7xK,YAAY,MAKlBlB,OAAOkQ,iBAAiB+J,EAAM,CAC5Bq2K,kBAAmB,CACjB9vL,MAAO8vL,EACPpvL,YAAY,GAEduS,WAAY,CACVjT,MAAOiT,EACPvS,YAAY,GAEdqvL,iBAAkB,CAChB/vL,MAA6C,kBAA/BotH,EAAYqmD,eACtBrmD,EAAYqmD,eACZ,KACJ/yK,YAAY,GAEdi+G,UAAW,CACT3+G,MAA4C,kBAA9BotH,EAAYsmD,cACtBtmD,EAAYsmD,cACZ,KACJhzK,YAAY,K,CAGlB,CACF,OAlEmCgZ,OAkEnC,EAlEA,CAVwB/I,EAAQ,MA8EhCmN,EAAOxe,QAAUktH,C,ohBCtEjB,cAKE,WAAYlwE,EAAS8wE,GAArB,MACEx8E,YAAM0L,EAAS8wE,IAAY,K,OAE3B5tH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi5J,WAAY,CACV1yK,MAA+C,kBAAjCotH,EAAYulD,iBACtBvlD,EAAYulD,iBACZ,KACJjyK,YAAY,GAEdkc,OAAQ,CACN5c,MAAqC,kBAAvBotH,EAAYxwG,OACtBwwG,EAAYxwG,OACZ,KACJlc,YAAY,K,CAGlB,CACF,OAvBoCgZ,OAuBpC,EAvBA,CARyB/I,EAAQ,MAiCjCmN,EAAOxe,QAAUmtH,C,ohBCzBjB,cAKE,WAAYnwE,EAAS8wE,GAArB,MACEx8E,YAAM0L,EAAS8wE,IAAY,KAEvBn6G,EAAa,K,MAC6B,kBAAnCm6G,EAAY8kD,oBACwB,kBAApC9kD,EAAYklD,sBACrBr/J,EAAa,GAEbzT,OAAOkQ,iBAAiBuD,EAAY,CAClCyf,MAAO,CACL1yB,MAAOotH,EAAY8kD,mBACnBxxK,YAAY,GAEdiyB,OAAQ,CACN3yB,MAAOotH,EAAYklD,oBACnB5xK,YAAY,MAKlBlB,OAAOkQ,iBAAiB+J,EAAM,CAC5BxG,WAAY,CACVjT,MAAOiT,EACPvS,YAAY,GAEdi+G,UAAW,CACT3+G,MAAgD,kBAAlCotH,EAAYumD,kBACtBvmD,EAAYumD,kBACZ,KACJjzK,YAAY,K,CAGlB,CACF,OAtCoCgZ,OAsCpC,EAtCA,CARyB/I,EAAQ,MAgDjCmN,EAAOxe,QAAUotH,C,ohBChDXsjE,EAA8Cr/K,EAAQ,KACtDs/K,EAAqBt/K,EAAQ,KAOnC,cAME,WAAY2sK,EAAUtyK,GAAtB,M,OAEEA,EAAUxL,OAAOgT,OAAO,CACtB09K,qCAAsCF,GACrChlL,GAEHyO,gBAAO,KAEPja,OAAOkQ,iBAAiB+J,EAAM,CAC5B02K,sCAAuC,CACrCnwL,MAAOgL,EAAQklL,sCAEjBttE,SAAU,CACR5iH,MAAOgL,GAETolL,UAAW,CACTpwL,MAAOs9K,K,CAGb,CA0BF,OAnD0B5jK,OA8BxB4sK,qBAAA,SACEl2D,EACAllH,EACAo8K,EACAnpG,EACAnzE,GAGA,OADAA,EAAUxL,OAAOgT,OAAO,GAAI,KAAKowG,SAAU53G,GACpC,KAAKmlL,sCAAsCjqJ,KAChD,KACAh7B,EACA,KAAKklL,UACLhgE,EACAk3D,EACAnpG,EACAnzE,EACJ,EAEAs7K,4CAAA,SAAgCgB,EAAoB7xK,GAClD,OAAO,IAAIw6K,EAAmB3I,EAAoB7xK,EACpD,EACF,EAnDA,CANkB9E,EAAQ,MA2D1BmN,EAAOxe,QAAUgnL,C,+BC7DjB,IAAMpvG,EAAoBvmE,EAAQ,IAC5B0/K,EAA+B1/K,EAAQ,KACvC2/K,EAAgB3/K,EAAQ,KACxB4/K,EAAmB5/K,EAAQ,KAE3B,EAGFA,EAAQ,IAFV0gC,EAAoC,uCACpCE,EAAoC,uCAGhC,EAA6C5gC,EAAQ,GAAnDiI,EAAO,UAAElE,EAA6B,gCA+I9CoJ,EAAOxe,QA7IP,SAA8C4L,EAAOoyK,EAAUltD,EAAkBk3D,EAAoBnpG,EAAiBnzE,GACpHA,EAAUxL,OAAOgT,OAAO,CACtBg+K,sBAAuBH,EACvBI,OAAQH,EACRI,UAAWH,GACVvlL,GAEH,IAAM4I,EAAoBuqE,EAAgBvoE,MAAM,KAAsD,IAA/CuoE,EAAgBvoE,MAAM,GAAGhC,kBACxE,EAA8D5I,EAAO,sBAA9CylL,EAAuCzlL,EAAO,OAAtC0lL,EAA+B1lL,EAAO,UAA3B8J,EAAoB9J,EAAO,WAAfI,EAAQJ,EAAO,IACvE2lL,EAAwB,IAAIH,EAAsBlJ,EAAoBnpG,EAAiBnzE,GACvF4lL,EAAeh4K,EAAQw3G,EAAiBp7G,QAAQ,YAAW,OAAC67K,EAAQ9lE,iBAAT,IACjE4lE,EAAsBG,gBAAgBF,GAEtC,IAEIrR,EAFEsJ,EAAoB,IAAIllL,MAAM,YAI9BotL,EAAoB,IAAI75G,GAAkB,SAACl0E,EAASC,EAAQ6lL,GAChE,IA4BE,EAaE99K,EAAO,sBAZTuI,EAYEvI,EAAO,iBAXTyI,EAWEzI,EAAO,gBAVT8T,EAUE9T,EAAO,YATTu3G,EASEv3G,EAAO,cARTmiC,EAQEniC,EAAO,WAPTiC,EAOEjC,EAAO,SANT/E,EAME+E,EAAO,KALTi3G,EAKEj3G,EAAO,eAJT0I,EAIE1I,EAAO,eAHTsJ,EAGEtJ,EAAO,eAFT86G,EAEE96G,EAAO,MADTswC,EACEtwC,EAAO,aAIL6F,IAAkB0C,EAClBI,IAAmBJ,EACnBM,IAAgBN,IACqB,aAAxCvI,EAAQkW,6BAAiF,aAAnClW,EAAQi+G,wBAE3D+nE,EAAmBxxL,OAAOgT,OAAO,CACrCoB,kBAAiB,EACjBsC,sBAAqB,EACrBzC,gBAAe,EACfqL,YAAW,EACXyjG,cAAa,EACbp1E,WAAU,EACVlgC,SAAQ,EACRg1G,eAAc,EACdvuG,eAAc,EACdY,eAAc,EACdQ,WAAU,EACVm8K,OA9Da,SAAAn8K,GACb,OAAIg0K,KACF7lL,EAAO4lL,GACAtiL,QAAQtD,OAAO4lL,KAExBz9K,EAAImrD,MAAM,mBAAoBzhD,GAC9B9J,EAAQ8J,WAAaA,EACrB67K,EAAsBO,iBAAiBlmL,GAEhC2lL,EAAsBQ,iBAAiB9tL,MAAK,WACjD,GAAIylL,IAEF,MADA7lL,EAAO4lL,GACDA,EAERz9K,EAAImrD,MAAM,+BAKVo6H,EAAsBS,QAAQ,cAChC,IAAGzkL,OAAM,YAGP,MAFAvB,EAAI7H,MAAM,2BAA4BA,GACtCN,EAAOM,GACDA,CACR,IACF,EAsCEuiH,MAAK,EACLjyG,YAAW,EACXynC,aAAY,EACZzqC,cAAa,EACb8C,eAAc,GACbJ,EAAmB,CACpBA,iBAAgB,GACd,IAEJgsK,EAAY,IAAImR,EACdzqL,EACAiF,EACAklH,EACAugE,EACArT,EACA0T,GAEF,IAAMK,EAAsB38K,EAA8B1J,GAC1Du3G,EAActgG,KAAK,QAASovK,GAE5B9R,EAAUjkK,KAAK,aAAa,aAC1BlQ,EAAImrD,MAAM,uBAAwBrf,GAC9B4xI,KACF7lL,EAAO4lL,GAGsC3xI,EAAY,YAK3Dl0C,EAAQ,IAAIytL,EAAOrgE,EAAkBl5E,EAAcqoI,EAAWoR,EAAuB3lL,IAHnF/H,EAAO,IAAIsuC,EAIf,IAEAguI,EAAUjkK,KAAK,gBAAgB,SAAC5X,EAAOH,GACvB,iBAAVG,GACF67K,EAAY,KACZt8K,EAAOM,GAAS,IAAI8tC,IAEpBjmC,EAAImrD,MAAM,2BAA4B7yD,EAE1C,GACF,IAAG,WACG67K,IACFA,EAAU7qH,aACV6qH,EAAY,KAEhB,IAUA,OARAwR,EAAkBpkL,OAAM,WAClB4yK,IACFA,EAAU7qH,aACV6qH,EAAY,MAEdoR,EAAsBj1I,OACxB,IAEOq1I,CACT,C,86BCvJQ,EAAiBpgL,EAAQ,IAAoB,aAC/C2gL,EAAmB3gL,EAAQ,KAC3B4oG,EAAmB5oG,EAAQ,KAC3B4gL,EAAuB5gL,EAAQ,KAC/BG,EAAOH,EAAQ,GACb,EAAyBA,EAAQ,IAAiC,qBAEpE4nI,EAA+B,YAAnBv7H,IAWlB,cAOE,WAAYsqK,EAAoBnpG,EAAiBnzE,GAAjD,MACE4lC,cAAO,KASDirE,GAPN7wG,EAAUxL,OAAOgT,OAAO,CACtBgzK,oBAAqBjtC,EACjB5nI,EAAQ,IACR,KACJ2gL,iBAAgB,GACftmL,IAE0Bw6K,oBACzBx6K,EAAQw6K,oBAAoB1oE,YAAYrjG,GACxC,KAIE+3K,EAAe31E,EACjB,CAAEq8D,qBAAqB,GACvB,CAAEE,qBAAqB,EAAMF,qBAAqB,G,OAEtD14K,OAAOkQ,iBAAiB+J,EAAM,CAC5Bg4K,qBAAsB,CACpBzxL,MAAOgL,EAAQw6K,qBAEjBkM,yBAA0B,CACxB1xL,MAAO,IAAIgS,KAEb2/K,eAAgB,CACd/wL,UAAU,EACVZ,MAAO,MAET4xL,uBAAwB,CACtBhxL,UAAU,EACVZ,MAAO8Q,EAAK4K,SAEdm2K,iBAAkB,CAChB7xL,MAAO,MACPY,UAAU,GAEZkxL,uBAAwB,CACtB9xL,MAAO67G,EACH,IAAItC,EAAiBw4E,EAAiCl2E,IACtD,MAENm2E,oBAAqB,CACnBhyL,MAAOsnL,GAET2K,oBAAqB,CACnBrxL,UAAU,EACVZ,MAAO,OAETkyL,kBAAmB,CACjBtxL,UAAU,EACVZ,MAAO,IAAIgS,KAEbmgL,qBAAsB,CACpBnyL,MAAO,MACPY,UAAU,GAEZwxL,wBAAyB,CACvBxxL,UAAU,EACVZ,MAAO,OAETqyL,mBAAoB,CAClBzxL,UAAU,EACVZ,MAAO,IAAIgS,KAEbsgL,cAAe,CACbtyL,MAAOwxL,GAETe,iBAAkB,CAChBvyL,MAAO,IAAIiS,KAEbugL,iBAAkB,CAChBxyL,MAAOm+E,GAETsyC,gBAAiB,CACfzwH,MAAO,KACPY,UAAU,GAEZ6xL,kBAAmB,CACjBzyL,MAAOgL,EAAQsmL,oB,CAGrB,CA+PF,OA1VoC53K,OA6FlC82K,0CAAA,SAA8BkC,GAC5B,KAAKH,iBAAiB7vL,SAAQ,YAAM,SAAGiwL,8BAA8BD,EAAjC,IACpC,KAAKF,iBAAiB58K,MAAMlT,SAAQ,YAC9B,sBAAuBkwL,IACzBA,EAAGh/K,kBAAoB8+K,EAE3B,GACF,EAOAlzL,sBAAIgxL,8BAAe,C,IAAnB,WACE,OAAO,KAAKqB,gBACd,E,gCAOAryL,sBAAIgxL,iCAAkB,C,IAAtB,WACE,OAAO,KAAKyB,mBACd,E,gCAOAzB,wCAAA,SAA4BqC,GAC1B,IAAMC,EAAoB,IAAI9gL,IAAI6gL,EAAqB/gL,KAAI,YAAuB,SAAoBooC,EAApB,KAMlF,OALA,KAAKq4I,iBAAiB7vL,SAAQ,YACvBowL,EAAkB/6K,IAAI+4J,EAAe52H,KACxC42H,EAAe5uD,QAEnB,IACO,IACT,EAOAsuE,8BAAA,WACE,OAAO,KAAKoB,uBAAuBh2K,OACrC,EASA40K,yBAAA,SAAat2I,EAAIm7H,GAAjB,WACQp0K,EAAO,KACT6vK,EAAiB,KAAKyhB,iBAAiBt6K,IAAIiiC,GAC/C,IAAK42H,EAAgB,CACnB,IAAMiiB,EAAmB,KAAKN,kBAExBznL,EAAUxL,OAAOgT,OAAO,CAC5BwgL,2BAA4B,KAAKlB,uBAC7B,KAAKA,uBAAuBv7K,MAC5B,KACJi7K,aAAc,KAAKc,eAClB,KAAK7hE,gBAAkB,CACxBJ,eAAgB,KAAKI,iBACnB,GAAI4kD,GAER,IACEvE,EAAiB,IAAIiiB,EAAiB74I,EAAI,KAAK83I,oBAAqB,KAAKQ,iBAAkBxnL,E,CAC3F,MAAO2D,GACP,MAAM,IAAIqlC,C,CAGZ,KAAKu+I,iBAAiBrrK,IAAI4pJ,EAAe52H,GAAI42H,GAC7CA,EAAel5J,GAAG,aAAc,KAAKqyD,MAAM/jC,KAAK,KAAM,eACtD4qI,EAAel5J,GAAG,cAAe,KAAKqyD,MAAM/jC,KAAK,KAAM,gBACvD4qI,EAAel5J,GAAG,aAAc,KAAKqyD,MAAM/jC,KAAK,KAAM,eACtD4qI,EAAel5J,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACxC,WAAVA,IACFotK,EAAe14J,eAAe,eAAgBsxG,GAC9CzoH,EAAKixL,kBAAkBxvL,SAAQ,YAAU,SAAeuwL,sBAAsB11E,EAArC,IACzCt8G,EAAKoxL,mBAAmB3vL,SAAQ,YAAU,SAAewwL,uBAAuB31E,EAAtC,IAC1Ct8G,EAAKsxL,iBAAiBr6I,OAAO44H,EAAe52H,IAC5Cj5C,EAAKywL,yBAAyBx5K,IAAI44J,EAAe52H,IACjDi5I,EAAsBlyL,GACtBmyL,EAAyBnyL,GAE7B,IACA6vK,EAAel5J,GAAG,0BAA0B,WAAM,SAAsB6B,EAAtB,IAClDq3J,EAAel5J,GAAG,6BAA6B,WAAM,SAAyB6B,EAAzB,IAErD,KAAKy4K,kBAAkBxvL,QAAQouK,EAAeuiB,mBAAoBviB,GAClE,KAAKuhB,mBAAmB3vL,QAAQouK,EAAewiB,oBAAqBxiB,GAEpEsiB,EAAyB,K,CAE3B,OAAOtiB,CACT,EAMA0f,kBAAA,WAWE,OAVA,KAAK+B,iBAAiB7vL,SAAQ,YAC5BouK,EAAep1H,OACjB,IACI,KAAKo2I,wBACP,KAAKA,uBAAuB5qL,OAE1B,KAAKuqL,sBACP,KAAKA,qBAAqB5wI,QAAQ,MAEpCuyI,EAAyB,MAClB,IACT,EAOA5C,2BAAA,sBACE,OAAO,KAAK+C,oBAAoBlwL,MAAK,YACnC,IAAI62C,EACJ,GACEA,EAAKppC,EAAKuJ,iBACHZ,EAAK84K,iBAAiBx6K,IAAImiC,IAEnC,OAAOzgC,EAAK+5K,aAAat5I,EAAIm7H,EAC/B,IAAGhyK,MAAK,YACN,OAAOytK,EAAe4F,OACxB,IAAGrzK,MAAK,WACN,OAAOoW,CACT,GACF,EAOA+2K,8BAAA,WACE,OAAO1/K,EAAK8H,QAAQ,KAAK25K,kBAAkB,YAAkB,SAAekB,mBAAf,GAC/D,EAMAjD,sBAAA,WACE,IAAMqC,EAAuB,GAO7B,OANA,KAAKN,iBAAiB7vL,SAAQ,YAC5B,IAAMgxL,EAAsB5iB,EAAe6iB,WACvCD,GACFb,EAAqB1tL,KAAKuuL,EAE9B,IACOb,CACT,EAOArC,6BAAA,SAAiBnb,GASf,OARI,KAAKsc,iBACP,KAAKC,uBAAyB9gL,EAAK4K,QACnC,KAAK62K,iBAAiB7vL,SAAQ,YAC5BouK,EAAeogB,iBAAiB7b,EAClC,KAEF,KAAKsc,eAAiBtc,EACtB,KAAKuc,uBAAuB5uL,QAAQqyK,GAC7B,IACT,EAOAmb,mCAAA,SAAuBoD,GAOrB,OAN6B,OAAzB,KAAKnjE,kBACP,KAAK8hE,iBAAiB7vL,SAAQ,YAC5BouK,EAAe+iB,uBAAuBD,EACxC,IACA,KAAKnjE,gBAAkBmjE,GAElB,IACT,EAQApD,4BAAA,SAAgBI,GACd,IAAMkD,EAAmB,IAAI9hL,IAAI4+K,EAAaxhL,QAAO,YAAe,MAAqB,SAArB,EAAY6F,IAAZ,KAE9D8+K,EAAoB,IAAI/hL,IAAI4+K,EAC/BxhL,QAAO,YAAe,WAAqC,UAArB8/K,EAAYj6K,MAAyC,UAArBi6K,EAAYj6K,KAA5D,KAEnB++K,EAyIV,SAA+BrD,EAAuBmD,EAAkBC,GACtE,MAAO,CACLnqL,KAAMqqL,EAA0BtD,EAAuBmD,GACvDx3K,MAAO43K,EAA2BvD,EAAuBoD,GAE7D,CA9IoBI,CAAsB,KAAML,EAAkBC,GAK9D,OAJA,KAAK7B,kBAAoB4B,EACzB,KAAKzB,mBAAqB0B,EAkF9B,SAAiCpD,EAAuBqD,IAClDA,EAAQpqL,KAAKsO,IAAIC,MAChB67K,EAAQpqL,KAAKinD,OAAO14C,MACpB67K,EAAQ13K,MAAMpE,IAAIC,MAClB67K,EAAQ13K,MAAMu0C,OAAO14C,OACxBw4K,EAAsB4B,iBAAiB7vL,SAAQ,YAC7CsxL,EAAQpqL,KAAKinD,OAAOnuD,QAAQouK,EAAemiB,sBAAuBniB,GAClEkjB,EAAQ13K,MAAMu0C,OAAOnuD,QAAQouK,EAAeoiB,uBAAwBpiB,GACpEkjB,EAAQpqL,KAAKsO,IAAIxV,QAAQouK,EAAeuiB,mBAAoBviB,GAC5DkjB,EAAQ13K,MAAMpE,IAAIxV,QAAQouK,EAAewiB,oBAAqBxiB,IAC1DkjB,EAAQ13K,MAAMpE,IAAIC,MACjB67K,EAAQ13K,MAAMu0C,OAAO14C,MACpB67K,EAAQpqL,KAAKsO,IAAIC,OAAS24J,EAAesjB,iCAC7CtjB,EAAe4F,OAEnB,GAEJ,CAlGI2d,CAAwB,KAAML,GAEvB,IACT,EAQAxD,mBAAA,SAAOqC,EAAsByB,GAA7B,WAIE,YAJ2B,QAAAA,MACvBA,GACF,KAAKC,4BAA4B1B,GAE5B,KAAKU,oBAAoBlwL,MAAK,YACnC,OAAOkD,QAAQ6P,IAAIy8K,EAAqB/gL,KAAI,YAC1C,OAAI2H,EAAKi4K,yBAAyB35K,IAAI27K,EAAoBx5I,IACjD,KAEczgC,EAAK+5K,aAAaE,EAAoBx5I,GAAIm7H,GAC3CrlI,OAAO0jJ,EAC/B,IACF,IAAGrwL,MAAK,WACN,OAAOoW,CACT,GACF,EAMA+2K,qBAAA,WACE,IAAMgE,EAAkBzkL,MAAMiJ,KAAK,KAAKu5K,iBAAiBhwL,UACzD,OAAOgE,QAAQ6P,IAAIo+K,EAAgB1iL,KAAI,YAAkB,SAAeojC,WAAW7xC,MAAK,YAAY,OAClGytK,EAAe52H,GACfvuC,EAFkG,GAA3C,KAGpDtI,MAAK,YAAa,WAAI4O,IAAI88K,EAAR,GACzB,EACF,EA1VA,CAAoCwC,GAkWpC,SAASQ,EAAiCl2E,GAExC,OAD+BA,EAAa+pE,+BACd9pE,OAAOwwD,iBAAiB,EACxD,CA8DA,SAAS2nB,EAA0BtD,EAAuBmD,GAGxD,MAAO,CACL57K,IAH4BpH,EAAKuH,WAAWy7K,EAAkBnD,EAAsBuB,mBAIpFrhI,OAH+B//C,EAAKuH,WAAWs4K,EAAsBuB,kBAAmB4B,GAK5F,CAkCA,SAASI,EAA2BvD,EAAuBoD,GAGzD,MAAO,CACL77K,IAH6BpH,EAAKuH,WAAW07K,EAAmBpD,EAAsB0B,oBAItFxhI,OAHgC//C,EAAKuH,WAAWs4K,EAAsB0B,mBAAoB0B,GAK9F,CAKA,IAcIU,EAdEC,EAAS,CACbC,IAAK,EACLC,SAAU,EACV31G,WAAY,EACZC,UAAW,EACX21G,UAAW,EACXz1G,cAAe,EACf01G,QAAS,EACTv0E,QAAS,GAyBX,SAASw0E,EAAmC59I,GAC1C,OAAKA,EAAOzxC,QAGZ+uL,EAAWA,GAdJj1L,OAAOiH,KAAKiuL,GAAQtiL,QAAO,SAACqiL,EAAU/wL,G,MAC3C,OAAOlE,OAAOgT,OAAOiiL,IAAQ,MAAKC,EAAOhxL,IAASA,EAAK,GACzD,GAAG,IAaIyzC,EAAO/kC,QAAO,SAAC4iL,EAAQC,GAC5B,OAAOR,EAASj6K,KAAKJ,IAAIs6K,EAAOM,GAASN,EAAOO,IAClD,KALS,KAMX,CAQA,SAAS7B,EAAyB8B,GAChCA,EAAI9C,wBAA0B8C,EAAIpkE,mBAClCokE,EAAIjD,oBAAsB8C,EACxB7iL,OAAIgjL,EAAI3C,iBAAiBhwL,WAAUuP,KAAI,YAAQ,SAAKg/G,kBAAL,KAC7CokE,EAAIpkE,qBAAuBokE,EAAI9C,yBACjC8C,EAAIjzK,KAAK,4BAEb,CAQA,SAASkxK,EAAsB+B,GAC7BA,EAAI/C,qBAAuB+C,EAAIrkE,gBAC/BqkE,EAAIrD,iBAAmBkD,EACrB7iL,OAAIgjL,EAAI3C,iBAAiBhwL,WAAUuP,KAAI,YAAQ,SAAK++G,eAAL,KAC7CqkE,EAAIrkE,kBAAoBqkE,EAAI/C,sBAC9B+C,EAAIjzK,KAAK,yBAEb,CAEAnE,EAAOxe,QAAUkxL,C,86BCnjBX2E,EAAiBxkL,EAAQ,KACzB,EAKFA,EAAQ,IAJOykL,EAAsB,kBACpBC,EAAwB,oBACpBC,EAA4B,wBACzCC,EAAa,WAGnBzkL,EAAOH,EAAQ,IAEf,EAKFA,EAAQ,IAJVkP,EAAgC,mCAChClB,EAAiB,oBACjBmB,EAA2B,8BAC3BM,EAAuB,0BAGnB,EAYFzP,EAAQ,IAXVgrE,EAAuB,0BACvBP,EAAoB,uBACpBzC,EAA6B,gCAC7BqD,EAAU,aACVI,EAAgB,mBAChBS,EAAiB,oBACjBtgC,EAAgB,mBAChB6gC,EAAoB,uBACpBG,EAAe,kBACfS,EAAmB,sBACnBW,EAAY,eAGRwxC,EAAiBx/G,EAAQ,IAEzB,EAGFA,EAAQ,IAFVgjC,EAA+B,kCAC/BE,EAAgC,mCAG5B,EAMFljC,EAAQ,GALVyL,EAAc,iBACdhD,EAAW,cACX2D,EAAwB,2BACxBpC,EAAW,cACXe,EAAK,QAGD85K,EAAS7kL,EAAQ,KACjB8kL,EAA8B9kL,EAAQ,KACtC+kL,EAAoB/kL,EAAQ,KAC5BglL,EAAqBhlL,EAAQ,KAC7BsnC,EAAetnC,EAAQ,IACvBi9B,EAAMj9B,EAAQ,IACdilL,EAAejlL,EAAQ,KACvBklL,EAAsBllL,EAAQ,KAE9Bu+J,EAAQp+J,EAAKkM,eACbzO,EAAW6K,IACXu8B,EAAY,UAAUrwB,KAAK/W,GAC3B6gK,EAAqB,WAAVF,EACX32B,EAAsB,YAAV22B,EACZG,EAAqB,WAAVH,EAEb11H,GAAa,EAuBXrC,GAAS,CACbspE,KAAM,CACJ,SACA,YAEFq1E,SAAU,CACR,SACA,QAEFv1E,OAAQ,IAWV,eAQE,WAAYrmE,EAAIotI,EAAoBnpG,EAAiBnzE,GAArD,MACE4lC,YAAM,OAAQuG,KAAO,KAoBfk+H,EAAgB0gB,GAnBtB/qL,EAAUxL,OAAOgT,OAAO,CACtB81K,YAAY,EACZ0K,2BAA4B,KAC5Bj2K,yBAAwB,EACxBjI,WAAY,GACZ7H,SAAU0R,EACV6yK,aAAc,GACdj0G,gBAAe,EACf8yC,eAA8C,IAA9BvwG,EAChBk+D,oBAAmB,EACnBW,aAAY,EACZ6vC,QAAS2mE,EACTa,qBAAsBP,EACtBrgJ,gBAAiBggJ,EACjBrqK,kBAAmBsqK,EACnBhgJ,sBAAuBigJ,EACvBv+I,QAASo5E,GACRnlH,IAGGkiC,EAAY9wB,EAAepR,EAAQiC,UACnC8d,EAAoB/f,EAAQ+f,mBAEP,IAAvB/f,EAAQs9K,aACVt9K,EAAQirL,0BAA4BjrL,EAAQirL,2BAA6B,GACzEjrL,EAAQirL,0BAA0BC,SAAWlrL,EAAQirL,0BAA0BC,UAAY,GAC3FlrL,EAAQirL,0BAA0BC,SAAS/wL,KAAK,CAAEgxL,UAAU,KAG9D,IAAM/qL,EAAMJ,EAAQI,IAAMJ,EAAQI,IAAIyuC,UAAU,SAAUpgC,GAAQ,IAAIm0B,EAAI,SAAUn0B,EAAMyzB,EAAWliC,EAAQmiC,YACvG2jI,EAAiB,IAAI/lJ,EAAkBsqJ,EAAerqK,EAAQirL,2BAEhEjrL,EAAQgoL,4BACVliB,EAAex4D,SAASttG,EAAQgoL,4BAGlCxzL,OAAOkQ,iBAAiB+J,EAAM,CAC5B28K,6BAA8B,CAC5Bp2L,MAAO,IAAIiS,IACXrR,UAAU,GAEZo8K,cAAe,CACbh9K,MAAO,IAAIiS,KAEbokL,oBAAqB,CACnBr2L,MAAO,IAAIgS,KAEbskL,qBAAsB,CACpB11L,UAAU,EACVZ,MAAO,GAETu2L,4BAA6B,CAC3B31L,UAAU,EACVZ,OAAO,GAETw2L,YAAa,CACXx2L,MAAOgL,EAAQs9K,YAEjB0J,oBAAqB,CACnBhyL,MAAOsnL,GAETmP,0BAA2B,CACzBz2L,MAAOgL,EAAQ+R,0BAEjB25K,oBAAqB,CACnB12L,OAAO,EACPY,UAAU,GAEZ+1L,qBAAsB,CACpB32L,MAAO,IAAIgL,EAAQ+rC,SACjB,WAAM,SAAK6/I,4BAAL,GACN/2K,GACA,IAEJg3K,mBAAoB,CAElB72L,MAAO,IAAIgL,EAAQwjH,QAAQpuG,IAE7Bu5B,YAAa,CACX35C,QAASw5C,IAEXs9I,yBAA0B,CACxBl2L,UAAU,EACVZ,OAAO,GAET+2L,WAAY,CACVn2L,UAAU,EACVZ,OAAO,GAETg3L,+BAAgC,CAC9Bp2L,UAAU,EACVZ,OAAO,GAETi3L,iBAAkB,CAChBr2L,UAAU,EACVZ,OAAO,GAEToyL,wBAAyB,CACvBxxL,UAAU,EACVZ,MAAO,MAETk3L,+BAAgC,CAC9Bt2L,UAAU,EACVZ,MAAO,GAETm3L,iBAAkB,CAChBv2L,UAAU,EACVZ,MAAO,IAETo3L,aAAc,CACZp3L,MAAO,IAAIgS,KAEbqlL,yBAA0B,CACxBz2L,UAAU,EACVZ,MAAO,GAETs3L,kCAAmC,CACjC12L,UAAU,EACVZ,MAAO,MAETu3L,kBAAmB,CACjB32L,UAAU,EACVZ,MAAO,MAETw3L,YAAa,CACX52L,UAAU,EACVZ,MAAO,MAET45C,KAAM,CACJ55C,MAAOoL,GAETk3G,eAAgB,CACdtiH,MAAOgL,EAAQu3G,eAEjBk1E,iBAAkB,CAChBz3L,MAAO,IAAIiS,KAEbylL,YAAa,CACX13L,MAAO,IAAIiS,KAEb0lL,eAAgB,CACd33L,MAAO,IAAIgS,KAEb4lL,sBAAuB,CACrB53L,MAAO,IAAIgL,EAAQgrL,qBAAqBllB,IAE1C+mB,qBAAsB,CACpB73L,MAAO,IAAIgS,KAEb8lL,aAAc,CACZl3L,UAAU,EACVZ,OAAO,GAET+3L,iBAAkB,CAChBn3L,UAAU,EACVZ,MAAO,MAETsyL,cAAe,CACb1xL,UAAU,EACVZ,MAAOgL,EAAQwmL,cAEjBwG,6BAA8B,CAC5Bh4L,MAAO2a,GAAY,WACZlB,EAAKq+K,cACRG,GAAyBx+K,EAE7B,KAEFm8J,gBAAiB,CACf51K,MAAO8wK,GAETonB,sBAAuB,CACrBl4L,MAAOm+E,EAAgBlnE,OAEzBkhL,sBAAuB,CACrBn4L,MAAOm+E,EAAgBvoE,OAEzBwiL,gBAAiB,CACfp4L,MAAOm+E,EAAgBlnE,MAAM6C,OAAM,SAACxH,GAAc,MAAU,SAAjB,OAAO,KAC7C6rE,EAAgBlnE,MAAM6nE,MAAK,SAACxsE,G,IAAEq7G,EAAK,QAAEu6D,EAAG,MAAO,MAAU,SAAV,GAAoBA,CAApB,KAEtDmQ,mBAAoB,CAClBz3L,UAAU,EACVZ,MAAO,MAETs4L,qBAAsB,CACpBt4L,MAAO,IAAIgL,EAAQ+rC,SAAQ,WACzB3rC,EAAImrD,MAAM,2BACV98C,EAAKiiC,OACP,GAAG1wC,EAAQqlH,gBAAgB,IAE7BkoE,sBAAuB,CACrBv4L,MAAO,CACLiX,MAAO,GACPrB,MAAO,KAGX4iL,sBAAuB,CACrBx4L,MAAO,IAAIiS,KAEbwmL,kBAAmB,CACjB73L,UAAU,EACVZ,MAAO,IAAIw1L,GAEbkD,qBAAsB,CAKpB14L,MAAOu4I,GAAa5iG,GAAawoC,EAAgBvoE,MAAM,IAAuD,SAAjDuoE,EAAgBvoE,MAAM,GAAG+3G,MAAMr0G,cACxF,YAAO,UACPtO,EAAQgzE,qBAEd26G,cAAe,CACb34L,MAAOgL,EAAQ2zE,cAEjBi6G,iBAAkB,CAChB54L,MAAOgL,EAAQuyE,iBAEjBs7G,iBAAkB,CAChB74L,MAAOgL,EAAQoqC,iBAEjB0jJ,mBAAoB,CAClB94L,MAAOgL,EAAQ+f,mBAEjBguK,uBAAwB,CACtB/4L,MAAOgL,EAAQqqC,uBAEjB2jJ,aAAc,CACZp4L,UAAU,EACVZ,OAAO,GAETi5L,kBAAmB,CACjBr4L,UAAU,EACVZ,OAAO,GAETk5L,sBAAuB,CACrBl5L,MAAO,IAAIiS,IACXrR,UAAU,GAEZu4L,cAAe,CACbv4L,UAAU,EACVZ,MAAO,MAETo5L,kCAAmC,CACjCp5L,MAAO,IAAIiS,KAEbioC,GAAI,CACFx5C,YAAY,EACZV,MAAOk6C,KAIXotI,EAAmB1vK,GAAG,UAAW6B,EAAKu+K,8BAEtClnB,EAAe90J,iBAAiB,wBAAyBvC,EAAK4/K,6BAA6BnzJ,KAAKzsB,IAChGq3J,EAAe90J,iBAAiB,cAAevC,EAAK6/K,wBAAwBpzJ,KAAKzsB,IACjFq3J,EAAe90J,iBAAiB,eAAgBvC,EAAK8/K,yBAAyBrzJ,KAAKzsB,IACnFq3J,EAAe90J,iBAAiB,2BAA4BvC,EAAK+/K,gCAAgCtzJ,KAAKzsB,IACtGq3J,EAAe90J,iBAAiB,0BAA2BvC,EAAKggL,+BAA+BvzJ,KAAKzsB,IACpGq3J,EAAe90J,iBAAiB,uBAAwBvC,EAAKigL,4BAA4BxzJ,KAAKzsB,IAC9Fq3J,EAAe90J,iBAAiB,QAASvC,EAAKkgL,kBAAkBzzJ,KAAKzsB,IAErE,IAAMxY,EAAOwY,E,OACbA,EAAK7B,GAAG,gBAAgB,SAAS8xG,EAAahmH,GAC9B,WAAVA,IAGJzC,EAAKmX,eAAe,eAAgBsxG,GACpCzoH,EAAK+7K,cAAct6K,SAAQ,SAAC+0K,EAAamF,GACvC37K,EAAKgyL,sBAAsBrW,EAC7B,IACF,I,CACF,CA8tCF,OAz/C+BljK,OA6R7B43K,qBAAA,WACE,MAAO,sBAAsB,KAAK33I,YAAW,KAAK,KAAKO,GAAE,GAC3D,EAEAo3I,0CAAA,SAA8BoB,GAC5B,KAAK94I,KAAK2c,MAAM,0CAA2Cm8H,GAE3D,KAAKyF,sBAAsBz1L,SAAQ,YAC7B,sBAAuBkwL,IACzBA,EAAGh/K,kBAAoB8+K,EAE3B,GACF,EAEAlzL,sBAAI8xL,oCAAqB,C,IAAzB,WACE,SAAKliB,IAAaC,IAKA,KAAK8oB,sBAAsBr5G,MAAK,YAChD,MAAkC,QAA3B8zG,EAAGjlE,MAAMr0G,eAA2Bs5K,EAAGzK,YAAsC,IAAzByK,EAAGh/K,iBAChE,GAGF,E,gCAOApU,sBAAI8xL,8BAAe,C,IAAnB,WACE,MAAmC,WAA5B,KAAKxgE,mBACR,SAAY,KAAK8kD,gBAAgB/kD,iBAAmB,KAAKC,kBAC/D,E,gCAOAtxH,sBAAI8xL,iCAAkB,C,IAAtB,WACE,OAAS,KAAKwF,0BAAwE,iBAA5C,KAAKlhB,gBAAgB9kD,oBAA0C,KAAK4lE,oBAC1G,SAAW,KAAK9gB,gBAAgB9kD,kBACtC,E,gCAOAtxH,sBAAI8xL,6CAA8B,C,IAAlC,WACE,MAA4C,WAAxC,KAAK1b,gBAAgBS,kBAEhB,KAAKT,gBAAgBO,kBACxB55H,EAAiB,KAAKq5H,gBAAgBO,iBAAiBj6H,IAAK,eAAex2C,OAAS,CAI5F,E,gCAMAlG,sBAAI8xL,0CAA2B,C,IAA/B,WACE,IAAMsI,EAAyB,KAAKzB,sBAAsBliJ,MAAK,YAAM,4BAAuB28I,CAAvB,IACrE,OAAOgH,IAAuE,IAA7CA,EAAuBhmL,iBAC1D,E,gCAQA09K,kCAAA,SAAsB/6K,EAAOknG,EAAWo8E,GACtC,QADsC,QAAAA,MACnB,UAAftjL,EAAMtB,MAAyC,UAArBsB,EAAM+uC,WAClC,OAAO,EAKH,MAAoB/uC,EAAM0G,cAAxB0V,EAAM,SAAED,EAAK,QACrB,GAAsB,kBAAXC,GAAwC,kBAAVD,EACvC,OAAO,EAIT,IAAMqjB,EAAUjlC,EAAKkM,eACrB,SAAgB,WAAZ+4B,GAAqC,WAAZA,GAAwB,KAAK+jJ,+BACxD,KAAKC,iBAAiBxjL,EAAOknG,EAAWo8E,IACjC,EAIX,EAWAvI,6BAAA,SAAiB/6K,EAAOknG,EAAWo8E,GACjC,GAAI,KAAKpD,0BAA0BlgL,GAAQ,CACzC,IAAMyjL,EAA+B,CACnC,CAAEC,sBAAuB,GACzB,CAAEA,sBAAuB,IAE3Bx8E,EAAU/6G,SAAQ,SAACw3L,EAAUv0L,GAC3B,IAAMw0L,EAAoBH,EAA6Br0L,GACnDw0L,GACFD,EAASD,sBAAwBE,EAAkBF,sBAC/CJ,UACKK,EAASnwF,SAGlBmwF,EAASnwF,QAAS,SACXmwF,EAASD,sBAEpB,G,KACK,CACC,MAAqB1jL,EAAM0G,cAS3Bm9K,EATO,QAAQ,SAUfC,EAP0B,CAC9B,CAAEC,OAAQ,OAAWC,gBAAiB,GACtC,CAAED,OAAQ,OAAWC,gBAAiB,GACtC,CAAED,OAAQ,EAAGC,gBAAiB,IAIiBtkJ,MAAK,YAAS,UAAegf,EAAMqlI,MAArB,IACzDE,EAAehgL,KAAKL,IAAIsjG,EAAU/3G,OAAQ20L,EAAiBE,iBACjE98E,EAAU/6G,SAAQ,SAACw3L,EAAUv0L,GACVA,EAAI60L,GAEnBN,EAASD,sBAAwB,GAAMO,EAAe70L,EAAI,EACtDk0L,IACFK,EAASnwF,QAAS,KAGpBmwF,EAASnwF,QAAS,SACXmwF,EAASD,sBAEpB,G,CAEF,KAAKrgJ,KAAK2c,MAAM,oBAAqBknD,EAAU3rG,KAAI,SAACQ,EAAmC3M,GAAM,UAAIA,EAAC,KAAtC,SAAiD,MAA1B,yBAAwD,GAAC,GAA/C,IAAoD8Z,KAAK,MACxJ,EAQA6xK,6BAAA,SAAiBvZ,GAAjB,WACE,OAAOxxK,QAAQvD,UAAUK,MAAK,WAE5B,OADA00K,EAAY,IAAIt+J,EAAKo/K,iBAAiB9gB,GAC/Bt+J,EAAKm8J,gBAAgBkC,gBAAgBC,EAC9C,IAAGprK,OAAM,YASP8M,EAAKmgC,KAAKpsC,KAAK,kCAAiCuqK,EAAY,IAAIA,EAAUA,UAAS,IAAM,QAAM,KAC3Fx0K,EAAM2J,QACZ,GACF,EAQAokL,8BAAA,SAAkBr/H,GAChB,OAAO1rD,QAAQ6P,IAAI67C,EAAWngD,IAAI,KAAK2oL,iBAAkB,OAAOp3L,MAAK,WAAO,GAC9E,EASAiuL,oCAAA,SAAwB/6K,GAAxB,WACQ+gK,EA+nCV,SAAiCojB,EAAMzlL,GACrC,IAAMkpE,EAAkB,CACtBlnE,MAAOyjL,EAAKxC,sBAAsBpmL,KAAI,SAACQ,GAAc,OAAP,QAAagH,aAAN,IACrD1D,MAAO8kL,EAAKvC,sBAAsBrmL,KAAI,SAACQ,GAAc,OAAP,QAAagH,aAAN,KACrDrE,GAEI0lL,EAAuBD,EAAKnC,sBAAsBtjL,GAClD2lL,EAAaz8G,EAAgBloC,MAAK,YAAS,SAAKmhJ,aAAar/K,IAAI41G,EAAtB,IACjD,IAAKitE,EACH,OAAOD,EAAqBtzJ,QAG9B,IAAMiwI,EAAcqjB,EAAqB1kJ,MAAK,YAC5C,IAAM4kJ,EAAiBH,EAAKjD,iBAAiBx/K,IAAIq/J,EAAYj+F,KAC7D,OAAOwhH,GAAkBA,EAAe9iL,IAAI6iL,EAC9C,IAEItjB,GACFqjB,EAAqBluL,OAAOkuL,EAAqBnuL,QAAQ8qK,GAAc,GAEzE,OAAOA,CACT,CAppCwBwjB,CAAwB,KAAMvkL,EAAMtB,MACxD,GAAIqiK,GAAeA,EAAY/5D,OAAQ,CACrC,IAAMw9E,EAAazjB,EAAY/5D,OAAOhnG,MAAQ+gK,EAAY/5D,OAAOhnG,MAAM2jC,GAAK,KAc5E,OAbI6gJ,GACF,KAAKnhJ,KAAKpsC,KAAK,wBAAwB8pK,EAAYj+F,IAAG,KAAK0hH,EAAU,OAAOxkL,EAAM2jC,IAKpF,KAAKs+I,sBAAsBtxK,IAAIowJ,EAAaA,EAAY/5D,OAAOG,aAAannG,GAAOlT,MAAK,WACtFi0K,EAAY96H,UAAY,UAC1B,IAAG,WACD,IACC46B,SAAQ,WACT39D,EAAK++K,sBAAsBtgJ,OAAOo/H,EACpC,KACOA,C,CAET,OAAO,KAAK1B,gBAAgBn6H,eAAellC,EAC7C,EAQA+6K,yBAAA,SAAal8E,GACX,IAAM4lF,EAAQC,GAAS7lF,GACvB,IAAK4lF,EACH,OAAOz0L,QAAQvD,UAEjB,IAAMivD,EAAa,KAAKwmI,kBAAkByC,SAASF,GACnD,OAAO,KAAKG,kBAAkBlpI,EAChC,EAQAq/H,oBAAA,SAAQ5a,GAAR,WACE,OAAOnwK,QAAQvD,UAAUK,MAAK,WAI5B,OAHKoW,EAAKs+K,mBACRt+K,EAAKs+K,iBAAmB,YAEnBt+K,EAAK2hL,sBAAsB1kB,EACpC,IAAG/pK,OAAM,WACP,MAAM,IAAIknC,CACZ,IAAGxwC,MAAK,WACN,OAAOoW,EAAKm8J,gBAAgBoC,cAC9B,IAAG30K,MAAK,YAKJ0zK,EAJEx+B,EAIO,IAAI9+H,EAAKs/K,uBAAuB,CACvC78I,IAAK8/B,EAAW+6F,EAAO76H,KACvBr6C,KAAMk1K,EAAOl1K,OAGNg0L,EAAoB9e,GAQ/B,IAAIskB,EAAaj+G,EAAqB25F,EAAO76H,IAAK,CAAC,UAAW,UAE9D,GAAIziC,EAAK6hL,sBAAuB,CAC9B,IAAIC,EAAsBF,EAC1BA,EAAa5hL,EAAKk/K,cAAc4C,EAAqB9hL,EAAKy/K,uBAI1DmC,EAAa5hL,EAAKm/K,iBAAiByC,EAAYE,EAAqB7kB,EAAMx6H,I,CAO5E,OAFAm/I,EAAaA,EAAW/gL,QAAQ,UAAW,UAEpCb,EAAK+hL,qBAAqB,CAC/B35L,KAAMk1K,EAAOl1K,KACbq6C,IAAKm/I,GAET,IAAGh4L,MAAK,WACN,OAAOoW,EAAKgiL,aAAa/kB,EAC3B,IAAGrzK,MAAK,WACN,OAAOoW,EAAK4+K,oBACP5+K,EAAKiiL,mBAAmBjiL,EAAK4+K,mBACpC,IAAGh1L,MAAK,WAEN,OADAoW,EAAK4+K,mBAAqB,KACnB5+K,EAAKkiL,cAAcliL,EAAKm8J,gBAAgBO,iBACjD,IAAGxpK,OAAM,YACP,IAAMivL,EAAer4L,aAAiBswC,EAAmCtwC,EAAQ,IAAIowC,EAMrF,MALAl6B,EAAKoiL,qBAAqB,CACxB3uL,QAAS,oBACTyjC,KAAMirJ,EAAajrJ,KACnBptC,MAAK,IAEDq4L,CACR,GACF,EAQAtK,mBAAA,WAEE,OADA,KAAKsG,sBAAsB1wL,OACiB,WAAxC,KAAK0uK,gBAAgBS,iBACvB,KAAKT,gBAAgBl6H,QACrB,KAAKgkC,QAAQ,UACb,KAAKsyG,oBAAoB55K,eAAe,UAAW,KAAK4/K,+BACjD,EAGX,EAOA1G,yCAAA,WACE,KAAKrvK,KAAK,yBACZ,EAQAqvK,oCAAA,SAAwBx5K,GAAxB,WACQ2/J,EAAc3/J,EAAM4hC,QACpB8xI,EAAoB,IAAIkK,EAAkBje,GAChD,KAAK4e,oBAAoBn+K,IAAIszK,GAE7B/T,EAAYz7J,iBAAiB,SAAS,WACpCvC,EAAK48K,oBAAoBn+I,OAAOszI,EAClC,IAEA,KAAKvpK,KAAK,aAAcupK,EAC1B,EAQA8F,yBAAA,SAAa5a,GAAb,WAOE,OANA,KAAK98H,KAAK2c,MAAM,gCACZ,KAAK0gI,mBACP,KAAKr9I,KAAK2c,MAAM,sFAChB,KAAK0gI,kBAAmB,EACxB,KAAKgC,mBAAoB,GAEpB1yL,QAAQvD,UAAUK,MAAK,WAE5B,OADAoW,EAAKy/K,sBAAwB,IAAIjnL,IAAIwH,EAAK28K,8BACnC38K,EAAK+hL,qBAAqB,CAAE35L,KAAM,YAC3C,IAAGwB,MAAK,WAEN,OADAoW,EAAKq+K,cAAe,EACbr+K,EAAKqiL,QAAQplB,EACtB,IAAGrzK,MAAK,YACN,OAAO04L,EAAax1L,QAAQvD,UAAYyW,EAAKuiL,QAC/C,GACF,EAEA1K,iCAAA,SAAqBh/K,G,IAAEpF,EAAO,UAAEyjC,EAAI,OAAEptC,EAAK,QAAE24C,EAAG,MAC9C,KAAKomE,eAAergG,KAAK,QAAS,CAAEjM,MAAO,UAAW/P,KAAM,QAAS8P,MAAO,QAAS3C,QAAS,CAC5FlG,QAAO,EACPyjC,KAAI,EACJpvC,QAASgU,KAAKC,UAAU,CAAEjS,MAAOA,EAAM2J,QAASgvC,IAAG,MAEvD,EAQAo1I,qCAAA,SAAyBx5K,GACnBA,EAAMigK,YACR,KAAKn+H,KAAK2c,MAAM,kCAChB,KAAKggI,6BAA8B,EACnC,KAAKI,qBAAqB1/I,QAC1B,KAAKkgJ,iBAAiBhyL,KAAK2S,EAAMigK,YAEnC,IAAM2b,EAAsB,CAC1BvV,IAAK,CACHlsH,WAAY,KAAK8kI,WAAa,GAAK,KAAKI,iBAAiBlwL,QACzD+zL,MAAO,KAAKxD,aAEdt9I,GAAI,KAAKA,IAENpiC,EAAMigK,YACT2b,EAAoBvV,IAAIv2K,UAAW,GAE/B,KAAKmvL,YAAcj/K,EAAMigK,YAC7B2b,EAAoBvV,IAAI9nK,SAAW,KAAKghL,2BACxC,KAAKp1K,KAAK,aAAcyxK,GAE5B,EAOApC,4CAAA,sBACU,EAAuB,KAAK1b,gBAAe,mBAC7CqmB,EAA2B,CAAC,YAAa,aAAa38K,SAASwxG,GAC/D1lH,EAAM,KAAKwuC,KAEjBxuC,EAAImrD,MAAM,4BAA4Bu6D,EAAkB,KACpDmrE,IACF,KAAK3D,qBAAqBrhJ,QAC1B,KAAK4/I,mBAAmBvxL,SAGW,WAAjC,KAAK8sL,yBAA+D,WAAvBthE,GAAoC,KAAKmoE,mBAAsB,KAAKhC,iBAI1G,CAAC,eAAgB,UAAU33K,SAAS,KAAK8yK,0BAA4B6J,GAE9E7wL,EAAImrD,MAAM,oBAJVnrD,EAAIoC,KAAK,cACT,KAAK0uL,8BAOoB,cAAvBprE,GACF,KAAKgmE,0BAA2B,EAChC,KAAKc,sBAAsB9gJ,OAAM,WAG/Br9B,EAAKm+K,sBAAsB1wL,OACtBuS,EAAKw/K,mBAAsBx/K,EAAKw9K,mBACnC7rL,EAAIoC,KAAK,8CACTiM,EAAKq9K,0BAA2B,EAChCr9K,EAAKyiL,6BACLziL,EAAKwI,KAAK,6BACVxI,EAAKwI,KAAK,0BAEd,KACU,CAAC,eAAgB,aAAa3C,SAASwxG,KACjD,KAAK8mE,sBAAsB1wL,OAC3B,KAAK4vL,0BAA2B,GAGlC,KAAK1E,wBAA0BthE,EAC/B,KAAK7uG,KAAK,4BACZ,EAOAqvK,uCAAA,WACE,KAAK13I,KAAKpsC,KAAK,6CACf,KAAKkpL,qBAAsB,EAC3B,KAAKwF,6BACL,KAAKj6K,KAAK,6BACV,KAAKA,KAAK,yBACZ,EAOAqvK,2CAAA,WACU,MAAsB,KAAK1b,gBAAe,kBAC5CxqK,EAAM,KAAKwuC,KACjBxuC,EAAImrD,MAAM,2BAA2ByiH,EAAiB,KAKhD,MAAmB,KAAK2d,qBAAtB7qJ,EAAK,QAAEkL,EAAK,QACM,cAAtBgiI,GAAsC,KAAKud,6BAAgCv/I,IAC7E5rC,EAAImrD,MAAM,mCAAmCzqB,GAC7C,KAAK4qJ,qBAAsB,EAC3B,KAAKC,qBAAqB7/I,QAE9B,EAOAw6I,wCAAA,WAC8C,WAAxC,KAAK1b,gBAAgBS,iBACvB,KAAK+f,6BAA+B,IAAInkL,IAAI,KAAKinL,uBAErD,EAQA5H,8BAAA,SAAkBx5K,GAAlB,WACQokC,EAAM,KAAK05H,gBAAgBQ,kBAC7B,KAAKR,gBAAgBQ,kBAAkBl6H,IACvC,KAEJ,KAAKi9I,cAAgB,KAAKA,eAAiB,IAAIvD,EAC/C,KAAKuD,cAAcnpJ,OAAOkM,GAE1B,IAAM06D,EAAmB9+F,EAAMvB,MACzB4lL,EAAkB,KAAKhD,cAAc/vL,MAAM0O,IAAU8+F,EAAiB18D,GACtEwxE,EAAqB,IAAIiqE,EAAmBwG,EAAiBvlF,GAOnE,KAAKihF,qBAAqBn1L,SAAQ,YAC5B05L,EAAc7lL,MAAM2jC,KAAOwxE,EAAmBn1G,MAAM2jC,IACtDzgC,EAAKo+K,qBAAqB3/I,OAAOkkJ,EAErC,IAEA,KAAKvE,qBAAqB3/K,IAAIwzG,GAC9B9U,EAAiB56F,iBAAiB,SAAS,WAAM,SAAK67K,qBAAqB3/I,OAAOwzE,EAAjC,IACjD,KAAKzpG,KAAK,aAAcypG,EAC1B,EAOA4lE,gCAAA,WACE,GAA4C,WAAxC,KAAK1b,gBAAgBS,eAAzB,CAGA,IAAMjrK,EAAM,KAAKwuC,KACjBxuC,EAAIoC,KAAK,6BACT,KAAK+oL,6BAA8B,EACnC,KAAKS,gCAAiC,EACtC,KAAKiC,mBAAoB,EAEnB,MAAmB,KAAKX,qBAAtBxsJ,EAAK,QAAO,UAElB1gC,EAAImrD,MAAM,mCAAmCzqB,GAC7C,KAAKwsJ,qBAAqBxhJ,SAE5B,KAAK4/H,QAAQ/pK,OAAM,YACjBvB,EAAI7H,MAAM,6CAA6C+2C,EAAGptC,QAC5D,G,CACF,EAOAokL,uCAAA,sBAC8C,WAAxC,KAAK1b,gBAAgBS,gBAA+B,KAAK2gB,iCAG7D,KAAKp9I,KAAKpsC,KAAK,qCACf,KAAKwpL,gCAAiC,EACtC,KAAKH,mBAAmBwF,SAAQ,WAAM,SAAKC,qBAAL,IACxC,EAQAhL,0BAAA,SAAcnb,GACZ,IAAIomB,EAAgB,KAAKvD,aAEzB,GAAI7iB,GAAoBA,EAAiBj6H,IAAK,CAK5C,IAAMsgJ,EAAU,KAAK5mB,gBAAgBiC,aAAazoK,QAAO,YAAU,SAAOmH,KAAP,IACnEgmL,EAAgB,CAAC,QAAS,SAASnqL,QAAO,SAACqqL,EAAaxnL,GACtD,IAAM6nC,EAAgBP,EAAiB45H,EAAiBj6H,IAAKjnC,EAAM,uBAC7DynL,EAAgBF,EAAQptL,OAAOutL,GAAez2J,KAAK,KAAMjxB,IAC/D,OAAOwnL,GAAgB3/I,EAAcp3C,OAASg3L,EAAch3L,MAC9D,GAAG62L,GAIH,IAAMK,EAAe,KAAK5f,cAAc7kK,KAAO,EACzC0kL,EAA6BtgJ,EAAiB45H,EAAiBj6H,IAAK,eAAex2C,OAAS,EAElG62L,EAAgBA,GADqBK,IAAiBC,C,CAKxD,OADgBN,EAAgB,KAAKP,SAAWz1L,QAAQvD,WACzCK,MAAK,WAAM,WAC5B,EAOAiuL,mBAAA,sBACQE,EAAehyL,OAAOgT,OAAO,GAAI,KAAK8/K,eAQ5C,OAPA,KAAKwF,cAAe,EAChB,KAAKmB,oBACP,KAAKA,mBAAoB,EACzB,KAAKhC,kBAAmB,EACxBzF,EAAasL,YAAa,GAGrBv2L,QAAQ6P,IAAI,KAAKoiL,sBAAsBj2L,UAAUc,MAAK,WAC3D,OAAOoW,EAAKm8J,gBAAgBqC,YAAYuZ,EAC1C,IAAG7kL,OAAM,YACP,IAAMivL,EAAe,IAAIjoJ,EAMzB,MALAl6B,EAAKoiL,qBAAqB,CACxB3uL,QAAS,yBACTyjC,KAAMirJ,EAAajrJ,KACnBptC,MAAK,IAEDq4L,CACR,IAAGv4L,MAAK,YAKJqzK,EAJEn+B,EAIM,IAAI9+H,EAAKs/K,uBAAuB,CACtC78I,IAAK8/B,EAAW06F,EAAMx6H,KACtBr6C,KAAM60K,EAAM70K,OAGNg0L,EAAoBnf,GAQ9B,IAAIx6H,EAAMkhC,EAAqBs5F,EAAMx6H,IAAK,CAAC,UAAW,UACtDA,EAAMziC,EAAKm8J,gBAAgBQ,kBACvBv5F,EAAkB3gC,EAAKziC,EAAKm8J,gBAAgBQ,kBAAkBl6H,KAC9DA,EAEJ,IAAIm/I,EAAa5hL,EAAKi/K,qBACpBx8I,EACAziC,EAAKy+K,sBACLz+K,EAAK0+K,uBAcP,OAZA1+K,EAAKu/K,cAAe,EACfv/K,EAAKs+K,mBACRt+K,EAAKs+K,iBAAmB,WAGtBt+K,EAAK6hL,wBACP7hL,EAAK69K,kCAAoC,CACvCz1L,KAAM,QACNq6C,IAAKm/I,GAEPA,EAAa5hL,EAAKk/K,cAAc0C,EAAY5hL,EAAKy/K,wBAE5Cz/K,EAAK+hL,qBAAqB,CAC/B35L,KAAM,QACNq6C,IAAKm/I,GAET,GACF,EAUA/J,mCAAA,SAAuBh1I,GACrB,IAAMw+D,EAAmB/qG,MAAMiJ,KAAK,KAAK0+K,YAAYjxL,QAAQwvC,MAAK,SAAC3jC,GAAsB,OAAT,aAAgBgqC,CAAP,IACzF,OAAOw+D,EAAmBA,EAAiB5gE,GAAKoC,CAClD,EAQAg1I,uCAAA,SAA2Bl8E,GAA3B,WAEQ2nF,EADe,KAAKnnB,gBAAgByB,kBACFjoK,QAAO,SAACkD,G,IAAEirG,EAAM,SAAgB,OAAP,WAAmBA,GAAUA,EAAOhnG,KAA7B,IAMlEymL,EAAuBD,EAAmB3tL,QAAO,SAACkD,GAAY,OAAP,KAAO,IAC9D+oE,EAAiB,IAAIppE,IAAI+qL,EAAqBlrL,KAAI,SAACQ,G,IAAE+mE,EAAG,MAAEkkC,EAAM,SAAO,OAAClkC,EAAK5/D,EAAKwjL,uBAAuB1/E,EAAOhnG,MAAM2jC,IAA/C,KACvEgjJ,EAAO9hH,EAAqBg6B,EAAYl5D,IAAKm/B,GAI7C8hH,EAAyBJ,EAAmB3tL,QAAO,SAACkD,GAAY,OAAP,KAAO,IAChE8qL,EAAoB,IAAInrL,IAAI,CAAC,QAAS,SAASH,KAAI,YAAQ,OAC/DmD,EACAkoL,EAAuB/tL,QAAO,SAACkD,GAAe,OAAP,SAAciE,MAAMtB,OAASA,CAAtB,IAA4BnD,KAAI,SAACQ,G,IAAEirG,EAAM,SAAO,SAAK0/E,uBAAuB1/E,EAAOhnG,MAAM2jC,GAAzC,IAF/B,KAI3DmjJ,EAAO1hH,EAAwBuhH,EAAM7hH,EAAgB+hH,GAE3D,OAAO,IAAI,KAAKrE,uBAAuB,CACrC78I,IAAKmhJ,EACLx7L,KAAMuzG,EAAYvzG,MAEtB,EAQAyvL,mCAAA,SAAuB5a,GAAvB,WACE,OAAO,KAAK8kB,qBAAqB,CAAE35L,KAAM,aAAcwB,MAAK,WAAM,SAAKm4L,qBAAqB9kB,EAA1B,GACpE,EAQA4a,iCAAA,SAAqBl8E,GAArB,WAOE,MANyB,aAArBA,EAAYvzG,MAAuB,KAAKu2L,kBAC1ChjF,EAAc,IAAI,KAAK2jF,uBAAuB,CAC5C78I,IAAKkgC,EAAiBg5B,EAAYl5D,KAClCr6C,KAAMuzG,EAAYvzG,QAGf,KAAK+zK,gBAAgBkB,oBAAoB1hE,GAAazoG,OAAM,YACjE8M,EAAKmgC,KAAKpsC,KAAK,sEAAsE4nG,EAAYvzG,KAAI,4BAA4B0B,EAAM2J,QAAO,KAAM3J,GAEpJ,IAAMq4L,EAAe,IAAIjoJ,EACnB2pJ,EAAiB,CACrBpwL,QAAS,sEAAsEkoG,EAAYvzG,KAAI,WAC/F8uC,KAAMirJ,EAAajrJ,KACnBptC,MAAK,GAQP,MALI6xG,EAAYl5D,MACdziC,EAAKmgC,KAAKpsC,KAAK,eAAe4nG,EAAYl5D,KAC1CohJ,EAAephJ,IAAMk5D,EAAYl5D,KAEnCziC,EAAKoiL,qBAAqByB,GACpB1B,CACR,IAAGv4L,MAAK,WACmB,aAArB+xG,EAAYvzG,OACd4X,EAAK89K,kBAAoB99K,EAAK8jL,2BAA2BnoF,GAOrD37F,EAAK2+K,kBACP3+K,EAAK89K,kBAAoB,IAAI99K,EAAKs/K,uBAAuB,CACvD78I,IAAKkgC,EAAiB3iE,EAAK89K,kBAAkBr7I,IAAK,IAClDr6C,KAAM4X,EAAK89K,kBAAkB11L,QAIjC4X,EAAK09K,iBAAmB,GACC,UAArB/hF,EAAYvzG,KACd4X,EAAK68K,uBACyB,WAArBlhF,EAAYvzG,OACrB4X,EAAKy9K,+BAAiCz9K,EAAK68K,qBAC3CkH,GAAqB/jL,IAEvBA,EAAK+9K,YAAcyD,GAAS7lF,GAC5B37F,EAAKwI,KAAK,cAAexI,EAAKk6K,YAElC,GACF,EAQArC,kCAAA,SAAsBl8E,GAAtB,WA4BE,OA3BIA,EAAYl5D,MACdk5D,EAAYl5D,IAAM,KAAKw8I,qBACrBtjF,EAAYl5D,IACZ,KAAKg8I,sBACL,KAAKC,uBAEH,KAAKC,gBACPhjF,EAAYl5D,IAAMkgC,EAAiBg5B,EAAYl5D,KAI/Ck5D,EAAYl5D,IAAMkgC,EAAiBg5B,EAAYl5D,IAAK,IAGlDq8F,IAKFnjC,EAAYl5D,IAA8Bk5D,EAAYl5D,IA2fjD5hC,QAAQ,iBAAkB,cAzf5B,KAAKs7J,gBAAgBQ,oBACxB,KAAK2gB,WAAa,aAAazxK,KAAK8vF,EAAYl5D,OAGpDk5D,EAAc,IAAI,KAAK2jF,uBAAuB3jF,GAEvC7uG,QAAQvD,UAAUK,MAAK,WAI5B,GAAyB,WAArB+xG,EAAYvzG,MAAqB4X,EAAK69K,kCAAmC,CAG3E,IAAMsC,EAAyBngL,EAAK0+K,sBAAsBliJ,MAAK,YAAM,4BAAuB28I,CAAvB,IAC/Dn1G,IAAiBm8G,IAAuE,IAA7CA,EAAuBhmL,kBAClE6pL,EAA4ChkL,EAAKm/K,iBACrDn/K,EAAK89K,kBAAkBr7I,IACvBziC,EAAK69K,kCAAkCp7I,IACvCk5D,EAAYl5D,IAAKuhC,GAEnB,GADAhkE,EAAK69K,kCAAoC,KACrCmG,IAA8ChkL,EAAK89K,kBAAkBr7I,IACvE,OAAOziC,EAAKikL,uBAAuB,CACjC77L,KAAM4X,EAAK89K,kBAAkB11L,KAC7Bq6C,IAAKuhJ,G,CAIb,IAAGp6L,MAAK,WAAM,SAAKuyK,gBAAgBoB,qBAAqB5hE,EAA1C,IAAwD/xG,MAAK,WAChD,WAArB+xG,EAAYvzG,OACV4X,EAAKw9K,mBACPx9K,EAAKmgC,KAAK2c,MAAM,uDAChB98C,EAAKw9K,kBAAmB,GAE1BuG,GAAqB/jL,GAEzB,IAAG,YAKD,MAJAA,EAAKmgC,KAAKpsC,KAAK,uEAAuE4nG,EAAYvzG,KAAI,4BAA4B0B,EAAM2J,QAAO,KAAM3J,GACjJ6xG,EAAYl5D,KACdziC,EAAKmgC,KAAKpsC,KAAK,eAAe4nG,EAAYl5D,KAEtC34C,CACR,GACF,EAQA+tL,+BAAA,SAAmBl8E,GAAnB,WACE,OAAQA,EAAYvzG,MAClB,IAAK,SACL,IAAK,WACH,GAAIuzG,EAAY/+F,WAAa,KAAKigL,sBACW,qBAAxC,KAAK1gB,gBAAgBS,eACxB,OAAO9vK,QAAQvD,UAEjB,KAAKszL,qBAAuBlhF,EAAY/+F,SACxC,MACF,IAAK,QACH,OAAO,KAAK6rG,SACd,IAAK,eACH,OAAI9M,EAAY/+F,UAAY,KAAK6gL,+BACxB3wL,QAAQvD,UACN,KAAK80L,cACd,KAAKO,mBAAqBjjF,EACnB7uG,QAAQvD,YAEjB,KAAKszL,qBAAuBlhF,EAAY/+F,SACjC,KAAK2lL,UACd,IAAK,QACH,OAAI5mF,EAAY/+F,UAAY,KAAK6gL,gCACY,WAAxC,KAAKthB,gBAAgBS,eACjB9vK,QAAQvD,UAE2B,qBAAxC,KAAK4yK,gBAAgBS,eASnB,KAAKyhB,cAAwD,IAAxC,KAAKZ,gCAC5B,KAAKmB,mBAAqBjjF,EACnB7uG,QAAQvD,YAEjB,KAAKszL,qBAAuBlhF,EAAY/+F,SACjC,KAAKsnL,aAAavoF,KAE3B,KAAKkhF,qBAAuBlhF,EAAY/+F,SACjC,KAAKylL,QAAQ1mF,GAAa/xG,MAAK,WAAO,KAMjD,IAAMgT,EAAW++F,EAAY/+F,SAC7B,OAAO9P,QAAQvD,UAAUK,MAAK,WAC5B,OAAOoW,EAAK2hL,sBAAsBhmF,EACpC,IAAGzoG,OAAM,YACP,IAAMivL,EAAe,IAAI/nJ,EAOzB,MANAp6B,EAAKoiL,qBAAqB,CACxB3uL,QAAS,uEAAuEkoG,EAAYvzG,KAAI,WAChG8uC,KAAMirJ,EAAajrJ,KACnBptC,MAAK,EACL24C,IAAKk5D,EAAYl5D,MAEb0/I,CACR,IAAGv4L,MAAK,WAGN,OAFAoW,EAAKy9K,+BAAiC7gL,EACtCoD,EAAKq+K,cAAe,EACbr+K,EAAKgiL,aAAarmF,EAC3B,IAAG/xG,MAAK,WACN,OAAOoW,EAAK4+K,oBACP5+K,EAAKiiL,mBAAmBjiL,EAAK4+K,mBACpC,IAAGh1L,MAAK,WAEN,OADAoW,EAAK4+K,mBAAqB,KACnB5+K,EAAKkiL,cAAcliL,EAAKm8J,gBAAgBO,kBAAkB9yK,MAAK,WAAO,GAC/E,GACF,EAQAiuL,uBAAA,SAAWsM,GACT,IAAM3rI,EAAa,KAAKwmI,kBAAkBzoJ,OAAO4tJ,GACjD,OAAO,KAAKzC,kBAAkBlpI,EAChC,EAOAq/H,+BAAA,SAAmB1U,GACjB,IAAI,KAAKI,cAAcjlK,IAAI6kK,GAG3B,IACE,IAAMpE,EAAkB,CACtBp4D,QAASw8D,EAAgBx8D,SAEe,OAAtCw8D,EAAgB18D,oBAClBs4D,EAAgBt4D,kBAAoB08D,EAAgB18D,mBAEf,OAAnC08D,EAAgBz8D,iBAClBq4D,EAAgBr4D,eAAiBy8D,EAAgBz8D,gBAEnD,IAAMs3D,EAAc,KAAK7B,gBAAgB0C,kBAAkBsE,EAAgB1iI,GAAIs+H,GAC/EoE,EAAgBihB,eAAepmB,GAC/B,KAAKuF,cAAc91J,IAAI01J,EAAiBnF,E,CACxC,MAAOl0K,GACP,KAAKq2C,KAAKpsC,KAAK,mDAAmDovK,EAAgB1iI,GAAE,MAAM32C,EAAM2J,Q,CAEpG,EAEAokL,wCAAA,sBAC8C,WAAxC,KAAK1b,gBAAgBS,gBACvB,KAAK+iB,kCAAkC12L,SAAQ,SAAC4P,EAAyBwoG,G,IAAvBn/F,EAAQ,WAAE8hG,EAAS,YACnEhkG,EAAK2/K,kCAAkClhJ,OAAO4iE,GAC9CrhG,EAAKqkL,kBAAkBhjF,EAAkB2C,GACtCp6G,MAAK,YAAU,SAASL,QAAQG,EAAjB,IACfwJ,OAAM,YAAS,SAAS1J,OAAOM,EAAhB,GACpB,GAEJ,EASA+tL,8BAAA,SAAkBx2E,EAAkB2C,GAApC,WACE,GAAI86B,EACF,OAAOhyI,QAAQvD,QAAQ,wBAGrB,KAAKo2L,kCAAkCrhL,IAAI+iG,KAE1B,KAAKs+E,kCAAkCnhL,IAAI6iG,GACnDn/F,SAAS3Y,QAAQ,mBAC5B,KAAKo2L,kCAAkClhJ,OAAO4iE,IAGhD,IAAMyC,EAAS,KAAKm6E,YAAYz/K,IAAI6iG,GACpC,IAAKyC,EAEH,OADA,KAAK3jE,KAAKpsC,KAAK,qEACRjH,QAAQvD,QAAQ,iBAGzB,GAA4C,WAAxC,KAAK4yK,gBAAgBS,eAEvB,OADA,KAAKz8H,KAAKpsC,KAAK,sEACRjH,QAAQvD,QAAQ,wBAGzB,GAA4C,WAAxC,KAAK4yK,gBAAgBS,eAA6B,CAEpD,KAAKz8H,KAAK2c,MAAM,oDAAqD,KAAKq/G,gBAAgBS,gBAC1F,IAAM16J,EAAWD,IAEjB,OADA,KAAK09K,kCAAkClyK,IAAI4zF,EAAkB,CAAEn/F,SAAQ,EAAE8hG,UAAS,IAC3E9hG,EAASC,O,CAGlB,IAAMqyF,EAAasP,EAAO2tE,gBAkB1B,OAjBkB,OAAdztE,GACFA,EAAU/6G,SAAQ,SAAC4P,G,IAAEk3F,EAAO,UAAeu0F,EAAU,cAC/C9vF,EAAWwP,UAAU/3G,OAASq4L,GAChCtkL,EAAKmgC,KAAK2c,MAAM,SAASwnI,EAAU,YAAY9vF,EAAWwP,UAAUsgF,GAAYh0F,OAAM,OAAOP,GAC7FyE,EAAWwP,UAAUsgF,GAAYh0F,OAASP,GAE1C/vF,EAAKmgC,KAAKpsC,KAAK,iBAAiBuwL,EAAU,YAAYv0F,EAE1D,IAOF,KAAKw0F,sBAAsBzgF,EAAOhnG,MAAO03F,EAAWwP,UAAyB,OAAdA,GAExDF,EAAO9O,cAAcR,GAAY5qG,MAAK,WAAM,cAAMsJ,OAAM,YAE7D,OADA8M,EAAKmgC,KAAKr2C,MAAM,mCAAoCA,GAC7C,sBACT,GACF,EAOA+tL,gCAAA,SAAoBx2E,GAApB,WACE,GAA4C,WAAxC,KAAK86D,gBAAgBS,iBAA+B,KAAKqhB,YAAY3/K,IAAI+iG,GAA7E,CAGA,IACQ,EADY,KAAKmjF,wBAAwBnjF,EAAiBvkG,OACpC,OAC9BukG,EAAiBojF,UAAU3gF,GAAQ,YAAa,SAAKugF,kBAAkBhjF,EAAkB2C,EAAzC,IAChD,KAAKk6E,eAAez/K,IAAIqlG,GACxB,KAAKm6E,YAAYxwK,IAAI4zF,EAAkByC,E,CACzC,EAMA+zE,kBAAA,WACM,KAAKpvE,WACP,KAAKo0E,uBACL,KAAKiB,kBAAoB,CAAE11L,KAAM,SACjC,KAAKogB,KAAK,cAAe,KAAK0xK,YAElC,EAOArC,8BAAA,WACE,OAAOvhL,MAAMiJ,KAAK,KAAKq9K,qBAAqBl9K,OAAOpJ,MAAMiJ,KAAK,KAAK6+K,sBACrE,EAMAvG,qBAAA,WACE,IAAK,KAAKiG,kBACR,OAAO,KAOT,IAAM4G,EAA2D,WAAhC,KAAK5G,kBAAkB11L,KAAoB,KAAKq1L,+BAAiC,KAAKZ,qBACjHngB,EAAmB,CACvBt0K,KAAM,KAAK01L,kBAAkB11L,KAC7BwU,SAAU8nL,GAKZ,OAHI,KAAK5G,kBAAkBr7I,MACzBi6H,EAAiBj6H,IAAM,KAAKq7I,kBAAkBr7I,KAEzC,CACLk5D,YAAa+gE,EACbj8H,GAAI,KAAKA,GAEb,EAMAo3I,kBAAA,sBACE,OAAI,KAAKwG,cAAgB,KAAKb,kBAC5B,KAAK+B,cAAe,EACbzyL,QAAQvD,WAGV,KAAKo7L,QAAQ,YAAY,YAG9B,OAFA3kL,EAAKq/B,WAAW,WAAYh5C,IACZ2Z,EAAKq+K,cAAgBr+K,EAAKw9K,iBAAmB1wL,QAAQvD,UAAYyW,EAAKuiL,UACvE34L,MAAK,WAClBoW,EAAK4kL,cAAc,OAAQv+L,EAC7B,IAAG,YAED,MADA2Z,EAAK4kL,cAAc,OAAQv+L,GACrByD,CACR,GACF,GACF,EAOA+tL,kCAAA,SAAsB1U,GACpB,IAAMnF,EAAc,KAAKuF,cAAc/kK,IAAI2kK,GACvCnF,IACFmF,EAAgB0hB,kBAAkB7mB,GAClC,KAAKuF,cAAc9kI,OAAO0kI,GAC1BnF,EAAY/7H,QAEhB,EAOA41I,mCAAA,SAAuBx2E,GACrB,IAAMyC,EAAS,KAAKm6E,YAAYz/K,IAAI6iG,GACpC,GAAKyC,EAAL,CAQA,GAL4C,WAAxC,KAAKq4D,gBAAgBS,gBACvB,KAAKT,gBAAgBv9D,YAAYkF,GAEnCzC,EAAiByjF,aAAahhF,GAE1B,KAAK67E,kCAAkCrhL,IAAI+iG,GAC1B,KAAKs+E,kCAAkCnhL,IAAI6iG,GACnDn/F,SAAS3Y,QAAQ,iBAC5B,KAAKo2L,kCAAkClhJ,OAAO4iE,GAEhD,KAAK68E,eAAez/I,OAAOqlE,GAC3B,KAAKm6E,YAAYx/I,OAAO4iE,E,CAC1B,EAOAw2E,6BAAA,SAAiBjc,GACsC,oBAA1C,KAAKO,gBAAgBsb,kBAC9B,KAAKtb,gBAAgBsb,iBAAiB6E,GAAiB1gB,GAE3D,EAOAic,mCAAA,SAAuBsC,GAIrB,OAHA,KAAK0E,qBAAqBkG,SAAS5K,GACnC,KAAKh6I,KAAK2c,MAAM,2CACd,KAAK+hI,qBAAqBxsJ,OACrB,IACT,EAOAwlJ,mBAAA,SAAOoC,GAAP,WACE,OAAO,KAAK0K,QAAQ,YAAY,YAC9B,GAAmB,WAAf3kL,EAAK/V,MACP,OAAO6C,QAAQvD,UAGjByW,EAAKq/B,WAAW,WAAYh5C,GAE5B,IAAM2+L,EAAU,GAUhB,OARI/K,EAAoBvV,KACtBsgB,EAAQt5L,KAAKsU,EAAKilL,WAAWhL,EAAoBvV,MAG/CuV,EAAoBt+E,aACtBqpF,EAAQt5L,KAAKsU,EAAKiiL,mBAAmBhI,EAAoBt+E,cAGpD7uG,QAAQ6P,IAAIqoL,GAASp7L,MAAK,WAC/BoW,EAAK4kL,cAAc,OAAQv+L,EAC7B,IAAG,YAED,MADA2Z,EAAK4kL,cAAc,OAAQv+L,GACrByD,CACR,GACF,GACF,EAMA+tL,qBAAA,sBACE,OAAOiE,EAAc,KAAK3f,iBAAiBvyK,MAAK,YAAY,OAgBhE,SAAyBq3L,EAAM/uL,GAC7B,OAAOnM,OAAOgT,OAAO7G,EAAU,CAC7BshH,sBAAuBthH,EAASshH,sBAAsBn7G,KAAI,YAAS,UAAe4oL,EAAMlrB,EAArB,IACnEtiD,sBAAuBvhH,EAASuhH,sBAAsBp7G,KAAI,YAAS,UAAe4oL,EAAMlrB,EAArB,IACnE1iD,qBAAsBnhH,EAASmhH,qBAAqBh7G,KAAI,YAAS,UAAoB4oL,EAAMlrB,EAA1B,IACjExiD,qBAAsBrhH,EAASqhH,qBAAqBl7G,KAAI,YAAS,UAAoB4oL,EAAMlrB,EAA1B,KAErE,CAvBgE,CAAgB/1J,EAAM9N,EAAtB,GAC9D,EACF,EAz/CA,CAA+BssC,GA2/C/B,SAAS0mJ,GAAoBjE,EAAMlrB,GACjC,IAAMlzH,EAAUo+I,EAAKuC,uBAAuBztB,EAAMlzH,SAClD,OAAO98C,OAAOgT,OAAOg9J,EAAO,CAAElzH,QAAO,GACvC,CAEA,SAASsiJ,GAAelE,EAAMlrB,GAC5B,IAAMlrI,EAAWpyB,OAAIwoL,EAAK7C,uBACvB5hJ,MAAK,YAAY,SAAS1/B,MAAM2jC,KAAOs1H,EAAMlzH,OAA5B,IACdA,EAAUhY,EAAWA,EAAS4V,GAAK,KACzC,OAAO16C,OAAOgT,OAAOg9J,EAAO,CAAElzH,QAAO,GACvC,CAkCA,SAAS2+I,GAAS7lF,GAChB,GAAIA,EAAYl5D,IAAK,CACnB,IAAM9yC,EAAQgsG,EAAYl5D,IAAI9yC,MAAM,kCACpC,GAAIA,EACF,OAAOA,EAAM,E,CAGjB,OAAO,IACT,CAEA,SAAS2sL,GAAiB1gB,GACxB,OAAO71K,OAAOgT,OAAO,CACnB8uK,aAAc,aACdud,cAAe,WACdxpB,EACL,CAUA,SAASsnB,GAAe1nL,EAAMsoG,GAC5B,IAAMhnG,EAAQgnG,EAAOhnG,MACrB,OAAOA,GAASA,EAAMtB,OAASA,GAA6B,UAArBsB,EAAM+uC,UAC/C,CA8GA,SAASk4I,GAAqB9C,IAhB9B,SAAoCA,GAClCA,EAAKnC,sBAAsBthL,MAAQ,GACnCyjL,EAAKnC,sBAAsB3iL,MAAQ,GACnC8kL,EAAK9kB,gBAAgByB,kBAAkB30K,SAAQ,YAC7C,GAhFJ,SAAkC40K,EAAaojB,GAC7C,OAAQpjB,EAAY1wE,UACd8zF,EAAKlC,sBAAsBzgL,IAAIu/J,IAChC,CAAC,WAAY,YAAYh4J,SAASg4J,EAAY96H,UACrD,CA4EQsiJ,CAAyBxnB,EAAaojB,GAAO,CAC/C,IAAMnkL,EAAQ+gK,EAAYhzI,SAAS/tB,MACnCmkL,EAAKnC,sBAAsBhiL,EAAMtB,MAAM9P,KAAKmyK,E,CAEhD,GACF,CAQEynB,CAA2BrE,GArD7B,SAA2BA,GACzB,IAAMtlF,EAAcslF,EAAK9kB,gBAAgBO,iBACpC/gE,GAAgBA,EAAYl5D,KAGjCK,EAAiB64D,EAAYl5D,KAAKx5C,SAAQ,YACvBi2E,EAA8BC,GACtCl2E,SAAQ,SAACw2E,EAAKy0C,GAAU,SAAKypE,aAAal/K,IAAIy1G,EAAtB,GACnC,GACF,CA6CEqxE,CAAkBtE,GAtCpB,SAA+BA,GAC7B,IAAMtlF,EAAcslF,EAAK9kB,gBAAgBQ,kBACpChhE,GAAgBA,EAAYl5D,KAGjCK,EAAiB64D,EAAYl5D,KAAKx5C,SAAQ,YACxC,IAAMi5D,EAAUid,EAAQxvE,MAAM,iBAC9B,GAAKuyD,GAAYA,EAAQ,GAAzB,CAGA,IAAM0d,EAAM1d,EAAQ,GACdmd,EAAWH,EAA8BC,GAC/C8hH,EAAKjD,iBAAiBvwK,IAAImyD,EAAKP,E,CACjC,GACF,CAyBEmmH,CAAsBvE,GACtBzC,GAAyByC,GAAMr3L,MAAK,WAElCq3L,EAAKwE,6BACP,GACF,CAOA,SAASjH,GAAyByC,GAC1B,MAAuCA,EAAK1I,oBAA1CxJ,EAAe,kBAAEJ,EAAe,kBAElC+W,EAAc,IAAIltL,IAAI,CAC1B,CAAC,QAASu2K,GACV,CAAC,QAASJ,KAGNgX,EAAW,GAiDjB,OAhDA1E,EAAK9kB,gBAAgBiC,aAAazoK,QAAO,YAAU,SAAOmH,KAAP,IAAc7T,SAAQ,YACvE,IAAM28L,EAAaF,EAAYlnL,IAAIslG,EAAOhnG,MAAMtB,MAC1CwvC,EAAS84D,EAAO2tE,gBAEH,OAAfmU,GAAsC,IAAfA,EAoD/B,SAA0B56I,GACpB10C,MAAMC,QAAQy0C,EAAOg5D,YACvBh5D,EAAOg5D,UAAU/6G,SAAQ,YAAY,cAAOw3L,EAASmF,UAAhB,GAEzC,CAvDMC,CAAiB76I,GACRi2I,EAAKjE,0BAA0Bl5E,EAAOhnG,OAG/CmkL,EAAK9gJ,KAAKpsC,KAAK,8BAA8B+vG,EAAOhnG,MAAMtB,KAAI,UAAUsoG,EAAOhnG,MAAM2jC,GAAE,iDAAiDqjE,EAAOhnG,MAAMgiK,OA2D3J,SAAuB9zH,EAAQ46I,GACzB9mD,EACF9zF,EAAOg5D,UAAY,CAAC,CAAE4hF,WAAU,IAEhC56I,EAAOg5D,UAAU/6G,SAAQ,YACvBw3L,EAASmF,WAAaA,CACxB,GAEJ,CAjEME,CAAc96I,EAAQ46I,IAGnB9mD,GAAa9zF,EAAOg5D,UAAU/3G,OAAS,IAChB,UAAtB63G,EAAOhnG,MAAMtB,KAOfwvC,EAAOg5D,UAAU,GAAG5lC,SAAW,OACtB6iH,EAAKjE,0BAA0Bl5E,EAAOhnG,SAG/CkuC,EAAOg5D,UAAU,GAAG5lC,SAAW,UAE7B6iH,EAAKlE,cAMP/xI,EAAOg5D,UAAU,GAAG+hF,gBAAkB,SAK1C,IAAM3F,EAAgBa,EAAK/C,eAAe5/K,IAAIwlG,GAC9Cm9E,EAAKsD,sBAAsBzgF,EAAOhnG,MAAOkuC,EAAOg5D,UAAWo8E,GAC3Da,EAAK/C,eAAez/I,OAAOqlE,GAE3B,IAAM3hG,EAAU2hG,EAAO9O,cAAchqD,GAAQ93C,OAAM,YACjD+tL,EAAK9gJ,KAAKpsC,KAAK,gDAAgD+vG,EAAOhnG,MAAMtB,KAAI,UAAUsoG,EAAOhnG,MAAM2jC,GAAE,MAAK32C,EAAM2J,SAAW3J,EAAM0C,MACvI,IACAm5L,EAASj6L,KAAKyW,EAChB,IACOrV,QAAQ6P,IAAIgpL,EACrB,CA4BAthL,EAAOxe,QAAUgyL,E,iVC/3DX,EAA0B3gL,EAAQ,GAAhC0H,EAAU,aAAEO,EAAO,UAM3B,SAAS6mL,IAEP,OAAO/7K,OAAOlJ,KAAKsC,MADH,WACStC,KAAKC,UAChC,CAUA,iBAOE,WAAY6hC,EAASojJ,EAAUC,GAC7BngM,OAAOkQ,iBAAiB,KAAM,CAC5BiwL,MAAO,CACLj/L,YAAY,EACZV,MAAO2/L,GAETC,mBAAoB,CAClBl/L,YAAY,EACZV,OAAO,EACPY,UAAU,GAEZi/L,aAAc,CACZn/L,YAAY,EACZV,MAAO,IAAIgS,KAEb8tL,SAAU,CACRp/L,YAAY,EACZV,MAAO,IAAIiS,KAEbytL,SAAU,CACRh/L,YAAY,EACZV,MAAO0/L,GAETpjJ,QAAS,CACP57C,YAAY,EACZV,MAAOs8C,IAGb,CAiEF,OA3DEyjJ,8BAAA,WACE,IAAI,KAAKH,mBAAT,CAGA,IAAMI,EAAiB,CAACP,IAAcA,KACtCO,EAAet9L,SAAQ,SAAS+qH,GAC9B,KAAKoyE,aAAa3nL,IAAIu1G,EACxB,GAAG,MAEC,KAAKqyE,SAAS3nL,MAChB6nL,EAAet9L,SAAQ,SAAS+qH,GAC9B,KAAKqyE,SAAS54K,IAAIu4K,IAAchyE,EAClC,GAAG,K,CAEP,EAYAsyE,oBAAA,SAAQtyE,EAAMwyE,EAAaC,GACrBD,EACF,KAAKH,SAAS54K,IAAIumG,EAAMwyE,GAExB,KAAKJ,aAAa3nL,IAAIu1G,GAExB,KAAKmyE,mBAAqB,KAAKA,oBAAsBM,CACvD,EAOAH,uBAAA,SAAWI,GAAX,WACQL,EAAWK,EACb,GACApwL,MAAMiJ,KAAK,KAAK8mL,SAAS3tL,WAAWL,KAAI,YAAW,SAAQlL,SAAR,IAEjDw5L,EAAWrwL,MAAMiJ,KAAK,KAAK6mL,aAAat9L,UACxCk7C,EAAQqiJ,EAASp6L,OAASkT,EAAQknL,GAAYM,EAE9CC,EAAYznL,EAAQ6kC,GAAO,YAAQ,OACvC,UAAUgwE,EAAI,UAAUh0G,EAAKkmL,MAC7B,UAAUlyE,EAAI,SAASh0G,EAAKimL,SAAQ,IAAIjmL,EAAK6iC,QAFN,IAInCgkJ,EAAeR,EAAShuL,KAAI,YAAW,0BAAoByuL,EAAQ9gL,KAAK,IAAjC,IACvC+gL,EAAgB,CACpB,oBAAoBJ,EAAS3gL,KAAK,MAGpC,OAAO6gL,EAAannL,OAAOknL,GAAWlnL,OAAOqnL,EAC/C,EACF,EApGA,GA4GA,SAAS5kJ,EAAWg9B,EAAS/8B,GAE3B,OADgB+8B,EAAQxvE,MAAM,IAAIkhB,OAAOuxB,EAAS,QAAU,IAC7C/pC,KAAI,YAEjB,OADgB1I,EAAMA,MAAM,IAAIkhB,OAAOuxB,KAAa,IACrC50C,MAAM,EACvB,GACF,CAmDA,SAASw5L,EAA2B7nH,GAClC,IAAMwnH,EA7CR,SAA2BxnH,GAEzB,OAAO,IAAI5mE,IAAI4G,EAAQgjC,EAAWg9B,EADV,kDAE1B,CA0CmB8nH,CAAkB9nH,GAC7BknH,EAvBR,SAAyBlnH,GAEvB,OAAO,IAAI3mE,IAAI2pC,EAAWg9B,EADH,wCAC4B9mE,KAAI,YAAQ,SAAKlL,SAAL,IACjE,CAoBmB+5L,CAAgB/nH,GAC3BgoH,EAdR,SAAmChoH,GAC3B,QAAsBhgE,EAAQgjC,EAAWg9B,EAAS,uBAAsB,GAAvE8mH,EAAQ,KAAEpjJ,EAAO,KAExB,OADc1jC,EAAQgjC,EAAWg9B,EAAS,2BAC7B9mE,KAAI,YAAQ,OAAC27G,EAAMiyE,EAAUpjJ,EAAjB,GAC3B,CAUyBukJ,CAA0BjoH,GAEjD,OAAOgoH,EAAexuL,QAAO,SAACkrC,EAAiBwjJ,GAC7C,IAAMrzE,EAAOqzE,EAAM,GACbpB,EAAWoB,EAAM,GACjBxkJ,EAAUwkJ,EAAM,GAEhBC,EAAkBzjJ,EAAgBrlC,IAAIqkC,IAAY,IAAIyjJ,EAC1DzjJ,EACAojJ,EA5CN,SAA0B9mH,EAAS60C,EAAMiwB,GACvC,IAAM7hG,EAAU,UAAU4xE,EAAI,IAAIiwB,EAAS,QAC3C,OAAO9kE,EAAQxvE,MAAM,IAAIkhB,OAAOuxB,IAAU,EAC5C,CA0CMmlJ,CAAiBpoH,EAAS60C,EAAM,UAE5BwyE,EAAcH,EAAS7nL,IAAIw1G,IAAS,KAE1C,OADAszE,EAAgBE,QAAQxzE,EAAMwyE,EAAaG,EAASroL,IAAI01G,IACjDnwE,EAAgBp2B,IAAIo1B,EAASykJ,EACtC,GAAG,IAAI9uL,IACT,CAsEA6L,EAAOxe,QA7DP,SAAoCs5E,EAASgG,GAC3C,IAAMsiH,EAA0BT,EAA2B7nH,GACrDuoH,EAAcpxL,MAAMiJ,KAAKkoL,EAAwBz6L,QACnDs1E,EAAWhsE,MAAMiJ,KAAK4lE,EAAqBn4E,QACzC26L,EAAgB/oL,EAAW8oL,EAAaplH,GACxCslH,EAAmBhpL,EAAW0jE,EAAUolH,GAIjBvoL,EAAQwoL,GAAe,YAAW,SAAwBnpL,IAAIqkC,EAA5B,IAC1C55C,SAAQ,YAC3Bq+L,EAAgBO,oBAChB1iH,EAAqB13D,IAAI65K,EAAgBzkJ,QAASykJ,EACpD,IAIAhlH,EAAWhsE,MAAMiJ,KAAK4lE,EAAqBn4E,QAC3C,IAAM86L,EAAmBlpL,EAAW0jE,EAAUslH,GACxCG,EAA0B5oL,EAAQ2oL,GAAkB,YAAW,SAAqBtpL,IAAIqkC,EAAzB,IAC/D6jJ,GAAcvnH,EAAQxvE,MAAM,uBAC5Bq4L,EAAmB7oL,EAAQ4oL,GAAyB,YAAmB,SAAgBE,WAAWvB,EAA3B,IAKvEwB,EAAe/oL,EAAQ,IAAI5G,IAAI4mE,EAAQvqE,MAAM,QAAQ8K,OAAOsoL,KAE5DG,EAAwB,6BAK9B,OAJKhpH,EAAQxvE,MAAMw4L,IACjBD,EAAax8L,KAAKy8L,GAGbD,EAAaliL,KAAK,OAC3B,C,+BCtPA,IAAMoiL,EAASlxL,EAAQ,KASvB,aAIE,aACEnR,OAAOkQ,iBAAiB,KAAM,CAC5BoyL,QAAS,CACP9hM,MAAO,IAAI6hM,EAAO,CAChBE,OAAQ,SAAgBnE,GACtB,OAAOA,EAAS5C,KAClB,EACAgH,oBAAqB,SAA6Bj/K,EAAG2I,GACnD,OAAO3I,EAAE1M,UAAYqV,EAAErV,QACzB,KAGJ4rL,OAAQ,CACNrhM,UAAU,EACVZ,MAAO,MAETg7L,MAAO,CACLt6L,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKgqL,MACd,IAGN,CA6BF,OArBEzM,qBAAA,SAASwF,GACP,KAAKiH,OAASjH,EACd,IAAM7c,EAAM,KAAK2jB,QAAQI,QAAQjqL,IAAI+iL,GACrC,OAAO7c,EAAMA,EAAIlsH,WAAa,EAChC,EAQAujI,mBAAA,SAAOoI,GAELA,EAAS3rI,WAAa2rI,EAAS3rI,YAAc,GAC7C,IAAMkwI,EAAc,KAAKL,QAAQI,QAAQjqL,IAAI2lL,EAAS5C,OAChDoH,EAAgBD,EAAcA,EAAYlwI,WAAa,GAC7D,OAAO,KAAK6vI,QAAQ9xJ,OAAO4tJ,IAAa,KAAKqE,SAAWrE,EAAS5C,MAC7D4C,EAAS3rI,WAAWhrD,MAAMm7L,EAAc18L,QACxC,EACN,EACF,EAxDA,GA0DAoY,EAAOxe,QAAUk2L,C,+BCnEjB,iBACE,WAAYxqL,GACVA,EAAUxL,OAAOgT,OAAO,CACtBuvL,OAAQ,SAAuBh/K,GAAK,OAAOA,CAAG,EAC9Cs/K,SAAU,SAAyBt/K,GAAK,OAAOA,CAAG,EAClDi/K,oBAAqB,SAAoCj/K,EAAG2I,GAAK,OAAO3I,GAAK2I,CAAG,GAC/E1gB,GACHxL,OAAOkQ,iBAAiB,KAAM,CAC5B4yL,QAAS,CACPtiM,MAAOgL,EAAQ+2L,QAEjBQ,UAAW,CACTviM,MAAOgL,EAAQq3L,UAEjBG,qBAAsB,CACpBxiM,MAAOgL,EAAQg3L,qBAEjBx3D,KAAM,CACJxqI,MAAO,IAAIiS,MAGjB,CAoBF,OAlBE4vL,kBAAA,WACE,OAAO,IAAI5vL,IAAI,KAAKu4H,KACtB,EAEAq3D,4BAAA,SAAgB1vL,GACd,OAAOA,EAAQ/C,OAAO,KAAK4gC,OAAQ,KACrC,EAEA6xJ,mBAAA,SAAOh9L,GACL,IAAM/E,EAAM,KAAKwiM,QAAQz9L,GACnB7E,EAAQ,KAAKuiM,UAAU19L,GAC7B,QAAI,KAAK2lI,KAAKzyH,IAAIjY,KACd,KAAK0iM,qBAAqBxiM,EAAO,KAAKwqI,KAAKvyH,IAAInY,OAGnD,KAAK0qI,KAAKtjH,IAAIpnB,EAAKE,IACZ,EACT,EACF,EAzCA,GA2CA8d,EAAOxe,QAAUuiM,C,+BC3CX,MAAgElxL,EAAQ,IAAtEuP,EAA4B,+BAAEC,EAA2B,8BAMjE,aAME,WAAY2wJ,EAAgB9lK,GAC1BA,EAAUxL,OAAOgT,OAAO,CACtBiwL,sBAAuBviL,EACvBwiL,sBAAuBviL,GACtBnV,GAEHxL,OAAOkQ,iBAAiB,KAAM,CAC5BizL,uBAAwB,CACtB3iM,MAAOgL,EAAQy3L,uBAEjBG,uBAAwB,CACtB5iM,MAAOgL,EAAQ03L,uBAEjBG,cAAe,CACb7iM,MAAO,KACPY,UAAU,GAEZg1K,gBAAiB,CACf51K,MAAO8wK,GAETrtE,OAAQ,CACNzjG,MAAO,KACPY,UAAU,GAEZkiM,6BAA8B,CAC5B9iM,MAAO,KACPY,UAAU,IAGhB,CA2FF,OAzFEo1L,+BAAA,SAAmBxmB,GAKjB,OAJmBz/J,MAAMiJ,KAAKw2J,EAAMjtK,UACD0zC,MAAK,YAAQ,MAAc,mBAAd,EAAKp0C,MAA6B6tK,EAAKC,SAAvC,KAGtB,CACxB9hD,cAAe,EACfv9C,UAAW91D,KAAKmN,OAAO,IAAIva,MAAQia,WAEvC,EAMA2uK,mCAAA,sBACE,OAAO,KAAKpgB,gBAAgB1gI,WAAW7xC,MAAK,YAAS,SAAK0/L,mBAAmBvzB,EAAxB,IAAgC7iK,OAAM,WACzF,OAAO,IACT,GACF,EAKAqpL,wCAAA,SAA4BxoI,GAA5B,WACMA,GAAkD,OAAtC,KAAKs1I,8BAEnB,KAAKA,6BAA+B,WACc,iBAA5CrpL,EAAKm8J,gBAAgB9kD,oBAEvBtjE,GAEJ,EACA,KAAKooH,gBAAgB55J,iBAAiB,2BAA4B,KAAK8mL,gCAC7Dt1I,GAAY,KAAKs1I,+BAE3B,KAAKltB,gBAAgBn4J,oBAAoB,2BAA4B,KAAKqlL,8BAC1E,KAAKA,6BAA+B,KAExC,EAQA9M,kBAAA,SAAMgN,GAAN,WACE,KAAK97L,OAEL,KAAKu8F,OAAS2vB,aAAY,WACxB35G,EAAKwpL,yBAAyB5/L,MAAK,YAC5B6/L,IAOAzpL,EAAKopL,eAAiBppL,EAAKopL,cAAch1E,gBAAkBq1E,EAASr1E,gBACvEp0G,EAAKopL,cAAgBK,EAErBzpL,EAAK0pL,4BAA4B,OAG/BD,EAAS5yH,UAAY72D,EAAKopL,cAAcvyH,WAAa72D,EAAKmpL,yBAEZ,iBAA5CnpL,EAAKm8J,gBAAgB9kD,mBACvBkyE,IAC+C,OAAtCvpL,EAAKqpL,8BACdrpL,EAAK0pL,4BAA4BH,IAGvC,GACF,GAAG,KAAKL,uBACV,EAMA3M,iBAAA,WACE,KAAKmN,4BAA4B,MACb,OAAhB,KAAK1/F,SACP2/F,cAAc,KAAK3/F,QACnB,KAAKA,OAAS,KACd,KAAKo/F,cAAgB,KAEzB,EACF,EA9HA,GAgIA/kL,EAAOxe,QAAU02L,C,ohBCtIX31E,EAAuB1vG,EAAQ,KAC/B0yL,EAAgB1yL,EAAQ,KAU9B,cAKE,WAAY8mK,GAAZ,MACE7mI,YACE6mI,EAAYc,MACZd,EAAYv3D,kBACZu3D,EAAYt3D,eACZs3D,EAAYr3D,UACb,K,OAED5gH,OAAOkQ,iBAAiB+J,EAAM,CAC5B6pL,aAAc,CACZtjM,MAAOy3K,KAOXA,EAAY8rB,WAAa,cAEzB9rB,EAAYz7J,iBAAiB,WAAW,YACtCvC,EAAKwI,KAAK,UAAWnK,EAAMlO,KAC7B,IAEA6tK,EAAYz7J,iBAAiB,SAAS,WACpCvC,EAAKwI,KAAK,QACZ,I,CACF,CAcF,OA7CgCvI,OAiC9Bg8K,iBAAA,WACE,KAAK4N,aAAa5nJ,QAClB9K,YAAM1pC,KAAI,UACZ,EAMAwuL,4BAAA,WACE,OAAO,IAAI2N,EAAc,KAAKC,aAChC,EACF,EA7CA,CAAgCjjF,GAwDhCviG,EAAOxe,QAAUo2L,C,ohBC1DjB,cAKE,WAAYje,GAAZ,MACE7mI,cAAO,K,OAEPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5B6pL,aAAc,CACZtjM,MAAOy3K,GAET/0D,cAAe,CACb1iH,MAAO,MAIXy3K,EAAYz7J,iBAAiB,QAAQ,WACnCvC,EAAKipG,cAAcj2G,OAAO,GAAG/J,SAAQ,YAAW,SAAKwkH,SAASh6G,EAAd,GAClD,IAEAuqK,EAAYz7J,iBAAiB,WAAW,SAAC1J,G,IAAE1I,EAAI,OAC7C,IACE,IAAMsD,EAAUqI,KAAK4P,MAAMvb,GAC3B6P,EAAKwI,KAAK,UAAW/U,EAErB,CADA,MAAO3J,GACP,CAEJ,IAEAkW,EAAKgsG,QAAQ,CAAE5jH,KAAM,U,CACvB,CAiCF,OAhE4B6X,OAqC1B2pL,qBAAA,SAASn2L,GACP,IAAMtD,EAAO2L,KAAKC,UAAUtI,GAC5B,IACE,KAAKo2L,aAAa5kI,KAAK90D,EAEvB,CADA,MAAOrG,GACP,CAEJ,EAQA8/L,oBAAA,SAAQn2L,GACN,IAAMuqK,EAAc,KAAK6rB,aACzB,MAA+B,YAA3B7rB,EAAYnyH,YAAuD,WAA3BmyH,EAAYnyH,aAGzB,eAA3BmyH,EAAYnyH,YACd,KAAKo9D,cAAcv9G,KAAK+H,IACjB,IAET,KAAKg6G,SAASh6G,IACP,GACT,EACF,EAhEA,CATyByD,EAAQ,IAAS,cAiF1CmN,EAAOxe,QAAU+jM,C,ohBC3EjB,cAME,WAAYnpJ,EAAI08D,G,OACdhmE,YAAMsJ,EAAI08D,IAAiB,IAC7B,CACF,OATiCl9F,OASjC,EATA,CAN8B/I,EAAQ,MAiBtCmN,EAAOxe,QAAUq2L,C,+BCjBT,MAAqBhlL,EAAQ,IAAK,iBAM1C,aAIE,aACEnR,OAAOkQ,iBAAiB,KAAM,CAC5B8zL,gBAAiB,CACfxjM,MAAO,IAAIiS,IACXrR,UAAU,IAGhB,CAyBF,OAlBEg1L,kBAAA,SAAM99K,GACJ,OAAO,KAAK0rL,gBAAgBvrL,IAAIH,EAAMw/J,YAAYj+F,MAAQ,IAC5D,EAMAu8G,mBAAA,SAAO15I,GACL,IAAMunJ,EAAWlnJ,EAAiBL,EAAK,iBACvC,KAAKsnJ,gBAAkBC,EAASrxL,QAAO,SAACipE,EAAgBzC,GACtD,IAAMkB,EAAalB,EAAQxvE,MAAM,kBAAoB,GAC/Cs6L,EAAiB9qH,EAAQxvE,MAAM,sBAAwB,GACvDiwE,EAAMS,EAAW,GACjBx9B,EAAUonJ,EAAe,GAC/B,OAAOrqH,GAAO/8B,EAAU++B,EAAen0D,IAAImyD,EAAK/8B,GAAW++B,CAC7D,GAAG,KAAKmoH,gBACV,EACF,EApCA,GAsCA1lL,EAAOxe,QAAUs2L,C,+BC5CT,MAA0BjlL,EAAQ,IAAe,sBAEnD,EAA4CA,EAAQ,IAAlDkoE,EAAmB,sBAAEt8B,EAAgB,mBA8C7C,SAASonJ,EAAuBlnJ,GAC9B,IAAM+8B,EAAgBX,EAAoBp8B,GAC1CA,EA0CF,SAA+BA,EAAc+8B,GAK3C,OAAOzpE,MAAMiJ,KAAKwgE,EAAc/yE,QAAQ2L,QAAO,SAACwmE,EAASI,GACvD,IAAM4qH,EAAc,IAAIt5K,OAAO,aAAa0uD,EAAE,UAAW,MACzD,OAAQJ,EAAQxvE,MAAMw6L,IAAgB,IAAI38L,MAAgC,QAA1BuyE,EAAcvhE,IAAI+gE,GAAgB,EAAI,GAAG5mE,QAAO,SAACwmE,EAASirH,GACxG,IAAMD,EAAc,IAAIt5K,OAAO,OAAOu5K,GAChCC,EAAe,IAAIx5K,OAAO,cAAc0uD,EAAE,eAChD,OAAOJ,EAAQt+D,QAAQspL,EAAa,IAAItpL,QAAQwpL,EAAc,GAChE,GAAGlrH,EACL,GAAGn8B,EACL,CAvDiBsnJ,CAAsBtnJ,EAAc+8B,GACnD,IAAMwqH,EA4DR,SAA8BxqH,GAC5B,IAAMwqH,EAAiB,IAAI/xL,IAK3B,OAJAunE,EAAc92E,SAAQ,SAACu2E,EAAWD,GAChC,IAAME,EAAM8qH,EAAe/rL,IAAIghE,IAAc,IAAIjnE,IACjD,OAAOgyL,EAAe98K,IAAI+xD,EAAWC,EAAIhhE,IAAI8gE,GAC/C,IACOgrH,CACT,CAnEyBC,CAAqBzqH,GACtCwB,EAASgpH,EAAe/rL,IAAI,QAAU,IAAIjG,IAE1CkyL,EAAgB,IAAIlyL,IACpBmyL,EAwER,SAAmC1nJ,EAAc+8B,EAAewB,EAAQkpH,GACtE,OAAOn0L,MAAMiJ,KAAKgiE,GAAQ5oE,QAAO,SAAC+xL,EAAqBlpH,GACrD,IAAMmpH,EAAc,IAAI95K,OAAO,UAAU2wD,EAAK,eACxC9kC,EAAUsG,EAAarzC,MAAMg7L,GACnC,IAAKjuJ,EAEH,OADA+tJ,EAAchsL,IAAI+iE,GACXkpH,EAGT,IAAMnrH,EAAK1jE,OAAOy4B,SAASoI,EAAQ,IACnC,OAAKqjC,EAAczhE,IAAIihE,GAOL,QADAQ,EAAcvhE,IAAI+gE,IAGlCkrH,EAAchsL,IAAI+iE,GACXkpH,GAGFA,EAAoBj9K,IAAI+zD,EAAOjC,IAXpCkrH,EAAchsL,IAAI+iE,GACXkpH,EAWX,GAAG,IAAIlyL,IACT,CAjG8BoyL,CAC1B5nJ,EAAc+8B,EAAewB,EAAQkpH,GACjCI,EAuGR,SAAmCH,EAAqBD,GAEtD,IAAMK,EAAuBx0L,MAAMiJ,KAAKmrL,GAAqB/xL,QAAO,SAACmyL,EAAsBxrH,GACzF,IAAMkC,EAAQlC,EAAK,GACbC,EAAKD,EAAK,GACViC,EAASupH,EAAqBtsL,IAAI+gE,IAAO,IAAIhnE,IACnD,OAAOuyL,EAAqBr9K,IAAI8xD,EAAIgC,EAAO9iE,IAAI+iE,GACjD,GAAG,IAAIhpE,KAIP,OAAOlC,MAAMiJ,KAAKurL,GAAsBnyL,QAAO,SAACkyL,EAAqBvrH,GACnE,IAAMC,EAAKD,EAAK,GACViC,EAASjrE,MAAMiJ,KAAK+/D,EAAK,IAC/B,OAAIiC,EAAOt1E,OAAS,GAClBs1E,EAAOt4E,SAAQ,YACbwhM,EAAchsL,IAAI+iE,EACpB,IACOqpH,GAEFA,EAAoBp9K,IAAI8xD,EAAIgC,EAAO,GAC5C,GAAG,IAAI/oE,IACT,CA7H8BuyL,CAC1BL,EAAqBD,GAEjBO,EAAqB10L,MAAMiJ,KAAKkrL,GAwBtC,MArBwB,CAAC,OAAQ,MAAO,OACA9xL,QAAO,SAACsyL,EAAiBzrH,GAC/D,IAAMC,EAAM8qH,EAAe/rL,IAAIghE,IAAc,IAAIjnE,IACjD,OAAOjC,MAAMiJ,KAAKkgE,GAAK9mE,QAAO,SAACsyL,EAAiB1rH,GAAO,SAAoBjhE,IAAIihE,GAC3E0rH,EACAA,EAAgBxsL,IAAI8gE,EAF+B,GAE1B0rH,EAC/B,GAAG,IAAI1yL,KAEStP,SAAQ,YACtB,GAAI+hM,EAAmB/+L,OAAQ,CAC7B,IAAMu1E,EAAQwpH,EAAmBp9J,QAEjCoV,EAuIN,SAAkCA,EAAcw+B,EAAOjC,GACrD,OAAOv8B,EAAayc,SAAS,QACtBzc,EAAY,UAAUw+B,EAAK,QAAQjC,EAAE,OACrCv8B,EAAY,cAAcw+B,EAAK,QAAQjC,CAChD,CA3IqB2rH,CADfloJ,EAAemoJ,EAA6BnoJ,EAAcw+B,GACJA,EAAOjC,E,CAEjE,IAEAyrH,EAAmB/hM,SAAQ,YAEzB+5C,EAsHJ,SAAwCA,EAAcw+B,GACpD,IAAMp/B,EAAU,IAAIvxB,OAAO,YAAY2wD,EAAK,SAAU,MACtD,OAAOx+B,EAAaniC,QAAQuhC,EAAS,GACvC,CAzHmBgpJ,CADfpoJ,EAAemoJ,EAA6BnoJ,EAAcw+B,GACEA,EAC9D,IAEOx+B,CACT,CAwGA,SAASmoJ,EAA6BnoJ,EAAcw+B,GAClD,IAAMp/B,EAAU,IAAIvxB,OAAO,UAAU2wD,EAAK,SAAU,MACpD,OAAOx+B,EAAaniC,QAAQuhC,EAAS,GACvC,CAwBA/9B,EAAOxe,QAhMP,SAAoB81G,GAClB,IAAM0vF,EAAkB,CAAEjjM,KAAMuzG,EAAYvzG,MAI5C,MAHyB,aAArBuzG,EAAYvzG,OACdijM,EAAgB5oJ,IASpB,SAAuBA,GACrB,IAAMY,EAAgBP,EAAiBL,GAEvC,MAAO,CADSA,EAAI7tC,MAAM,UAAU,IAEjC8K,OAAO2jC,EAAchrC,IAAI6xL,IACzBlkL,KAAK,OACV,CAf0BslL,CAAc3vF,EAAYl5D,MAE3C,IAAI7G,EAAsByvJ,EACnC,C,86BCvBA,cAIE,mBACEl0J,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5BurL,cAAe,CACbhlM,MAAO,IAAIiS,O,CAGjB,CAyCF,OApDmCyH,OAqBjC63K,oBAAA,SAAQz5K,GAAR,WACM3U,GAAS,EACb,IAAK2U,EAIH,OAHA,KAAKktL,cAActiM,SAAQ,SAASkK,EAAGq4L,GACrC9hM,EAAS,KAAKiuL,QAAQ6T,IAAgB9hM,CACxC,GAAG,MACIA,EAET,IAAM8mE,EAAQ,KAAK+6H,cAAc/sL,IAAIH,IAAU,GAE/C,OADA,KAAKktL,cAAc9sJ,OAAOpgC,GACnBmyD,EAAM73D,QAAO,SAACjP,EAAQ6F,GAAS,SAAKiZ,KAAI,MAATxI,EAAI,OAAS,CAAC3B,GAAOqB,OAAOnQ,OAAU7F,CAAtC,GAA8CA,EACtF,EAQAouL,kBAAA,WACE,IAAMvoL,EAAO,GAAG/B,MAAMnF,KAAKmH,WAC3B,GAAI,KAAKgZ,KAAI,MAAT,KAAI,OAASjZ,KACf,OAAO,EAET,IAAM8O,EAAQ9O,EAAK,GAKnB,OAJK,KAAKg8L,cAAcjtL,IAAID,IAC1B,KAAKktL,cAAc99K,IAAIpP,EAAO,IAEhC,KAAKktL,cAAc/sL,IAAIH,GAAO3S,KAAK6D,EAAK/B,MAAM,KACvC,CACT,EACF,EApDA,CAPqB0J,EAAQ,IAAUkR,cA6DvC/D,EAAOxe,QAAUiyL,C,k0BC5DX2T,EAA2Bv0L,EAAQ,KACnCw0L,EAAwBx0L,EAAQ,KAChCy0L,EAA0Bz0L,EAAQ,KAClC00L,EAAc10L,EAAQ,KACtBogH,EAAgBpgH,EAAQ,KACxB20L,EAAsB30L,EAAQ,KAC9Bw8G,EAAcx8G,EAAQ,KACtB40L,EAAyB50L,EAAQ,KACjC60L,EAA0B70L,EAAQ,KAClC80L,EAAuB90L,EAAQ,KAC/B+0L,EAA0B/0L,EAAQ,KAGlC,EAQFA,EAAQ,GAPGmP,EAA2B,wCACxCxM,EAA6B,gCAC7BoI,EAAK,QACLrD,EAAU,aACVI,EAAY,eACZG,EAAO,UACP+B,EAAW,cAGPqqG,EAAqBr0G,EAAQ,KAC3B,EAAsBA,EAAQ,IAAiC,kBAOvE,cACE,WAAYy/G,EAAkBl5E,EAAcqoI,EAAWoR,EAAuB3lL,GAA9E,WACEksC,EAAalsC,QAAUxL,OAAOgT,OAAO,CACnCmzL,gBAAiB7lL,GAChBo3B,EAAalsC,SAEhBA,EAAUxL,OAAOgT,OAAO,CACtB0yL,yBAAwB,EACxBC,sBAAqB,EACrBC,wBAAuB,EACvBn1E,mBAAoBo1E,EACpBC,oBAAmB,EACnBC,uBAAsB,EACtBC,wBAAuB,EACvBjyL,iBAAkB,KAClB88G,eAAuD,IAAvCn5E,EAAalsC,QAAQ26L,gBACrCC,uBArB4B,KAsB3B56L,GAEHolH,EAAiBy1E,oBAAoB76L,EAAQuI,kBAErC,MAA2F2jC,EAAY,QAA1EyyI,EAAe,mBAAEv0K,qBAAkBw4J,OAAe,MAAG,GAAE,EAC5Fx9C,EAAiB01E,mBAAmBnc,GAGhC/b,EAAgBtuJ,SAAS,UAE3BsuJ,EAAgBzoK,KAAK,WAGvBirH,EAAiB21E,mBAAmBn4B,GAEpC+iB,EAAsBkD,uBAAuB7oL,EAAQqlH,gBAIrD,IAAM21E,EAAmB,SAAA9rJ,GAAM,SAAK+rJ,kBAAkB/rJ,EAAvB,EACzB9uC,GAHNqO,cAAM22G,EAAkBl5E,EAAaogC,IAAKpgC,EAAajxC,KAAM+E,IAAQ,MAGpD4uC,K,OAEjBp6C,OAAOkQ,iBAAiB+J,EAAM,CAC5BysL,kCAAmC,CACjClmM,MAAO,IAAIiS,KAEbk0L,uBAAwB,CACtBnmM,MAAOgL,EAAQm6L,uBAEjBiB,8BAA+B,CAC7BpmM,MAAOowH,EAAiBi2E,yBACxBzlM,UAAU,GAEZ0lM,6BAA8B,CAC5BtmM,MAAO,EACPY,UAAU,GAEZ2lM,uBAAwB,CACtBvmM,MAAO,KACPY,UAAU,GAEZ4lM,6BAA8B,CAC5BxmM,MAAOowH,EAAiB36G,6BAE1BgxL,uBAAwB,CACtBzmM,MAAO2wL,GAET+V,WAAY,CACV1mM,MAAO,IAAIiS,KAEb00L,mBAAoB,CAClB3mM,MAAO,EACPY,UAAU,GAEZgmM,qBAAsB,CACpB5mM,MAAOgL,EAAQs6L,qBAEjB9V,YAAa,CACXxvL,MAAO,IAAIiS,KAEb40L,oBAAqB,CACnB7mM,MAAO,EACPY,UAAU,GAEZkmM,sBAAuB,CACrB9mM,MAAO,IAAIiS,KAEb80L,0BAA2B,CACzB/mM,MAAO,IAAIgL,EAAQk6L,yBAAyBc,EAAkB,CAAE56L,IAAG,KAErE47L,yBAA0B,CACxBhnM,MAAO,IAAIgL,EAAQo6L,wBACjBY,EACA51E,EAAiB36G,4BACjB,CAAErK,IAAG,KAGT67L,sBAAuB,CACrBjnM,MAAO,IAAIylM,EAAqBO,EAAkB,CAAE56L,IAAG,KAEzD87L,yBAA0B,CACxBlnM,MAAO,IAAI0lM,EAAwBM,EAAkB,CAAE56L,IAAG,KAE5D+7L,wBAAyB,CACvBnnM,MAAO,IAAIgL,EAAQu6L,uBAAuBS,EAAkB,CAAE56L,IAAG,KAEnEg8L,yBAA0B,CACxBpnM,MAAO,IAAIgL,EAAQw6L,wBAAwBQ,EAAkB,CAAE56L,IAAG,KAEpEi8L,wBAAyB,CACvBrnM,MAAO,IAAIiS,KAEb+nC,WAAY,CACVh6C,MAAOu/K,GAET+nB,wBAAyB,CACvBtnM,MAAO,IAAIiS,KAEbw8K,YAAa,CACX/tL,YAAY,EACZV,MAAOk3C,EAAalsC,QAAQu8L,cAAgB,QAIhD9tL,EAAK+tL,+BACL/tL,EAAKguL,gCACLhuL,EAAKiuL,sCACLjuL,EAAKkuL,8BAkdT,SAAsCC,EAAQx3E,GAC5C,IAAMy3E,EAA0BltL,GAAY,WAC1CitL,EAAOE,kCACT,IAEMC,EAAcptL,GAAY,WAC9B,IAAMi2K,EAAeh4K,EAAQw3G,EAAiBp7G,QAAQ,YAAW,SAAQ+1G,gBAAR,IACjE68E,EAAOnB,uBAAuB3V,gBAAgBF,EAChD,IAEAxgE,EAAiBx4G,GAAG,aAAcmwL,GAClC33E,EAAiBx4G,GAAG,eAAgBmwL,GACpC33E,EAAiBx4G,GAAG,UAAWiwL,GAE/BD,EAAOhwL,GAAG,gBAAgB,SAAS8xG,EAAahmH,GAChC,iBAAVA,IACF0sH,EAAiBh4G,eAAe,aAAc2vL,GAC9C33E,EAAiBh4G,eAAe,eAAgB2vL,GAChD33E,EAAiBh4G,eAAe,UAAWyvL,GAC3CD,EAAOxvL,eAAe,eAAgBsxG,GACtC0G,EAAiB17D,aAErB,IAEAkzI,EAAOhwL,GAAG,mCAAmC,WACnC,MAA+CgwL,EAAM,iBAAnC12E,EAA6B02E,EAAM,yBACrD,EAAkBx3E,EAAgB,SAAxB94C,EAAQ84C,EAAgB,IAC1C,OAAQc,GACN,IAAK,YACHd,EAAiB7xE,QAAQ+4B,EAAKzrD,GAC9B,MACF,IAAK,eACHukG,EAAiBjxC,eAGvB,GACF,CApfIuvG,CAA6Bj1K,EAAM22G,GAsfvC,SAAoCw3E,EAAQjX,GAC1CA,EAAsB/4K,GAAG,eAAe,SAAuBw9F,GAC7DwyF,EAAOI,4BAA4B5yF,EACrC,IACAu7E,EAAsBS,QAAQ,eAE9BT,EAAsB/4K,GAAG,cAAc,SAAsBq6C,GAC3D21I,EAAOI,4BAA4B/1I,EACrC,IACA0+H,EAAsBS,QAAQ,cAE9BT,EAAsB/4K,GAAG,aAAcgwL,EAAOK,kBAAkB/hK,KAAK0hK,IACrEjX,EAAsBS,QAAQ,cAC9BT,EAAsB8C,oBAAoB/wL,QAAQklM,EAAOK,kBAAmBL,GAE5EjX,EAAsB/4K,GAAG,0BAA0B,WACjDgwL,EAAO3lL,KAAK,yBACd,IAEA0uK,EAAsB/4K,GAAG,6BAA6B,WACpDgwL,EAAO3lL,KAAK,6BACsB,WAA9B2lL,EAAO92E,qBAC2C,OAAhD82E,EAAOx3E,iBAAiBzwC,qBAC1BioH,EAAOx3E,iBAAiB83E,uBAAuB,GAEjDN,EAAOj3E,aAAajuH,SAAQ,YACc,OAApC+mH,EAAY9pC,qBACd8pC,EAAYy+E,uBAAuB,EAEvC,IAEJ,GACF,CArhBIC,CAA2B1uL,EAAMk3K,GAuhBrC,SAA+BiX,EAAQroB,GACrCA,EAAU3nK,GAAG,UAAWgwL,EAAOp0G,QAAQttD,KAAK0hK,IAC5CroB,EAAU3nK,GAAG,gBAAgB,SAAS8xG,EAAahmH,EAAOH,GAC1C,iBAAVG,IACmB,iBAAjBkkM,EAAOlkM,OACTkkM,EAAOt3E,YAAY/sH,GAErBg8K,EAAUnnK,eAAe,eAAgBsxG,IAE3Ck+E,EAAO3lL,KAAK,kCACd,GACF,CAjiBImmL,CAAsB3uL,EAAM8lK,GA0iBhC,SAAkCqoB,EAAQroB,EAAW8oB,GACnD,IAAMC,EAAsB,IAAIr2L,IAC5Bs2L,GAAkB,EAChB/iG,EAAW4tB,aAAY,WAC3Bw0E,EAAO1yJ,WAAW7xC,MAAK,YACrBklM,GAAmBA,EACnB/4B,EAAM9sK,SAAQ,SAACiJ,EAAUuuC,GAIvB,IAAM6yE,EAAS,IAAII,EAAYjzE,EAAIvuC,GAAU,GAI7C4zK,EAAUipB,aAAa,UAAW,eAAgB,OAAQ,CACxDC,gBAAiB17E,EAAOE,sBAAsBn7G,KAAI,SAACm9K,EAAWtpL,GAC5D,SAAmCspL,EAAWtjL,EAASshH,sBAAsBtnH,GAAI2iM,EAAjF,IACFx7E,qBAAsBC,EAAOD,qBAAqBh7G,KAAI,SAACm9K,EAAWtpL,GAChE,SAAkCspL,EAAWtjL,EAASmhH,qBAAqBnnH,GAAI2iM,EAA/E,IACFt7E,qBAAsBD,EAAOC,qBAAqBl7G,KAAI,SAACm9K,EAAWtpL,GAChE,SAAkCspL,EAAWtjL,EAASqhH,qBAAqBrnH,GAAI2iM,EAA/E,IACF37E,iBAAkBI,EAAOJ,iBACzB+7E,gBAAiB37E,EAAOG,sBAAsBp7G,KAAI,SAACm9K,EAAWtpL,GAC5D,SAAmCspL,EAAWtjL,EAASuhH,sBAAsBvnH,GAAI2iM,EAAjF,MAIJ,IAAM7hM,EAAOmS,EAAQ,CACnB,uBACA,uBACA,wBACA,0BACC,YAAQ,SAAOhG,GAAMd,KAAI,SAACQ,G,IAAEm7G,EAAI,OAAiB,OAAP,WAAkB,IAAIA,CAAf,GAAzC,IAIX,GAH0Cp1G,EAAWtI,MAAMiJ,KAAKsvL,EAAoB7hM,QAASA,GAC3D/D,SAAQ,YAAO,SAAoBw1C,OAAOp4C,EAA3B,IAE7CyoM,EAAiB,CAInB,IAAMp0B,EAsHhB,SAAkCA,EAAwBxnD,GA6CxD,OA5CAwnD,EAAyB30K,OAAOgT,OAAO,CACrCm2L,yBAA0B,EAC1BC,yBAA0B,EAC1B/6E,cAAe,EACfR,UAAW,EACXw7E,oBAAqB,EACrB1kB,qBAAsB,EACtB2kB,4BAA6B,EAC7BC,wBAAyB,EACzBp5B,WAAW,EACXhjD,iBAAkBA,EAClB90C,SAAU,EACVmxH,UAAU,EACVC,iBAAkB,EAClBC,aAAc,EACdC,kBAAmB,EACnBC,cAAe,EACfC,wBAAyB,EACzBC,oBAAqB,EACrB5lM,MAAO,SACP6lM,mBAAoB,EACpBC,YAAa,GACb5oM,UAAU,GACT6X,EAAa07J,GAA0B,GAAI,QAEvB7D,eAAiB9wK,OAAOgT,OAAO,CACpDytK,cAAe,OACfwpB,SAAS,EACTC,GAAI,GACJC,KAAM,EACN9xH,SAAU,EACVqoG,SAAU,MACVr1K,IAAK,IACJ4N,EAAa07J,EAAuB7D,gBAAkB,GAAI,OAE7D6D,EAAuB5D,gBAAkB/wK,OAAOgT,OAAO,CACrDytK,cAAe,OACfypB,GAAI,GACJC,KAAM,EACN9xH,SAAU,EACVqoG,SAAU,MACVr1K,IAAK,IACJ4N,EAAa07J,EAAuB5D,iBAAmB,GAAI,OAEvD4D,CACT,CApKyCy1B,CAC7Bj+L,EAASwoK,uBACTpnD,EAAOJ,kBAET4yD,EAAUipB,aACR,UACA,4BACA,OACAr0B,E,CAEN,GACF,IAAG,WACD,GAEJ,GAAGk0B,GAEHT,EAAOhwL,GAAG,gBAAgB,SAASiyL,EAAenmM,GAClC,iBAAVA,IACF0/L,cAAc59F,GACdoiG,EAAOxvL,eAAe,eAAgByxL,GAE1C,GACF,CAvmBIC,CAAyBrwL,EAAM8lK,EAAWv0K,EAAQ46L,wBAElDnsL,EAAK+5E,QAAQt8C,GAIbz9B,EAAKgtL,uBAAuB9T,8BAA8Bl5K,EAAKytL,yBAAyB6C,S,CAC1F,CAmZF,OA3hBqBrwL,OA8InBla,sBAAIixL,8BAAe,C,IAAnB,WACE,OAAO,KAAKgW,uBAAuB51E,eACrC,E,gCAMArxH,sBAAIixL,uCAAwB,C,IAA5B,WACE,MAAiC,YAA1B,KAAKz2I,WAAWt2C,MACnB,eACA,KAAKs2C,WAAWt2C,KACtB,E,gCAMAlE,sBAAIixL,iCAAkB,C,IAAtB,WACE,OAAO,KAAKgW,uBAAuB31E,kBACrC,E,gCAKA2/D,yCAAA,SAA6Bv2I,GAC3B,OAAO,KAAKotJ,wBAAwBpvJ,OAAOgC,EAC7C,EAKAu2I,8CAAA,SAAkCv2I,GAChC,IAAMv+B,EAAW,KAAK2rL,wBAAwBrvL,IAAIiiC,IAAOx+B,IAMnD0gL,EALiB,KAAKqK,uBAAuBhT,oBAKdx9I,MAAK,YAAiB,SAAciE,KAAOA,GAAmC,UAA7BkiJ,EAAc92I,UAAzC,IAW3D,OATI82I,EACFzgL,EAAS3Y,QAAQo5L,GAKjB,KAAKkL,wBAAwBpgL,IAAIgzB,EAAIv+B,GAGhCA,CACT,EAKA80K,8BAAA,SAAkB2L,GAGhB,OAFiB,KAAK4N,kCAAkC5N,EAAcliJ,IAC7Dl3C,QAAQo5L,GACV,IACT,EAKA3L,wBAAA,SAAYltL,GACV,IAAM0mM,EAAgBr5J,YAAM0/E,YAAYxuH,KAAK,KAAMyB,GAWnD,OAVI0mM,IACF,KAAKC,iCACL,KAAKlwJ,WAAW0a,aAChB,KAAK+xI,uBAAuB/qJ,SAG9B,KAAK00E,iBAAiBp7G,OAAOtS,SAAQ,YACnC6T,EAAM40K,cAAc5nL,GAAS,IAAII,MAAM,iCACzC,IAEOsmM,CACT,EAKAxZ,8BAAA,SAAkBv2I,GAAlB,WACE,OAAO,KAAK8vJ,kCAAkC9vJ,GAAIt+B,QAAQvY,MAAK,YAE7D,OADAoW,EAAK0wL,6BAA6BjwJ,GAC3BkiJ,CACT,GACF,EAKA3L,2CAAA,SAA+B14G,GAC7B,IAAMqyH,EAAuB,KAAK/C,wBAAwBpvL,IAAI8/D,KAAa,EAK3E,OAJA,KAAKsvH,wBAAwBnvJ,OAAO6/B,GAChCqyH,GACF,KAAKxwJ,KAAKpsC,KAAK,IAAIuqE,EAAQ,kCAEtBqyH,CACT,EAMA3Z,2CAAA,WACE,IAAM4Z,EAA6BzxL,EAAQ,KAAK+3G,cAAc,YAAe,aAAM33G,KAAKywG,EAAYz0G,OAAvB,IAC7E,OAAO,IAAI/C,IAAIo4L,EACjB,EAKA5Z,0CAAA,SAA8B6Z,GAA9B,WACQhF,EAAsB,KAAKsB,qBAC7Bn9E,EAAc,KAAKkH,aAAa14G,IAAIqyL,EAAiBhzH,KACnDr2E,EAAO,KAkBb,OAjBKwoH,KACHA,EAAc,IAAI67E,EAChBgF,GACA,YAAY,SAAKC,+BAA+BxyH,EAApC,IACZ,SAACA,EAAUF,GAAa,SAAKsvH,wBAAwBqD,wBAAwBzyH,EAAU,YAAaF,EAA5E,IACxB,SAACE,EAAU0yH,GAAS,SAAKxD,sBAAsByD,aAAa3yH,EAAU0yH,EAAlD,IACpB,YAAY,SAAKxD,sBAAsBrX,eAAe73G,EAA1C,KAEFngE,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACrC,iBAAVA,IACF+lH,EAAYrxG,eAAe,eAAgBsxG,GAC3CzoH,EAAK0vH,aAAaz4E,OAAOuxE,EAAYnyC,KACrCr2E,EAAKilM,kCAAkCh/K,IAAIuiG,EAAYnyC,IAAKmyC,EAAYpzG,UAE5E,IACA,KAAKs4K,mBAAmBllE,IAEnBA,CACT,EAKAgnE,sBAAA,WACE,MAAO,CACLhnE,YAAa,KAAK2G,iBAAiBujE,WAEvC,EAKAlD,sCAAA,SAA0BzgJ,GAClB,MAAiD,KAAKogF,iBAApD78G,EAAgB,mBAAE8yL,EAAwB,2BAClD,OAAI9yL,GAAoB,KAAK6yL,8BAAgCC,GAC3D,KAAKD,8BAAgCC,EAC9B7mM,OAAOgT,OAAO,CACnBm4L,kBAAmBr3L,EAA8BC,IAChDy8B,IAEEA,CACT,EAIAygJ,6CAAA,WACE,KAAKz2I,WAAWyrE,QAAQ,KAAKmlF,0BAA0B,KAAKC,aAC9D,EAKApa,wCAAA,SAA4BiD,GAE1B,KAAK15I,WAAWyrE,QAAQjmH,OAAOgT,OAAO,CACpCs4L,iBAAkB,CAACpX,IAClB,KAAKmX,aACV,EAKApa,oBAAA,SAAQsa,GAAR,WACE,GAAIA,EAAUC,YAAcD,EAAUC,WAAW30L,SAAW,KAAKwwL,oBAAqB,CACpF,KAAKA,oBAAsBkE,EAAUC,WAAW30L,SAChD00L,EAAUC,WAAWh2L,OAAOtS,SAAQ,YAC9BuoM,EAAW/wJ,IACbzgC,EAAKqtL,sBAAsB5uJ,OAAO+yJ,EAAW3zH,KAC7C79D,EAAK+1K,YAAYtoK,IAAI+jL,EAAW3zH,IAAK2zH,EAAW/wJ,KACvC+wJ,EAAW1nM,QAAUkW,EAAKqtL,sBAAsB/uL,IAAIkzL,EAAW3zH,MACxE79D,EAAKqtL,sBAAsB5/K,IAAI+jL,EAAW3zH,IAAK2zH,EAAW1nM,MAE9D,IAEA,IAAM2nM,EAAsB,IAAIl5L,IAAI+4L,EAAUC,WAAWh2L,OACtD5F,QAAO,YAAc,QAAE67L,EAAW/wJ,EAAb,IACrBpoC,KAAI,YAAc,SAAWwlE,GAAX,KAErB,KAAKk4G,YAAY9sL,SAAQ,SAAC45C,EAASy7B,GAC5BmzH,EAAoBnzL,IAAIggE,IAC3Bt+D,EAAK+1K,YAAYt3I,OAAO6/B,EAE5B,G,CAGF,IAAMozH,EAAqB,IAAIn5L,IAuF/B,OAnFC+4L,EAAUp6E,cAAgB,IAAIjuH,SAAQ,YACrC,GAAI4nM,EAAiBhzH,MAAQ79D,EAAK22G,iBAAiB94C,IAAnD,CAQA,IAAM8zH,EAAkC3xL,EAAKysL,kCAAkCjuL,IAAIqyL,EAAiBhzH,KACpG,KAAI8zH,GAAmCd,EAAiBj0L,UAAY+0L,GAApE,CAIIA,GACF3xL,EAAKysL,kCAAkChuJ,OAAOoyJ,EAAiBhzH,KAEjE,IAAMmyC,EAAchwG,EAAK4xL,8BAA8Bf,GACvD7gF,EAAYz5E,OAAOs6J,GACnBa,EAAmBjzL,IAAIuxG,E,EACzB,IAEuB,WAAnBshF,EAAUlpM,MACZ,KAAK8uH,aAAajuH,SAAQ,YACnByoM,EAAmBpzL,IAAI0xG,IAC1BA,EAAY/0D,YAEhB,IAkXN,SAA6BgzH,GAC3B,IAAM2iB,EAA6B3iB,EAAK4jB,iCAExC5jB,EAAKof,sBAAsBpkM,SAAQ,SAACa,EAAOw0E,GACzC,IAAM8xC,EAAiBwgF,EAA2BpyL,IAAI8/D,GAClD8xC,IACF69D,EAAKof,sBAAsB5uJ,OAAO6/B,GAClC8xC,EAAe0hF,gBAAgB76J,EAAkBntC,EAAMotC,KAAMptC,EAAM2J,UAEvE,IAEAm9L,EAA2B3nM,SAAQ,YACjC,IAAM45C,EAAUorI,EAAK8H,YAAYv3K,IAAI4xG,EAAevyC,OAC/Ch7B,GAAYutE,EAAe1xC,cAAgB0xC,EAAekB,iBAAiB7wE,KAAOoC,IACrFutE,EAAee,oBAAoB,MAEjCtuE,GACForI,EAAKue,kBAAkB3pJ,GAASj5C,MAAK,YAAiB,SAAeunH,oBAAoBwxE,EAAnC,GAE1D,GACF,CAnYIoP,CAAoB,MAKhBT,EAAUD,kBACZ,KAAKrE,uBAAuBz2J,OAAO+6J,EAAUD,iBAAqC,WAAnBC,EAAUlpM,MAGvEkpM,EAAUn6E,WACZ,KAAKA,UAAU5gF,OAAO+6J,EAAUn6E,WAG9Bm6E,EAAUU,WAAaV,EAAUU,UAAUp1L,SAAW,KAAKswL,qBAC7D,KAAKA,mBAAqBoE,EAAUU,UAAUp1L,SAC9C00L,EAAUU,UAAUz2L,OAAOtS,SAAQ,YAC7B6T,EAAM+gE,KACR79D,EAAKitL,WAAWx/K,IAAI3Q,EAAM2jC,GAAI3jC,EAAM+gE,IAExC,IACA,KAAK84C,iBAAiBpgF,OAAO+6J,EAAUU,YAGrCV,EAAUthF,aACZ,KAAK2G,iBAAiB7xE,QACpBwsJ,EAAUthF,YAAYnyC,IACtByzH,EAAUthF,YAAY59F,UAG1B,CACE,KAAKk7K,0BACL,KAAKC,yBACL,KAAKG,wBACL,KAAKC,yBACL,KAAKH,sBACL,KAAKC,0BACLxkM,SAAQ,YACR,IAAMg3C,EAAUgyJ,EAAehyJ,SAC1BgyJ,EAAe3B,SACfgB,EAAUY,iBACVZ,EAAUY,gBAAgBjyJ,IAC1BqxJ,EAAUY,gBAAgBjyJ,GAAS6lI,WACmB,iBAAtDwrB,EAAUY,gBAAgBjyJ,GAAS6lI,UAAU19K,MAChD6pM,EAAeE,MAAMb,EAAUY,gBAAgBjyJ,GAAS6lI,UAAUhH,MAEtE,IAEuB,YAAnBwyB,EAAUlpM,MAAsBkpM,EAAU5zJ,QAC5C4zJ,EAAU5zJ,OAAO9gC,SAAW,KAAKiwL,+BACjC,KAAKA,6BAA+ByE,EAAU5zJ,OAAO9gC,SACrD,KAAK+5G,iBAAiBy7E,kBAAkBd,EAAU5zJ,SAG7C,IACT,EAEAs5I,wCAAA,sBACE,KAAKyW,yBAAyBtvL,GAAG,WAAW,SAACk0L,EAAO5xJ,GAClD3zC,QAAQ6P,IAAI01L,EAAMh6L,KAAI,YACpB,OAAO2H,EAAK22G,iBAAiBzS,iBAAiB8sF,EAAKl0L,MAAOk0L,EAAKhtF,WAAWp6G,MAAK,YAC7E,MAAO,CAAEkT,MAAOk0L,EAAKl0L,MAAOpT,OAAM,EACpC,GACF,KAAIE,MAAK,YACPoW,EAAKytL,yBAAyB6E,iBAAiB,CAAE7xJ,GAAE,EAAE4xJ,MAAOE,GAC9D,GACF,IAEA,IAAMC,EAAiB,SAAA11L,GACF,UAAfA,EAAMtB,MACRsB,EAAMw0G,iBAAiBnzG,GAAG,YAAY,WACpC6B,EAAKytL,yBAAyBgF,kBAAkB,CAAEn0H,SAAUxhE,EAAM+gE,KACpE,GAEJ,EAGAvnE,MAAMiJ,KAAK,KAAKo3G,iBAAiBp7G,OAAOzS,UAAUG,SAAQ,YAAS,SAAe6T,EAAf,IACnE,KAAK65G,iBAAiBx4G,GAAG,cAAc,YAAS,SAAerB,EAAf,GAClD,EAEAk6K,yCAAA,sBACE,KAAK2W,yBAAyBxvL,GAAG,WAAW,SAACu0L,EAAWC,GACtD,IACE3yL,EAAKmgC,KAAK2c,MAAM,yBAA0B,CAAE61I,SAAQ,EAAED,UAAS,IAC/D,IAAME,EAAe,IAAIp6L,IACzBm6L,EAAS1pM,SAAQ,YAAY,SAAawkB,IAAI6wD,GAAU,EAA3B,IAC7Bo0H,EAAUzpM,SAAQ,YACZ2pM,EAAap0L,IAAI8/D,IAEnBt+D,EAAKmgC,KAAKpsC,KAAQuqE,EAAQ,sDAE5Bs0H,EAAanlL,IAAI6wD,GAAU,EAC7B,IACAt+D,EAAKk3G,aAAajuH,SAAQ,YACxB+mH,EAAYz0G,OAAOtS,SAAQ,YACzB,IAAM4pM,EAAOD,EAAap0L,IAAI1B,EAAM+gE,KAChB,qBAATg1H,IACT/1L,EAAMg2L,gBAAgBD,GACtBD,EAAan0J,OAAO3hC,EAAM+gE,KAE9B,GACF,IAEA+0H,EAAa3pM,SAAQ,SAAC4pM,EAAMv0H,GAAa,SAAKsvH,wBAAwBngL,IAAI6wD,GAAWu0H,EAA5C,G,CACzC,MAAOhyJ,GACP7gC,EAAKmgC,KAAKr2C,MAAM,qCAAsC+2C,E,CAE1D,GACF,EAEAm2I,0CAAA,sBACE,KAAKsW,0BAA0BnvL,GAAG,WAAW,WAAM,SAAK40L,mBAAmB/yL,EAAKstL,0BAA0B0F,sBAAvD,GACrD,EAEAhc,gDAAA,sBACE,KAAKuW,yBAAyBpvL,GAAG,SAAS,WACxC,IAAM80L,EAAwB,IAAIjzL,EAAK0sL,uBAAuB1sL,EAAKgtL,uBAAwBhtL,EAAKutL,0BAChGvtL,EAAK8sL,uBAAyBmG,EAC9BA,EAAsB90L,GAAG,WAAW,WACF,WAA5B6B,EAAKq3G,qBAGTr3G,EAAK22G,iBAAiB83E,uBACpBwE,EAAsB12L,MACtB02L,EAAsBz+J,QACxBx0B,EAAKk3G,aAAajuH,SAAQ,YACxB,IAAMurC,EAASy+J,EAAsBC,aAAa10L,IAAIwxG,EAAYnyC,KAC9DrpC,GACFw7E,EAAYy+E,uBAAuBj6J,EAAOj4B,MAAOi4B,EAErD,IACF,IACAy+J,EAAsB51J,OACxB,IACA,KAAKkwJ,yBAAyBpvL,GAAG,YAAY,WAAM,SAAKsyL,gCAAL,GACrD,EAEAzZ,2CAAA,WACM,KAAK8V,yBACP,KAAKA,uBAAuBr/L,OAC5B,KAAKq/L,uBAAyB,KAElC,EAMA9V,qBAAA,sBACE,OAAO,KAAKgW,uBAAuBvxJ,WAAW7xC,MAAK,YACjD,WAAI4O,IAAIlC,MAAMiJ,KAAK+1K,GAAWj9K,KAAI,SAACQ,G,IAAA8C,SAAC8kC,EAAE,KAAEvuC,EAAQ,KAC9C,OAACuuC,EAAI16C,OAAOgT,OAAO,GAAI7G,EAAU,CAC/BmhH,qBAAsB8/E,EAA2BnzL,EAAM9N,EAASmhH,sBAChEE,qBAAsB4/E,EAA2BnzL,EAAM9N,EAASqhH,sBAChEC,sBAAuB4/E,EAA4BpzL,EAAM9N,EAASshH,uBAClEC,sBAAuB2/E,EAA4BpzL,EAAM9N,EAASuhH,yBAJpE,IADF,GASJ,EACF,EA3hBA,CAAqB6D,GAoiBrB,SAAS+7E,EAAsBC,EAASl4B,GACtC,OAAOA,EAAWziK,QAAO,SAACyiK,EAAYoa,GACpC,IAAMl3G,EAAWg1H,EAAQ90L,IAAIg3K,EAAU3yI,SACvC,OAAOy7B,EACH,CAACv4E,OAAOgT,OAAO,GAAIy8K,EAAW,CAAEl3G,SAAQ,KAAK5+D,OAAO07J,GACpDA,CACN,GAAG,GACL,CASA,SAAS+3B,EAA2BhF,EAAQoF,GAC1C,OAAOF,EAAsBlF,EAAOlB,WAAYsG,EAClD,CASA,SAASH,EAA4BjF,EAAQqF,GAC3C,IAAMF,EAAU,IAAI96L,IAAIlC,MAAMiJ,KAAK4uL,EAAOpY,YAAYr9K,WAAWL,KAAI,SAACQ,G,IAAA8C,SAACkiE,EAAG,KAAU,OAAN,KAAWA,EAAL,KACpF,OAAOw1H,EAAsBC,EAASE,EACxC,CAmMA,SAASC,EAAkCr4B,EAAYs4B,EAAe7E,GAElE,MAIE6E,EAAa,cAHf7/E,EAGE6/E,EAAa,YAFfp6B,EAEEo6B,EAAa,gBADfr6B,EACEq6B,EAAa,qBACXC,EAAsB5tM,OAAOgT,OAAO,GAAIqiK,GACxC/0K,EAAS+0K,EAAW98F,SAAQ,IAAI88F,EAAWpnD,KAC3C4/E,EAA2B/E,EAAoBrwL,IAAInY,IAAQ,IAAImS,IAErE,GAA+B,kBAApB8gK,GAAyD,kBAAlBC,EAA4B,CAC5E,IAAMs6B,EAAwCD,EAAyBp1L,IAAI,mBACtE,IAAI+sG,EACTsoF,EAAsC3qB,UAA4B,IAAlB5P,EAAwBC,GACxEo6B,EAAoBG,eAAiB/yL,KAAKmN,MAAM2lL,EAAsCr1L,OACtFo1L,EAAyBnmL,IAAI,iBAAkBomL,E,CAEjD,GAAoC,kBAAzBx6B,GAA4D,kBAAhBxlD,EAA0B,CAC/E,IAAMkgF,EAA4CH,EAAyBp1L,IAAI,uBAC1E,IAAI+sG,EACTwoF,EAA0C7qB,UAAiC,IAAvB7P,EAA6BxlD,GACjF8/E,EAAoBK,mBAAqBjzL,KAAKmN,MAAM6lL,EAA0Cv1L,OAC9Fo1L,EAAyBnmL,IAAI,qBAAsBsmL,E,CAGrD,OADAlF,EAAoBphL,IAAIpnB,EAAKutM,GACtBD,CACT,CAOA,SAASM,EAAmC74B,EAAYs4B,EAAe7E,GAEnE,MAKE6E,EAAa,0BAJfh6B,EAIEg6B,EAAa,cAHf/5B,EAGE+5B,EAAa,kBAFf95B,EAEE85B,EAAa,yBADfj6B,EACEi6B,EAAa,gBACXC,EAAsB5tM,OAAOgT,OAAO,GAAIqiK,GACxC/0K,EAAS+0K,EAAW98F,SAAQ,IAAI88F,EAAWpnD,KAC3C4/E,EAA2B/E,EAAoBrwL,IAAInY,IAAQ,IAAImS,IAKrE,GAHyC,kBAA9BghK,IACTm6B,EAAoBn6B,0BAA4BA,GAErB,kBAAlBE,GAAyD,kBAApBD,EAA8B,CAC5E,IAAMy6B,EAAwCN,EAAyBp1L,IAAI,mBACtE,IAAI+sG,EACT2oF,EAAsChrB,UAA4B,IAAlBzP,EAAwBC,GACxEi6B,EAAoBQ,eAAiBpzL,KAAKmN,MAAMgmL,EAAsC11L,OACtFo1L,EAAyBnmL,IAAI,iBAAkBymL,E,CAEjD,GAAiC,kBAAtBv6B,GAAsE,kBAA7BC,EAAuC,CACzF,IAAMw6B,EAA8CR,EAAyBp1L,IAAI,yBAC5E,IAAI+sG,EACT6oF,EAA4ClrB,UAA8B,IAApBvP,EAA0BC,GAChF+5B,EAAoBU,qBAAuBtzL,KAAKmN,MAAMkmL,EAA4C51L,OAClGo1L,EAAyBnmL,IAAI,uBAAwB2mL,E,CAGvD,OADAvF,EAAoBphL,IAAIpnB,EAAKutM,GACtBD,CACT,CAkDAtvL,EAAOxe,QAAUmxL,C,ohBCl5BjB,cAIE,WAAYh3I,EAAazuC,GAAzB,MACE4lC,YAAM6I,EAAa,iBAAkBzuC,IAAQ,K,OAE7CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bs0L,uBAAwB,CACtB/tM,MAAO,KACPY,UAAU,KAId6Y,EAAK7B,GAAG,SAAS,YACf2nK,EAAU3nK,GAAG,WAAW,YACtB,GACO,mBADC1K,EAAQrL,KAEZ4X,EAAKu0L,0BAA0B9gM,EAAQu8G,YAK7C,GACF,I,CACF,CAsBF,OA/CuC/vG,OA+BrCla,sBAAI0lM,oCAAqB,C,IAAzB,WACE,OAAO,KAAK6I,sBACd,E,gCAOA7I,sCAAA,SAA0BuH,GACpB,KAAKA,wBAA0BA,IAGnC,KAAKsB,uBAAyBtB,EAC9B,KAAKxqL,KAAK,WACZ,EACF,EA/CA,CANuBtR,EAAQ,KA2D/BmN,EAAOxe,QAAU4lM,C,k0BC1DXrjL,EAAelR,EAAQ,IAEvBs9L,EAA8Bt9L,EAAQ,KAK5C,cAME,WAAYivC,EAAS9oC,GAArB,MACE85B,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5By0L,WAAY,CACVluM,MAAO,IAAIq2G,SAEbx2D,SAAU,CACR7/C,MAAO4/C,GAET83B,WAAY,CACV13E,MAAO8W,KAGXA,EAAUc,GAAG,WAAW,WAAM,SAAKqK,KAAK,UAAV,I,CAChC,CA0DF,OA9EoCvI,OA0BlCla,sBAAI2lM,oBAAK,C,IAAT,WACE,OAAO,KAAKztH,WAAW1hE,KACzB,E,gCAMAxW,sBAAI2lM,qBAAM,C,IAAV,WACE,OAAO,KAAKztH,WAAWzpC,MACzB,E,gCAMAzuC,sBAAI2lM,2BAAY,C,IAAhB,WACE,OAAO,KAAKztH,WAAWi1H,YACzB,E,gCAMAxH,kBAAA,sBACE,KAAKj+L,OACL,IAAMuE,EAAUqP,YAAW,WACrBrB,EAAKo9B,WAAaprC,GA+B5B,SAAc0iM,GACZ,IAiBMC,GAjBQD,EAAQtuJ,SAAS0yI,iBAC3BxiL,MAAMiJ,KAAKm1L,EAAQtuJ,SAAS0yI,iBAAiBhwL,UAC7C,IAGDuP,KAAI,YAAQ,SAAK8jK,eAAL,IACZxmK,QAAO,YAAM,MAAsB,WAAtB,EAAGinK,cAAH,IAEMvkK,KAAI,YACxB,GAAIq8L,EAAQD,WAAWn2L,IAAIyjC,GACzB,OAAO2yJ,EAAQD,WAAWj2L,IAAIujC,GAEhC,IAAMg4D,EAAU,IAAIy6F,EAA4BzyJ,GAEhD,OADA2yJ,EAAQD,WAAWhnL,IAAIs0B,EAAIg4D,GACpBA,CACT,IAEwC1hG,KAAI,YAAW,SAAQrN,OAAOkI,OAAM,WAAM,cAA3B,IAEvD,OAAOpG,QAAQ6P,IAAIg4L,GAAuB/qM,MAAK,YAAiB,SAC7D+L,QAAO,YAAgB,YACvB0C,KAAI,YAAU,SAAO09G,WAAP,GAF+C,GAGlE,CAnDM/qH,CAAKgV,GAAMpW,MAAK,YACd,GAAIoW,EAAKo9B,WAAaprC,EAAtB,CAGA,GAAI6jH,EAAQ5pH,OAAQ,CACZ,IAACqnH,EAAD,EAAWuC,EAAO,GAAX,GACb71G,EAAKi+D,WAAW22H,IAAIthF,E,CAEtBtzG,EAAKq9B,O,CACP,GACF,GAAG,KACH,KAAKD,SAAWprC,CAClB,EAMA05L,iBAAA,WACEtqL,aAAa,KAAKg8B,UAClB,KAAKA,SAAW,IAClB,EACF,EA9EA,CAAoCh1B,GAkHpC/D,EAAOxe,QAAU6lM,C,gwBC1HT,EAAiBx0L,EAAQ,IAAiB,aAE5C29L,EAAmB39L,EAAQ,KAC3B49L,EAAuB59L,EAAQ,KAC/B69L,EAAwB79L,EAAQ,KAChC89L,EAAsB99L,EAAQ,KAyCpC,aAKE,WAAY6qC,GACVh8C,OAAOkQ,iBAAiB,KAAM,CAC5B8rC,GAAI,CACF96C,YAAY,EACZV,MAAOw7C,GAET2iI,IAAK,CACHz9K,YAAY,EACZV,MAAO,IAAIsuM,GAEbr3L,MAAO,CACLvW,YAAY,EACZV,MAAO,CACL0+D,KAAM,IAAIzsD,IACVo/G,KAAM,IAAIp/G,MAGd2D,MAAO,CACLlV,YAAY,EACZV,MAAO,CACL0+D,KAAM,IAAIzsD,IACVo/G,KAAM,IAAIp/G,MAGdy8L,WAAY,CACVhuM,YAAY,EACZV,MAAO,KACPY,UAAU,IAGhB,CAkCF,OA5BEqtM,iBAAA,eA6QoBz6F,EA7QpB,OACQm7F,EAAmC,YAAnB3xL,IA4O1B,SAAuBw2F,GACrB,IAAM6J,EAAU7J,EAAQh4D,GAAG67H,kBACxBjoK,QAAO,YAAe,SAAYw/L,kBAAoBt3B,EAAYs3B,iBAAiBxlM,MAAM,SAAWkuK,EAAY/5D,OAAOhnG,KAAjG,IACtBzE,KAAI,YAAe,SAAYyrG,MAAZ,IAEhBsxF,EAAYr7F,EAAQh4D,GAAG67H,kBAC1BjoK,QAAO,YAAe,SAAYw/L,kBAAoBt3B,EAAYs3B,iBAAiBxlM,MAAM,OAAnE,IACtB0I,KAAI,YAAe,SAAYwyB,QAAZ,IAEtB,OAAO/9B,QAAQ6P,IAAI,CACjB04L,EAA2BzxF,GAC3ByxF,EAA2BD,GAC3Br7F,EAAQh4D,GAAGtG,aACV7xC,MAAK,SAACiP,G,IAAA8C,SAAC25L,EAAa,KAAEC,EAAe,KAAEC,EAAQ,KAC1CC,EAAmCC,EAAoC37F,GACvE47F,EAA4CC,EAAqC77F,GACvFu7F,EAAcrsM,SAAQ,SAACqqH,EAAQzwE,GAAY,SAAoBk3D,EAASuZ,EAAQqiF,EAA2C9yJ,EAAhF,IAC3CgzJ,EAAsCJ,EAAkCE,GAExE,IAAMG,EAAqCC,EAAsCh8F,GAC3Ei8F,EAA8CC,EAAuCl8F,GAC3Fw7F,EAAgBtsM,SAAQ,SAACqqH,EAAQzwE,GAAY,SAAsBk3D,EAASuZ,EAAQ0iF,EAA6CnzJ,EAApF,IAC7CgzJ,EAAsCC,EAAoCE,GAE1EE,EAAgBn8F,EAAQ2qE,IAAK8wB,EAC/B,GACF,CArQQW,CAAc,OA2QAp8F,EA1QD,MA2QJh4D,GAAGtG,WAAW7xC,MAAK,YAChC,IAAM6rM,EAAmCC,EAAoC37F,GACvE47F,EAA4CC,EAAqC77F,GACvFq8F,EAAoBr8F,EAASuZ,EAAQqiF,GACrCE,EAAsCJ,EAAkCE,GAExE,IAAMG,EAAqCC,EAAsCh8F,GAC3Ei8F,EAA8CC,EAAuCl8F,GAC3Fs8F,EAAsBt8F,EAASuZ,EAAQ0iF,GACvCH,EAAsCC,EAAoCE,GAE1EE,EAAgBn8F,EAAQ2qE,IAAKpxD,EAC/B,IArRE,OAAO4hF,EAActrM,MAAK,WACxB,IAAM0sM,EAA0B,OAAOt2L,EAAKxC,MAAMynD,KAAKn8D,WACjDytM,EAA0B,OAAOv2L,EAAK7D,MAAM8oD,KAAKn8D,WACjD0tM,EAA4B,OAAOx2L,EAAKxC,MAAMo6G,KAAK9uH,WACnD2tM,EAA4B,OAAOz2L,EAAK7D,MAAMy7G,KAAK9uH,WAEnDwqH,EAAS,IAAIwhF,EACjB90L,EAAK0kK,IAAIuwB,WACT,CACEhwI,KAAMqxI,EAA2Bj+L,KAAI,YAAW,SAAQ48L,UAAR,IAAoBt/L,QAAO,YAAU,YACrFiiH,KAAM4+E,EAA6Bn+L,KAAI,YAAW,SAAQ48L,UAAR,IAAoBt/L,QAAO,YAAU,aAEzF,CACEsvD,KAAMsxI,EAA2Bl+L,KAAI,YAAW,SAAQ48L,UAAR,IAAoBt/L,QAAO,YAAU,YACrFiiH,KAAM6+E,EAA6Bp+L,KAAI,YAAW,SAAQ48L,UAAR,IAAoBt/L,QAAO,YAAU,cAM3F,OAFAqK,EAAKi1L,WAAa3hF,EAEXA,CACT,GACF,EACF,EArEA,GA6EA,SAAS+hF,EAA2BqB,GAClC,OAAO5pM,QAAQ6P,IAAI+5L,EAAmBr+L,KAAI,YACxC,IAAMwqC,EAAU20H,EAAiB16J,MAAM2jC,GACvC,OAAO+2H,EAAiB/7H,WAAW7xC,MAAK,Y,YAKtC,IAAoB,UAAOd,UAAQ,8BAAE,CAAhC,IAAMitK,EAAK,QACK,gBAAfA,EAAM3tK,OACR2tK,EAAMt1H,GAAQoC,EAAO,IAAIkzH,EAAMt1H,G,mGAGnC,MAAO,CAACoC,EAASywE,EACnB,GACF,KAAI1pH,MAAK,YAAS,WAAI4O,IAAIm+L,EAAR,GACpB,CAiBA,SAASC,EAAyCrgF,EAA+BsgF,EAA+BvjF,EAAQyiD,EAAOlzH,GAC7H,IAAM6zJ,EAAqBG,EAA8B9gC,EAAM+gC,WAC/D,IAAKj0J,EAAS,CACZ,IAAMu4H,EAAa9nD,EAAO90G,IAAIu3J,EAAMlzH,SAChCu4H,IACFv4H,EAAUu4H,EAAW27B,gB,CAGzB,GAAIL,GAAsB7zJ,EAAS,CACjC,GAAI6zJ,EAAmBp4L,IAAIy3J,EAAMt1H,IAC/B,OAAOi2J,EAAmBl4L,IAAIu3J,EAAMt1H,IAEtC,IAAMu2J,EAA0B,IAAIzgF,EAA8B1zE,EAASkzH,GAC3E2gC,EAAmBjpL,IAAIsoJ,EAAMt1H,GAAIu2J,E,CAEnC,OAAO,IACT,CAMA,SAAStB,EAAoC37F,GAC3C,MAAO,CAAEv8F,MAAOu8F,EAAQv8F,MAAMynD,KAAM9oD,MAAO49F,EAAQ59F,MAAM8oD,KAC3D,CAMA,SAAS8wI,EAAsCh8F,GAC7C,MAAO,CAAEv8F,MAAOu8F,EAAQv8F,MAAMo6G,KAAMz7G,MAAO49F,EAAQ59F,MAAMy7G,KAC3D,CASA,SAASq/E,EAA+Bl9F,EAASuZ,EAAQyiD,EAAOlzH,GAC9D,OAAO+zJ,EAAyC5B,EAAqBU,EAAoC37F,GAAUuZ,EAAQyiD,EAAOlzH,EACpI,CASA,SAASq0J,EAAiCn9F,EAASuZ,EAAQyiD,EAAOlzH,GAChE,OAAO+zJ,EAAyC7B,EAAuBgB,EAAsCh8F,GAAUuZ,EAAQyiD,EAAOlzH,EACxI,CAMA,SAAS+yJ,EAAqC77F,GAC5C,MAAO,CACLv8F,MAAO,IAAIjF,IAAIwhG,EAAQv8F,MAAMynD,KAAKj4D,QAClCmP,MAAO,IAAI5D,IAAIwhG,EAAQ59F,MAAM8oD,KAAKj4D,QAEtC,CAMA,SAASipM,EAAuCl8F,GAC9C,MAAO,CACLv8F,MAAO,IAAIjF,IAAIwhG,EAAQv8F,MAAMo6G,KAAK5qH,QAClCmP,MAAO,IAAI5D,IAAIwhG,EAAQ59F,MAAMy7G,KAAK5qH,QAEtC,CASA,SAASopM,EAAoBr8F,EAASuZ,EAAQqiF,EAA2C9yJ,G,YACvF,IAAoB,UAAO/5C,UAAQ,8BAAE,CAAhC,IAAMitK,EAAK,QACd,GAAmB,iBAAfA,EAAM3tK,OAA4B2tK,EAAMiC,SAAU,CACpD,GAAuB,YAAnBz0J,MAAiCwyJ,EAAMlzH,QACzC,SAEF,IAAMs0J,EAAiCxB,EAA0C5/B,EAAM+gC,WACnFK,GACFA,EAA+B14J,OAAOs3H,EAAMt1H,IAE9C,IAAM22J,EAAsBH,EAA+Bl9F,EAASuZ,EAAQyiD,EAAOlzH,GACnF,GAAIu0J,EAAqB,CACvB,IAAMC,EAAqB/jF,EAAO90G,IAAIu3J,EAAMqE,UAC5Cg9B,EAAoBpsM,KAAK63C,GAAWu0J,EAAoBv0J,QAASkzH,EAAOshC,E,qGAIhF,CASA,SAAShB,EAAsBt8F,EAASuZ,EAAQ0iF,EAA6CnzJ,G,YAC3F,IAAoB,UAAO/5C,UAAQ,8BAAE,CAAhC,IAAMitK,EAAK,QACd,GAAmB,gBAAfA,EAAM3tK,OAA2B2tK,EAAMiC,SAAU,CACnD,IAAMs/B,EAAmCtB,EAA4CjgC,EAAM+gC,WACvFQ,GACFA,EAAiC74J,OAAOs3H,EAAMt1H,IAEhD,IAAM82J,EAAwBL,EAAiCn9F,EAASuZ,EAAQyiD,EAAOlzH,GACnF00J,GACFA,EAAsBvsM,KAAK63C,GAAW00J,EAAsB10J,QAASkzH,E,oGAI7E,CAOA,SAAS8/B,EAAsC2B,EAA4CC,G,eAC9EX,GACT,IAAMY,EAAkCF,EAA2CV,GAC1CW,EAA4CX,GACpD7tM,SAAQ,YAAmC,SAAgCw1C,OAAOk5J,EAAvC,G,EAH9E,IAAK,IAAMb,KAAaW,E,EAAbX,EAKb,CAOA,SAASZ,EAAgBxxB,EAAKpxD,G,YACxBskF,E,IACJ,IAAoB,UAAO9uM,UAAQ,8BAAE,CAChB,eADVitK,EAAK,SACJ3tK,OACRwvM,EAAwBtkF,EAAO90G,IAAIu3J,EAAM4U,yB,mGAG7C,GAAIitB,EACFlzB,EAAI15K,KAAK4sM,Q,IAGX,IAAoB,UAAO9uM,UAAQ,8BAAE,CAAhC,IAAMitK,EACU,oBADVA,EAAK,SACJ3tK,OACL2tK,EAAMG,WACL,aAAcH,IAAQA,EAAMhjC,UAChC2xC,EAAI15K,KAAK+qK,E,mGAGf,CAsDA1xJ,EAAOxe,QAAU2uM,C,+BCpXjB,IAAMqD,EAAY3gM,EAAQ,KAM1B,aAIE,aACEnR,OAAOkQ,iBAAiB,KAAM,CAC5Bg/L,WAAY,CACVhuM,YAAY,EACZV,MAAO,IAAIsxM,EAAU,EAAG,GACxB1wM,UAAU,GAEZmvH,UAAW,CACTrvH,YAAY,EACZV,MAAO,KACPY,UAAU,IAGhB,CAkBF,OAXE0tM,iBAAA,SAAKn/E,GACH,IAAMD,EAAa,KAAKa,UAExB,GADA,KAAKA,UAAYZ,EACbD,EAAY,CACd,IAAMnC,EAASmC,EAAWh1E,KAAOi1E,EAAWj1E,GACxCo3J,EAAUC,GAAGriF,EAAYC,GACzB,IAAImiF,EAAU,EAAG,GACrB,KAAK5C,WAAa3hF,C,CAEpB,OAAO,KAAK2hF,UACd,EACF,EAnCA,GAqCA5wL,EAAOxe,QAAUgvM,C,+BCrCjB,iBAQE,WAAY5vI,EAAM2yD,EAAMmgF,EAAe9hF,GACrClwH,OAAOkQ,iBAAiB,KAAM,CAC5B8hM,cAAe,CACb9wM,YAAY,EACZV,MAAOwxM,GAETngF,KAAM,CACJ3wH,YAAY,EACZV,MAAOqxH,GAET3B,IAAK,CACHhvH,YAAY,EACZV,MAAO0vH,GAEThxD,KAAM,CACJh+D,YAAY,EACZV,MAAO0+D,IAGb,CAoBF,OAbS4yI,KAAP,SAAUpiF,EAAYC,GACpB,IAAMC,GAAkBD,EAAW7+C,UAAY4+C,EAAW5+C,WAAa,IACjEu/C,EAAiBV,EAAW9B,UAAY6B,EAAW7B,UACnDgC,EAAqBF,EAAWtB,cAAgBqB,EAAWrB,cAQjE,OAAO,IAAIyjF,EAPEliF,EAAiB,EACzBS,EAAiBT,EAAkB,EACpC,EACSA,EAAiB,EACzBC,EAAqBD,EAAkB,EACxC,EAC2ED,EAAU,yBAAVA,EAAU,qBAE3F,EACF,EA/CA,GAiDArxG,EAAOxe,QAAUgyM,C,+BCvDjB,IAAMriF,EAAiBt+G,EAAQ,KACzBg/G,EAAeh/G,EAAQ,KA4B7B,aAOE,WAAYwtK,EAAKlnK,EAAOrB,GACtBpW,OAAOkQ,iBAAiB,KAAM,CAC5ByuK,IAAK,CACHz9K,YAAY,EACZV,MAAOm+K,GAETlnK,MAAO,CACLvW,YAAY,EACZV,MAAOiX,GAETrB,MAAO,CACLlV,YAAY,EACZV,MAAO4V,IAGb,CA4BF,OArBE24L,sBAAA,WACE,IAAMQ,EAAgB,KAAK93L,MAAMynD,KAAKvlD,OAAO,KAAKvD,MAAM8oD,MAClDA,EAAOixD,EAAaH,UAAUu/E,GAE9BC,EAAkB,KAAK/3L,MAAMo6G,KAAKl4G,OAAO,KAAKvD,MAAMy7G,MACpDA,EAAOpC,EAAeO,UAAUw/E,GAEtC,MAAO,CACL7wB,IAAK,KAAKA,IACVz/G,KAAI,EACJ2yD,KAAI,EACJp6G,MAAO,CACLynD,KAAMixD,EAAaH,UAAU,KAAKv4G,MAAMynD,MACxC2yD,KAAMpC,EAAeO,UAAU,KAAKv4G,MAAMo6G,OAE5Cz7G,MAAO,CACL8oD,KAAMixD,EAAaH,UAAU,KAAK55G,MAAM8oD,MACxC2yD,KAAMpC,EAAeO,UAAU,KAAK55G,MAAMy7G,OAGhD,EACF,EAlDA,GAoDAvzG,EAAOxe,QAAUivM,C,ohBCjFXt/E,EAAiBt+G,EAAQ,KAO/B,cAME,WAAY2rC,EAASwzE,GAArB,MACEl/E,YAAMk/E,EAAa51E,GAAIoC,EAASwzE,IAAa,K,OAC7CtwH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi1L,WAAY,CACVhuM,YAAY,EACZV,MAAO,KACPY,UAAU,K,CAGhB,CAgBF,OA/BoC8Y,OAuBlC80L,iBAAA,SAAKlyJ,EAAS6yE,GACZ,IAAMD,EAAa,KAAKa,UACxB,KAAKA,UAAYZ,EACjB,KAAK7yE,QAAUA,EACf,IAAMywE,EAASkC,EAAesiF,GAAGj1J,EAAS4yE,EAAYC,GAEtD,OADA,KAAKu/E,WAAa3hF,EACXA,CACT,EACF,EA/BA,CANsCp8G,EAAQ,MAuC9CmN,EAAOxe,QAAUkvM,C,ohBCxCXx+E,EAAgCr/G,EAAQ,KACxCg/G,EAAeh/G,EAAQ,KAM7B,cAME,WAAY2rC,EAASwzE,GAArB,MACEl/E,YAAMk/E,EAAa51E,GAAIoC,EAASwzE,IAAa,K,OAC7CtwH,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi1L,WAAY,CACVhuM,YAAY,EACZV,MAAO,KACPY,UAAU,K,CAGhB,CAgBF,OA/BkC8Y,OAuBhC+0L,iBAAA,SAAKnyJ,EAAS6yE,EAAYS,GACxB,IAAMV,EAAa,KAAKa,UACxB,KAAKA,UAAYZ,EACjB,KAAK7yE,QAAUA,EACf,IAAMywE,EAAS4C,EAAa4hF,GAAGj1J,EAAS4yE,EAAYC,EAAYS,GAEhE,OADA,KAAK8+E,WAAa3hF,EACXA,CACT,EACF,EA/BA,CAAkCiD,GAiClClyG,EAAOxe,QAAUmvM,C,ohBCxCXx0J,EAAiBtpC,EAAQ,IACzB8gM,EAAW9gM,EAAQ,KACnBomC,EAAUpmC,EAAQ,IAwExB,cAME,WAAY8oC,EAAahkC,EAA6BzK,GAAtD,MACE4lC,YAAM6I,EAAa,kBAAmBzuC,IAAQ,K,OAE9CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bm9I,OAAQ,CACN52J,MAAO,KACPY,UAAU,GAEZutC,QAAS,CACPnuC,MAAO,KACPY,UAAU,GAEZ8wM,cAAe,CACb1xM,MAAO,IAAIiS,IACXrR,UAAU,GAEZ+wM,sBAAuB,CACrB3xM,MAAO,IAAIyxM,GAEbG,aAAc,CACZ5xM,MAAO,IAAI+2C,GAAQ,WAEjBt9B,EAAKm4L,aAAapT,SAAmC,IAA1B/kL,EAAKm4L,aAAa9lK,OAC7CryB,EAAKo4L,2BACP,GApGiC,KAoGI,IAEvCC,4BAA6B,CAC3B75L,IAAG,WACD,MAAO,CACL85L,YAAat8L,EAA4BE,MACzCq8L,kBAAmBv8L,EAA4BC,OAEnD,KAIJ+D,EAAK7B,GAAG,SAAS,YACf2nK,EAAU3nK,GAAG,WAAW,YAEtB,GADA6B,EAAKmgC,KAAK2c,MAAM,aAAcrpD,GAEvB,oBADCA,EAAQrL,KAEZ4X,EAAKw4L,6BAA6B/kM,EAKxC,GACF,IAEAuM,EAAKo4L,4B,CACP,CA6GF,OArKsCn4L,OA8DpCla,sBAAI4lM,oBAAK,C,IAAT,WACE,OAAO,KAAKxuC,MACd,E,gCAMAp3J,sBAAI4lM,qBAAM,C,IAAV,WACE,OAAO,KAAKj3J,OACd,E,gCAMA3uC,sBAAI4lM,2BAAY,C,IAAhB,WACE,OAAO,KAAKsM,aACd,E,gCASAtM,yCAAA,SAA6Bl4L,GAA7B,WACM29G,GAAU,EACV70G,EAAQ,KACNL,EAAQzI,EAAUA,EAAQyI,MAAQ,KACnB,kBAAVA,GAETK,EAAQL,EACR,KAAKw4B,QAAU,MACW,kBAAVx4B,GAAsBA,IAItC,KAAKw4B,QAAUx4B,EACfK,EAA+B,kBAAhBL,EAAMK,MACjBL,EAAMK,MACNwE,KAAKL,IACLxE,EAAMsB,MAAMynD,KACZ/oD,EAAMsB,MAAMo6G,KACZ17G,EAAMC,MAAM8oD,KACZ/oD,EAAMC,MAAMy7G,OAEJ,OAAVr7G,GAAkB,KAAKA,QAAUA,IACnC,KAAK4gJ,OAAS5gJ,EACd60G,GAAU,GAEZ,KAAK6mF,cAAgBxkM,GAAWA,EAAQglM,QACpChlM,EAAQglM,QAAQ9/L,QAAO,SAAC67B,EAAQpuC,GAKhC,OAJe4Z,EAAKi4L,cAAcz5L,IAAIpY,EAAIy3E,MAAQ,IACvCthE,QAAUnW,EAAImW,QACvB60G,GAAU,GAEL58E,EAAO/mB,IAAIrnB,EAAIy3E,IAAKz3E,EAC7B,GAAG,IAAIoS,KACL,KAAKy/L,cAEL7mF,GACF,KAAK5oG,KAAK,WAKZ,KAAK2vL,aAAapT,SAxMmB,KA4MjC,KAAKoT,aAAa56J,OACpBl8B,YAAW,WAAM,SAAK+2L,2BAAL,GAAkC,IAEvD,EAOAzM,sCAAA,sBAEE,OADA,KAAKwM,aAAa36J,QACX,KAAK06J,sBAAsBQ,OAAO9uM,MAAK,YACxCoW,EAAKugC,YACPvgC,EAAKugC,WAAWyrE,QAmCxB,SAA2C2sF,EAAsBC,GAC/D,OAAO7yM,OAAOgT,OACZ,CAAE3Q,KAAM,mBACRuwM,EACAC,EACJ,CAvCUC,CAAkCF,EAAsB34L,EAAKq4L,6BAEnE,IAAG16H,SAAQ,WACT39D,EAAKm4L,aAAa96J,OACpB,GACF,EAQAsuJ,gBAAA,SAAIgN,GACF,KAAKT,sBAAsBtD,IAAI+D,EACjC,EACF,EArKA,CAAsCn4J,GA8LtCn8B,EAAOxe,QAAU8lM,C,+BCxQT,MAAUz0L,EAAQ,GAAK,MAU/B,aAIE,aACEnR,OAAOkQ,iBAAiB,KAAM,CAC5B6iM,WAAY,CACVvyM,MAAO,IAETwyM,UAAW,CACTxyM,OAAO,EACPY,UAAU,GAEZ6xM,OAAQ,CACNzyM,MAAO,KACPY,UAAU,IAGhB,CAiCF,OA1BE6wM,gBAAA,SAAIzxM,GACF,KAAKwyM,WAAY,EACjB,KAAKC,OAASzyM,EACd,IAAM2b,EAAW,KAAK42L,WAAWlrK,QAIjC,OAHI1rB,GACFA,EAAS3Y,QAAQhD,GAEZ,IACT,EAMAyxM,iBAAA,sBACE,GAAI,KAAKe,YAAc,KAAKD,WAAW7sM,OAErC,OADA,KAAK8sM,WAAY,EACVjsM,QAAQvD,QAAQ,KAAKyvM,QAE9B,IAAM92L,EAAWD,IAEjB,OADA,KAAK62L,WAAWptM,KAAKwW,GACdA,EAASC,QAAQvY,MAAK,YAE3B,OADAoW,EAAK+4L,WAAY,EACVxyM,CACT,GACF,EACF,EAnDA,GAqDA8d,EAAOxe,QAAUmyM,C,ohBC1DjB,cAIE,mBACE7gK,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi5L,UAAW,CACT1yM,MAAO,EACPY,UAAU,K,CAGhB,CAgBF,OA5B0B8Y,OAqBxB2rL,mBAAA,SAAOz0E,GACL,OAAIA,EAAUv6G,SAAW,KAAKq8L,UACrB,MAET,KAAKA,UAAY9hF,EAAUv6G,SACpB,KAAKgtE,OAAOutC,EAAU+hF,cAC/B,EACF,EA5BA,CAL2BhiM,EAAQ,MA0CnCmN,EAAOxe,QAAU+lM,C,ohBC1CXuN,EAA6BjiM,EAAQ,KACrCkiM,EAA2BliM,EAAQ,KAMzC,cAUE,WAAY25L,EAAkBwI,EAA+B76H,EAAa0zC,EAAeikE,EAAgB5kL,GAAzG,MACE4lC,YAAM05J,EAAiBhzH,IAAKgzH,EAAiBz+K,WAAS,KAkCtD,OAhCA7gB,EAAUxL,OAAOgT,OAAO,CACtBqgM,yBAAwB,GACvB7nM,GAEHxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi5L,UAAW,CACT9xM,UAAU,EACVZ,MAAO,MAET+yM,0BAA2B,CACzB/yM,MAAOgL,EAAQ6nM,0BAEjBtI,+BAAgC,CAC9BvqM,MAAO8yM,GAET5nF,8BAA+B,CAC7BlrH,MAAO,SAAC+3E,EAAUF,GAAa,SAAYE,EAAUF,EAAtB,GAEjCuzC,sBAAuB,CACrBprH,MAAO,SAAC+3E,EAAUozC,GAAe,SAAcpzC,EAAUozC,EAAxB,GAEnCykE,eAAgB,CACd5vL,MAAO,YAAY,SAAe+3E,EAAf,GAErB1hE,SAAU,CACR3V,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKy6L,SACd,KAIGj5L,EAAKu2B,OAAOs6J,EACrB,CAuDF,OArGkC5wL,OAmDhC4rL,8BAAA,SAAkB2F,GAChB,IAAM4H,EAA2B,KAAKE,0BAClCx8L,EAAQ,KAAKvB,OAAOiD,IAAIgzL,EAAW3zH,KAClC/gE,IAEHA,EAAQ,IAAIs8L,EAAyB5H,EADf,KAAKV,+BAA+BU,EAAW3zH,MAErE,KAAKghC,SAAS/hG,IAEhB,OAAOA,CACT,EAOA+uL,mBAAA,SAAOgF,GAAP,WACE,GAAsB,OAAlB,KAAKj0L,UAAqBi0L,EAAiBj0L,UAAY,KAAKA,SAC9D,OAAO,KAET,KAAKq8L,UAAYpI,EAAiBj0L,SAElC,IAAM28L,EAAe,IAAIhhM,IAczB,OAZAs4L,EAAiBt1L,OAAOtS,SAAQ,YAC9B,IAAM6T,EAAQkD,EAAKw5L,kBAAkBhI,GACrC10L,EAAMy5B,OAAOi7J,GACb+H,EAAa96L,IAAI3B,EACnB,IAEA,KAAKvB,OAAOtS,SAAQ,YACbswM,EAAaj7L,IAAIxB,IACpBkD,EAAK4+F,YAAY9hG,EAErB,IAEQ+zL,EAAiB5mM,OACvB,IAAK,eACH,KAAKgxD,aACL,MACF,IAAK,eACH,KAAKyqB,eACL,MACF,IAAK,YACH,KAAK5gC,QAAQ,KAAK+4B,IAAK,KAAKzrD,UAIhC,OAAO,IACT,EACF,EArGA,CAAkC+mL,GAuGlC90L,EAAOxe,QAAUgmM,C,ohBCtGjB,cAME,WAAYhuH,EAAKzrD,GAAjB,MACE+kB,cAAO,K,OACPn3B,EAAK8kC,QAAQ+4B,EAAKzrD,G,CACpB,CACF,OAVyCnS,OAUzC,EAVA,CAR6B/I,EAAQ,KAoBrCmN,EAAOxe,QAAUszM,C,+BCpBjB,IAAMM,EAA2BviM,EAAQ,KACnCwiM,EAA2BxiM,EAAQ,KAYzC,EAKE,SAAY2B,G,IAAE0D,EAAK,QAAEiB,EAAK,QAAErB,EAAK,QAC/BpW,OAAOkQ,iBAAiB,KAAM,CAC5BsG,MAAO,CACLhW,MAAOgW,EACPtV,YAAY,GAEduW,MAAO,CACLjX,MAAOiX,EAAQ,IAAIi8L,EAAyBj8L,GAAS,KACrDvW,YAAY,GAEdkV,MAAO,CACL5V,MAAO4V,EAAQ,IAAIu9L,EAAyBv9L,GAAS,KACrDlV,YAAY,IAGlB,EAGFod,EAAOxe,QAAU0/E,C,ohBC/BjB,cAKE,WAAYo0H,G,OACVxiK,YAAMwiK,IAAY,IACpB,CACF,OARuC15L,OAQvC,EARA,CALiC/I,EAAQ,MAezCmN,EAAOxe,QAAU4zM,C,ohBCTjB,cAKE,WAAYG,G,OACVziK,YAAMyiK,IAAgB,IACxB,CACF,OARsC35L,OAQtC,EARA,CANsC/I,EAAQ,MAgB9CmN,EAAOxe,QAAU6xH,C,+BCVjB,MAKE,SAAY7+G,G,IAAE8C,WAAAk+L,OAAM,MAAG,KAAI,EAAE/gM,cAAAghM,OAAS,MAAG,KAAI,EAAElgM,UAAA2C,OAAK,MAAG,KAAI,EACzDxW,OAAOkQ,iBAAiB,KAAM,CAC5B4jM,OAAQ,CACNtzM,MAAOszM,EACP5yM,YAAY,GAEd6yM,UAAW,CACTvzM,MAAOuzM,EACP7yM,YAAY,GAEdsV,MAAO,CACLhW,MAAOgW,EACPtV,YAAY,IAGlB,EAGFod,EAAOxe,QAAUmyH,C,+BCxBjB,MAKE,SAAYn/G,G,IAAE8C,iBAAA25G,OAAY,MAAG,KAAI,EAAEx8G,UAAAyD,OAAK,MAAG,KAAI,EAC7CxW,OAAOkQ,iBAAiB,KAAM,CAC5Bq/G,aAAc,CACZ/uH,MAAO+uH,EACPruH,YAAY,GAEdsV,MAAO,CACLhW,MAAOgW,EACPtV,YAAY,IAGlB,EAGFod,EAAOxe,QAAUoyH,C,+BClBjB,MAKE,SAAYp/G,G,IAAE8C,WAAAwH,OAAM,MAAG,KAAI,EAAErK,QAAAm9G,OAAG,MAAG,KAAI,EAAEr8G,UAAA2C,OAAK,MAAG,KAAI,EACnDxW,OAAOkQ,iBAAiB,KAAM,CAC5BkN,OAAQ,CACN5c,MAAO4c,EACPlc,YAAY,GAEdgvH,IAAK,CACH1vH,MAAO0vH,EACPhvH,YAAY,GAEdsV,MAAO,CACLhW,MAAOgW,EACPtV,YAAY,IAGlB,EAGFod,EAAOxe,QAAUqyH,C,ohBCvBjB,cAKE,WAAY0hF,G,OACVziK,YAAMyiK,IAAgB,IACxB,CACF,OARsC35L,OAQtC,EARA,CANsC/I,EAAQ,MAgB9CmN,EAAOxe,QAAU8xH,C,ohBCXjB,cAKE,WAAYgiF,G,OACVxiK,YAAMwiK,IAAY,IACpB,CACF,OARuC15L,OAQvC,EARA,CALiC/I,EAAQ,MAezCmN,EAAOxe,QAAU6zM,C,ohBCVjB,cAOE,WAAY58L,EAAO8hE,G,OACjBznC,YAAMr6B,EAAM+gE,IAAK/gE,EAAMtQ,KAAMsQ,EAAMtB,KAAMsB,EAAMizF,QAASjzF,EAAMshE,SAAUQ,IAAc,IACxF,CAeF,OAxBuC3+D,OAmBrCm5L,mBAAA,SAAOt8L,GAGL,OAFA,KAAK8sE,OAAO9sE,EAAMizF,SAClB,KAAKvxB,YAAY1hE,EAAMshE,UAChB,IACT,EACF,EAxBA,CALwClnE,EAAQ,MAqChDmN,EAAOxe,QAAUuzM,C,ohBC/BjB,cAUE,WAAYv7H,EAAKrxE,EAAMgP,EAAM2iE,EAAWC,EAAUQ,GAAlD,MACEznC,YAAM3qC,EAAMgP,EAAM2iE,EAAWC,IAAS,K,OACtCr4E,OAAOkQ,iBAAiB+J,EAAM,CAC5BoyG,eAAgB,CACd7rH,MAAOq4E,EACPz3E,UAAU,KAGd6Y,EAAK+5L,OAAOl8H,G,CACd,CAuDF,OA1E8C59D,OAyB5Cla,sBAAIi0M,2BAAY,C,IAAhB,WACE,QAAS,KAAK1oF,gBAChB,E,gCAMAvrH,sBAAIi0M,4BAAa,C,IAAjB,WACE,OAAO,KAAK5nF,cACd,E,gCAMA4nF,4BAAA,SAAgBlwM,GAKd,OAJK,KAAKA,QACR,KAAKwuH,OAASxuH,EACd,KAAK0e,KAAK,YAEL,IACT,EAOAwxL,wBAAA,SAAY57H,GAKV,OAJI,KAAKi0C,YAAcj0C,IACrB,KAAKi0C,UAAYj0C,EACjB,KAAK51D,KAAK,YAEL,IACT,EAOAwxL,2BAAA,SAAep7H,GAKb,OAJI,KAAKwzC,iBAAmBxzC,IAC1B,KAAKwzC,eAAiBxzC,EACtB,KAAKp2D,KAAK,YAEL,IACT,EACF,EA1EA,CANuBtR,EAAQ,MAmF/BmN,EAAOxe,QAAUm0M,C,ohBClFjB,cAKE,WAAYh6J,EAAazuC,GAAzB,MACE4lC,YAAM6I,EAAa,iBAAkBzuC,IAAQ,K,OAE7CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bi6L,yBAA0B,CACxB1zM,MAAO,IAAIiS,OAIfwH,EAAK7B,GAAG,SAAS,YACf7H,MAAMiJ,KAAKS,EAAKi6L,yBAAyBjtM,QAAQ/D,SAAQ,YACvD68K,EAAU95D,QAAQ,CAChB5jH,KAAM,iBACN0U,MAAOwhE,EACP47H,UAAWl6L,EAAKi6L,yBAAyBz7L,IAAI8/D,IAIjD,GACF,I,CACF,CAoBF,OA7CqCr+D,OAgCnC6rL,oCAAA,SAAwBxtH,EAAU67H,EAAoB/7H,GACpD,GAA2B,cAAvB+7H,EACF,MAAM,IAAIjwM,MAAM,mDAAqDiwM,GAEvE,KAAKF,yBAAyBxsL,IAAI6wD,EAAUF,GACxC,KAAK79B,YACP,KAAKA,WAAWyrE,QAAQ,CACtB5jH,KAAM,iBACN0U,MAAOwhE,EACP47H,UAAW97H,GAGjB,EACF,EA7CA,CADuBlnE,EAAQ,KAgD/BmN,EAAOxe,QAAUimM,C,ohBC3CjB,cAKE,WAAY9rJ,EAAazuC,GAAzB,MACE4lC,YAAM6I,EAAa,mBAAoBzuC,IAAQ,K,OAC/CyO,EAAK7B,GAAG,SAAS,YACf2nK,EAAU3nK,GAAG,WAAW,YACtB,GACO,qBADC1K,EAAQrL,KAEZ4X,EAAKo6L,0BAA0B3mM,EAAQq6B,KAAO,GAAIr6B,EAAQ0K,IAAM,GAKtE,GACF,I,CACF,CAWF,OA7BsC8B,OA0BpC8rL,sCAAA,SAA0BsO,EAAmBC,GAC3C,KAAK9xL,KAAK,UAAW6xL,EAAmBC,EAC1C,EACF,EA7BA,CALuBpjM,EAAQ,KAwC/BmN,EAAOxe,QAAUkmM,C,ohBCvCXvrJ,EAAiBtpC,EAAQ,IACzBomC,EAAUpmC,EAAQ,IAChB,EAAgBA,EAAQ,GAAa,YAGzCqjM,EAAY,EAChB,cAIE,WAAYv6J,EAAazuC,GAAzB,MACE4lC,YAAM6I,EAAa,eAAgBzuC,IAAQ,K,OAC3CxL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bw6L,wBAAyB,CACvBj0M,MAAO,IAAIiS,KAEbiiM,eAAgB,CACdl0M,MAAO,IAAI+2C,GAAQ,WACjBt9B,EAAK06L,gBAEL16L,EAAKy6L,eAAe1V,SAAqC,EAA5B/kL,EAAKy6L,eAAepoK,MACnD,GAlB6B,KAkBI,MAIrCryB,EAAK7B,GAAG,SAAS,YACf2nK,EAAU3nK,GAAG,WAAW,YAEtB,GADA6B,EAAKmgC,KAAK2c,MAAM,aAAcrpD,GAEvB,iBADCA,EAAQrL,KAEZ4X,EAAK26L,oBAAqBlnM,GAAWA,EAAQo1K,YAAcp1K,EAAQo1K,WAAWwpB,OAAU,SAGxFryL,EAAKmgC,KAAKpsC,KAAK,yBAA0BN,EAAQrL,KAGvD,IAIA4X,EAAK06L,eACP,I,CACF,CA8FF,OAlImCz6L,OAsCjC+rL,0BAAA,sBAEE11L,MAAMiJ,KAAK,KAAKi7L,wBAAwBxtM,QAAQ/D,SAAQ,YACtD,IAAMuoM,EAAaxxL,EAAKw6L,wBAAwBh8L,IAAI8/D,GAChDkzH,EAAW/3L,mBACb+3L,EAAWoJ,kBAAmB,GAG5B,YAAapJ,IACfA,EAAWqJ,gBAAiB,EAEhC,IACA,KAAKC,YACP,EAEA9O,gCAAA,SAAoB+O,GAApB,WACE,KAAKN,eAAej9J,QACpB,KAAKi9J,eAAe1V,SA1Da,KA2DjCgW,EAAY9xM,SAAQ,YACQ,OAAtB+xM,EAAWtxM,QACbsW,EAAKmgC,KAAK2c,MAAM,gCAAiCk+I,EAErD,IACA,KAAKF,YACP,EAEA9O,uBAAA,sBACE,GAAK,KAAKzrJ,aAAc,KAAKk6J,eAAel9J,MAA5C,CAIA,IAAM80J,EAAQ,GAoBd,GAnBA/7L,MAAMiJ,KAAK,KAAKi7L,wBAAwBxtM,QAAQ/D,SAAQ,YACtD,IAAMuoM,EAAaxxL,EAAKw6L,wBAAwBh8L,IAAI8/D,GACpD,GAAIkzH,EAAWqJ,gBAAkBrJ,EAAWoJ,iBAAkB,CAC5D,IAAMK,EAAU,CACd,MAAS38H,GAEPkzH,EAAWqJ,iBACbI,EAAQlrG,QAAUyhG,EAAWzhG,QAC7ByhG,EAAWqJ,gBAAiB,GAE1BrJ,EAAWoJ,mBAEbK,EAAQC,kBAAoB1J,EAAW/3L,iBACvC+3L,EAAWoJ,kBAAmB,GAEhCvI,EAAM3mM,KAAKuvM,E,CAEf,IAEI5I,EAAMpmM,OAAS,EAAG,CACpB,IAAMkvM,EAAU,CACd/yM,KAAM,eACNygL,WAAY,CACVpoI,GAAI85J,IACJlI,MAAK,IAGT,KAAKlyJ,KAAK2c,MAAM,aAAcq+I,GAC9B,KAAK56J,WAAWyrE,QAAQmvF,GACxB,KAAKV,eAAep9J,O,EAExB,EAMA2uJ,yBAAA,SAAa1tH,EAAUozC,GACrB,IAAM8/E,EAAa,KAAKgJ,wBAAwBh8L,IAAI8/D,IAAa,CAAEu8H,gBAAgB,EAAOD,kBAAkB,GACxG,YAAalpF,GAAc8/E,EAAWzhG,UAAY2hB,EAAW3hB,UAC/DyhG,EAAWzhG,UAAY2hB,EAAW3hB,QAClCyhG,EAAWqJ,gBAAiB,GAG1BnpF,EAAWj4G,mBAAqByG,EAAYwxG,EAAWj4G,iBAAkB+3L,EAAW/3L,oBAEtF+3L,EAAW/3L,iBAAmBi4G,EAAWj4G,iBACzC+3L,EAAWoJ,kBAAmB,GAEhC,KAAKJ,wBAAwB/sL,IAAI6wD,EAAUkzH,GAC3C,KAAKsJ,YACP,EAMA9O,2BAAA,SAAe1tH,GACb,KAAKk8H,wBAAwB/7J,OAAO6/B,EACtC,EACF,EAlIA,CAAmC99B,GAqInCn8B,EAAOxe,QAAUmmM,C,ohBC3IXxrJ,EAAiBtpC,EAAQ,IAE3BqjM,EAAY,EAChB,cAIE,WAAYv6J,EAAazuC,GAAzB,MACE4lC,YAAM6I,EAAa,kBAAmBzuC,IAAQ,K,OAC9CyO,EAAK7B,GAAG,SAAS,YACf6B,EAAKmgC,KAAK2c,MAAM,mCAAoCgpH,GACpDA,EAAU3nK,GAAG,WAAW,YAEtB,GADA6B,EAAKmgC,KAAK2c,MAAM,aAAcrpD,GAEvB,oBADCA,EAAQrL,KAERqL,EAAQk4G,WAAal4G,EAAQk4G,UAAU0mF,OAAS5+L,EAAQk4G,UAAUlrE,IACpEzgC,EAAKo7L,uBAAuB3nM,EAAQk4G,UAAU0mF,MAAO5+L,EAAQk4G,UAAUlrE,SAIzEzgC,EAAKmgC,KAAKpsC,KAAK,yBAA0BN,EAAQrL,KAGvD,GACF,I,CACF,CAuCF,OA7DsC6X,OAwBpCgsL,8BAAA,SAAkBpzL,G,IAAEylE,EAAQ,WAC1B,GAAK,KAAK/9B,WAAV,CAIA,IAAM46J,EAAU,CACd/yM,KAAM,eACN0U,MAAOwhE,EACP79B,GAAI85J,KAEN,KAAKp6J,KAAK2c,MAAM,aAAcq+I,GAC9B,KAAK56J,WAAWyrE,QAAQmvF,E,CAC1B,EAEAlP,6BAAA,SAAiBpzL,G,IAAE4nC,EAAE,KAAE4xJ,EAAK,QAC1B,GAAK,KAAK9xJ,WAAV,CAGA,IAAM46J,EAAU,CACd/yM,KAAM,kBACNq4C,GAAE,EACF4xJ,MAAK,GAEP,KAAKlyJ,KAAK2c,MAAM,aAAcq+I,GAC9B,KAAK56J,WAAWyrE,QAAQmvF,E,CAC1B,EAKAlP,mCAAA,SAAuBoG,EAAO5xJ,GAC5B,IACE,KAAKj4B,KAAK,UAAW6pL,EAAO5xJ,E,CAC5B,MAAOI,GACP,KAAKV,KAAKr2C,MAAM,0BAA2B+2C,E,CAE/C,EACF,EA7DA,CAAsCL,GAgEtCn8B,EAAOxe,QAAUomM,C,ohBCpEXztJ,EAAetnC,EAAQ,IACvByyG,EAAmBzyG,EAAQ,KAC3BwkL,EAAiBxkL,EAAQ,KACvB,EAA2BA,EAAQ,IAAuB,uBAC5DomC,EAAUpmC,EAAQ,IAClB,EAAwCA,EAAQ,IAA9CoN,EAAQ,WAAEC,EAAW,cAAEC,EAAU,aAEnC,EAOFtN,EAAQ,GANV2C,EAA6B,gCAC7BE,EAA2B,8BAC3Ba,EAA0B,6BAC1B4B,EAAsB,yBACtBjF,EAAY,eACZM,EAAgB,mBAGZ,EAKFX,EAAQ,IAJV+/B,EAAiB,oBACjBkC,EAAkB,qBAClBxB,EAAwB,2BACxBK,EAAwB,2BA8BpB0F,EAAS,CACb8nC,WAAY,CACV,YACA,gBAEFC,UAAW,CACT,eACA,WAEF41H,QAAS,CACP,YACA,gBAEF11H,aAAc,IAUhB,cAUE,WAAYn5E,EAAM8uM,EAAa3kF,EAAkBugE,EAAuBrT,EAAUtyK,GAAlF,M,OACEA,EAAUxL,OAAOgT,OAAO,CACtBg8G,QAAS2mE,EACT/xE,iBAAgB,EAChBtuG,WAAY,KACZjE,eAAe,EACf8C,gBAAgB,EAChBE,aAAa,EACb1F,UAAW6C,KACVhG,GACHyO,cAAM,aAAc09B,IAAO,KAG3B33C,OAAOkQ,iBAAiB+J,EAAM,CAC5Bu7L,aAAc,CACZh1M,MAAO+0M,GAETE,uBAAwB,CACtBj1M,MAAOgL,EAAQkL,uBAEjBg/L,kBAAmB,CACjBl1M,MAAOgL,EAAQuI,kBAEjB4hM,iBAAkB,CAChBn1M,MAAOgL,EAAQyI,iBAEjB2hM,mBAAoB,CAClBp1M,MAAOgL,EAAQ4I,mBAEjB0uG,eAAgB,CACdtiH,MAAOgL,EAAQu3G,cACf3hH,UAAU,GAEZy0M,aAAc,CACZr1M,MAAOgL,EAAQ6I,aAEjByhM,kBAAmB,CACjBt1M,MAAO+P,MAAMC,QAAQhF,EAAQ8J,YACzB,WACA,WAENygM,kBAAmB,CACjBv1M,MAAOowH,GAET8rD,MAAO,CACLl8K,MAAOiG,GAETuvM,gBAAiB,CACfx1M,MAAOsR,EAAiBtG,EAAQ0I,iBAAmB1I,EAAQ0I,gBAE7D+hM,gBAAiB,CACfz1M,MAAOgL,EAAQsJ,gBAEjBsuG,SAAU,CACR5iH,MAAOgL,GAETy7L,uBAAwB,CACtBzmM,MAAO2wL,GAET+kB,cAAe,CACb11M,MAAO,KACPY,UAAU,GAEZ+0M,kBAAmB,CACjB31M,MAAO,EACPY,UAAU,GAEZg1M,kBAAmB,CACjB51M,MAAO,IAAIgL,EAAQwjH,QAAQluG,IAE7BqmG,SAAU,CACR3mH,MAAO,KACPY,UAAU,GAEZi1M,eAAgB,CACd71M,MAAOgL,EAAQ6F,eAEjBilM,gBAAiB,CACf91M,MAAOgL,EAAQ2I,gBAEjBoiM,kBAAmB,CACjB/1M,MAAO,KACPY,UAAU,GAEZo1M,iBAAkB,CAChBh2M,MAAO,IAETi2M,eAAgB,CACdj2M,MAAO,IAETk2M,WAAY,CACVl2M,MAAOgL,EAAQmD,WAEjBiiL,UAAW,CACTpwL,MAAOs9K,KAgSf,SAAwBiC,GACtB,SAAS42B,IACP,GAAwB,iBAApB52B,EAAU77K,MAAd,CAGI67K,EAAUw2B,mBACZx2B,EAAUw2B,kBAAkB39L,eAAe,UAAWg+L,GAEhD,MAAkD72B,EAAS,kBAAxC38D,EAA+B28D,EAAS,SAA9B6Q,EAAqB7Q,EAAS,UAAnB77K,EAAU67K,EAAS,MAC3D,EAAqB38D,EAAQ,iBAE/B6hE,EAAmB,IAAIrhE,EAAiBgtE,EAAW5wL,OAAOgT,OAAO,CACrEmvG,UAAqB,eAAVj+G,GAAgD,YAAtB4xM,EACjC/1B,EAAU82B,oBACV92B,EAAU+2B,2CACb1zF,IAEH6hE,EAAiBnpK,KAAK,SAAS,YACzB27D,IAAWmsC,EAAiBjC,YAAYG,MAC1C5sD,IAEAA,EAAW,IAAI/wD,MAAMszE,GAEzB,IAEAwtG,EAAiB7sK,GAAG,UAAWw+L,GAC/B72B,EAAUw2B,kBAAoBtxB,C,CAChC,CAEA,SAAS/vH,EAAWnxD,GAClB,GAAwB,iBAApBg8K,EAAU77K,MAGd,GAAKH,EAAL,CAKA,IAAMgzM,EAAiBh3B,EAAUi3B,qBACjC,GAAKD,EAQmB,cAApBh3B,EAAU77K,OACZ67K,EAAU7/F,QAAQ,WAGpB62H,EAAelzM,KAAK8yM,OAZpB,CACE,IAAMM,EAAclzM,EAAM2J,UAAYk2G,EAAiBjC,YAAYC,KAC/D,IAAI3vE,EACJ,IAAIL,EACRmuI,EAAU7qH,WAAW+hJ,E,OATrBl3B,EAAU7qH,YAkBd,CAEA,SAAS0hJ,EAAclpM,GACrB,GAAwB,iBAApBqyK,EAAU77K,MAGd,GAAqB,UAAjBwJ,EAAQrL,KAIZ,OAAQ09K,EAAU77K,OAChB,IAAK,YACH,OAAQwJ,EAAQrL,MACd,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,UAEH,YADA09K,EAAUt9J,KAAK,UAAW/U,GAE5B,IAAK,eAIH,YAHAqyK,EAAU7qH,WAA8B,cAAnBxnD,EAAQwmH,OACzB,IAAI9gF,EACJ,MAEN,QAEE,OAEN,IAAK,aACH,OAAQ1lC,EAAQrL,MACd,IAAK,OAIH,YAHA09K,EAAU38D,SAASquE,OAAO/jL,EAAQ43K,aAAazhL,MAAK,WAClDk8K,EAAUm3B,uCACZ,IAEF,IAAK,YAIH,OAHAn3B,EAAUo3B,YAAYzpM,EAAQovE,QAASpvE,EAAQlC,QAAQ26L,iBACvDpmB,EAAUt9J,KAAK,YAAa/U,QAC5BqyK,EAAU7/F,QAAQ,aAEpB,IAAK,SACL,IAAK,SAEH,YADA6/F,EAAUy2B,iBAAiB7wM,KAAK+H,GAElC,IAAK,eAIH,YAHAqyK,EAAU7qH,WAA8B,cAAnBxnD,EAAQwmH,OACzB,IAAI9gF,EACJ,MAEN,QAEE,OAEN,IAAK,UACH,OAAQ1lC,EAAQrL,MACd,IAAK,YACL,IAAK,SAEH,YADA09K,EAAUy2B,iBAAiB7wM,KAAK+H,GAElC,IAAK,SAIH,OAHAqyK,EAAUq3B,uBACVr3B,EAAUt9J,KAAK,UAAW/U,QAC1BqyK,EAAU7/F,QAAQ,aAEpB,IAAK,eAIH,YAHA6/F,EAAU7qH,WAA8B,cAAnBxnD,EAAQwmH,OACzB,IAAI9gF,EACJ,MAEN,QAEE,OAEN,QAEE,YApEF2sI,EAAU7qH,WAAWhkB,EAAkBxjC,EAAQyjC,KAAMzjC,EAAQA,SAsEjE,CAEAqyK,EAAU3nK,GAAG,gBAAgB,SAAS8xG,EAAahmH,GACjD,OAAQA,GACN,IAAK,YACH,IAAM+6L,EAAUlf,EAAU02B,eAAexpM,OAAO,GAKhD,OAJIgyL,EAAQ/4L,QACV65K,EAAU95D,QA/JpB,SAAuBg5E,GACrB,OAAOA,EAAQrsL,QAAO,SAACykM,EAAS7mK,GAkB9B,QAhBK6mK,EAAQptF,aAAez5E,EAAOy5E,aAExBotF,EAAQptF,aAAez5E,EAAOy5E,aACnCz5E,EAAOy5E,YAAYpzG,SAAWwgM,EAAQptF,YAAYpzG,YAFtDwgM,EAAQptF,YAAcz5E,EAAOy5E,cAS1BotF,EAAQ/L,kBAAoB96J,EAAO86J,iBACtC+L,EAAQ/L,iBAAmBgM,EAAsB9mK,EAAO86J,kBAC/C+L,EAAQ/L,kBAAoB96J,EAAO86J,mBAC5C+L,EAAQ/L,iBAAmBgM,EACzBD,EAAQ/L,iBAAiB3xL,OAAO62B,EAAO86J,oBAEpC+L,CACT,GAAG,GACL,CA0I4BE,CAActY,SAElClf,EAAUy2B,iBAAiBvpM,OAAO,GAAG/J,SAAQ,YAAU,SAAUuf,KAAK,UAAW+tB,EAA1B,IAGzD,IAAK,eAGH,OAFAuvI,EAAUw2B,kBAAkB39L,eAAe,UAAWg+L,QACtD72B,EAAUnnK,eAAe,eAAgBsxG,GAK3C,QAEE,OAEN,IAEQ,MAAgC61D,EAAS,SAA/B+1B,EAAsB/1B,EAAS,kBACzC,EAAuB38D,EAAQ,WAAnBquE,EAAWruE,EAAQ,OAEb,aAAtB0yF,EACFrkB,EAAOn8K,GAAYzR,KAAK8yM,GAExBA,GAEJ,CA7bIa,CAAev9L,G,CACjB,CA2NF,OAzUwCC,OAqHtCu9L,oDAAA,WACE,GAAmB,cAAf,KAAKvzM,MACP,OAAO,KAGT,GAAmB,iBAAf,KAAKA,MACP,MAAO,CACL44E,QAAS,KAAKqqC,SACd9kH,KAAM,aACNkM,QA/KY,GAmLhB,IAAMlM,EAAO,CACXo9E,WAAY,UACZ61H,QAAS,QACT,KAAKpxM,OAEDwJ,EAAU,CACdjH,KAAM,KAAKi2K,MACXzyD,YAAa,KAAK8rF,kBAAkB5hB,WACpCmX,iBAAkB,KAAKrE,uBAAuByQ,YAC9Cr1M,KAAI,EACJkM,QA7Lc,GAqOhB,MArCqB,YAAjBb,EAAQrL,MACVqL,EAAQ43K,YAAc,KAAKwwB,kBAE3BpoM,EAAQk4G,UAAY,CAClBn/G,KAAM8X,EACNo5L,YAAan5L,EACbo5L,WAAY,KAAKlB,YAGf,KAAKhB,oBACPhoM,EAAQy9L,kBAAoBr3L,EAC1B,KAAK4hM,oBAGL,KAAKO,kBACPvoM,EAAQu8G,YAAY4tF,eAAiBhjM,EACnC,KAAKohM,kBAGTvoM,EAAQy+L,gBAAkBn4L,EACxB,KAAK2hM,iBACL,KAAKK,gBACL,KAAKK,eACL,KAAKC,gBACL,KAAKV,mBACL,KAAKC,cAEPnoM,EAAQymM,UAAY19L,EAAuB,KAAKg/L,wBAChD/nM,EAAQ2a,OAAS5J,EACjB/Q,EAAQhC,MAAQ,KAAK8pM,cACK,SAAjB9nM,EAAQrL,MACjBqL,EAAQovE,QAAU,KAAKqqC,SACvBz5G,EAAQhC,MAAQ,KAAK8pM,cACK,WAAjB9nM,EAAQrL,OACjBqL,EAAQovE,QAAU,KAAKqqC,UAGlBz5G,CACT,EAMA+pM,8BAAA,WACE,MAAO,CACLvyB,KAAM,UACNx5K,MAAO,KAAK8pM,aACZnzM,KAAM,MACNkM,QAlPc,EAoPlB,EAMAkpM,kDAAA,WACE,IAAM/pM,EAAU,KAAKopM,0CACjBppM,GACF,KAAK6oM,kBAAkBtrM,YAAYyC,EAEvC,EAQA+pM,uBAAA,SAAW1zM,GACT,MAAmB,iBAAf,KAAKG,QACP,KAAKg8E,QAAQ,eAAgB,KAAM,CAACn8E,IACpC,KAAKmzM,wCACL,KAAKX,kBAAkBr6J,SAChB,EAGX,EAQAu7J,oBAAA,SAAQjnK,GACN,OAAQ,KAAKtsC,OACX,IAAK,YAMH,OALA,KAAKqyM,kBAAkBtrM,YAAYjL,OAAOgT,OAAO,CAC/C8pE,QAAS,KAAKqqC,SACd9kH,KAAM,SACNkM,QA5RU,GA6RTiiC,KACI,EACT,IAAK,aACL,IAAK,UAEH,OADA,KAAKimK,eAAe9wM,KAAK6qC,IAClB,EAET,QACE,OAAO,EAEb,EAUAinK,yBAAA,SAAalhM,EAAO9P,EAAM+P,EAAO5C,GAC/B,KAAKkvG,eAAergG,KAAK,QAAS,CAAElM,MAAK,EAAE9P,KAAI,EAAE+P,MAAK,EAAE5C,QAAO,GACjE,EAOA6jM,iBAAA,WACE,MAAmB,cAAf,KAAKvzM,QACP,KAAKg8E,QAAQ,WACb,KAAKg3H,yCACE,EAGX,EAMAO,wBAAA,SAAY36H,EAAS+zC,GACnB,KAAK1J,SAAWrqC,EAChB,KAAKq5H,kBAAqC,IAAjBtlF,CAC3B,EASA4mF,+BAAA,sBACE,OAA+B,IAA3B,KAAKtB,kBAIA,MAIJ,KAAKD,gBACR,KAAKA,cAAgB,IAAI3+J,GAAQ,WAG3Bt9B,EAAKi8L,gBAEPj8L,EAAKk8L,kBAAoB,EAE7B,GAAG,KAAKA,oBAIH,IAAIpvM,SAAQ,YACjBkT,EAAKm8L,kBAAkBvZ,QAAQr5L,EACjC,IACF,EAQAi0M,iCAAA,WACE,KAAKrB,kBAAkBtwM,QACnB,KAAKowM,gBACP,KAAKA,cAAcz+J,QACnB,KAAKy+J,cAAgB,KAEzB,EACF,EAzUA,CAAwCz9J,GAqVxC,SAAS6+J,EAAsBtiB,GAC7B,OAAOzkL,MAAMiJ,KAAKw7K,EAAgBpiL,QAAO,SAACklM,EAAqBtnK,GAC7D,IAAM6mK,EAAUS,EAAoBr/L,IAAI+3B,EAAOkK,KAAOlK,EAsBtD,QAnBK6mK,EAAQzhG,aAAeplE,EAAOolE,aAExByhG,EAAQzhG,aAAeplE,EAAOolE,aACnCplE,EAAOolE,YAAY/+F,SAAWwgM,EAAQzhG,YAAY/+F,YAFtDwgM,EAAQzhG,YAAcplE,EAAOolE,eAQ1ByhG,EAAQ14B,KAAOnuI,EAAOmuI,KAEhB04B,EAAQ14B,KAAOnuI,EAAOmuI,KAC3BnuI,EAAOmuI,IAAI9nK,SAAWwgM,EAAQ14B,IAAI9nK,YAFtCwgM,EAAQ14B,IAAMnuI,EAAOmuI,KAQvBm5B,EAAoBpwL,IAAI2vL,EAAQ38J,GAAI28J,GAC7BS,CACT,GAAG,IAAIrlM,KAAO1P,SAChB,CA6LAub,EAAOxe,QAAU23M,C,ohBCrnBXM,EAA4B5mM,EAAQ,KACpC6mM,EAA0B7mM,EAAQ,KAChC,EAAsBA,EAAQ,IAAuB,kBACvDi9B,EAAMj9B,EAAQ,IACd,EAAkCA,EAAQ,GAAxCyL,EAAc,iBAAEzC,EAAW,cASnC,cAOE,WAAY2tK,EAAoB7xK,EAA6BzK,GAA7D,MACEA,EAAUxL,OAAOgT,OAAO,CACtBvF,SAAU0R,EACV64L,wBAAuB,GACtBxsM,GAEHyO,gBAAO,KAEP,IAAMyzB,EAAY9wB,EAAepR,EAAQiC,U,OAEzCzN,OAAOkQ,iBAAiB+J,EAAM,CAC5By7L,kBAAmB,CACjBl1M,MAAO,KACPY,UAAU,GAEZ62M,0BAA2B,CACzBz3M,MAAO,EACPY,UAAU,GAEZoxL,oBAAqB,CACnBhyL,MAAOsnL,GAETowB,iBAAkB,CAChB13M,MAAO,IAAIiS,KAEb0lM,yBAA0B,CACxB33M,MAAOgL,EAAQwsM,yBAEjB59J,KAAM,CACJ55C,MAAOgL,EAAQI,IACXJ,EAAQI,IAAIyuC,UAAU,UAAWpgC,GACjC,IAAIm0B,EAAI,UAAWn0B,EAAMyzB,EAAWliC,EAAQmiC,aAElDw5J,mBAAoB,CAClB/lM,UAAU,EACVZ,MAAO,GAET0yM,UAAW,CACT9xM,UAAU,EACVZ,MAAO,GAET43M,iBAAkB,CAChB53M,MAAO,KACPY,UAAU,GAEZgtK,gBAAiB,CACf5tK,MAAO,GACPY,UAAU,GAEZ2S,iBAAkB,CAChB7S,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKi9L,iBACd,GAEF7O,yBAA0B,CACxB3lM,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKw/L,yBACd,GAEFhiM,4BAA6B,CAC3B/U,YAAY,EACZV,MAAOyV,GAETY,SAAU,CACR3V,YAAY,EACZuX,IAAG,WACD,OAAO,KAAKy6L,SACd,GAEF/oB,gBAAiB,CACfjpL,YAAY,EACZuX,IAAG,WACD,OAAO,KAAK2/L,gBACd,K,CAGN,CAyNF,OA9SiCl+L,OAuF/Bu2K,qBAAA,WACE,MAAO,+BAA+B,KAAK34G,IAAG,GAChD,EAMA24G,+BAAA,SAAmBtG,GACZ,KAAKiuB,mBACR,KAAKA,iBAAmBjuB,EAE5B,EAMAsG,gCAAA,SAAoB18K,GACboG,EAAY,KAAKu7L,kBAAmB3hM,KAIvC,KAAK2hM,kBAAoB3/L,KAAK4P,MAAM5P,KAAKC,UAAUjC,IACnD,KAAKkkM,4BACL,KAAKI,YAET,EAMA5nB,+BAAA,SAAmBriB,GACjB,KAAKA,gBAAkBA,CACzB,EAMAqiB,0BAAA,WACE,OAAO,KAAK+B,mBACd,EAOA/B,0BAAA,SAAc3I,GAEZ,OADA,KAAK0K,oBAAoBhiJ,OAAOs3I,GACzB,IACT,EAOA2I,mBAAA,SAAOwb,GACL,OAAI,KAAK9E,oBAAsB8E,EAAUp1L,WAIzC,KAAKswL,mBAAqB8E,EAAUp1L,SAEpCo1L,EAAUz2L,OAAOtS,SAAQ,SAASo1M,GAChC,IAAMC,EAA0B,KAAK/iM,OAAOiD,IAAI6/L,EAAiB59J,IAC7D69J,GACFA,EAAwB/nK,OAAO8nK,EAEnC,GAAG,OAVM,IAaX,EAEA7nB,8BAAA,SAAkB+nB,GAChB,OAAKA,GAAgBA,EAAYhjM,QAIjCjF,MAAMiJ,KAAK,KAAKhE,OAAOzS,UAAUG,SAAQ,YACvC,IAAMy0C,EAAS6gK,EAAYhjM,OAAO0H,EAAY46D,KAC1CngC,GACFz6B,EAAYmvL,kBAAkB10J,EAElC,IACO,MATE,IAUX,EAUA84I,kDAAA,SAAsCf,EAAajpL,EAAM4xE,EAAUogI,GACjE,OAAO,IAAI,KAAKN,yBAAyBzoB,EAAajpL,EAAM4xE,EAAUogI,EAAyB,CAAE7sM,IAAK,KAAKwuC,MAC7G,EAUAq2I,qBAAA,SAASf,EAAajpL,EAAM4xE,EAAUogI,GAAtC,WACErnK,YAAM0nE,SAAQ,UAAC42E,EAAajpL,EAAM4xE,EAAUogI,GAC5C,IAAMv7L,EAAc,KAAKwtK,eAAegF,GAGtC,EAEExyK,EAAW,UADbo7D,EACEp7D,EAAW,gBAETmuG,EAAU,WAKVjzC,IAAcl7D,EAAYk7D,WAAaE,IAAoBp7D,EAAYo7D,kBACzEr+D,EAAKo+L,YACLjgI,EAAYl7D,EAAYk7D,UACxBE,EAAkBp7D,EAAYo7D,gBAElC,EASA,OAPAp7D,EAAY9E,GAAG,UAAWizG,GAE1B,KAAKqtF,gBAAgBx7L,GACrB,KAAKg7L,iBAAiBxwL,IAAIxK,GAAa,WAAM,SAAYtE,eAAe,UAAWyyG,EAAtC,IAE7C,KAAKgtF,YAEE,IACT,EAOA5nB,4BAAA,SAAgBvzK,GACd,IAAMtE,EAAiB,KAAKs/L,iBAAiBz/L,IAAIyE,GAC7CtE,GACFA,GAEJ,EAMA63K,qBAAA,WACE,MAAO,CACL55K,SAAU,KAAKA,SACfrB,OAAQjF,MAAMiJ,KAAK,KAAKhE,OAAOzS,UAAUuP,KAAI,YAAS,SAAM6hL,UAAN,IAE1D,EAOA1D,sBAAA,WACE,KAAKyiB,YACL,KAAKzwL,KAAK,UACZ,EAQAguK,wBAAA,SAAYf,GACV,IAAMxyK,EAAck0B,YAAMynE,YAAW,UAAC62E,GAMtC,OALIxyK,IACFwyK,EAAYhS,YAAYxgK,EAAYquG,kBACpC,KAAKmtF,gBAAgBx7L,GACrB,KAAKm7L,aAEAn7L,CACT,EAOAuzK,2CAAA,SAA+Bx6K,GAC7B,KAAKA,4BAA4Bu6B,OAAOv6B,EAC1C,EASAw6K,6BAAA,SAAiBl4G,EAAU0lC,GACzB,IAAMoM,EAAiB95G,MAAMiJ,KAAK,KAAKhE,OAAOzS,UAAU0zC,MAAK,YAAY,SAASqhC,MAAQS,CAAjB,IACzE,OAAK8xC,EAIEA,EAAekB,iBAAiBpN,iBAAiBF,IAHtD,KAAK7jE,KAAKpsC,KAAK,SAASuqE,EAAQ,cACzBxxE,QAAQvD,QAAQ,iBAG3B,EACF,EA9SA,CAAiCu0M,GAyVjCz5L,EAAOxe,QAAU2wL,C,ohBCpWjB,cACE,mBACEr/I,cAAO,K,OACPpxC,OAAOkQ,iBAAiB+J,EAAM,CAC5B0+L,4BAA6B,CAC3Bn4M,MAAO,IAAIiS,KAEbmmM,4BAA6B,CAC3Bp4M,MAAO,IAAIiS,O,CAGjB,CAkDF,OA7DwCyH,OAoBtC69L,qBAAA,SAASroB,EAAajpL,EAAM4xE,EAAUogI,QAAA,QAAAA,QACpC,IAAMv7L,EAAc,KAAK27L,sCAAsCnpB,EAAajpL,EAAM4xE,EAAUogI,GAI5F,OAHA,KAAKG,4BAA4BlxL,IAAIgoK,EAAaxyK,GAClD,KAAKy7L,4BAA4BjxL,IAAIxK,EAAawyK,GAClDt+I,YAAM0nE,SAAQ,UAAC57F,GACR,IACT,EAMA66L,2BAAA,SAAeroB,GACb,OAAO,KAAKkpB,4BAA4BngM,IAAIi3K,IAAgB,IAC9D,EAMAqoB,sBAAA,SAAU3sB,GACR,OAAO,KAAKutB,4BAA4BlgM,IAAI2yK,IAAqB,IACnE,EAMA2sB,wBAAA,SAAYroB,GACV,IAAMxyK,EAAc,KAAK07L,4BAA4BngM,IAAIi3K,GACzD,OAAKxyK,GAGL,KAAK07L,4BAA4BlgK,OAAOg3I,GACxC,KAAKipB,4BAA4BjgK,OAAOx7B,GACtBk0B,YAAMynE,YAAW,UAAC37F,IAElCA,EAAYxV,OAEPwV,GARE,IASX,EACF,EA7DA,CAF6B/L,EAAQ,KAiErCmN,EAAOxe,QAAUi4M,C,ohBCjEXe,EAAiC3nM,EAAQ,KACzCI,EAAgBJ,EAAQ,KACxB+/B,EAAoB//B,EAAQ,IAAkC+/B,kBAKpE,cASE,WAAYw+I,EAAajpL,EAAM4xE,EAAUogI,EAAyBjtM,GAAlE,MACE4lC,YAAMs+I,EAAajpL,EAAM4xE,IAAS,K,OAElCr4E,OAAOkQ,iBAAiB+J,EAAM,CAC5BmgC,KAAM,CACJ55C,MAAOgL,EAAQI,IAAIyuC,UAAU,UAAWpgC,IAE1C8+L,aAAc,CACZv4M,MAAO,CAAEw4M,WAAY,MACrB53M,UAAU,GAEZ63M,yBAA0B,CACxBz4M,MAAOi4M,K,CAGb,CAsEF,OA9FsCv+L,OA8BpC89L,qBAAA,WACE,IAAM9zM,EAAQ,CACZ8lG,QAAS,KAAK5xB,UACd19B,GAAI,KAAKA,GACTjlC,KAAM,KAAKA,KACXhP,KAAM,KAAKA,KACX4xE,SAAU,KAAKC,iBAOjB,OAJI,KAAK2gI,2BAEP/0M,EAAMg1M,gBAAkB,KAAKD,0BAExB/0M,CACT,EAEA8zM,qBAAA,WACE,MAAO,6BAA6B,KAAKlgI,IAAG,GAC9C,EASAkgI,mBAAA,SAAOjhM,GACL,OAAQA,EAAM7S,OACZ,IAAK,QACH,KAAK8vM,OAAOj9L,EAAM+gE,KAClB,MACF,IAAK,SACH,IAAM/zE,EAAQgT,EAAMhT,MACpB,KAAK4nL,cAAcz6I,EAAkBntC,EAAMotC,KAAMptC,EAAM2J,UAM3D,OAAO,IACT,EAEAsqM,8BAAA,SAAkBQ,GAChB,IAAKA,IAAgBA,EAAYQ,YAC/B,KAAKD,aAAaC,aAAeR,EAAYQ,WAC7C,OAAO,KAGT,OADA,KAAKD,aAAaC,WAAaR,EAAYQ,WACnC,KAAKD,aAAaC,YACxB,IAAK,KACH,KAAK5+J,KAAKr1C,KAAK,0BACf,KAAK0d,KAAK,mBACV,MACF,IAAK,WACH,KAAK23B,KAAKpsC,KAAK,yBACf,KAAKyU,KAAK,UAAWlR,EAAcyD,oBACnC,MACF,QACE,KAAKolC,KAAKpsC,KAAK,iCAAiC,KAAK+qM,aAAaC,YAGtE,OAAO,IACT,EACF,EA9FA,CAAsCF,GA2GtCx6L,EAAOxe,QAAUk4M,C,ohBC3GjB,cASE,WAAYtoB,EAAajpL,EAAM4xE,GAA/B,WAEQ2xB,EAA+B,UADrC0lF,EAAcA,EAAYhrK,SACEjP,MAAyBi6K,EAAY34K,MAAMizF,Q,OACvE/vF,cAAMxT,EAAMipL,EAAYj6K,KAAMu0F,EAAS3xB,IAAS,MAC3C+yC,oBAAoBskE,GACzB1vL,OAAOkQ,iBAAiB+J,EAAM,CAC5Bk/L,iBAAkB,CAChB34M,MAAO63E,EACPj3E,UAAU,GAEZs5C,GAAI,CACFx5C,YAAY,EACZV,MAAOkvL,EAAYh1I,M,CAGzB,CAmEF,OA3F6CxgC,OA8B3Cla,sBAAI84M,8BAAe,C,IAAnB,WACE,OAAO,KAAKK,gBACd,E,gCASAL,mBAAA,SAAO9uG,GAGL,OAFAA,EAA6B,mBAAZA,GAAwBA,EACzC,KAAKuhB,iBAAiBx0G,MAAMizF,QAAUA,EAC/B54D,YAAMyyC,OAAM,UAACmmB,EACtB,EAOA8uG,0BAAA,SAAc/0M,GAIZ,OA0CJ,SAAkBmZ,EAAanZ,GAC7B,GAAyB,OAArBmZ,EAAY8iE,MAAiB9iE,EAAYq1G,OAC3C,OAAO,EAGT,OADAr1G,EAAYq1G,OAASxuH,GACd,CACT,CAnDQq1M,CAAS,KAAMr1M,IACjB,KAAK0e,KAAK,WAEL,IACT,EAOAq2L,wBAAA,SAAYzgI,GAKV,OAJI,KAAK8gI,mBAAqB9gI,IAC5B,KAAK8gI,iBAAmB9gI,EACxB,KAAK51D,KAAK,YAEL,IACT,EAOAq2L,mBAAA,SAAOhhI,GACL,OAAI,KAAKy6C,OACA,KAEFnhF,YAAM4iK,OAAO1xM,KAAK,KAAMw1E,EACjC,EAMAghI,iBAAA,WACE,KAAKvtF,iBAAiB7jH,MACxB,EACF,EA3FA,CAPuByJ,EAAQ,MAiH/BmN,EAAOxe,QAAUg5M,C,ohBChHX74H,EAAuB9uE,EAAQ,IAC/BogH,EAAgBpgH,EAAQ,KACxBsnC,EAAetnC,EAAQ,IAwBvBwmC,EAAS,CACbopE,OAAQ,CACN,WAEFs4F,QAAS,CACP,SACA,QAEFp4F,KAAM,CACJ,SACA,WAEFq4F,QAAS,CACP,SACA,SAQJ,cAIE,a,OACEloK,YAAM,SAAUuG,IAAO,IACzB,CAiHF,OAvHwBz9B,OAYtBgvK,mBAAA,SAAO5oL,GAGL,OAFA,KAAKg5C,WAAW,UAAWh5C,GAC3B,KAAKg5C,WAAW,SAAUh5C,GACnByG,QAAQvD,QAAQ,KACzB,EAMA0lL,qBAAA,SACEt4D,EACAllH,EACAo8K,EACAnpG,EACAnzE,GAEAolH,EAAiB7xE,QAAQ,qCAAsC,QAC/D,IACM3iC,EAAUrV,QAAQvD,QAAQ,IAAI+tH,EAAcX,EADtC,qCAC6DplH,IAEzE,OADA4Q,EAAQg6D,OAAS,WAAmB,EAC7Bh6D,CACT,EAMA8sK,kBAAA,SAAM5oL,GAGJ,OAFA,KAAKg5C,WAAW,UAAWh5C,GAC3B,KAAKg5C,WAAW,OAAQh5C,GACjByG,QAAQvD,QAAQ,KACzB,EAMA0lL,kBAAA,sBACE,OAAO,KAAK0V,QAAQ,SAAS,YAC3B,OAAQ3kL,EAAK/V,OACX,IAAK,SACH,OAAO+V,EACT,IAAK,OACH,OAAOA,EAAKyoG,OAAOpiH,GACrB,QACE,MAAM,IAAI6D,MAAM,+BAA+B8V,EAAK/V,MAAK,KAE/D,GACF,EAWAglL,oBAAA,SACEt4D,EACAllH,EACAo8K,EACAnpG,EACAnzE,GAEA,IAAM/J,EAAO,KACb,OAAO,KAAKm9L,QAAQ,WAAW,SAAStlJ,EAAWh5C,GACjD,OAAQmB,EAAKyC,OACX,IAAK,SACH,OAAOzC,EAAK83M,MAAMj5M,GAAKuD,KAAKy1C,EAAW5S,KAAK,KAAMpmC,IACpD,IAAK,OAIH,OADAmB,EAAKq3C,sBAAsBx4C,GACpBmB,EAAKkiH,SAASiN,EAAkBllH,EAAOo8K,EAAoBnpG,EAAiBnzE,GACrF,QACE,MAAM,IAAIrH,MAAM,+BAA+B1C,EAAKyC,MAAK,KAE/D,GACF,EAMAglL,4CAAA,WACE,OAAO,IAAIjpG,CACb,EAMAipG,iBAAA,sBACE,OAAO,KAAK0V,QAAQ,QAAQ,YAC1B,OAAQ3kL,EAAK/V,OACX,IAAK,SACH,OAAO+V,EAAKs/L,MAAMj5M,GACpB,IAAK,OACH,OAAO2Z,EACT,QACE,MAAM,IAAI9V,MAAM,+BAA+B8V,EAAK/V,MAAK,KAE/D,GACF,EACF,EAvHA,CAAwBu0C,GAyHxBn6B,EAAOxe,QAAUopL,C,+BC1KX,MAA+C/3K,EAAQ,IAArDqM,EAAY,eAAWg8L,EAAiB,UACxC,EAAiBroM,EAAQ,IAAqB,aAChD,EAA0FA,EAAQ,IAAhGglC,EAAS,YAAEE,EAAQ,WAAEC,EAAiB,oBAAEI,EAAsB,yBAAEF,EAAmB,sBAErFijK,EAAkC,CACtC,QACA,MACA,OACA,WACA,kBAEIC,EAA6B,CACjC,SACA,WAEIC,EAAyB,CAC7B,SACA,UAGIC,EAAyC,GA6B/Ct7L,EAAOxe,QAvBP,WACE,IAAMy2C,EAAU/4B,IAIhB,IAAK+4B,EACH,OAAO,EAGT,IAAMsjK,EAAkBnjK,EAAuBH,GACzCujK,EAAetjK,EAAoBD,GACnCwjK,EAA0B5jK,IAC9BujK,EAA6BC,EAE/B,QAASpjK,GACJijK,KACmB,YAAnBh7J,OACEq7J,GAAmBJ,EAAgC35L,SAAS+5L,MAC7DvjK,EAAkBC,MACjBujK,GAAgBF,EAAuC95L,SAASg6L,OAChEzjK,KAAc0jK,EAAwBj6L,SAASy2B,GACxD,C,gBChDA,IAOIyjK,EACAC,EARAnrM,EAAUwP,EAAOxe,QAAU,CAAC,EAUhC,SAASo6M,IACL,MAAM,IAAI/1M,MAAM,kCACpB,CACA,SAASg2M,IACL,MAAM,IAAIh2M,MAAM,oCACpB,CAqBA,SAASi2M,EAAWC,GAChB,GAAIL,IAAqB1+L,WAErB,OAAOA,WAAW++L,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqB1+L,WAEhE,OADA0+L,EAAmB1+L,WACZA,WAAW++L,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,EASjC,CARE,MAAMlrM,GACJ,IAEI,OAAO6qM,EAAiB13M,KAAK,KAAM+3M,EAAK,EAI5C,CAHE,MAAMlrM,GAEJ,OAAO6qM,EAAiB13M,KAAKK,KAAM03M,EAAK,EAC5C,CACJ,CAGJ,EA5CC,WACG,IAEQL,EADsB,oBAAf1+L,WACYA,WAEA4+L,CAI3B,CAFE,MAAO/qM,GACL6qM,EAAmBE,CACvB,CACA,IAEQD,EADwB,oBAAjB5+L,aACcA,aAEA8+L,CAI7B,CAFE,MAAOhrM,GACL8qM,EAAqBE,CACzB,CACH,CAnBA,GAwED,IAEIG,EAFA7vI,EAAQ,GACR8vI,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAap0M,OACbukE,EAAQ6vI,EAAa3gM,OAAO8wD,GAE5B+vI,GAAc,EAEd/vI,EAAMvkE,QACNw0M,IAER,CAEA,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAItuM,EAAUmuM,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAIrmL,EAAMu2C,EAAMvkE,OACVguB,GAAK,CAGP,IAFAomL,EAAe7vI,EACfA,EAAQ,KACC+vI,EAAatmL,GACdomL,GACAA,EAAaE,GAAYG,MAGjCH,GAAc,EACdtmL,EAAMu2C,EAAMvkE,MAChB,CACAo0M,EAAe,KACfC,GAAW,EAnEf,SAAyBK,GACrB,GAAIX,IAAuB5+L,aAEvB,OAAOA,aAAau/L,GAGxB,IAAKX,IAAuBE,IAAwBF,IAAuB5+L,aAEvE,OADA4+L,EAAqB5+L,aACdA,aAAau/L,GAExB,IAEWX,EAAmBW,EAU9B,CATE,MAAOzrM,GACL,IAEI,OAAO8qM,EAAmB33M,KAAK,KAAMs4M,EAKzC,CAJE,MAAOzrM,GAGL,OAAO8qM,EAAmB33M,KAAKK,KAAMi4M,EACzC,CACJ,CAIJ,CA0CIC,CAAgB5uM,EAlBhB,CAmBJ,CAgBA,SAAS6uM,EAAKT,EAAKhoM,GACf1P,KAAK03M,IAAMA,EACX13M,KAAK0P,MAAQA,CACjB,CAWA,SAASs6B,IAAQ,CA5BjB79B,EAAQsM,SAAW,SAAUi/L,GACzB,IAAI7wM,EAAO,IAAI+G,MAAM9G,UAAUvD,OAAS,GACxC,GAAIuD,UAAUvD,OAAS,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIsD,UAAUvD,OAAQC,IAClCqD,EAAKrD,EAAI,GAAKsD,UAAUtD,GAGhCskE,EAAM9kE,KAAK,IAAIm1M,EAAKT,EAAK7wM,IACJ,IAAjBihE,EAAMvkE,QAAiBq0M,GACvBH,EAAWM,EAEnB,EAOAI,EAAK76M,UAAU06M,IAAM,WACjBh4M,KAAK03M,IAAI3wM,MAAM,KAAM/G,KAAK0P,MAC9B,EACAvD,EAAQy5C,MAAQ,UAChBz5C,EAAQynC,SAAU,EAClBznC,EAAQisM,IAAM,CAAC,EACfjsM,EAAQksM,KAAO,GACflsM,EAAQP,QAAU,GAClBO,EAAQE,SAAW,CAAC,EAIpBF,EAAQsJ,GAAKu0B,EACb79B,EAAQ04B,YAAcmF,EACtB79B,EAAQgN,KAAO6wB,EACf79B,EAAQi5B,IAAM4E,EACd79B,EAAQ8J,eAAiB+zB,EACzB79B,EAAQk5B,mBAAqB2E,EAC7B79B,EAAQ2T,KAAOkqB,EACf79B,EAAQ24B,gBAAkBkF,EAC1B79B,EAAQ44B,oBAAsBiF,EAE9B79B,EAAQy4B,UAAY,SAAU9gC,GAAQ,MAAO,EAAG,EAEhDqI,EAAQmsM,QAAU,SAAUx0M,GACxB,MAAM,IAAItC,MAAM,mCACpB,EAEA2K,EAAQosM,IAAM,WAAc,MAAO,GAAI,EACvCpsM,EAAQqsM,MAAQ,SAAUhrE,GACtB,MAAM,IAAIhsI,MAAM,iCACpB,EACA2K,EAAQssM,MAAQ,WAAa,OAAO,CAAG,C,kBCvL6B98L,EAAOxe,QAA8K,SAASqP,GAAG,aAAa,SAASkU,EAAElU,GAAG,OAAOA,GAAG,iBAAiBA,GAAG,YAAYA,EAAEA,EAAE,CAAC0N,QAAQ1N,EAAE,CAAC,IAAIhJ,EAAEkd,EAAElU,GAAG,SAASoU,EAAEpU,GAAG,OAAOA,EAAE,GAAG,GAAGA,EAAE,GAAG,MAAMA,EAAE,IAAI,IAAI,CAAC,CAAC,SAASwB,EAAExB,EAAEkU,EAAEld,GAAG,IAAIwK,EAAExB,EAAE,IAAI,OAAOhJ,GAAG,IAAI,IAAI,OAAOkd,EAAE,SAAS,cAAS,IAAI,KAAK,OAAO1S,GAAG4S,EAAEpU,GAAG,SAAS,SAAS,IAAI,IAAI,OAAOkU,EAAE,UAAU,eAAU,IAAI,KAAK,OAAO1S,GAAG4S,EAAEpU,GAAG,UAAU,UAAU,IAAI,KAAK,OAAOwB,GAAG4S,EAAEpU,GAAG,gBAAW,iBAAY,IAAI,KAAK,OAAOwB,GAAG4S,EAAEpU,GAAG,OAAO,OAAO,CAAC,IAAI4L,EAAE,+GAAqGlM,MAAM,KAAKzB,EAAE,iIAAmGyB,MAAM,KAAK6B,EAAE,SAAS+S,EAAE,SAAStU,EAAEkU,GAAG,OAAO3S,EAAEoV,KAAKzC,GAAGtI,EAAE5L,EAAEsV,SAASrX,EAAE+B,EAAEsV,QAAQ,EAAEhB,EAAE/S,EAAEtD,EAAEqW,EAAE5S,EAAEkK,EAAE,IAAI3K,EAAE,CAAC3J,KAAK,KAAKqd,SAAS,4EAA6DjV,MAAM,KAAKqa,cAAc,gCAA2Bra,MAAM,KAAKma,YAAY,4BAAuBna,MAAM,KAAKkV,OAAON,EAAEmF,YAAY,uDAAkD/Z,MAAM,KAAKmV,QAAQ,SAAS7U,GAAG,OAAOA,EAAE,GAAG,EAAE6Y,UAAU,EAAEqzL,UAAU,EAAEC,aAAa,CAACC,OAAO,QAAQC,KAAK,UAAU9qM,EAAE,eAAeuT,EAAEtT,EAAE6Y,GAAG7Y,EAAE6S,EAAE7S,EAAE2Y,GAAG3Y,EAAE8S,EAAE,eAAUsF,GAAG,SAASlF,EAAE,eAAU6E,GAAG/X,EAAEiT,EAAE,MAAM+N,GAAGhhB,GAAGq4D,QAAQ,CAACyyI,GAAG,QAAQC,IAAI,WAAWrtL,EAAE,aAAastL,GAAG,cAAcC,IAAI,oBAAoBC,KAAK,4BAA4B,OAAO11M,EAAE0W,QAAQuI,OAAOhV,EAAE,MAAK,GAAIA,CAAC,CAAjhDiT,CAAElS,EAAQ,I,kBCAzBmN,EAAOxe,QAA6I,WAAW,aAAa,MAAM,CAAC2G,KAAK,KAAKqd,SAAS,2DAA2DjV,MAAM,KAAKkV,OAAO,wFAAwFlV,MAAM,KAAKmV,QAAQ,SAAS7U,GAAG,IAAIwB,EAAE,CAAC,KAAK,KAAK,KAAK,MAAM0S,EAAElU,EAAE,IAAI,MAAM,IAAIA,GAAGwB,GAAG0S,EAAE,IAAI,KAAK1S,EAAE0S,IAAI1S,EAAE,IAAI,GAAG,EAAE,CAA3cA,E,yGCM7EmrM,EAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,MAGxDC,EAAsB,WAG/B,WAAYC,GAAsB,oBAC9Br5M,KAAKs5M,kBAA+Bp3M,IAAhBm3M,EAA4B,GAAH,mBAAOA,GAAW,CAAE,OAAQF,CAC7E,CAIC,OAJA,yDAEM,SAA6BI,GAChC,OAAOv5M,KAAKs5M,aAAaC,EAAaC,mBAC1C,KAAC,EAT8B,G,oDCHtBC,EAAU,kDAanB,WAAYC,EAAsBjwM,GAAkB,0BAChD,IAAMkwM,GAAY,2CAAWr8M,UAMF,OAL3B,wBAASo8M,EAAY,0BAAkBjwM,EAAU,OAC5CA,WAAaA,EAIlB,EAAKxF,UAAY01M,EAAU,CAC/B,CAAC,sBArBkB,CAqBlB,YArB0Bn4M,QAyBlBo4M,EAAa,kDAStB,aAAwD,MAA5CF,yDAAuB,sBAAqB,oBACpD,IAAMC,GAAY,2CAAWr8M,UAKF,OAJ3B,cAAMo8M,IAIDz1M,UAAY01M,EAAU,CAC/B,CAAC,sBAhBqB,CAgBrB,YAhB6Bn4M,QAoBrBq4M,EAAW,kDASpB,aAAuD,MAA3CH,yDAAuB,qBAAoB,oBACnD,IAAMC,GAAY,2CAAWr8M,UAKF,OAJ3B,cAAMo8M,IAIDz1M,UAAY01M,EAAU,CAC/B,CAAC,sBAhBmB,CAgBnB,YAhB2Bn4M,QAqBnBs4M,EAA0B,kDAgBnC,WAAY/uM,EAAiBqyK,GAA4B,0BACrD,IAAMu8B,GAAY,2CAAWr8M,UAOF,OAN3B,cAAMyN,IACDqyK,UAAYA,EACjB,EAAK28B,UAAY,4BAIjB,EAAK91M,UAAY01M,EAAU,CAC/B,CAAC,sBAzBkC,CAyBlC,YAzB0Cn4M,QA8BlCw4M,EAAuB,kDAgBhC,WAAYjvM,EAAiBqyK,GAA4B,0BACrD,IAAMu8B,GAAY,2CAAWr8M,UAOF,OAN3B,cAAMyN,IACDqyK,UAAYA,EACjB,EAAK28B,UAAY,yBAIjB,EAAK91M,UAAY01M,EAAU,CAC/B,CAAC,sBAzB+B,CAyB/B,YAzBuCn4M,QA8B/By4M,EAA4B,kDAgBrC,WAAYlvM,EAAiBqyK,GAA4B,0BACrD,IAAMu8B,GAAY,2CAAWr8M,UAOF,OAN3B,cAAMyN,IACDqyK,UAAYA,EACjB,EAAK28B,UAAY,8BAIjB,EAAK91M,UAAY01M,EAAU,CAC/B,CAAC,sBAzBoC,CAyBpC,YAzB4Cn4M,QA8BpC04M,EAAiC,kDAY1C,WAAYnvM,GAAe,0BACvB,IAAM4uM,GAAY,2CAAWr8M,UAMF,OAL3B,cAAMyN,IACDgvM,UAAY,mCAIjB,EAAK91M,UAAY01M,EAAU,CAC/B,CAAC,sBApByC,CAoBzC,YApBiDn4M,QAyBzC24M,EAAgB,kDAazB,WAAYpvM,EAAiBqvM,GAAoB,0BAC7C,IAAMT,GAAY,2CAAWr8M,UAOF,OAN3B,cAAMyN,IAEDqvM,YAAcA,EAInB,EAAKn2M,UAAY01M,EAAU,CAC/B,CAAC,sBAtBwB,CAsBxB,YAtBgCn4M,QCzJxB64M,EAAY,aAqCrB,WACoB5wM,EACAgpH,EACA7pH,GAA8B,oBAF9B,KAAAa,aACA,KAAAgpH,aACA,KAAA7pH,SACpB,IAOkB0xM,EAAU,4CAkF3B,OAlF2B,gCAerB,SAAI5xM,EAAaG,GACpB,OAAO7I,KAAKu8D,KAAK,2BACV1zD,GAAO,IACVrI,OAAQ,MACRkI,QAER,GAAC,kBAgBM,SAAKA,EAAaG,GACrB,OAAO7I,KAAKu8D,KAAK,2BACV1zD,GAAO,IACVrI,OAAQ,OACRkI,QAER,GAAC,oBAgBM,SAAOA,EAAaG,GACvB,OAAO7I,KAAKu8D,KAAK,2BACV1zD,GAAO,IACVrI,OAAQ,SACRkI,QAER,GAcA,6BACO,SAAgBA,GACnB,MAAO,EACX,KAAC,EAlF2B,G,cCvEnB6xM,EAAgB,kDAOzB,WAAmBhyM,GAAe,MAI9B,GAJ8B,qBAC9B,gBACKgjC,QAAUhjC,EAEM,qBAAV0pH,MAAuB,CAG9B,IAAMuoF,EAA0DC,QAGhE,EAAKC,KAAO,IAAKF,EAAY,gBAA0B,WACvD,EAAKG,WAAaH,EAAY,cAI9B,EAAKG,WAAaH,EAAY,eAAZA,CAA4B,EAAKG,WAAY,EAAKD,K,MAEpE,EAAKC,WAAa1oF,MAAMluF,KAAKr3B,eAEjC,GAA+B,qBAApBkuM,gBAAiC,CAGxC,IAAMJ,EAA0DC,QAGhE,EAAKI,qBAAuBL,EAAY,mB,MAExC,EAAKK,qBAAuBD,gBAC/B,QACL,CA+FC,OA7FD,kFACO,WAAWtqF,GAAoB,0GAE9BA,EAAQwqF,cAAexqF,EAAQwqF,YAAYC,QAAO,sBAC5C,IAAIlB,EAAY,UAGrBvpF,EAAQ9vH,OAAQ,CAAF,qBACT,IAAIgB,MAAM,sBAAqB,UAEpC8uH,EAAQ5nH,IAAK,CAAF,qBACN,IAAIlH,MAAM,mBAAkB,OAwBrC,OArBKw5M,EAAkB,IAAIh7M,KAAK66M,qBAI7BvqF,EAAQwqF,cACRxqF,EAAQwqF,YAAYG,QAAU,WAC1BD,EAAgBE,QAChB95M,EAAQ,IAAIy4M,CAChB,GAKAsB,EAAiB,KACjB7qF,EAAQhnH,UACF8xM,EAAY9qF,EAAQhnH,QAC1B6xM,EAAYxiM,YAAW,WACnBqiM,EAAgBE,QAChB,EAAK3vK,QAAQtiC,IAAIpD,IAASuF,QAAS,8BACnChK,EAAQ,IAAIw4M,CAChB,GAAGwB,IACN,oBAIoBp7M,KAAK26M,WAAWrqF,EAAQ5nH,IAAM,CAC3Cm5G,KAAMyO,EAAQ1nH,QACds9D,MAAO,WACP4qD,aAAyC,IAA5BR,EAAQ/mH,gBAA2B,UAAY,cAC5DT,QAAS,aACL,eAAgB,2BAChB,mBAAoB,kBACjBwnH,EAAQxnH,SAEftI,OAAQ8vH,EAAQ9vH,OAChBqwH,KAAM,OACNwqF,SAAU,SACVC,OAAQN,EAAgBM,SAC1B,QAbF9xM,EAAW,EAAH,4DAeJpI,EAAO,CAAF,sBACCA,EAAK,QAKb,MAHFpB,KAAKurC,QAAQtiC,IACTpD,IAASuF,QAAO,8CAElB,aAQD,OARC,UAGE+vM,GACAziM,aAAayiM,GAEb7qF,EAAQwqF,cACRxqF,EAAQwqF,YAAYG,QAAU,MACjC,wBAGAzxM,EAASk5C,GAAI,CAAF,iCACe64J,EAAmB/xM,EAAU,QAAiB,QAAvD,MAAZkwM,EAAe,EAAH,KACZ,IAAID,EAAUC,GAAgBlwM,EAASipH,WAAYjpH,EAAS+nH,QAAO,QAGX,OAA5D3oH,EAAU2yM,EAAmB/xM,EAAU8mH,EAAQlnH,cAAa,UAC5CR,EAAO,QAAhB,OAAPqI,EAAU,EAAH,uBAEN,IAAIopM,EACP7wM,EAAS+nH,OACT/nH,EAASipH,WACTxhH,IACH,iEACJ,mDApFD,IAoFC,6BAEM,SAAgBvI,GACnB,IAAI8yM,EAAkB,GAKtB,OAJIt0M,IAASqE,QAAUvL,KAAK06M,MAExB16M,KAAK06M,KAAKe,WAAW/yM,GAAK,SAAC8D,EAAG+L,GAAC,OAAKijM,EAAUjjM,EAAE+E,KAAK,KAAK,IAEvDk+L,CACX,KAAC,EAnIwB,CAAQlB,GAsIrC,SAASiB,EAAmB/xM,EAAoBJ,GAC5C,IAAIR,EACJ,OAAQQ,GACJ,IAAK,cACDR,EAAUY,EAASkyM,cACnB,MACJ,IAAK,OAOL,QACI9yM,EAAUY,EAASgpD,OACnB,MANJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAIhxD,MAAM,GAAD,OAAI4H,EAAY,uBAMvC,OAAOR,CACX,CC7JO,ICFK+yM,EAYAC,EDVCC,EAAc,kDAGvB,WAAmBtzM,GAAe,MAER,OAFQ,qBAC9B,gBACKgjC,QAAUhjC,EAAO,CAC1B,CAwEC,OAtED,iCACO,SAAK+nH,GAAoB,WAE5B,OAAIA,EAAQwqF,aAAexqF,EAAQwqF,YAAYC,QACpC32M,QAAQtD,OAAO,IAAI+4M,GAGzBvpF,EAAQ9vH,OAGR8vH,EAAQ5nH,IAIN,IAAItE,SAAsB,SAACvD,EAASC,GACvC,IAAMg7M,EAAM,IAAIrpK,eAEhBqpK,EAAIx9F,KAAKgS,EAAQ9vH,OAAS8vH,EAAQ5nH,KAAM,GACxCozM,EAAIvyM,qBAA8CrH,IAA5BouH,EAAQ/mH,iBAAuC+mH,EAAQ/mH,gBAC7EuyM,EAAIjpF,iBAAiB,mBAAoB,kBAEzCipF,EAAIjpF,iBAAiB,eAAgB,4BAErC,IAAM/pH,EAAUwnH,EAAQxnH,QACpBA,GACAzL,OAAOiH,KAAKwE,GACPvI,SAAQ,SAACw7M,GACND,EAAIjpF,iBAAiBkpF,EAAQjzM,EAAQizM,GACzC,IAGJzrF,EAAQlnH,eACR0yM,EAAI1yM,aAAeknH,EAAQlnH,cAG3BknH,EAAQwqF,cACRxqF,EAAQwqF,YAAYG,QAAU,WAC1Ba,EAAIZ,QACJp6M,EAAO,IAAI+4M,EACf,GAGAvpF,EAAQhnH,UACRwyM,EAAIxyM,QAAUgnH,EAAQhnH,SAG1BwyM,EAAIroD,OAAS,WACLnjC,EAAQwqF,cACRxqF,EAAQwqF,YAAYG,QAAU,MAG9Ba,EAAIvqF,QAAU,KAAOuqF,EAAIvqF,OAAS,IAClC1wH,EAAQ,IAAIw5M,EAAayB,EAAIvqF,OAAQuqF,EAAIrpF,WAAYqpF,EAAItyM,UAAYsyM,EAAI/oF,eAEzEjyH,EAAO,IAAI24M,EAAUqC,EAAItyM,UAAYsyM,EAAI/oF,cAAgB+oF,EAAIrpF,WAAYqpF,EAAIvqF,QAErF,EAEAuqF,EAAInoD,QAAU,WACV,EAAKpoH,QAAQtiC,IAAIpD,IAASuF,QAAS,4BAAF,OAA8B0wM,EAAIvqF,OAAM,aAAKuqF,EAAIrpF,WAAU,MAC5F3xH,EAAO,IAAI24M,EAAUqC,EAAIrpF,WAAYqpF,EAAIvqF,QAC7C,EAEAuqF,EAAIE,UAAY,WACZ,EAAKzwK,QAAQtiC,IAAIpD,IAASuF,QAAS,8BACnCtK,EAAO,IAAI84M,EACf,EAEAkC,EAAIv/I,KAAK+zD,EAAQ1nH,SAAW,GAChC,IA1DWxE,QAAQtD,OAAO,IAAIU,MAAM,oBAHzB4C,QAAQtD,OAAO,IAAIU,MAAM,sBA8DxC,KAAC,EA9EsB,CAAQ84M,GEItB2B,EAAkB,kDAI3B,WAAmB1zM,GAAe,MAG9B,GAH8B,oBAC9B,eAEqB,qBAAV0pH,OAAyB/qH,IAASqE,OACzC,EAAK2wM,YAAc,IAAI3B,EAAgBhyM,OACpC,IAA8B,qBAAnBkqC,eAGd,MAAM,IAAIjxC,MAAM,+BAFhB,EAAK06M,YAAc,IAAIL,EAActzM,E,CAGxC,QACL,CAqBC,OAnBD,iCACO,SAAK+nH,GAER,OAAIA,EAAQwqF,aAAexqF,EAAQwqF,YAAYC,QACpC32M,QAAQtD,OAAO,IAAI+4M,GAGzBvpF,EAAQ9vH,OAGR8vH,EAAQ5nH,IAIN1I,KAAKk8M,YAAY3/I,KAAK+zD,GAHlBlsH,QAAQtD,OAAO,IAAIU,MAAM,oBAHzB4C,QAAQtD,OAAO,IAAIU,MAAM,sBAOxC,GAAC,6BAEM,SAAgBkH,GACnB,OAAO1I,KAAKk8M,YAAYC,gBAAgBzzM,EAC5C,KAAC,EAnC0B,CAAQ4xM,GCRjB8B,EAAW,iDACbA,gBAAgB,gBAChBA,SAAS,SFA7B,SAAYT,GAERA,mBAEAA,+BAEAA,2CAEAA,gCACH,CATD,CAAYA,MAAiB,KAY7B,SAAYC,GAERA,mBAEAA,sBACH,CALD,CAAYA,MAAc,K,YGRbhB,EAAe,WAA5B,iCACY,KAAAyB,YAAsB,EACvB,KAAApB,QAA+B,IAkB1C,CADK,OACJ,kCAhBU,WACEj7M,KAAKq8M,aACNr8M,KAAKq8M,YAAa,EACdr8M,KAAKi7M,SACLj7M,KAAKi7M,UAGjB,GAAC,kBAED,WACI,OAAOj7M,IACX,GAAC,mBAED,WACI,OAAOA,KAAKq8M,UAChB,KAAC,EAnBuB,GCKfC,EAAoB,WAoB7B,WAAY7zM,EAAwBE,EAAkEJ,EAAiBM,GAA+B,oBAClJ7I,KAAKk8M,YAAczzM,EACnBzI,KAAKu8M,oBAAsB5zM,EAC3B3I,KAAKurC,QAAUhjC,EACfvI,KAAKw8M,WAAa,IAAI5B,EACtB56M,KAAKygH,SAAW53G,EAEhB7I,KAAK0zF,UAAW,EAEhB1zF,KAAKy8M,UAAY,KACjBz8M,KAAK08M,QAAU,IACnB,CA0LC,OA1MD,sCACA,WACI,OAAO18M,KAAKw8M,WAAWzB,OAC3B,GAAC,sEAeM,WAAcryM,EAAai0M,GAA8B,iGAS5D,GARA31M,IAAI41M,WAAWl0M,EAAK,OACpB1B,IAAI41M,WAAWD,EAAgB,kBAC/B31M,IAAI61M,KAAKF,EAAgBf,EAAgB,kBAEzC57M,KAAK88M,KAAOp0M,EAEZ1I,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,uCAG7ByzM,IAAmBf,EAAemB,QACP,qBAAnBtqK,gBAA+E,kBAAtC,IAAIA,gBAAiBrpC,aAA0B,sBAC1F,IAAI5H,MAAM,8FAA6F,OAehH,OAfgH,EAG3FwH,cAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KACZiL,EAAU,2BAAGhF,EAAOjG,GAAUmC,KAAKygH,SAAS33G,SAE5Ck0M,EAA2B,CAC7BlC,YAAa96M,KAAKw8M,WAAWlB,OAC7BxyM,UACAQ,QAAS,IACTC,gBAAiBvJ,KAAKygH,SAASl3G,iBAG/BozM,IAAmBf,EAAemB,SAClCC,EAAY5zM,aAAe,eAC9B,UAEmBpJ,KAAKi9M,kBAAiB,QAMuC,OAN3El0M,EAAQ,EAAH,KACX/I,KAAKk9M,mBAAmBF,EAAaj0M,GAI/Bo0M,EAAU,GAAH,OAAMz0M,EAAG,cAAMuC,KAAKg/B,OACjCjqC,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,oCAAF,OAAsCi0M,EAAO,MAAK,UAC1Dn9M,KAAKk8M,YAAYpmM,IAAIqnM,EAASH,GAAY,QACrC,OADtBxzM,EAAW,EAAH,MACDC,YACTzJ,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,qDAAF,OAAuDgI,EAASC,WAAU,MAGzGzJ,KAAKo9M,YAAc,IAAI3D,EAAUjwM,EAASipH,YAAc,GAAIjpH,EAASC,YACrEzJ,KAAK0zF,UAAW,GAEhB1zF,KAAK0zF,UAAW,EAGpB1zF,KAAKq9M,WAAar9M,KAAKs9M,MAAMt9M,KAAK88M,KAAME,GAAa,iDACxD,qDA/DA,IA+DA,8EAEO,4FACAh9M,KAAKu8M,oBAAqB,CAAF,+BACXv8M,KAAKu8M,sBAAqB,wEAGpC,MAAI,gDACd,kDARA,IAQA,gCAEO,SAAmBjsF,EAAsBvnH,GACxCunH,EAAQxnH,UACTwnH,EAAQxnH,QAAU,CAAC,GAEnBC,EACAunH,EAAQxnH,QAAQszM,EAAYmB,eAAiB,UAAH,OAAax0M,GAGvDunH,EAAQxnH,QAAQszM,EAAYmB,uBACrBjtF,EAAQxnH,QAAQszM,EAAYmB,cAE3C,GAAC,oEAEO,WAAY70M,EAAas0M,GAAwB,yGAE1Ch9M,KAAK0zF,SAAU,CAAF,gCAEI1zF,KAAKi9M,kBAAiB,OAK2C,OAL/El0M,EAAQ,EAAH,KACX/I,KAAKk9M,mBAAmBF,EAAaj0M,GAAO,SAGlCo0M,EAAU,GAAH,OAAMz0M,EAAG,cAAMuC,KAAKg/B,OACjCjqC,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,oCAAF,OAAsCi0M,EAAO,MAAK,UAC1Dn9M,KAAKk8M,YAAYpmM,IAAIqnM,EAASH,GAAY,QAErC,OAFtBxzM,EAAW,EAAH,MAEDC,YACTzJ,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,sDAEvC5J,KAAK0zF,UAAW,GACe,MAAxBlqF,EAASC,YAChBzJ,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,qDAAF,OAAuDgI,EAASC,WAAU,MAGzGzJ,KAAKo9M,YAAc,IAAI3D,EAAUjwM,EAASipH,YAAc,GAAIjpH,EAASC,YACrEzJ,KAAK0zF,UAAW,GAGZlqF,EAASZ,SACT5I,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,0CAAF,OAA4C1B,YAAcgC,EAASZ,QAAS5I,KAAKygH,SAASt3G,mBAAmB,MACxInJ,KAAKy8M,WACLz8M,KAAKy8M,UAAUjzM,EAASZ,UAI5B5I,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,sDAExC,kDAEIlJ,KAAK0zF,SAIF,gBAAakmH,EAEb55M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,uDAGjClJ,KAAKo9M,YAAc,EAAH,GAChBp9M,KAAK0zF,UAAW,GARpB1zF,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,wDAAF,OAA0D,KAAE6B,UAU9F,+BAUR,OAVQ,UAIT/K,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,6CAI5BlJ,KAAKw9M,aACNx9M,KAAKy9M,gBACR,kFAER,qDA7DA,IA6DA,mEAEM,WAAWh2M,GAAS,8EAClBzH,KAAK0zF,SAAU,CAAF,wCACPtvF,QAAQtD,OAAO,IAAIU,MAAM,kDAAgD,gCAE7E8G,YAAYtI,KAAKurC,QAAS,cAAevrC,KAAKk8M,YAAal8M,KAAK88M,KAAO98M,KAAKu8M,oBAAqB90M,EAAMzH,KAAKygH,WAAS,gDAC/H,mDAPA,IAOA,mEAEM,0GAKqB,OAJxBzgH,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,6CAGjClJ,KAAK0zF,UAAW,EAChB1zF,KAAKw8M,WAAWtB,QAAQ,kBAGdl7M,KAAKq9M,WAAU,OAapB,OAVDr9M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,qDAAF,OAAuDlJ,KAAK88M,KAAI,MAEzFh0M,EAAiC,CAAC,EAAC,EACnBE,cAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KAClBiL,EAAQhF,GAAQjG,EAEV6/M,EAA6B,CAC/B50M,QAAS,2BAAKA,GAAY9I,KAAKygH,SAAS33G,SACxCQ,QAAStJ,KAAKygH,SAASn3G,QACvBC,gBAAiBvJ,KAAKygH,SAASl3G,iBAClC,UACmBvJ,KAAKi9M,kBAAiB,QACI,OADxCl0M,EAAQ,EAAH,KACX/I,KAAKk9M,mBAAmBQ,EAAe30M,GAAO,UACxC/I,KAAKk8M,YAAYnmK,OAAO/1C,KAAK88M,KAAOY,GAAc,QAExD19M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,gDAAgD,QAM5D,OAN4D,UAEjFlJ,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,0CAIjClJ,KAAKy9M,gBAAgB,2EAE5B,kDApCA,IAoCA,2BAEO,WACJ,GAAIz9M,KAAK08M,QAAS,CACd,IAAIiB,EAAa,gDACb39M,KAAKo9M,cACLO,GAAc,WAAa39M,KAAKo9M,aAEpCp9M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAOy0M,GACjC39M,KAAK08M,QAAQ18M,KAAKo9M,Y,CAE1B,KAAC,EAzN4B,GCHpBQ,EAAyB,WAWlC,WAAYn1M,EAAwBE,EAAkEJ,EAC1FM,GAA+B,oBACvC7I,KAAKk8M,YAAczzM,EACnBzI,KAAKu8M,oBAAsB5zM,EAC3B3I,KAAKurC,QAAUhjC,EACfvI,KAAKygH,SAAW53G,EAEhB7I,KAAKy8M,UAAY,KACjBz8M,KAAK08M,QAAU,IACnB,CAmGC,OAnGA,qFAEM,WAAch0M,EAAai0M,GAA8B,wFAQ5C,GAPhB31M,IAAI41M,WAAWl0M,EAAK,OACpB1B,IAAI41M,WAAWD,EAAgB,kBAC/B31M,IAAI61M,KAAKF,EAAgBf,EAAgB,kBAEzC57M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,+BAGjClJ,KAAK88M,KAAOp0M,GAER1I,KAAKu8M,oBAAqB,CAAF,gCACJv8M,KAAKu8M,sBAAqB,QAAxCxzM,EAAQ,EAAH,QAEPL,IAAQA,EAAI2B,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAJ,OAAoBwS,mBAAmB9T,KAClF,iCAGE,IAAI3E,SAAc,SAACvD,EAASC,GAC/B,IAAI+8M,GAAS,EACb,GAAIlB,IAAmBf,EAAekC,KAAtC,CAKA,IAAIC,EACJ,GAAI72M,IAASG,WAAaH,IAASI,YAC/By2M,EAAc,IAAI,EAAKt9F,SAASu9F,YAAat1M,EAAK,CAAEa,gBAAiB,EAAKk3G,SAASl3G,sBAChF,CAEH,IAAMiyM,EAAU,EAAKU,YAAYC,gBAAgBzzM,GAC3CI,EAA0B,CAAC,EACjCA,EAAQm1M,OAASzC,EACjB,MAAsBxyM,cAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KAClBiL,EAAQhF,GAAQjG,EAEhBkgN,EAAc,IAAI,EAAKt9F,SAASu9F,YAAat1M,EAAK,CAAEa,gBAAiB,EAAKk3G,SAASl3G,gBAAiBT,QAAS,2BAAKA,GAAY,EAAK23G,SAAS33G,U,CAGhJ,IACIi1M,EAAYG,UAAY,SAAC1xM,GACrB,GAAI,EAAKiwM,UACL,IACI,EAAKlxK,QAAQtiC,IAAIpD,IAASqD,MAAO,kCAAF,OAAoC1B,YAAcgF,EAAE/E,KAAM,EAAKg5G,SAASt3G,mBAAmB,MAC1H,EAAKszM,UAAUjwM,EAAE/E,K,CACnB,MAAOrG,GAEL,YADA,EAAK2+G,OAAO3+G,E,CAIxB,EAGA28M,EAAYpqD,QAAU,SAACnnJ,GAEfqxM,EACA,EAAK99F,SAELj/G,EAAO,IAAIU,MAAM,gQAIzB,EAEAu8M,EAAYI,OAAS,WACjB,EAAK5yK,QAAQtiC,IAAIpD,IAAS+D,YAAa,oBAAF,OAAsB,EAAKkzM,OAChE,EAAKsB,aAAeL,EACpBF,GAAS,EACTh9M,GACJ,C,CACF,MAAO2L,GAEL,YADA1L,EAAO0L,E,OAlDP1L,EAAO,IAAIU,MAAM,6EAqDzB,KAAE,iDACL,qDA5EA,IA4EA,mEAEM,WAAWiG,GAAS,8EAClBzH,KAAKo+M,aAAc,CAAF,wCACXh6M,QAAQtD,OAAO,IAAIU,MAAM,kDAAgD,gCAE7E8G,YAAYtI,KAAKurC,QAAS,MAAOvrC,KAAKk8M,YAAal8M,KAAK88M,KAAO98M,KAAKu8M,oBAAqB90M,EAAMzH,KAAKygH,WAAS,gDACvH,mDAPA,IAOA,kBAEM,WAEH,OADAzgH,KAAK+/G,SACE37G,QAAQvD,SACnB,GAAC,oBAEO,SAAO2L,GACPxM,KAAKo+M,eACLp+M,KAAKo+M,aAAa7kK,QAClBv5C,KAAKo+M,kBAAel8M,EAEhBlC,KAAK08M,SACL18M,KAAK08M,QAAQlwM,GAGzB,KAAC,EAvHiC,GCCzB6xM,EAAkB,WAY3B,WAAY51M,EAAwBE,EAAkEJ,EAC1FY,EAA4Bm1M,EAA4Cx1M,GAAuB,oBACvG9I,KAAKurC,QAAUhjC,EACfvI,KAAKu8M,oBAAsB5zM,EAC3B3I,KAAKu+M,mBAAqBp1M,EAC1BnJ,KAAKw+M,sBAAwBF,EAC7Bt+M,KAAKk8M,YAAczzM,EAEnBzI,KAAKy8M,UAAY,KACjBz8M,KAAK08M,QAAU,KACf18M,KAAKy+M,SAAW31M,CACpB,CAgJC,OAhJA,qFAEM,WAAcJ,EAAai0M,GAA8B,wFAIW,GAHvE31M,IAAI41M,WAAWl0M,EAAK,OACpB1B,IAAI41M,WAAWD,EAAgB,kBAC/B31M,IAAI61M,KAAKF,EAAgBf,EAAgB,kBACzC57M,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,uCAE7BlJ,KAAKu8M,oBAAqB,CAAF,+BACJv8M,KAAKu8M,sBAAqB,QAAxCxzM,EAAQ,EAAH,QAEPL,IAAQA,EAAI2B,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAJ,OAAoBwS,mBAAmB9T,KAClF,gCAGE,IAAI3E,SAAc,SAACvD,EAASC,GAE/B,IAAI49M,EADJh2M,EAAMA,EAAIyP,QAAQ,QAAS,MAE3B,IAAMqjM,EAAU,EAAKU,YAAYC,gBAAgBzzM,GAC7Cm1M,GAAS,EAEb,GAAI32M,IAASqE,OAAQ,CACjB,IAAMzC,EAAiC,CAAC,EACxC,EAAsBE,cAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KAClBiL,EAAQhF,GAAQjG,EAEZ29M,IACA1yM,EAAQszM,EAAY6B,QAAU,GAAH,OAAMzC,IAIrCkD,EAAY,IAAI,EAAKF,sBAAsB91M,OAAKxG,EAAW,CACvD4G,QAAS,2BAAKA,GAAY,EAAK21M,W,CAIlCC,IAEDA,EAAY,IAAI,EAAKF,sBAAsB91M,IAG3Ci0M,IAAmBf,EAAemB,SAClC2B,EAAUtd,WAAa,eAG3Bsd,EAAUP,OAAS,SAACQ,GAChB,EAAKpzK,QAAQtiC,IAAIpD,IAAS+D,YAAa,0BAAF,OAA4BlB,EAAG,MACpE,EAAKk2M,WAAaF,EAClBb,GAAS,EACTh9M,GACJ,EAEA69M,EAAU/qD,QAAU,SAACh+I,GACjB,IAAIvU,EAAa,KAGbA,EADsB,qBAAfy9M,YAA8BlpM,aAAiBkpM,WAC9ClpM,EAAMvU,MAEN,wCAGZ,EAAKmqC,QAAQtiC,IAAIpD,IAAS+D,YAAa,0BAAF,OAA4BxI,EAAK,KAC1E,EAEAs9M,EAAUR,UAAY,SAACnzM,GAEnB,GADA,EAAKwgC,QAAQtiC,IAAIpD,IAASqD,MAAO,yCAAF,OAA2C1B,YAAcuD,EAAQtD,KAAM,EAAK82M,oBAAmB,MAC1H,EAAK9B,UACL,IACI,EAAKA,UAAU1xM,EAAQtD,K,CACzB,MAAOrG,GAEL,YADA,EAAK2+G,OAAO3+G,E,CAIxB,EAEAs9M,EAAUhC,QAAU,SAAC/mM,GAGjB,GAAIkoM,EACA,EAAK99F,OAAOpqG,OACT,CACH,IAAIvU,EAAa,KAGbA,EADsB,qBAAfy9M,YAA8BlpM,aAAiBkpM,WAC9ClpM,EAAMvU,MAEN,iSAMZN,EAAO,IAAIU,MAAMJ,G,CAEzB,CACJ,KAAE,iDACL,qDAjGA,IAiGA,kBAEM,SAAKqG,GACR,OAAIzH,KAAK4+M,YAAc5+M,KAAK4+M,WAAWz7J,aAAenjD,KAAKw+M,sBAAsBp8F,MAC7EpiH,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,wCAAF,OAA0C1B,YAAcC,EAAMzH,KAAKu+M,oBAAmB,MACrHv+M,KAAK4+M,WAAWriJ,KAAK90D,GACdrD,QAAQvD,WAGZuD,QAAQtD,OAAO,qCAC1B,GAAC,kBAEM,WAOH,OANId,KAAK4+M,YAGL5+M,KAAK+/G,YAAO79G,GAGTkC,QAAQvD,SACnB,GAAC,oBAEO,SAAO8U,GAEP3V,KAAK4+M,aAEL5+M,KAAK4+M,WAAWlC,QAAU,WAAO,EACjC18M,KAAK4+M,WAAWV,UAAY,WAAO,EACnCl+M,KAAK4+M,WAAWjrD,QAAU,WAAO,EACjC3zJ,KAAK4+M,WAAWrlK,QAChBv5C,KAAK4+M,gBAAa18M,GAGtBlC,KAAKurC,QAAQtiC,IAAIpD,IAASqD,MAAO,yCAC7BlJ,KAAK08M,WACD18M,KAAK8+M,cAAcnpM,KAA8B,IAAnBA,EAAMopM,UAAqC,MAAfppM,EAAM64B,KAEzD74B,aAAiBnU,MACxBxB,KAAK08M,QAAQ/mM,GAEb3V,KAAK08M,UAJL18M,KAAK08M,QAAQ,IAAIl7M,MAAM,sCAAD,OAAuCmU,EAAM64B,KAAI,aAAK74B,EAAMm/D,QAAU,kBAAiB,QAOzH,GAAC,2BAEO,SAAcn/D,GAClB,OAAOA,GAAmC,mBAAnBA,EAAMopM,UAAgD,kBAAfppM,EAAM64B,IACxE,KAAC,EAvK0B,GCgClBwwK,EAAc,WA0BvB,WAAYt2M,GAAiD,IAApCG,yDAAkC,CAAC,EAQxD,GARyD,oBAbrD,KAAAo2M,qBAA4D,WAAO,EAK3D,KAAAC,SAAgB,CAAC,EAMhB,KAAAC,kBAA4B,EAGzCn4M,IAAI41M,WAAWl0M,EAAK,OAEpB1I,KAAKurC,QAAU7hC,YAAab,EAAQN,QACpCvI,KAAKo/M,QAAUp/M,KAAKq/M,YAAY32M,IAEhCG,EAAUA,GAAW,CAAC,GACdM,uBAAkDjH,IAA9B2G,EAAQM,mBAA0CN,EAAQM,kBAC/C,mBAA5BN,EAAQU,sBAA6DrH,IAA5B2G,EAAQU,gBAGxD,MAAM,IAAI/H,MAAM,mEAFhBqH,EAAQU,qBAA8CrH,IAA5B2G,EAAQU,iBAAuCV,EAAQU,gBAIrFV,EAAQS,aAA8BpH,IAApB2G,EAAQS,QAAwB,IAAaT,EAAQS,QAEvE,IAAIg2M,EAAuB,KACvBC,EAAyB,KAE7B,GAAIr4M,IAASqE,OAA0C,CAGnD,IAAMivM,EAA0DC,QAChE6E,EAAkB9E,EAAY,MAC9B+E,EAAoB/E,EAAY,c,CAG/BtzM,IAASqE,QAA+B,qBAAdwzG,WAA8Bl2G,EAAQk2G,UAE1D73G,IAASqE,SAAW1C,EAAQk2G,WAC/BugG,IACAz2M,EAAQk2G,UAAYugG,GAHxBz2M,EAAQk2G,UAAYA,UAOnB73G,IAASqE,QAAiC,qBAAhByyM,aAAgCn1M,EAAQm1M,YAE5D92M,IAASqE,SAAW1C,EAAQm1M,aACF,qBAAtBuB,IACP12M,EAAQm1M,YAAcuB,GAH1B12M,EAAQm1M,YAAcA,YAO1Bh+M,KAAKk8M,YAAcrzM,EAAQJ,YAAc,IAAIwzM,EAAkBj8M,KAAKurC,SACpEvrC,KAAK0vL,iBAAmB,eACxB1vL,KAAKw/M,oBAAqB,EAC1Bx/M,KAAKygH,SAAW53G,EAEhB7I,KAAKy8M,UAAY,KACjBz8M,KAAK08M,QAAU,IACnB,CA8bC,OA9bA,mFAIM,WAAYC,GAA+B,mFAKoE,GAJlHA,EAAiBA,GAAkBf,EAAemB,OAElD/1M,IAAI61M,KAAKF,EAAgBf,EAAgB,kBAEzC57M,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,6CAAF,OAA+C7D,EAAee,GAAe,OAE9E,iBAA1B38M,KAAK0vL,iBAAgB,yCACdtrL,QAAQtD,OAAO,IAAIU,MAAM,6EAA2E,OAK9C,OAFjExB,KAAK0vL,iBAAmB,aAExB1vL,KAAK0/M,sBAAwB1/M,KAAK2/M,eAAehD,GAAgB,SAC3D38M,KAAK0/M,sBAAqB,UAGK,kBAAjC1/M,KAAK0vL,iBAAuB,iBAK5B,OAHM3kL,EAAU,+DAChB/K,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOuJ,GAEjC,UACM/K,KAAK4/M,aAAY,iCAEhBx7M,QAAQtD,OAAO,IAAIU,MAAMuJ,KAAS,WACD,cAAjC/K,KAAK0vL,iBAAuB,iBAGO,OADpC3kL,EAAU,8GAChB/K,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOuJ,GAAS,kBACnC3G,QAAQtD,OAAO,IAAIU,MAAMuJ,KAAS,QAG7C/K,KAAKw/M,oBAAqB,EAAK,iDAClC,mDAtCA,IAsCA,kBAEM,SAAK/3M,GACR,MAA8B,cAA1BzH,KAAK0vL,iBACEtrL,QAAQtD,OAAO,IAAIU,MAAM,yEAG/BxB,KAAK6/M,aACN7/M,KAAK6/M,WAAa,IAAIC,EAAmB9/M,KAAKo9K,YAI3Cp9K,KAAK6/M,WAAWtjJ,KAAK90D,GAChC,GAAC,mEAEM,WAAWrG,GAAa,yFACG,iBAA1BpB,KAAK0vL,iBAAgB,gBAC0H,OAA/I1vL,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,+BAAF,OAAiCr+M,EAAK,2EAA0E,kBACxIgD,QAAQvD,WAAS,UAGE,kBAA1Bb,KAAK0vL,iBAAgB,gBAC2H,OAAhJ1vL,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,+BAAF,OAAiCr+M,EAAK,4EAA2E,kBACzIpB,KAAK4/M,cAAY,OAU5B,OAPA5/M,KAAK0vL,iBAAmB,gBAExB1vL,KAAK4/M,aAAe,IAAIx7M,SAAQ,SAACvD,GAE7B,EAAKo+M,qBAAuBp+M,CAChC,IAEA,UACMb,KAAK+/M,cAAc3+M,GAAM,yBACzBpB,KAAK4/M,aAAY,iDAC1B,mDAvBA,IAuBA,4EAEO,WAAoBx+M,GAAa,2EAIb,OAAxBpB,KAAKggN,WAAa5+M,EAAM,kBAGdpB,KAAK0/M,sBAAqB,iEAQhC1/M,KAAKo9K,UAAW,CAAF,0CAEJp9K,KAAKo9K,UAAUr4K,OAAM,0DAE3B/E,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,gDAAF,mBAC/BxB,KAAKigN,kBAAkB,QAG3BjgN,KAAKo9K,eAAYl7K,EAAU,wBAE3BlC,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,0FAA0F,gEAElI,mDA7BA,IA6BA,6EAEO,WAAqB9C,GAA8B,4FAIK,GADxDj0M,EAAM1I,KAAKo/M,QACfp/M,KAAKu8M,oBAAsBv8M,KAAKygH,SAAS93G,mBAAmB,UAGpD3I,KAAKygH,SAASy/F,gBAAiB,CAAF,mBACzBlgN,KAAKygH,SAAS28D,YAAcu+B,EAAkBwE,WAAU,iBAIxD,OAFAngN,KAAKo9K,UAAYp9K,KAAKogN,oBAAoBzE,EAAkBwE,YAE5D,SACMngN,KAAKqgN,gBAAgB33M,EAAKi0M,GAAe,qCAEzC,IAAIn7M,MAAM,gFAA+E,gCAG/F8+M,EAA+C,KAC/CC,EAAY,EAAC,yBAGavgN,KAAKwgN,wBAAwB93M,GAAI,QAA1C,GAAjB43M,EAAoB,EAAH,KAEa,kBAA1BtgN,KAAK0vL,kBAAgF,iBAA1B1vL,KAAK0vL,iBAAgB,uBAC1E,IAAIluL,MAAM,kDAAiD,YAGjE8+M,EAAkBl/M,MAAO,CAAF,sBACjB,IAAII,MAAM8+M,EAAkBl/M,OAAM,YAGvCk/M,EAA0BG,gBAAiB,CAAF,sBACpC,IAAIj/M,MAAM,gMAA+L,QAG/M8+M,EAAkB53M,MAClBA,EAAM43M,EAAkB53M,KAGxB43M,EAAkB1N,aAAa,WAG/B,IAAMA,EAAc0N,EAAkB1N,YACtC,EAAK2J,oBAAsB,kBAAM3J,CAAW,CAAC,CAJd,GAOnC2N,IAAY,WAETD,EAAkB53M,KAAO63M,EAxO1B,IAwOmD,4BAxOnD,MA0OFA,IAA+BD,EAAkB53M,IAAG,uBAC9C,IAAIlH,MAAM,yCAAwC,yBAGtDxB,KAAK0gN,iBAAiBh4M,EAAK1I,KAAKygH,SAAS28D,UAAWkjC,EAAmB3D,GAAe,QAG5F38M,KAAKo9K,qBAAqBk/B,IAC1Bt8M,KAAKk/M,SAASyB,mBAAoB,GAGR,eAA1B3gN,KAAK0vL,mBAGL1vL,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,8CACjCz/M,KAAK0vL,iBAAmB,aAK5B,wBAO4B,OAP5B,0BAEA1vL,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,mCAAqC,EAAH,IACnExB,KAAK0vL,iBAAmB,eACxB1vL,KAAKo9K,eAAYl7K,EAGjBlC,KAAKi/M,uBAAuB,kBACrB76M,QAAQtD,OAAO,EAAD,KAAG,0DAE/B,mDAnFA,IAmFA,sFAEO,WAA8B4H,GAAW,mGACJ,GAAnCI,EAAiC,CAAC,GACpC9I,KAAKu8M,oBAAqB,CAAF,+BACJv8M,KAAKu8M,sBAAqB,QAAxCxzM,EAAQ,EAAH,QAEPD,EAAQszM,EAAYmB,eAAiB,UAAH,OAAax0M,IAClD,OAO6E,OAP7E,EAGiBC,cAAoB,mBAAnClF,EAAI,KAAEjG,EAAK,KAClBiL,EAAQhF,GAAQjG,EAEV+iN,EAAe5gN,KAAK6gN,qBAAqBn4M,GAC/C1I,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,gCAAF,OAAkCmB,EAAY,MAAK,oBAEvD5gN,KAAKk8M,YAAY7yM,KAAKu3M,EAAc,CACvDh4M,QAAS,GACTE,QAAS,2BAAKA,GAAY9I,KAAKygH,SAAS33G,SACxCQ,QAAStJ,KAAKygH,SAASn3G,QACvBC,gBAAiBvJ,KAAKygH,SAASl3G,kBACjC,QALY,GAOc,OAPtBC,EAAW,EAAH,MAODC,WAAkB,0CACpBrF,QAAQtD,OAAO,IAAIU,MAAM,mDAAD,OAAoDgI,EAASC,WAAU,QAAK,QAQ9G,SALK62M,EAAoBltM,KAAK4P,MAAMxZ,EAASZ,UACvBk4M,kBAAoBR,EAAkBQ,iBAAmB,KAG5ER,EAAkBS,gBAAkBT,EAAkBU,cACzD,kBACMV,GAAiB,QAQuB,OARvB,2BAEpB5G,EAAe,mDAAqD,EAAH,GACjE,gBAAaD,GACQ,MAAjB,KAAEhwM,aACFiwM,GAA8B,uFAGtC15M,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOk4M,GAAc,kBAExCt1M,QAAQtD,OAAO,IAAIo5M,EAAiCR,KAAc,2DAEhF,mDA9CA,IA8CA,+BAEO,SAAkBhxM,EAAaq4M,GACnC,OAAKA,EAIEr4M,IAA6B,IAAtBA,EAAI2B,QAAQ,KAAc,IAAM,KAAO,MAAH,OAAS02M,GAHhDr4M,CAIf,GAAC,+EAEO,WAAuBA,EAAau4M,EAAgEX,EAAuCY,GAAuC,iGACvG,GAA3EC,EAAanhN,KAAKohN,kBAAkB14M,EAAK43M,EAAkBS,kBAC3D/gN,KAAKqhN,cAAcJ,GAAqB,CAAF,eAEF,OADpCjhN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,2EACjCz/M,KAAKo9K,UAAY6jC,EAAmB,SAC9BjhN,KAAKqgN,gBAAgBc,EAAYD,GAAwB,OAEZ,OAAnDlhN,KAAKghN,aAAeV,EAAkBU,aAAa,0BAIjDM,EAA6B,GAC7B3vM,EAAa2uM,EAAkBiB,qBAAuB,GACxDC,EAA4ClB,EAAiB,cAC1C3uM,GAAU,2DACgF,GADtG8vM,EAAQ,WACTC,EAAmB1hN,KAAK2hN,yBAAyBF,EAAUR,EAAoBC,cACrD1/M,OAAK,iBAEjC8/M,EAAoBt+M,KAAK,GAAD,OAAIy+M,EAASrkC,UAAS,aAC9CkkC,EAAoBt+M,KAAK0+M,GAAkB,4BACpC1hN,KAAKqhN,cAAcK,GAAmB,CAAF,gBACT,GAAlC1hN,KAAKo9K,UAAYskC,EACZF,EAAW,CAAF,2CAEYxhN,KAAKwgN,wBAAwB93M,GAAI,QAAnD84M,EAAY,EAAH,iFAEFp9M,QAAQtD,OAAO,EAAD,KAAI,QAE7BqgN,EAAanhN,KAAKohN,kBAAkB14M,EAAK84M,EAAUT,iBAAiB,mCAG9D/gN,KAAKqgN,gBAAgBc,EAAYD,GAAwB,QACpB,OAA3ClhN,KAAKghN,aAAeQ,EAAUR,aAAa,2BAK6F,GAL7F,2BAG3ChhN,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,kCAAF,OAAoCigN,EAASrkC,UAAS,qBACrFokC,OAAYt/M,EACZo/M,EAAoBt+M,KAAK,IAAIi3M,EAA4B,GAAD,OAAIwH,EAASrkC,UAAS,0BAAkBu+B,EAAkB8F,EAASrkC,aAE7F,eAA1Bp9K,KAAK0vL,iBAAgB,iBAEqB,OADpC3kL,EAAU,uDAChB/K,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO10M,GAAS,kBACnC3G,QAAQtD,OAAO,IAAIU,MAAMuJ,KAAS,sJAMrDu2M,EAAoB/9M,OAAS,GAAC,0CACvBa,QAAQtD,OAAO,IAAIq5M,EAAgB,yEAAD,OAA0EmH,EAAoBhkM,KAAK,MAAQgkM,KAAqB,iCAEtKl9M,QAAQtD,OAAO,IAAIU,MAAM,iFAA+E,iFAClH,yDAtDA,IAsDA,iCAEO,SAAoB47K,GACxB,OAAQA,GACJ,KAAKu+B,EAAkBwE,WACnB,IAAKngN,KAAKygH,SAAS1B,UACf,MAAM,IAAIv9G,MAAM,qDAEpB,OAAO,IAAI68M,EAAmBr+M,KAAKk8M,YAAal8M,KAAKu8M,oBAAqBv8M,KAAKurC,QAASvrC,KAAKygH,SAASt3G,kBAAoBnJ,KAAKygH,SAAS1B,UAAW/+G,KAAKygH,SAAS33G,SAAW,CAAC,GACjL,KAAK6yM,EAAkBiG,iBACnB,IAAK5hN,KAAKygH,SAASu9F,YACf,MAAM,IAAIx8M,MAAM,uDAEpB,OAAO,IAAIo8M,EAA0B59M,KAAKk8M,YAAal8M,KAAKu8M,oBAAqBv8M,KAAKurC,QAASvrC,KAAKygH,UACxG,KAAKk7F,EAAkBkG,YACnB,OAAO,IAAIvF,EAAqBt8M,KAAKk8M,YAAal8M,KAAKu8M,oBAAqBv8M,KAAKurC,QAASvrC,KAAKygH,UACnG,QACI,MAAM,IAAIj/G,MAAM,sBAAD,OAAuB47K,EAAS,MAE3D,GAAC,6BAEO,SAAgB10K,EAAai0M,GAA8B,WAG/D,OAFA38M,KAAKo9K,UAAWq/B,UAAYz8M,KAAKy8M,UACjCz8M,KAAKo9K,UAAWs/B,QAAU,SAAClwM,GAAC,OAAK,EAAKyzM,gBAAgBzzM,EAAE,EACjDxM,KAAKo9K,UAAWhhI,QAAQ1zC,EAAKi0M,EACxC,GAAC,sCAEO,SAAyB8E,EAA+BR,EAAmDC,GAC/G,IAAM9jC,EAAYu+B,EAAkB8F,EAASrkC,WAC7C,GAAkB,OAAdA,QAAoCl7K,IAAdk7K,EAEtB,OADAp9K,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,uBAAF,OAAyBgC,EAASrkC,UAAS,kDACnE,IAAI57K,MAAM,uBAAD,OAAwBigN,EAASrkC,UAAS,kDAE1D,IA0HZ,SAA0B6jC,EAAmDa,GACzE,OAAQb,GAAkE,KAA1Ca,EAAkBb,EACtD,CA5HgBc,CAAiBd,EAAoB7jC,GAqBrC,OADAp9K,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,uBAAF,OAAyB9D,EAAkBv+B,GAAU,6CAC7E,IAAI48B,EAAuB,IAAD,OAAK2B,EAAkBv+B,GAAU,gCAAgCA,GAnBlG,KADwBqkC,EAASO,gBAAgBryM,KAAI,SAAC5B,GAAC,OAAK6tM,EAAe7tM,EAAE,IACzD1D,QAAQ62M,IAA4B,GAepD,OADAlhN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,uBAAF,OAAyB9D,EAAkBv+B,GAAU,wEAAgEw+B,EAAesF,GAAwB,OACpL,IAAI1/M,MAAM,IAAD,OAAKm6M,EAAkBv+B,GAAU,8BAAsBw+B,EAAesF,GAAwB,MAd9G,GAAK9jC,IAAcu+B,EAAkBwE,aAAengN,KAAKygH,SAAS1B,WAC7Dq+D,IAAcu+B,EAAkBiG,mBAAqB5hN,KAAKygH,SAASu9F,YAEpE,OADAh+M,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,uBAAF,OAAyB9D,EAAkBv+B,GAAU,wDAC7E,IAAI08B,EAA0B,IAAD,OAAK6B,EAAkBv+B,GAAU,2CAA2CA,GAEhHp9K,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,wBAAF,OAA0B9D,EAAkBv+B,GAAU,OACrF,IACI,OAAOp9K,KAAKogN,oBAAoBhjC,E,CAClC,MAAOjlI,GACL,OAAOA,C,CAY/B,GAAC,2BAEO,SAAcilI,GAClB,OAAOA,GAAoC,kBAAfA,GAA2B,YAAaA,CACxE,GAAC,6BAEO,SAAgBh8K,GAAa,WASjC,GARApB,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,iCAAF,OAAmCr+M,EAAK,mCAA2BpB,KAAK0vL,iBAAgB,MAEvH1vL,KAAKo9K,eAAYl7K,EAGjBd,EAAQpB,KAAKggN,YAAc5+M,EAC3BpB,KAAKggN,gBAAa99M,EAEY,iBAA1BlC,KAAK0vL,iBAAT,CAKA,GAA8B,eAA1B1vL,KAAK0vL,iBAEL,MADA1vL,KAAKurC,QAAQtiC,IAAIpD,IAASuF,QAAS,yCAAF,OAA2ChK,EAAK,2EAC3E,IAAII,MAAM,iCAAD,OAAkCJ,EAAK,wEAyB1D,GAtB8B,kBAA1BpB,KAAK0vL,kBAGL1vL,KAAKi/M,uBAGL79M,EACApB,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,uCAAF,OAAyCJ,EAAK,OAE7EpB,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,4BAGvC5J,KAAK6/M,aACL7/M,KAAK6/M,WAAW96M,OAAOyF,OAAM,SAACgC,GAC1B,EAAK++B,QAAQtiC,IAAIpD,IAASrE,MAAO,0CAAF,OAA4CgL,EAAC,MAChF,IACAxM,KAAK6/M,gBAAa39M,GAGtBlC,KAAKghN,kBAAe9+M,EACpBlC,KAAK0vL,iBAAmB,eAEpB1vL,KAAKw/M,mBAAoB,CACzBx/M,KAAKw/M,oBAAqB,EAC1B,IACQx/M,KAAK08M,SACL18M,KAAK08M,QAAQt7M,E,CAEnB,MAAOoL,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,0BAAF,OAA4BJ,EAAK,0BAAkBoL,EAAC,M,QAtCvFxM,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,yCAAF,OAA2Cr+M,EAAK,8EAyCvF,GAAC,yBAEO,SAAYsH,GAEhB,GAAuC,IAAnCA,EAAImjC,YAAY,WAAY,IAA8C,IAAlCnjC,EAAImjC,YAAY,UAAW,GACnE,OAAOnjC,EAGX,IAAKxB,IAASG,UACV,MAAM,IAAI7F,MAAM,mBAAD,OAAoBkH,EAAG,OAQ1C,IAAMu5M,EAAO96M,OAAOC,SAASq5C,cAAc,KAI3C,OAHAwhK,EAAKC,KAAOx5M,EAEZ1I,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,gBAAF,OAAkBlB,EAAG,iBAASu5M,EAAKC,KAAI,OACrED,EAAKC,IAChB,GAAC,kCAEO,SAAqBx5M,GACzB,IAAMyB,EAAQzB,EAAI2B,QAAQ,KACtBu2M,EAAel4M,EAAI0a,UAAU,GAAc,IAAXjZ,EAAezB,EAAInF,OAAS4G,GAWhE,MAV8C,MAA1Cy2M,EAAaA,EAAar9M,OAAS,KACnCq9M,GAAgB,KAEpBA,GAAgB,aAGkC,KAFlDA,IAA2B,IAAXz2M,EAAe,GAAKzB,EAAI0a,UAAUjZ,IAEjCE,QAAQ,sBACrBu2M,IAA2B,IAAXz2M,EAAe,IAAM,IACrCy2M,GAAgB,oBAAsB5gN,KAAKm/M,mBAExCyB,CACX,KAAC,EAzgBsB,GAihBpB,IAAMd,EAAkB,WAO3B,WAA6BjoK,GAAsB,oBAAtB,KAAAA,aANrB,KAAAsqK,QAAiB,GAEjB,KAAAC,YAAsB,EAK1BpiN,KAAKqiN,kBAAoB,IAAIC,EAC7BtiN,KAAKuiN,iBAAmB,IAAID,EAE5BtiN,KAAKwiN,iBAAmBxiN,KAAKyiN,WACjC,CAmEC,OAnEA,iCAEM,SAAKh7M,GAKR,OAJAzH,KAAK0iN,YAAYj7M,GACZzH,KAAKuiN,mBACNviN,KAAKuiN,iBAAmB,IAAID,GAEzBtiN,KAAKuiN,iBAAiB9oM,OACjC,GAAC,kBAEM,WAGH,OAFAzZ,KAAKoiN,YAAa,EAClBpiN,KAAKqiN,kBAAkBxhN,UAChBb,KAAKwiN,gBAChB,GAAC,yBAEO,SAAY/6M,GAChB,GAAIzH,KAAKmiN,QAAQ5+M,eAAiBvD,KAAKmiN,QAAQ,YAAe16M,EAC1D,MAAM,IAAIjG,MAAM,+BAAD,cAAuCxB,KAAKmiN,QAAQ,mCAA2B16M,IAGlGzH,KAAKmiN,QAAQn/M,KAAKyE,GAClBzH,KAAKqiN,kBAAkBxhN,SAC3B,GAAC,wEAEO,gGACO,gBACDb,KAAKqiN,kBAAkB5oM,QAAO,UAE/BzZ,KAAKoiN,WAAY,CAAF,eAGf,OAFGpiN,KAAKuiN,kBACLviN,KAAKuiN,iBAAiBzhN,OAAO,uBAChC,4BAcmB,OATxBd,KAAKqiN,kBAAoB,IAAIC,EAEvBK,EAAkB3iN,KAAKuiN,iBAC7BviN,KAAKuiN,sBAAmBrgN,EAElBuF,EAAmC,kBAArBzH,KAAKmiN,QAAQ,GAC7BniN,KAAKmiN,QAAQ7kM,KAAK,IAClBwiM,EAAmB8C,eAAe5iN,KAAKmiN,SAE3CniN,KAAKmiN,QAAQ5+M,OAAS,EAAE,oBAGdvD,KAAK63C,WAAW0kB,KAAK90D,GAAK,QAChCk7M,EAAgB9hN,UAAU,mDAE1B8hN,EAAgB7hN,OAAO,EAAD,IAAQ,kFAGzC,kDAhCA,KAgCA,6BAEO,SAAsB+hN,GAC1B,IAG+B,EAHzBC,EAAcD,EAAalzM,KAAI,SAAC4Z,GAAC,OAAKA,EAAE1hB,UAAU,IAAEoI,QAAO,SAAC2Q,EAAG2I,GAAC,OAAK3I,EAAI2I,CAAC,IAC1EvoB,EAAS,IAAI+G,WAAW+6M,GAC1BvnL,EAAS,EAAE,cACIsnL,GAAY,IAA/B,IAAK,EAAL,qBAAiC,KAAtBxsM,EAAI,QACXrV,EAAO+jB,IAAI,IAAIhd,WAAWsO,GAAOklB,GACjCA,GAAUllB,EAAKxO,U,CAClB,+BAED,OAAO7G,EAAOkoF,MAClB,KAAC,EA/E0B,GAkFzBo5H,EAAa,WAKf,4CACItiN,KAAKyZ,QAAU,IAAIrV,SAAQ,SAACvD,EAASC,GAAM,eAAwC,CAACD,EAASC,GAA5C,EAAKiiN,UAAS,KAAE,EAAKC,UAAS,SACnF,CAQC,OARA,oCAEM,WACHhjN,KAAK+iN,WACT,GAAC,oBAEM,SAAOjuI,GACV90E,KAAKgjN,UAAWluI,EACpB,KAAC,EAfc,GC1oBNmuI,EAAiB,4CAgBzB,OAhByB,uCAInB,SAAa3pM,GAChB,MAAO,GAAP,OAAUA,GAAM,OAAG2pM,EAAkBC,gBACzC,GAAC,mBAEM,SAAazpH,GAChB,GAAIA,EAAMA,EAAMl2F,OAAS,KAAO0/M,EAAkBC,gBAC9C,MAAM,IAAI1hN,MAAM,0BAGpB,IAAMuqC,EAAW0tD,EAAMvtF,MAAM+2M,EAAkBC,iBAE/C,OADAn3K,EAASrnC,MACFqnC,CACX,KAAC,EAhByB,GACZk3K,sBAAsB,GACtBA,kBAAkB1hM,OAAO4hM,aAAaF,EAAkBG,qBCYnE,ICZKC,EDYCC,EAAiB,4CAgDzB,OAhDyB,kDAEnB,SAAsBC,GACzB,OAAON,EAAkBO,MAAMpwM,KAAKC,UAAUkwM,GAClD,GAAC,oCAEM,SAAuB97M,GAC1B,IAAIi7K,EACA+gC,EAEJ,GAAI77M,YAAcH,GAAO,CAErB,IAAMi8M,EAAa,IAAI37M,WAAWN,GAC5Bk8M,EAAiBD,EAAWr5M,QAAQ44M,EAAkBG,qBAC5D,IAAwB,IAApBO,EACA,MAAM,IAAIniN,MAAM,0BAKpB,IAAMoiN,EAAiBD,EAAiB,EACxCjhC,EAAcnhK,OAAO4hM,aAAap8M,MAAM,KAAM6G,MAAMtQ,UAAUwH,MAAMnF,KAAK+jN,EAAW5+M,MAAM,EAAG8+M,KAC7FH,EAAiBC,EAAW77M,WAAa+7M,EAAkBF,EAAW5+M,MAAM8+M,GAAgB16H,OAAS,I,KAClG,CACH,IAAM26H,EAAmBp8M,EACnBk8M,EAAiBE,EAASx5M,QAAQ44M,EAAkBC,iBAC1D,IAAwB,IAApBS,EACA,MAAM,IAAIniN,MAAM,0BAKpB,IAAMoiN,EAAiBD,EAAiB,EACxCjhC,EAAcmhC,EAASzgM,UAAU,EAAGwgM,GACpCH,EAAiBI,EAAStgN,OAASqgN,EAAkBC,EAASzgM,UAAUwgM,GAAkB,I,CAI9F,IAAM73K,EAAWk3K,EAAkBjgM,MAAM0/J,GACnCl5K,EAAW4J,KAAK4P,MAAM+oB,EAAS,IACrC,GAAIviC,EAAS9J,KACT,MAAM,IAAI8B,MAAM,kDAMpB,MAAO,CAACiiN,EAJ0Cj6M,EAKtD,KAAC,EAhDyB,ICZ9B,SAAY65M,GAERA,+BAEAA,+BAEAA,+BAEAA,2CAEAA,2CAEAA,mBAEAA,oBACH,CAfD,CAAYA,MAAW,KCAhB,ICSKS,EDTCC,EAAO,WAOhB,iCACI/jN,KAAKoK,UAAY,EACrB,CA2BC,OA3BA,iCAEM,SAAKiM,GAAO,IACsB,EADtB,cACQrW,KAAKoK,WAAS,IAArC,IAAK,EAAL,qBAAuC,CAApB,QACN9H,KAAK+T,E,CACjB,+BACL,GAAC,mBAEM,SAAM3X,GAAQ,IACoB,EADpB,cACMsB,KAAKoK,WAAS,IAArC,IAAK,EAAL,qBAAuC,KAA5BJ,EAAQ,QACXA,EAAS5I,OACT4I,EAAS5I,MAAM1C,E,CAEtB,+BACL,GAAC,sBAEM,WAAQ,IAC0B,EAD1B,cACYsB,KAAKoK,WAAS,IAArC,IAAK,EAAL,qBAAuC,KAA5BJ,EAAQ,QACXA,EAASvE,UACTuE,EAASvE,U,CAEhB,+BACL,GAAC,uBAEM,SAAUuE,GAEb,OADAhK,KAAKoK,UAAUpH,KAAKgH,GACb,IAAIF,IAAoB9J,KAAMgK,EACzC,KAAC,EApCe,ICSpB,SAAY85M,GAERA,8BAEAA,0BAEAA,wBAEAA,gCAEAA,6BACH,CAXD,CAAYA,MAAkB,KAcvB,IAAME,EAAa,WAmEtB,WAAoBlhC,EAAyBv6K,EAAiBw1K,EAAwBkmC,GAA8B,+BAvC5G,KAAAC,eAAyB,EASzB,KAAAC,qBAAuB,WAE3B,EAAK54K,QAAQtiC,IAAIpD,IAASuF,QAAS,uNACvC,EA4BIpE,IAAI41M,WAAW95B,EAAY,cAC3B97K,IAAI41M,WAAWr0M,EAAQ,UACvBvB,IAAI41M,WAAW7+B,EAAU,YAEzB/9K,KAAKokN,4BA1FyB,IA2F9BpkN,KAAKqkN,gCA1F+B,KA4FpCrkN,KAAKurC,QAAUhjC,EACfvI,KAAKskN,UAAYvmC,EACjB/9K,KAAK8iL,WAAaA,EAClB9iL,KAAKukN,iBAAmBN,EACxBjkN,KAAKwkN,mBAAqB,IAAIlB,EAE9BtjN,KAAK8iL,WAAW25B,UAAY,SAACh1M,GAAS,OAAK,EAAKg9M,qBAAqBh9M,EAAK,EAC1EzH,KAAK8iL,WAAW45B,QAAU,SAACt7M,GAAa,OAAK,EAAKsjN,kBAAkBtjN,EAAM,EAE1EpB,KAAK2kN,WAAa,CAAC,EACnB3kN,KAAKinG,SAAW,CAAC,EACjBjnG,KAAK4kN,iBAAmB,GACxB5kN,KAAK6kN,uBAAyB,GAC9B7kN,KAAK8kN,sBAAwB,GAC7B9kN,KAAK+kN,cAAgB,EACrB/kN,KAAKglN,4BAA6B,EAClChlN,KAAK0vL,iBAAmBo0B,EAAmBmB,aAC3CjlN,KAAKw/M,oBAAqB,EAE1Bx/M,KAAKklN,mBAAqBllN,KAAKskN,UAAUa,aAAa,CAAEzlN,KAAM2jN,EAAY+B,MAC9E,CA9BC,OAHD,gCAoCA,WACI,OAAOplN,KAAK0vL,gBAChB,GAEA,wBAGA,WACI,OAAO1vL,KAAK8iL,YAAc9iL,KAAK8iL,WAAWk+B,cAAwB,IACtE,GAEA,mBACA,WACI,OAAOhhN,KAAK8iL,WAAWs8B,SAAW,EACtC,EAEA,IAKA,SAAY12M,GACR,GAAI1I,KAAK0vL,mBAAqBo0B,EAAmBmB,cAAgBjlN,KAAK0vL,mBAAqBo0B,EAAmBuB,aAC1G,MAAM,IAAI7jN,MAAM,0FAGpB,IAAKkH,EACD,MAAM,IAAIlH,MAAM,8CAGpBxB,KAAK8iL,WAAWs8B,QAAU12M,CAC9B,GAEA,mBAIO,WAEH,OADA1I,KAAKslN,cAAgBtlN,KAAKulN,6BACnBvlN,KAAKslN,aAChB,GAAC,yFAEO,2FACAtlN,KAAK0vL,mBAAqBo0B,EAAmBmB,aAAY,yCAClD7gN,QAAQtD,OAAO,IAAIU,MAAM,2EAAyE,OAIjD,OAD5DxB,KAAK0vL,iBAAmBo0B,EAAmB0B,WAC3CxlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,2BAA2B,kBAGlDz/M,KAAK2/M,iBAAgB,OAEvBz4M,IAASG,WAETF,OAAOC,SAASyS,iBAAiB,SAAU7Z,KAAKmkN,sBAGpDnkN,KAAK0vL,iBAAmBo0B,EAAmB2B,UAC3CzlN,KAAKw/M,oBAAqB,EAC1Bx/M,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,yCAAyC,wBAG8B,OAH9B,0BAE1Ez/M,KAAK0vL,iBAAmBo0B,EAAmBmB,aAC3CjlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,gEAAF,mBAAyE,kBACjGr7M,QAAQtD,OAAO,EAAD,KAAG,0DAE/B,kDA1BA,IA0BA,6EAEO,uGAOF,OANFd,KAAK0lN,2BAAwBxjN,EAC7BlC,KAAKglN,4BAA6B,EAE5BW,EAAmB,IAAIvhN,SAAQ,SAACvD,EAASC,GAC3C,EAAK8kN,mBAAqB/kN,EAC1B,EAAKglN,mBAAqB/kN,CAC9B,IAAE,SAEId,KAAK8iL,WAAWnuI,MAAM30C,KAAKskN,UAAU3H,gBAAe,OAQS,OART,SAGhD4G,EAA4C,CAC9CxlC,SAAU/9K,KAAKskN,UAAUxgN,KACzB8H,QAAS5L,KAAKskN,UAAU14M,SAG5B5L,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,8BAA8B,UAEzDz/M,KAAK8lN,aAAa9lN,KAAKwkN,mBAAmBuB,sBAAsBxC,IAAkB,QAOzD,OAL/BvjN,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,sBAAF,OAAwB5J,KAAKskN,UAAUxgN,KAAI,OAGhF9D,KAAKgmN,kBACLhmN,KAAKimN,sBACLjmN,KAAKkmN,0BAA0B,UAEzBP,EAAgB,YAKlB3lN,KAAK0lN,sBAAuB,CAAF,sBAKpB1lN,KAAK0lN,sBAAqB,gCASpC,OAToC,0BAGpC1lN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,oCAAF,0DAE/Bz/M,KAAKgmN,kBACLhmN,KAAKmmN,oBAGL,UACMnmN,KAAK8iL,WAAW/9K,KAAK,EAAD,IAAG,6EAGpC,kDArDA,IAuDD,mEAIO,8FAIsC,OAFnCqhN,EAAepmN,KAAKslN,cAE1BtlN,KAAK4/M,aAAe5/M,KAAK+/M,gBAAgB,SACnC//M,KAAK4/M,aAAY,gCAIbwG,EAAY,gHAIzB,kDAjBD,IAiBC,2BAEO,SAAchlN,GAClB,OAAIpB,KAAK0vL,mBAAqBo0B,EAAmBmB,cAC7CjlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,8BAAF,OAAgCr+M,EAAK,+DAC7DgD,QAAQvD,WAGfb,KAAK0vL,mBAAqBo0B,EAAmBuC,eAC7CrmN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,+BAAF,OAAiCr+M,EAAK,4EAC9DpB,KAAK4/M,eAGhB5/M,KAAK0vL,iBAAmBo0B,EAAmBuC,cAE3CrmN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,2BAE7Bz/M,KAAKsmN,uBAILtmN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,iEAEjC/mM,aAAa1Y,KAAKsmN,uBAClBtmN,KAAKsmN,2BAAwBpkN,EAE7BlC,KAAKumN,iBACEniN,QAAQvD,YAGnBb,KAAKgmN,kBACLhmN,KAAKmmN,oBACLnmN,KAAK0lN,sBAAwBtkN,GAAS,IAAII,MAAM,uEAKzCxB,KAAK8iL,WAAW/9K,KAAK3D,IAChC,GAEA,oBAOO,SAAgB6N,GAAkC,kCAAXpI,EAAW,iCAAXA,EAAW,kBACrD,IAII2/M,EAJJ,EAA6BxmN,KAAKymN,wBAAwB5/M,GAAK,mBAAxD6/M,EAAO,KAAEC,EAAS,KACnBC,EAAuB5mN,KAAK6mN,wBAAwB53M,EAAYpI,EAAM8/M,GAKtE58M,EAAU,IAAIg6M,EAqCpB,OApCAh6M,EAAQQ,eAAiB,WACrB,IAAMu8M,EAA4C,EAAKC,wBAAwBH,EAAqBI,cAIpG,cAFO,EAAKrC,WAAWiC,EAAqBI,cAErCR,EAAatlN,MAAK,WACrB,OAAO,EAAK+lN,kBAAkBH,EAClC,GACJ,EAEA9mN,KAAK2kN,WAAWiC,EAAqBI,cAAgB,SAACE,EAA+D9lN,GAC7GA,EACA2I,EAAQ3I,MAAMA,GAEP8lN,IAEHA,EAAgBxnN,OAAS2jN,EAAY8D,WACjCD,EAAgB9lN,MAChB2I,EAAQ3I,MAAM,IAAII,MAAM0lN,EAAgB9lN,QAExC2I,EAAQtE,WAGZsE,EAAQzH,KAAM4kN,EAAgB7wM,MAG1C,EAEAmwM,EAAexmN,KAAKinN,kBAAkBL,GACjCp8M,OAAM,SAACgC,GACJzC,EAAQ3I,MAAMoL,UACP,EAAKm4M,WAAWiC,EAAqBI,aAChD,IAEJhnN,KAAKonN,eAAeV,EAASF,GAEtBz8M,CACX,GAAC,0BAEO,SAAagB,GAEjB,OADA/K,KAAKkmN,0BACElmN,KAAK8iL,WAAWvmH,KAAKxxD,EAChC,GAEA,+BAIQ,SAAkBA,GACtB,OAAO/K,KAAK8lN,aAAa9lN,KAAKskN,UAAUa,aAAap6M,GACzD,GAEA,kBASO,SAAKkE,GAAkC,2BAAXpI,EAAW,iCAAXA,EAAW,kBAC1C,MAA6B7G,KAAKymN,wBAAwB5/M,GAAK,mBAAxD6/M,EAAO,KAAEC,EAAS,KACnBU,EAAcrnN,KAAKinN,kBAAkBjnN,KAAKsnN,kBAAkBr4M,EAAYpI,GAAM,EAAM8/M,IAI1F,OAFA3mN,KAAKonN,eAAeV,EAASW,GAEtBA,CACX,GAEA,oBAWO,SAAgBp4M,GAAkC,kCAAXpI,EAAW,iCAAXA,EAAW,kBACrD,MAA6B7G,KAAKymN,wBAAwB5/M,GAAK,mBAAxD6/M,EAAO,KAAEC,EAAS,KACnBC,EAAuB5mN,KAAKsnN,kBAAkBr4M,EAAYpI,GAAM,EAAO8/M,GAEvE1kM,EAAI,IAAI7d,SAAa,SAACvD,EAASC,GAEjC,EAAK6jN,WAAWiC,EAAqBI,cAAiB,SAACE,EAA+D9lN,GAC9GA,EACAN,EAAOM,GAEA8lN,IAEHA,EAAgBxnN,OAAS2jN,EAAY8D,WACjCD,EAAgB9lN,MAChBN,EAAO,IAAIU,MAAM0lN,EAAgB9lN,QAEjCP,EAAQqmN,EAAgBlmN,QAG5BF,EAAO,IAAIU,MAAM,4BAAD,OAA6B0lN,EAAgBxnN,QAGzE,EAEA,IAAM8mN,EAAe,EAAKS,kBAAkBL,GACvCp8M,OAAM,SAACgC,GACJ1L,EAAO0L,UAEA,EAAKm4M,WAAWiC,EAAqBI,aAChD,IAEJ,EAAKI,eAAeV,EAASF,EACjC,IAEA,OAAOvkM,CACX,GAEA,gBAKO,SAAGhT,EAAoBs4M,GACrBt4M,GAAes4M,IAIpBt4M,EAAaA,EAAWkI,cACnBnX,KAAKinG,SAASh4F,KACfjP,KAAKinG,SAASh4F,GAAc,KAIsB,IAAlDjP,KAAKinG,SAASh4F,GAAY5E,QAAQk9M,IAItCvnN,KAAKinG,SAASh4F,GAAYjM,KAAKukN,GACnC,GAAC,iBAiBM,SAAIt4M,EAAoBzO,GAC3B,GAAKyO,EAAL,CAIAA,EAAaA,EAAWkI,cACxB,IAAMmtF,EAAWtkG,KAAKinG,SAASh4F,GAC/B,GAAKq1F,EAGL,GAAI9jG,EAAQ,CACR,IAAMgnN,EAAYljH,EAASj6F,QAAQ7J,IAChB,IAAfgnN,IACAljH,EAASh6F,OAAOk9M,EAAW,GACH,IAApBljH,EAAS/gG,eACFvD,KAAKinG,SAASh4F,G,aAItBjP,KAAKinG,SAASh4F,E,CAG7B,GAEA,qBAIO,SAAQo8C,GACPA,GACArrD,KAAK4kN,iBAAiB5hN,KAAKqoD,EAEnC,GAEA,4BAIO,SAAeA,GACdA,GACArrD,KAAK6kN,uBAAuB7hN,KAAKqoD,EAEzC,GAEA,2BAIO,SAAcA,GACbA,GACArrD,KAAK8kN,sBAAsB9hN,KAAKqoD,EAExC,GAAC,kCAEO,SAAqB5jD,GASzB,GARAzH,KAAKgmN,kBAEAhmN,KAAKglN,6BACNv9M,EAAOzH,KAAKynN,0BAA0BhgN,GACtCzH,KAAKglN,4BAA6B,GAIlCv9M,EAAM,CAEN,IAE8B,EAFxBskC,EAAW/rC,KAAKskN,UAAUoD,cAAcjgN,EAAMzH,KAAKurC,SAAS,cAE5CQ,GAAQ,IAA9B,IAAK,EAAL,qBAAgC,KAArBhhC,EAAO,QACd,OAAQA,EAAQrL,MACZ,KAAK2jN,EAAYsE,WACb3nN,KAAK4nN,oBAAoB78M,GACzB,MACJ,KAAKs4M,EAAYwE,WACjB,KAAKxE,EAAY8D,WACb,IAAM97J,EAAWrrD,KAAK2kN,WAAW55M,EAAQi8M,cACzC,GAAI37J,EAAU,CACNtgD,EAAQrL,OAAS2jN,EAAY8D,mBACtBnnN,KAAK2kN,WAAW55M,EAAQi8M,cAEnC,IACI37J,EAAStgD,E,CACX,MAAOyB,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,gCAAF,OAAkC+K,YAAeC,I,EAGxF,MAEJ,KAAK62M,EAAY+B,KAEb,MACJ,KAAK/B,EAAYyE,MACb9nN,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,uCAEvC,IAAMxI,EAAQ2J,EAAQ3J,MAAQ,IAAII,MAAM,sCAAwCuJ,EAAQ3J,YAASc,GAElE,IAA3B6I,EAAQg9M,eAKR/nN,KAAK8iL,WAAW/9K,KAAK3D,GAGrBpB,KAAK4/M,aAAe5/M,KAAK+/M,cAAc3+M,GAG3C,MAEJ,QACIpB,KAAKurC,QAAQtiC,IAAIpD,IAASuF,QAAS,yBAAF,OAA2BL,EAAQrL,KAAI,M,CAGnF,+B,CAGLM,KAAKimN,qBACT,GAAC,uCAEO,SAA0Bx+M,GAC9B,IAAIugN,EACAvE,EAEJ,IAAI,MACmCzjN,KAAKwkN,mBAAmByD,uBAAuBxgN,GAAK,mBAAtFg8M,EAAa,KAAEuE,EAAe,I,CACjC,MAAOx7M,GACL,IAAMzB,EAAU,qCAAuCyB,EACvDxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOuJ,GAEjC,IAAM3J,EAAQ,IAAII,MAAMuJ,GAExB,MADA/K,KAAK6lN,mBAAmBzkN,GAClBA,C,CAEV,GAAI4mN,EAAgB5mN,MAAO,CACvB,IAAM2J,EAAU,oCAAsCi9M,EAAgB5mN,MACtEpB,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOuJ,GAEjC,IAAM3J,EAAQ,IAAII,MAAMuJ,GAExB,MADA/K,KAAK6lN,mBAAmBzkN,GAClBA,C,CAMV,OAJIpB,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,8BAGrCz/M,KAAK4lN,qBACEnC,CACX,GAAC,qCAEO,WACAzjN,KAAK8iL,WAAWo8B,SAASyB,oBAM7B3gN,KAAKkkN,gBAAiB,IAAIj5M,MAAOia,UAAYllB,KAAKqkN,gCAElDrkN,KAAKmmN,oBACT,GAAC,iCAEO,WAAmB,WACvB,KAAKnmN,KAAK8iL,WAAWo8B,WAAal/M,KAAK8iL,WAAWo8B,SAASyB,qBAEvD3gN,KAAKkoN,eAAiBvvM,YAAW,kBAAM,EAAKwvM,eAAe,GAAEnoN,KAAKokN,kCAGnCliN,IAA3BlC,KAAKooN,mBACT,CACI,IAAIC,EAAWroN,KAAKkkN,gBAAiB,IAAIj5M,MAAOia,UAC5CmjM,EAAW,IACXA,EAAW,GAIfroN,KAAKooN,kBAAoBzvM,WAAU,gCAAC,2FAC5B,EAAK+2K,mBAAqBo0B,EAAmB2B,UAAS,yCAE5C,EAAKK,aAAa,EAAKZ,oBAAmB,sDAIhD,EAAKiB,oBAAoB,wDAGlCkC,E,CAGf,GAEA,2BACQ,WAIJroN,KAAK8iL,WAAW/9K,KAAK,IAAIvD,MAAM,uEACnC,GAAC,iCAEO,SAAoB8mN,GAAoC,WACtD5gH,EAAU1nG,KAAKinG,SAASqhH,EAAkBpiN,OAAOiR,eACvD,GAAIuwF,EAAS,CACT,IACIA,EAAQnnG,SAAQ,SAAC+gB,GAAC,OAAKA,EAAEva,MAAM,EAAMuhN,EAAkBxhN,UAAU,G,CACnE,MAAO0F,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,6BAAF,OAA+B8mN,EAAkBpiN,OAAOiR,cAAa,yBAAiB3K,EAAC,M,CAG1H,GAAI87M,EAAkBtB,aAAc,CAEhC,IAAMj8M,EAAU,qFAChB/K,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAOuJ,GAGjC/K,KAAK4/M,aAAe5/M,KAAK+/M,cAAc,IAAIv+M,MAAMuJ,G,OAGrD/K,KAAKurC,QAAQtiC,IAAIpD,IAASuF,QAAS,mCAAF,OAAqCk9M,EAAkBpiN,OAAM,YAEtG,GAAC,+BAEO,SAAkB9E,GACtBpB,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,kCAAF,OAAoCr+M,EAAK,mCAA2BpB,KAAK0vL,iBAAgB,MAGxH1vL,KAAK0lN,sBAAwB1lN,KAAK0lN,uBAAyBtkN,GAAS,IAAII,MAAM,iFAI1ExB,KAAK4lN,oBACL5lN,KAAK4lN,qBAGT5lN,KAAKuoN,0BAA0BnnN,GAAS,IAAII,MAAM,uEAElDxB,KAAKgmN,kBACLhmN,KAAKmmN,oBAEDnmN,KAAK0vL,mBAAqBo0B,EAAmBuC,cAC7CrmN,KAAKumN,eAAenlN,GACbpB,KAAK0vL,mBAAqBo0B,EAAmB2B,WAAazlN,KAAKukN,iBAEtEvkN,KAAKwoN,WAAWpnN,GACTpB,KAAK0vL,mBAAqBo0B,EAAmB2B,WACpDzlN,KAAKumN,eAAenlN,EAQ5B,GAAC,4BAEO,SAAeA,GAAa,WAChC,GAAIpB,KAAKw/M,mBAAoB,CACzBx/M,KAAK0vL,iBAAmBo0B,EAAmBmB,aAC3CjlN,KAAKw/M,oBAAqB,EAEtBt4M,IAASG,WACTF,OAAOC,SAASkU,oBAAoB,SAAUtb,KAAKmkN,sBAGvD,IACInkN,KAAK4kN,iBAAiBrkN,SAAQ,SAACgY,GAAC,OAAKA,EAAExR,MAAM,EAAM,CAAC3F,GAAO,G,CAC7D,MAAOoL,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,0CAAF,OAA4CJ,EAAK,0BAAkBoL,EAAC,M,EAG/G,GAAC,yEAEO,WAAiBpL,GAAa,8FAKsD,GAJlFqnN,EAAqBx9M,KAAKg/B,MAC5By+K,EAA4B,EAC5BC,OAAuBzmN,IAAVd,EAAsBA,EAAQ,IAAII,MAAM,mDAIlC,QAFnBonN,EAAiB5oN,KAAK6oN,mBAAmBH,IAA6B,EAAGC,IAElD,gBAEI,OAD3B3oN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,sGACjCz/M,KAAKumN,eAAenlN,GAAO,0BAU9B,GANDpB,KAAK0vL,iBAAmBo0B,EAAmBuB,aAEvCjkN,EACApB,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,6CAAF,OAA+CxI,EAAK,OAEzFpB,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,4BAGA,IAAvC5J,KAAK6kN,uBAAuBthN,OAAY,iBACxC,IACIvD,KAAK6kN,uBAAuBtkN,SAAQ,SAACgY,GAAC,OAAKA,EAAExR,MAAM,EAAM,CAAC3F,GAAO,G,CACnE,MAAOoL,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,iDAAF,OAAmDJ,EAAK,0BAAkBoL,EAAC,M,CAG9G,GACIxM,KAAK0vL,mBAAqBo0B,EAAmBuB,aAAY,iBACiE,OAA1HrlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,yFAAyF,8BAKxG,OAAnBmJ,EAAuB,iBAC0G,OAApI5oN,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,4BAAF,OAA8B8+M,EAAyB,0BAAkBE,EAAc,SAAQ,UAE9H,IAAIxkN,SAAQ,SAACvD,GACf,EAAKylN,sBAAwB3tM,WAAW9X,EAAS+nN,EACrD,IAAE,QACqC,GAAvC5oN,KAAKsmN,2BAAwBpkN,EAEzBlC,KAAK0vL,mBAAqBo0B,EAAmBuB,aAAY,iBAC6D,OAAtHrlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,qFAAqF,sDAKhHz/M,KAAK2/M,iBAAgB,QAK3B,GAHA3/M,KAAK0vL,iBAAmBo0B,EAAmB2B,UAC3CzlN,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,2CAEG,IAAtC5J,KAAK8kN,sBAAsBvhN,OAC3B,IACIvD,KAAK8kN,sBAAsBvkN,SAAQ,SAACgY,GAAC,OAAKA,EAAExR,MAAM,EAAM,CAAC,EAAK+7K,WAAWk+B,cAAc,G,CACzF,MAAOx0M,GACLxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,uDAAF,OAAyDxB,KAAK8iL,WAAWk+B,aAAY,0BAAkBx0M,EAAC,M,CAE9I,kCAI2F,GAJ3F,2BAIDxM,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,8CAAF,mBAEjC5J,KAAK0vL,mBAAqBo0B,EAAmBuB,aAAY,iBAKxD,OAJDrlN,KAAKurC,QAAQtiC,IAAIpD,IAAS45M,MAAO,4BAAF,OAA8Bz/M,KAAK0vL,iBAAgB,+EAE9E1vL,KAAK0vL,mBAA4Bo0B,EAAmBuC,eACpDrmN,KAAKumN,iBACR,2BAILoC,EAAa,gBAAannN,MAAQ,EAAH,GAAO,IAAIA,MAAM,KAAE0G,YAClD0gN,EAAiB5oN,KAAK6oN,mBAAmBH,IAA6Bz9M,KAAKg/B,MAAQw+K,EAAoBE,GAAY,gCAI3H3oN,KAAKurC,QAAQtiC,IAAIpD,IAAS+D,YAAa,+CAAF,OAAiDqB,KAAKg/B,MAAQw+K,EAAkB,mBAAWC,EAAyB,gDAEzJ1oN,KAAKumN,iBAAiB,2DACzB,mDArFA,IAqFA,gCAEO,SAAmB/M,EAA4BsP,EAA6BC,GAChF,IACI,OAAO/oN,KAAKukN,iBAAkByE,6BAA6B,CACvDF,sBACAtP,qBACAuP,e,CAEN,MAAOv8M,GAEL,OADAxM,KAAKurC,QAAQtiC,IAAIpD,IAASrE,MAAO,6CAAF,OAA+Cg4M,EAAkB,aAAKsP,EAAmB,0BAAkBt8M,EAAC,OACpI,I,CAEf,GAAC,uCAEO,SAA0BpL,GAAY,WACpC6nN,EAAYjpN,KAAK2kN,WACvB3kN,KAAK2kN,WAAa,CAAC,EAEnBtnN,OAAOiH,KAAK2kN,GACP1oN,SAAQ,SAAC5C,GACN,IAAM0tD,EAAW49J,EAAUtrN,GAC3B,IACI0tD,EAAS,KAAMjqD,E,CACjB,MAAOoL,GACL,EAAK++B,QAAQtiC,IAAIpD,IAASrE,MAAO,wCAAF,OAA0CJ,EAAK,0BAAkBmL,YAAeC,I,CAEvH,GACR,GAAC,+BAEO,WACAxM,KAAKooN,oBACL1vM,aAAa1Y,KAAKooN,mBAClBpoN,KAAKooN,uBAAoBlmN,EAEjC,GAAC,6BAEO,WACAlC,KAAKkoN,gBACLxvM,aAAa1Y,KAAKkoN,eAE1B,GAAC,+BAEO,SAAkBj5M,EAAoBpI,EAAaqiN,EAAsBvC,GAC7E,GAAIuC,EACA,OAAyB,IAArBvC,EAAUpjN,OACH,CACHuD,UAAWD,EACX8/M,YACAzgN,OAAQ+I,EACRvP,KAAM2jN,EAAYsE,YAGf,CACH7gN,UAAWD,EACXX,OAAQ+I,EACRvP,KAAM2jN,EAAYsE,YAI1B,IAAMX,EAAehnN,KAAK+kN,cAG1B,OAFA/kN,KAAK+kN,gBAEoB,IAArB4B,EAAUpjN,OACH,CACHuD,UAAWD,EACXmgN,aAAcA,EAAa9+M,WAC3By+M,YACAzgN,OAAQ+I,EACRvP,KAAM2jN,EAAYsE,YAGf,CACH7gN,UAAWD,EACXmgN,aAAcA,EAAa9+M,WAC3BhC,OAAQ+I,EACRvP,KAAM2jN,EAAYsE,WAIlC,GAAC,4BAEO,SAAejB,EAA+BF,GAA2B,WAC7E,GAAuB,IAAnBE,EAAQnjN,OAAZ,CAKKijN,IACDA,EAAepiN,QAAQvD,WAI3B,eACW08L,GACPmpB,EAAQnpB,GAAUiU,UAAU,CACxB/rM,SAAU,WACN+gN,EAAeA,EAAatlN,MAAK,kBAAM,EAAK+lN,kBAAkB,EAAKkC,yBAAyB5rB,GAAU,GAC1G,EACAn8L,MAAO,SAAC1C,GACJ,IAAIqM,EAEAA,EADArM,aAAe8C,MACL9C,EAAIqM,QACPrM,GAAOA,EAAIwJ,SACRxJ,EAAIwJ,WAEJ,gBAGds+M,EAAeA,EAAatlN,MAAK,kBAAM,EAAK+lN,kBAAkB,EAAKkC,yBAAyB5rB,EAAUxyL,GAAS,GACnH,EACAzI,KAAM,SAAC+T,GACHmwM,EAAeA,EAAatlN,MAAK,kBAAM,EAAK+lN,kBAAkB,EAAKmC,yBAAyB7rB,EAAUlnL,GAAM,GAChH,GACD,EApBP,IAAK,IAAMknL,KAAYmpB,EAAS,EAArBnpB,E,CAsBf,GAAC,qCAEO,SAAwB12L,GAG5B,IAFA,IAAM6/M,EAAgC,GAChCC,EAAsB,GACnBnjN,EAAI,EAAGA,EAAIqD,EAAKtD,OAAQC,IAAK,CAClC,IAAM6lN,EAAWxiN,EAAKrD,GACtB,GAAIxD,KAAKspN,cAAcD,GAAW,CAC9B,IAAM9rB,EAAWv9L,KAAK+kN,cACtB/kN,KAAK+kN,gBAEL2B,EAAQnpB,GAAY8rB,EACpB1C,EAAU3jN,KAAKu6L,EAASr1L,YAGxBrB,EAAKyD,OAAO9G,EAAG,E,EAIvB,MAAO,CAACkjN,EAASC,EACrB,GAAC,2BAEO,SAAclnN,GAElB,OAAOA,GAAOA,EAAI+xM,WAAsC,oBAAlB/xM,EAAI+xM,SAC9C,GAAC,qCAEO,SAAwBviM,EAAoBpI,EAAa8/M,GAC7D,IAAMK,EAAehnN,KAAK+kN,cAG1B,OAFA/kN,KAAK+kN,gBAEoB,IAArB4B,EAAUpjN,OACH,CACHuD,UAAWD,EACXmgN,aAAcA,EAAa9+M,WAC3By+M,YACAzgN,OAAQ+I,EACRvP,KAAM2jN,EAAYkG,kBAGf,CACHziN,UAAWD,EACXmgN,aAAcA,EAAa9+M,WAC3BhC,OAAQ+I,EACRvP,KAAM2jN,EAAYkG,iBAG9B,GAAC,qCAEO,SAAwBxxK,GAC5B,MAAO,CACHivK,aAAcjvK,EACdr4C,KAAM2jN,EAAYmG,iBAE1B,GAAC,sCAEO,SAAyBzxK,EAAY1hC,GACzC,MAAO,CACH2wM,aAAcjvK,EACd1hC,OACA3W,KAAM2jN,EAAYwE,WAE1B,GAAC,sCAEO,SAAyB9vK,EAAY32C,EAAaJ,GACtD,OAAII,EACO,CACHA,QACA4lN,aAAcjvK,EACdr4C,KAAM2jN,EAAY8D,YAInB,CACHH,aAAcjvK,EACd/2C,SACAtB,KAAM2jN,EAAY8D,WAE1B,IAAC,qBAj6BM,SAAcrkC,EAAyBv6K,EAAiBw1K,EAAwBkmC,GACnF,OAAO,IAAID,EAAclhC,EAAYv6K,EAAQw1K,EAAUkmC,EAC3D,KAAC,EAjEqB,G,QClBbwF,EAAe,WAA5B,iCAGoB,KAAA3lN,KANmB,OAQnB,KAAA8H,QAAkB,EAGlB,KAAA+wM,eAAiCf,EAAekC,IAmGpE,CADK,OAhGD,0CAKO,SAAcrkH,EAAelxF,GAEhC,GAAqB,kBAAVkxF,EACP,MAAM,IAAIj4F,MAAM,2DAGpB,IAAKi4F,EACD,MAAO,GAGI,OAAXlxF,IACAA,EAASsB,IAAW9D,UAIxB,IAG8B,EAHxBgmC,EAAWk3K,EAAkBjgM,MAAMy2E,GAEnCiwH,EAAc,GAAG,cACD39K,GAAQ,IAA9B,IAAK,EAAL,qBAAgC,KAArBhhC,EAAO,QACR4+M,EAAgBv2M,KAAK4P,MAAMjY,GACjC,GAAkC,kBAAvB4+M,EAAcjqN,KACrB,MAAM,IAAI8B,MAAM,oBAEpB,OAAQmoN,EAAcjqN,MAClB,KAAK2jN,EAAYsE,WACb3nN,KAAK4pN,qBAAqBD,GAC1B,MACJ,KAAKtG,EAAYwE,WACb7nN,KAAK6pN,qBAAqBF,GAC1B,MACJ,KAAKtG,EAAY8D,WACbnnN,KAAK8pN,qBAAqBH,GAC1B,MACJ,KAAKtG,EAAY+B,KAGjB,KAAK/B,EAAYyE,MAEb,MACJ,QAEIv/M,EAAOU,IAAIpD,IAAS+D,YAAa,yBAA2B+/M,EAAcjqN,KAAO,cACjF,SAERgqN,EAAY1mN,KAAK2mN,E,CACpB,+BAED,OAAOD,CACX,GAEA,0BAKO,SAAa3+M,GAChB,OAAOk4M,EAAkBO,MAAMpwM,KAAKC,UAAUtI,GAClD,GAAC,kCAEO,SAAqBA,GACzB/K,KAAK+pN,sBAAsBh/M,EAAQ7E,OAAQ,gDAEdhE,IAAzB6I,EAAQi8M,cACRhnN,KAAK+pN,sBAAsBh/M,EAAQi8M,aAAc,0CAEzD,GAAC,kCAEO,SAAqBj8M,GAGzB,GAFA/K,KAAK+pN,sBAAsBh/M,EAAQi8M,aAAc,gDAE5B9kN,IAAjB6I,EAAQsL,KACR,MAAM,IAAI7U,MAAM,0CAExB,GAAC,kCAEO,SAAqBuJ,GACzB,GAAIA,EAAQ/J,QAAU+J,EAAQ3J,MAC1B,MAAM,IAAII,MAAM,4CAGfuJ,EAAQ/J,QAAU+J,EAAQ3J,OAC3BpB,KAAK+pN,sBAAsBh/M,EAAQ3J,MAAO,2CAG9CpB,KAAK+pN,sBAAsBh/M,EAAQi8M,aAAc,0CACrD,GAAC,mCAEO,SAAsBnpN,EAAY67M,GACtC,GAAqB,kBAAV77M,GAAgC,KAAVA,EAC7B,MAAM,IAAI2D,MAAMk4M,EAExB,KAAC,EA1GuB,GCGtBsQ,EAA+C,CACjDl2L,MAAOjuB,IAASqD,MAChBkrD,MAAOvuD,IAAS45M,MAChBr9M,KAAMyD,IAAS+D,YACfqgN,YAAapkN,IAAS+D,YACtByB,KAAMxF,IAASuF,QACfm4B,QAAS19B,IAASuF,QAClBhK,MAAOyE,IAASrE,MAChB0oN,SAAUrkN,IAASsF,SACnBg/M,KAAMtkN,IAASukN,MAgBZ,IAAMC,EAAoB,4CA2K5B,OA3K4B,6CA0CtB,SAAiBC,GAGpB,GAFAtjN,IAAI41M,WAAW0N,EAAS,gBAoINpoN,IAlILooN,EAkIHrhN,IAjINjJ,KAAKuI,OAAS+hN,OACX,GAAuB,kBAAZA,EAAsB,CACpC,IAAMx/M,EA7DlB,SAAuBhH,GAInB,IAAM8lD,EAAUogK,EAAoBlmN,EAAKqT,eACzC,GAAuB,qBAAZyyC,EACP,OAAOA,EAEP,MAAM,IAAIpoD,MAAM,sBAAD,OAAuBsC,GAE9C,CAmD6BymN,CAAcD,GAC/BtqN,KAAKuI,OAAS,IAAIoB,IAAcmB,E,MAEhC9K,KAAKuI,OAAS,IAAIoB,IAAc2gN,GAGpC,OAAOtqN,IACX,GAAC,qBA0BM,SAAQ0I,EAAa8hN,GAiBxB,OAhBAxjN,IAAI41M,WAAWl0M,EAAK,OACpB1B,IAAIyjN,WAAW/hN,EAAK,OAEpB1I,KAAK0I,IAAMA,EAKP1I,KAAK0qN,sBAD6B,kBAA3BF,EACsB,2BAAKxqN,KAAK0qN,uBAA0BF,GAEpC,2BACtBxqN,KAAK0qN,uBAAqB,IAC7BttC,UAAWotC,IAIZxqN,IACX,GAEA,6BAIO,SAAgB+9K,GAInB,OAHA/2K,IAAI41M,WAAW7+B,EAAU,YAEzB/9K,KAAK+9K,SAAWA,EACT/9K,IACX,GAAC,oCAmBM,SAAuB2qN,GAC1B,GAAI3qN,KAAKikN,gBACL,MAAM,IAAIziN,MAAM,2CAWpB,OARKmpN,EAEM/8M,MAAMC,QAAQ88M,GACrB3qN,KAAKikN,gBAAkB,IAAI7K,EAAuBuR,GAElD3qN,KAAKikN,gBAAkB0G,EAJvB3qN,KAAKikN,gBAAkB,IAAI7K,EAOxBp5M,IACX,GAEA,mBAIO,WAGH,IAAM0qN,EAAwB1qN,KAAK0qN,uBAAyB,CAAC,EAS7D,QANqCxoN,IAAjCwoN,EAAsBniN,SAEtBmiN,EAAsBniN,OAASvI,KAAKuI,SAInCvI,KAAK0I,IACN,MAAM,IAAIlH,MAAM,4FAEpB,IAAMshL,EAAa,IAAIk8B,EAAeh/M,KAAK0I,IAAKgiN,GAEhD,OAAO1G,EAAc7kN,OACjB2jL,EACA9iL,KAAKuI,QAAUsB,IAAW9D,SAC1B/F,KAAK+9K,UAAY,IAAI0rC,EACrBzpN,KAAKikN,gBACb,KAAC,EA3K4B,E","file":"static/js/2.3c01e660.chunk.js","sourcesContent":["import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n // react-native has a window but no document\r\n static get isReactNative(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string, accessTokenFactory: (() => string | Promise) | undefined,\r\n content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise {\r\n let headers: {[k: string]: string} = {};\r\n if (accessTokenFactory) {\r\n const token = await accessTokenFactory();\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers},\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log !== undefined) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private _subject: Subject;\r\n private _observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly _minLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public out: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n if (e.stack) {\r\n return e.stack;\r\n } else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}",null,"import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}",null,"/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Sets an object's own properties to undefined. This may be called by\n// destructors to avoid retaining references and help detect incorrect use of\n// destroyed instances.\nfunction clearOwnProperties(obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n obj[prop] = undefined;\n }\n }\n}\n\nmodule.exports = clearOwnProperties;\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","'use strict';\n\n/**\n * @class\n * @classdesc Minimalistic event emitter mixin.\n */\nfunction EventEmitter() {}\n\n/**\n * Registers an event listener for the specified event. If the listener has\n * already been registered for the event, this is a no-op.\n *\n * @param {string} name The event name.\n * @param {function} fn The listener function.\n */\nEventEmitter.prototype.addEventListener = function(name, fn) {\n var eventMap = this.__events = this.__events || {};\n var handlerList = eventMap[name] = eventMap[name] || [];\n if (handlerList.indexOf(fn) < 0) {\n handlerList.push(fn);\n }\n};\n\n/**\n * Unregisters an event listener from the specified event. If the listener\n * hasn't been registered for the event, this is a no-op.\n *\n * @param {string} name The event name.\n * @param {function} fn The listener function.\n */\nEventEmitter.prototype.removeEventListener = function(name, fn) {\n var eventMap = this.__events = this.__events || {};\n var handlerList = eventMap[name];\n if (handlerList) {\n var index = handlerList.indexOf(fn);\n if (index >= 0) {\n handlerList.splice(index, 1);\n }\n }\n};\n\n/**\n * Emits an event, causing all registered event listeners for that event to be\n * called in registration order.\n *\n * @param {string} name The event name.\n * @param {...*} var_args Arguments to call listeners with.\n */\nEventEmitter.prototype.emit = function(name, var_args) {\n var eventMap = this.__events = this.__events || {};\n var handlerList = eventMap[name];\n var args = Array.prototype.slice.call(arguments, 1);\n if (handlerList) {\n for (var i = 0; i < handlerList.length; i++) {\n var fn = handlerList[i];\n fn.apply(this, args);\n }\n }\n};\n\n/**\n * Mixes in {@link EventEmitter} into a constructor function.\n *\n * @param {function} ctor The constructor function.\n */\nfunction eventEmitter(ctor) {\n for (var prop in EventEmitter.prototype) {\n if (EventEmitter.prototype.hasOwnProperty(prop)) {\n ctor.prototype[prop] = EventEmitter.prototype[prop];\n }\n }\n}\n\nmodule.exports = eventEmitter;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)\r\n * [a, b,\r\n * c, d,\r\n * tx, ty]\r\n * \r\n * This is a short form for the 3x3 matrix:\r\n *
\r\n * [a, b, 0,\r\n *  c, d, 0,\r\n *  tx, ty, 1]\r\n * 
\r\n * The last column is ignored so the array is shorter and operations are faster.\r\n */\n\n/**\r\n * Creates a new identity mat2d\r\n *\r\n * @returns {mat2d} a new 2x3 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(6);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[4] = 0;\n out[5] = 0;\n }\n\n out[0] = 1;\n out[3] = 1;\n return out;\n}\n/**\r\n * Creates a new mat2d initialized with values from an existing matrix\r\n *\r\n * @param {ReadonlyMat2d} a matrix to clone\r\n * @returns {mat2d} a new 2x3 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(6);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n return out;\n}\n/**\r\n * Copy the values from one mat2d to another\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the source matrix\r\n * @returns {mat2d} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n return out;\n}\n/**\r\n * Set a mat2d to the identity matrix\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @returns {mat2d} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n/**\r\n * Create a new mat2d with the given values\r\n *\r\n * @param {Number} a Component A (index 0)\r\n * @param {Number} b Component B (index 1)\r\n * @param {Number} c Component C (index 2)\r\n * @param {Number} d Component D (index 3)\r\n * @param {Number} tx Component TX (index 4)\r\n * @param {Number} ty Component TY (index 5)\r\n * @returns {mat2d} A new mat2d\r\n */\n\nexport function fromValues(a, b, c, d, tx, ty) {\n var out = new glMatrix.ARRAY_TYPE(6);\n out[0] = a;\n out[1] = b;\n out[2] = c;\n out[3] = d;\n out[4] = tx;\n out[5] = ty;\n return out;\n}\n/**\r\n * Set the components of a mat2d to the given values\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {Number} a Component A (index 0)\r\n * @param {Number} b Component B (index 1)\r\n * @param {Number} c Component C (index 2)\r\n * @param {Number} d Component D (index 3)\r\n * @param {Number} tx Component TX (index 4)\r\n * @param {Number} ty Component TY (index 5)\r\n * @returns {mat2d} out\r\n */\n\nexport function set(out, a, b, c, d, tx, ty) {\n out[0] = a;\n out[1] = b;\n out[2] = c;\n out[3] = d;\n out[4] = tx;\n out[5] = ty;\n return out;\n}\n/**\r\n * Inverts a mat2d\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the source matrix\r\n * @returns {mat2d} out\r\n */\n\nexport function invert(out, a) {\n var aa = a[0],\n ab = a[1],\n ac = a[2],\n ad = a[3];\n var atx = a[4],\n aty = a[5];\n var det = aa * ad - ab * ac;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\n/**\r\n * Calculates the determinant of a mat2d\r\n *\r\n * @param {ReadonlyMat2d} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n return a[0] * a[3] - a[1] * a[2];\n}\n/**\r\n * Multiplies two mat2d's\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the first operand\r\n * @param {ReadonlyMat2d} b the second operand\r\n * @returns {mat2d} out\r\n */\n\nexport function multiply(out, a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5];\n out[0] = a0 * b0 + a2 * b1;\n out[1] = a1 * b0 + a3 * b1;\n out[2] = a0 * b2 + a2 * b3;\n out[3] = a1 * b2 + a3 * b3;\n out[4] = a0 * b4 + a2 * b5 + a4;\n out[5] = a1 * b4 + a3 * b5 + a5;\n return out;\n}\n/**\r\n * Rotates a mat2d by the given angle\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat2d} out\r\n */\n\nexport function rotate(out, a, rad) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n out[0] = a0 * c + a2 * s;\n out[1] = a1 * c + a3 * s;\n out[2] = a0 * -s + a2 * c;\n out[3] = a1 * -s + a3 * c;\n out[4] = a4;\n out[5] = a5;\n return out;\n}\n/**\r\n * Scales the mat2d by the dimensions in the given vec2\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to translate\r\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\r\n * @returns {mat2d} out\r\n **/\n\nexport function scale(out, a, v) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n var v0 = v[0],\n v1 = v[1];\n out[0] = a0 * v0;\n out[1] = a1 * v0;\n out[2] = a2 * v1;\n out[3] = a3 * v1;\n out[4] = a4;\n out[5] = a5;\n return out;\n}\n/**\r\n * Translates the mat2d by the dimensions in the given vec2\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to translate\r\n * @param {ReadonlyVec2} v the vec2 to translate the matrix by\r\n * @returns {mat2d} out\r\n **/\n\nexport function translate(out, a, v) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n var v0 = v[0],\n v1 = v[1];\n out[0] = a0;\n out[1] = a1;\n out[2] = a2;\n out[3] = a3;\n out[4] = a0 * v0 + a2 * v1 + a4;\n out[5] = a1 * v0 + a3 * v1 + a5;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat2d.identity(dest);\r\n * mat2d.rotate(dest, dest, rad);\r\n *\r\n * @param {mat2d} out mat2d receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat2d} out\r\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = -s;\n out[3] = c;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat2d.identity(dest);\r\n * mat2d.scale(dest, dest, vec);\r\n *\r\n * @param {mat2d} out mat2d receiving operation result\r\n * @param {ReadonlyVec2} v Scaling vector\r\n * @returns {mat2d} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = v[1];\n out[4] = 0;\n out[5] = 0;\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat2d.identity(dest);\r\n * mat2d.translate(dest, dest, vec);\r\n *\r\n * @param {mat2d} out mat2d receiving operation result\r\n * @param {ReadonlyVec2} v Translation vector\r\n * @returns {mat2d} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = v[0];\n out[5] = v[1];\n return out;\n}\n/**\r\n * Returns a string representation of a mat2d\r\n *\r\n * @param {ReadonlyMat2d} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat2d(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat2d\r\n *\r\n * @param {ReadonlyMat2d} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], 1);\n}\n/**\r\n * Adds two mat2d's\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the first operand\r\n * @param {ReadonlyMat2d} b the second operand\r\n * @returns {mat2d} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the first operand\r\n * @param {ReadonlyMat2d} b the second operand\r\n * @returns {mat2d} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat2d} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat2d} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n return out;\n}\n/**\r\n * Adds two mat2d's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat2d} out the receiving vector\r\n * @param {ReadonlyMat2d} a the first operand\r\n * @param {ReadonlyMat2d} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat2d} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyMat2d} a The first matrix.\r\n * @param {ReadonlyMat2d} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyMat2d} a The first matrix.\r\n * @param {ReadonlyMat2d} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5));\n}\n/**\r\n * Alias for {@link mat2d.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat2d.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\r\n * 3x3 Matrix\r\n * @module mat3\r\n */\n\n/**\r\n * Creates a new identity mat3\r\n *\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(9);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the upper-left 3x3 values into the given mat3.\r\n *\r\n * @param {mat3} out the receiving 3x3 matrix\r\n * @param {ReadonlyMat4} a the source 4x4 matrix\r\n * @returns {mat3} out\r\n */\n\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n/**\r\n * Creates a new mat3 initialized with values from an existing matrix\r\n *\r\n * @param {ReadonlyMat3} a matrix to clone\r\n * @returns {mat3} a new 3x3 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Copy the values from one mat3 to another\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Create a new mat3 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} A new mat3\r\n */\n\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n var out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set the components of a mat3 to the given values\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\r\n * @returns {mat3} out\r\n */\n\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n/**\r\n * Set a mat3 to the identity matrix\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @returns {mat3} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b01 = a22 * a11 - a12 * a21;\n var b11 = -a22 * a10 + a12 * a20;\n var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n var det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {mat3} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n/**\r\n * Calculates the determinant of a mat3\r\n *\r\n * @param {ReadonlyMat3} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);\n}\n/**\r\n * Multiplies two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2];\n var a10 = a[3],\n a11 = a[4],\n a12 = a[5];\n var a20 = a[6],\n a21 = a[7],\n a22 = a[8];\n var b00 = b[0],\n b01 = b[1],\n b02 = b[2];\n var b10 = b[3],\n b11 = b[4],\n b12 = b[5];\n var b20 = b[6],\n b21 = b[7],\n b22 = b[8];\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n/**\r\n * Translate a mat3 by the given vector\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to translate\r\n * @param {ReadonlyVec2} v vector to translate by\r\n * @returns {mat3} out\r\n */\n\nexport function translate(out, a, v) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n x = v[0],\n y = v[1];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n/**\r\n * Rotates a mat3 by the given angle\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function rotate(out, a, rad) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a10 = a[3],\n a11 = a[4],\n a12 = a[5],\n a20 = a[6],\n a21 = a[7],\n a22 = a[8],\n s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n/**\r\n * Scales the mat3 by the dimensions in the given vec2\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to rotate\r\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\r\n * @returns {mat3} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1];\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.translate(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyVec2} v Translation vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.rotate(dest, dest, rad);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat3} out\r\n */\n\nexport function fromRotation(out, rad) {\n var s = Math.sin(rad),\n c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat3.identity(dest);\r\n * mat3.scale(dest, dest, vec);\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyVec2} v Scaling vector\r\n * @returns {mat3} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n/**\r\n * Copies the values from a mat2d into a mat3\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat2d} a the matrix to copy\r\n * @returns {mat3} out\r\n **/\n\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n/**\r\n * Calculates a 3x3 matrix from the given quaternion\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyQuat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n return out;\n}\n/**\r\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\r\n *\r\n * @param {mat3} out mat3 receiving operation result\r\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\r\n *\r\n * @returns {mat3} out\r\n */\n\nexport function normalFromMat4(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n return out;\n}\n/**\r\n * Generates a 2D projection matrix with the given bounds\r\n *\r\n * @param {mat3} out mat3 frustum matrix will be written into\r\n * @param {number} width Width of your gl context\r\n * @param {number} height Height of gl context\r\n * @returns {mat3} out\r\n */\n\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat3\r\n *\r\n * @param {ReadonlyMat3} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat3\r\n *\r\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);\n}\n/**\r\n * Adds two mat3's\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @returns {mat3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat3} out the receiving matrix\r\n * @param {ReadonlyMat3} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n/**\r\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat3} out the receiving vector\r\n * @param {ReadonlyMat3} a the first operand\r\n * @param {ReadonlyMat3} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat3} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyMat3} a The first matrix.\r\n * @param {ReadonlyMat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyMat3} a The first matrix.\r\n * @param {ReadonlyMat3} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7],\n a8 = a[8];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8));\n}\n/**\r\n * Alias for {@link mat3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\r\n * 4x4 Matrix
Format: column-major, when typed out it looks like row-major
The matrices are being post multiplied.\r\n * @module mat4\r\n */\n\n/**\r\n * Creates a new identity mat4\r\n *\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 initialized with values from an existing matrix\r\n *\r\n * @param {ReadonlyMat4} a matrix to clone\r\n * @returns {mat4} a new 4x4 matrix\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Copy the values from one mat4 to another\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Create a new mat4 with the given values\r\n *\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} A new mat4\r\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set the components of a mat4 to the given values\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\r\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\r\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\r\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\r\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\r\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\r\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\r\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\r\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\r\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\r\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\r\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\r\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\r\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\r\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\r\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\r\n * @returns {mat4} out\r\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\r\n * Set a mat4 to the identity matrix\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @returns {mat4} out\r\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Transpose the values of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Inverts a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\r\n * Calculates the adjugate of a mat4\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {mat4} out\r\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\r\n * Calculates the determinant of a mat4\r\n *\r\n * @param {ReadonlyMat4} a the source matrix\r\n * @returns {Number} determinant of a\r\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\r\n * Multiplies two mat4s\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\r\n * Translate a mat4 by the given vector\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to translate\r\n * @param {ReadonlyVec3} v vector to translate by\r\n * @returns {mat4} out\r\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n\n return out;\n}\n/**\r\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to scale\r\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\r\n * @returns {mat4} out\r\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\r\n * Rotates a mat4 by the given angle around the given axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {ReadonlyVec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the X axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Y axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\r\n * Rotates a matrix by the given angle around the Z axis\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to rotate\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\r\n * Creates a matrix from a vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a vector scaling\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.scale(dest, dest, vec);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyVec3} v Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a given angle around a given axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotate(dest, dest, rad, axis);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @param {ReadonlyVec3} axis the axis to rotate around\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n\n if (len < glMatrix.EPSILON) {\n return null;\n }\n\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the X axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateX(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Y axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateY(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from the given angle around the Z axis\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.rotateZ(dest, dest, rad);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {Number} rad the angle to rotate the matrix by\r\n * @returns {mat4} out\r\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation and vector translation\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a new mat4 from a dual quat.\r\n *\r\n * @param {mat4} out Matrix\r\n * @param {ReadonlyQuat2} a Dual Quaternion\r\n * @returns {mat4} mat4 receiving operation result\r\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\r\n * Returns the translation vector component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslation,\r\n * the returned vector will be the same as the translation vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive translation component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\r\n * Returns the scaling factor component of a transformation\r\n * matrix. If a matrix is built with fromRotationTranslationScale\r\n * with a normalized Quaternion paramter, the returned vector will be\r\n * the same as the scaling vector\r\n * originally supplied.\r\n * @param {vec3} out Vector to receive scaling factor component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {vec3} out\r\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\r\n * Returns a quaternion representing the rotational component\r\n * of a transformation matrix. If a matrix is built with\r\n * fromRotationTranslation, the returned quaternion will be the\r\n * same as the quaternion originally supplied.\r\n * @param {quat} out Quaternion to receive the rotation component\r\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\r\n * @return {quat} out\r\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @param {ReadonlyVec3} s Scaling vector\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\r\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\r\n * This is equivalent to (but much faster than):\r\n *\r\n * mat4.identity(dest);\r\n * mat4.translate(dest, vec);\r\n * mat4.translate(dest, origin);\r\n * let quatMat = mat4.create();\r\n * quat4.toMat4(quat, quatMat);\r\n * mat4.multiply(dest, quatMat);\r\n * mat4.scale(dest, scale)\r\n * mat4.translate(dest, negativeOrigin);\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {quat4} q Rotation quaternion\r\n * @param {ReadonlyVec3} v Translation vector\r\n * @param {ReadonlyVec3} s Scaling vector\r\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\r\n * @returns {mat4} out\r\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\r\n * Calculates a 4x4 matrix from the given quaternion\r\n *\r\n * @param {mat4} out mat4 receiving operation result\r\n * @param {ReadonlyQuat} q Quaternion to create matrix from\r\n *\r\n * @returns {mat4} out\r\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a frustum matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Number} left Left bound of the frustum\r\n * @param {Number} right Right bound of the frustum\r\n * @param {Number} bottom Bottom bound of the frustum\r\n * @param {Number} top Top bound of the frustum\r\n * @param {Number} near Near bound of the frustum\r\n * @param {Number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given bounds.\r\n * Passing null/undefined/no value for far will generate infinite projection matrix.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} fovy Vertical field of view in radians\r\n * @param {number} aspect Aspect ratio. typically viewport width/height\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum, can be null or Infinity\r\n * @returns {mat4} out\r\n */\n\nexport function perspective(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n\n return out;\n}\n/**\r\n * Generates a perspective projection matrix with the given field of view.\r\n * This is primarily useful for generating projection matrices to be used\r\n * with the still experiemental WebVR API.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\r\n * Generates a orthogonal projection matrix with the given bounds\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {number} left Left bound of the frustum\r\n * @param {number} right Right bound of the frustum\r\n * @param {number} bottom Bottom bound of the frustum\r\n * @param {number} top Top bound of the frustum\r\n * @param {number} near Near bound of the frustum\r\n * @param {number} far Far bound of the frustum\r\n * @returns {mat4} out\r\n */\n\nexport function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\r\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {ReadonlyVec3} eye Position of the viewer\r\n * @param {ReadonlyVec3} center Point the viewer is looking at\r\n * @param {ReadonlyVec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\r\n * Generates a matrix that makes something look at something else.\r\n *\r\n * @param {mat4} out mat4 frustum matrix will be written into\r\n * @param {ReadonlyVec3} eye Position of the viewer\r\n * @param {ReadonlyVec3} center Point the viewer is looking at\r\n * @param {ReadonlyVec3} up vec3 pointing up\r\n * @returns {mat4} out\r\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\r\n * Returns a string representation of a mat4\r\n *\r\n * @param {ReadonlyMat4} a matrix to represent as a string\r\n * @returns {String} string representation of the matrix\r\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\r\n * Returns Frobenius norm of a mat4\r\n *\r\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\r\n * @returns {Number} Frobenius norm\r\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\r\n * Adds two mat4's\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\r\n * Subtracts matrix b from matrix a\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @returns {mat4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\r\n * Multiply each element of the matrix by a scalar.\r\n *\r\n * @param {mat4} out the receiving matrix\r\n * @param {ReadonlyMat4} a the matrix to scale\r\n * @param {Number} b amount to scale the matrix's elements by\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\r\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\r\n *\r\n * @param {mat4} out the receiving vector\r\n * @param {ReadonlyMat4} a the first operand\r\n * @param {ReadonlyMat4} b the second operand\r\n * @param {Number} scale the amount to scale b's elements by before adding\r\n * @returns {mat4} out\r\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\r\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyMat4} a The first matrix.\r\n * @param {ReadonlyMat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\r\n * Returns whether or not the matrices have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyMat4} a The first matrix.\r\n * @param {ReadonlyMat4} b The second matrix.\r\n * @returns {Boolean} True if the matrices are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\r\n * Alias for {@link mat4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link mat4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\r\n * 3 Dimensional Vector\r\n * @module vec3\r\n */\n\n/**\r\n * Creates a new, empty vec3\r\n *\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec3 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec3} a vector to clone\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Calculates the length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Creates a new vec3 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} a new 3D vector\r\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Copy the values from one vec3 to another\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the source vector\r\n * @returns {vec3} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\r\n * Set the components of a vec3 to the given values\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @returns {vec3} out\r\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\r\n * Adds two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\r\n * Multiplies two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\r\n * Divides two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to ceil\r\n * @returns {vec3} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to floor\r\n * @returns {vec3} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\r\n * Math.round the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to round\r\n * @returns {vec3} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\r\n * Scales a vec3 by a scalar number\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec3} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\r\n * Adds two vec3's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec3} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Calculates the squared length of a vec3\r\n *\r\n * @param {ReadonlyVec3} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\r\n * Negates the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to negate\r\n * @returns {vec3} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to invert\r\n * @returns {vec3} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\r\n * Normalize a vec3\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a vector to normalize\r\n * @returns {vec3} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec3's\r\n *\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\r\n * Computes the cross product of two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec3's\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\r\n * Performs a hermite interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Performs a bezier interpolation with two control points\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the first operand\r\n * @param {ReadonlyVec3} b the second operand\r\n * @param {ReadonlyVec3} c the third operand\r\n * @param {ReadonlyVec3} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec3} out\r\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec3} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat4.\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\r\n * Transforms the vec3 with a mat3.\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\r\n * Transforms the vec3 with a quat\r\n * Can also be used for dual quaternions. (Multiply it with the real part)\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec3} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec3} out\r\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\r\n * Rotate a 3D vector around the x-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the y-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Rotate a 3D vector around the z-axis\r\n * @param {vec3} out The receiving vec3\r\n * @param {ReadonlyVec3} a The vec3 point to rotate\r\n * @param {ReadonlyVec3} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec3} out\r\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\r\n * Get the angle between two 3D vectors\r\n * @param {ReadonlyVec3} a The first operand\r\n * @param {ReadonlyVec3} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec3 to zero\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @returns {vec3} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec3} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec3} a The first vector.\r\n * @param {ReadonlyVec3} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\r\n * Alias for {@link vec3.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec3.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec3.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec3.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec3.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec3.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec3.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec3s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 3;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n\n return a;\n };\n}();","import * as glMatrix from \"./common.js\";\n/**\r\n * 4 Dimensional Vector\r\n * @module vec4\r\n */\n\n/**\r\n * Creates a new, empty vec4\r\n *\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec4} a vector to clone\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a new vec4 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} a new 4D vector\r\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Copy the values from one vec4 to another\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the source vector\r\n * @returns {vec4} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to the given values\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {vec4} out\r\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\r\n * Adds two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\r\n * Multiplies two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\r\n * Divides two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to ceil\r\n * @returns {vec4} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to floor\r\n * @returns {vec4} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {vec4} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\r\n * Math.round the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to round\r\n * @returns {vec4} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\r\n * Scales a vec4 by a scalar number\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec4} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\r\n * Adds two vec4's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec4} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Calculates the length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\r\n * Calculates the squared length of a vec4\r\n *\r\n * @param {ReadonlyVec4} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\r\n * Negates the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to negate\r\n * @returns {vec4} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to invert\r\n * @returns {vec4} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\r\n * Normalize a vec4\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a vector to normalize\r\n * @returns {vec4} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec4's\r\n *\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\r\n * Returns the cross-product of three vectors in a 4-dimensional space\r\n *\r\n * @param {ReadonlyVec4} result the receiving vector\r\n * @param {ReadonlyVec4} U the first vector\r\n * @param {ReadonlyVec4} V the second vector\r\n * @param {ReadonlyVec4} W the third vector\r\n * @returns {vec4} result\r\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec4's\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the first operand\r\n * @param {ReadonlyVec4} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec4} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec4} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\r\n * Transforms the vec4 with a mat4.\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\r\n * Transforms the vec4 with a quat\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @param {ReadonlyVec4} a the vector to transform\r\n * @param {ReadonlyQuat} q quaternion to transform with\r\n * @returns {vec4} out\r\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\r\n * Set the components of a vec4 to zero\r\n *\r\n * @param {vec4} out the receiving vector\r\n * @returns {vec4} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec4} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec4} a The first vector.\r\n * @param {ReadonlyVec4} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\r\n * Alias for {@link vec4.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec4.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec4.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec4.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec4.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec4.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec4.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec4s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 4;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n\n return a;\n };\n}();","import * as glMatrix from \"./common.js\";\nimport * as mat3 from \"./mat3.js\";\nimport * as vec3 from \"./vec3.js\";\nimport * as vec4 from \"./vec4.js\";\n/**\r\n * Quaternion\r\n * @module quat\r\n */\n\n/**\r\n * Creates a new identity quat\r\n *\r\n * @returns {quat} a new quaternion\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n\n out[3] = 1;\n return out;\n}\n/**\r\n * Set a quat to the identity quaternion\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @returns {quat} out\r\n */\n\nexport function identity(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n}\n/**\r\n * Sets a quat from the given angle and rotation axis,\r\n * then returns it.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyVec3} axis the axis around which to rotate\r\n * @param {Number} rad the angle in radians\r\n * @returns {quat} out\r\n **/\n\nexport function setAxisAngle(out, axis, rad) {\n rad = rad * 0.5;\n var s = Math.sin(rad);\n out[0] = s * axis[0];\n out[1] = s * axis[1];\n out[2] = s * axis[2];\n out[3] = Math.cos(rad);\n return out;\n}\n/**\r\n * Gets the rotation axis and angle for a given\r\n * quaternion. If a quaternion is created with\r\n * setAxisAngle, this method will return the same\r\n * values as providied in the original parameter list\r\n * OR functionally equivalent values.\r\n * Example: The quaternion formed by axis [0, 0, 1] and\r\n * angle -90 is the same as the quaternion formed by\r\n * [0, 0, 1] and 270. This method favors the latter.\r\n * @param {vec3} out_axis Vector receiving the axis of rotation\r\n * @param {ReadonlyQuat} q Quaternion to be decomposed\r\n * @return {Number} Angle, in radians, of the rotation\r\n */\n\nexport function getAxisAngle(out_axis, q) {\n var rad = Math.acos(q[3]) * 2.0;\n var s = Math.sin(rad / 2.0);\n\n if (s > glMatrix.EPSILON) {\n out_axis[0] = q[0] / s;\n out_axis[1] = q[1] / s;\n out_axis[2] = q[2] / s;\n } else {\n // If s is zero, return any axis (no rotation - axis does not matter)\n out_axis[0] = 1;\n out_axis[1] = 0;\n out_axis[2] = 0;\n }\n\n return rad;\n}\n/**\r\n * Gets the angular distance between two unit quaternions\r\n *\r\n * @param {ReadonlyQuat} a Origin unit quaternion\r\n * @param {ReadonlyQuat} b Destination unit quaternion\r\n * @return {Number} Angle, in radians, between the two quaternions\r\n */\n\nexport function getAngle(a, b) {\n var dotproduct = dot(a, b);\n return Math.acos(2 * dotproduct * dotproduct - 1);\n}\n/**\r\n * Multiplies two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @returns {quat} out\r\n */\n\nexport function multiply(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n out[0] = ax * bw + aw * bx + ay * bz - az * by;\n out[1] = ay * bw + aw * by + az * bx - ax * bz;\n out[2] = az * bw + aw * bz + ax * by - ay * bx;\n out[3] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the X axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {ReadonlyQuat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateX(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + aw * bx;\n out[1] = ay * bw + az * bx;\n out[2] = az * bw - ay * bx;\n out[3] = aw * bw - ax * bx;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the Y axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {ReadonlyQuat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateY(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var by = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw - az * by;\n out[1] = ay * bw + aw * by;\n out[2] = az * bw + ax * by;\n out[3] = aw * bw - ay * by;\n return out;\n}\n/**\r\n * Rotates a quaternion by the given angle about the Z axis\r\n *\r\n * @param {quat} out quat receiving operation result\r\n * @param {ReadonlyQuat} a quat to rotate\r\n * @param {number} rad angle (in radians) to rotate\r\n * @returns {quat} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n rad *= 0.5;\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bz = Math.sin(rad),\n bw = Math.cos(rad);\n out[0] = ax * bw + ay * bz;\n out[1] = ay * bw - ax * bz;\n out[2] = az * bw + aw * bz;\n out[3] = aw * bw - az * bz;\n return out;\n}\n/**\r\n * Calculates the W component of a quat from the X, Y, and Z components.\r\n * Assumes that quaternion is 1 unit in length.\r\n * Any existing W component will be ignored.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate W component of\r\n * @returns {quat} out\r\n */\n\nexport function calculateW(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = Math.sqrt(Math.abs(1.0 - x * x - y * y - z * z));\n return out;\n}\n/**\r\n * Calculate the exponential of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate the exponential of\r\n * @returns {quat} out\r\n */\n\nexport function exp(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var et = Math.exp(w);\n var s = r > 0 ? et * Math.sin(r) / r : 0;\n out[0] = x * s;\n out[1] = y * s;\n out[2] = z * s;\n out[3] = et * Math.cos(r);\n return out;\n}\n/**\r\n * Calculate the natural logarithm of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate the exponential of\r\n * @returns {quat} out\r\n */\n\nexport function ln(out, a) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n var r = Math.sqrt(x * x + y * y + z * z);\n var t = r > 0 ? Math.atan2(r, w) / r : 0;\n out[0] = x * t;\n out[1] = y * t;\n out[2] = z * t;\n out[3] = 0.5 * Math.log(x * x + y * y + z * z + w * w);\n return out;\n}\n/**\r\n * Calculate the scalar power of a unit quaternion.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate the exponential of\r\n * @param {Number} b amount to scale the quaternion by\r\n * @returns {quat} out\r\n */\n\nexport function pow(out, a, b) {\n ln(out, a);\n scale(out, out, b);\n exp(out, out);\n return out;\n}\n/**\r\n * Performs a spherical linear interpolation between two quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n */\n\nexport function slerp(out, a, b, t) {\n // benchmarks:\n // http://jsperf.com/quaternion-slerp-implementations\n var ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n var bx = b[0],\n by = b[1],\n bz = b[2],\n bw = b[3];\n var omega, cosom, sinom, scale0, scale1; // calc cosine\n\n cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n } // calculate coefficients\n\n\n if (1.0 - cosom > glMatrix.EPSILON) {\n // standard case (slerp)\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n // \"from\" and \"to\" quaternions are very close\n // ... so we can do a linear interpolation\n scale0 = 1.0 - t;\n scale1 = t;\n } // calculate final values\n\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n}\n/**\r\n * Generates a random unit quaternion\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @returns {quat} out\r\n */\n\nexport function random(out) {\n // Implementation of http://planning.cs.uiuc.edu/node198.html\n // TODO: Calling random 3 times is probably not the fastest solution\n var u1 = glMatrix.RANDOM();\n var u2 = glMatrix.RANDOM();\n var u3 = glMatrix.RANDOM();\n var sqrt1MinusU1 = Math.sqrt(1 - u1);\n var sqrtU1 = Math.sqrt(u1);\n out[0] = sqrt1MinusU1 * Math.sin(2.0 * Math.PI * u2);\n out[1] = sqrt1MinusU1 * Math.cos(2.0 * Math.PI * u2);\n out[2] = sqrtU1 * Math.sin(2.0 * Math.PI * u3);\n out[3] = sqrtU1 * Math.cos(2.0 * Math.PI * u3);\n return out;\n}\n/**\r\n * Calculates the inverse of a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate inverse of\r\n * @returns {quat} out\r\n */\n\nexport function invert(out, a) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var dot = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;\n var invDot = dot ? 1.0 / dot : 0; // TODO: Would be faster to return [0,0,0,0] immediately if dot == 0\n\n out[0] = -a0 * invDot;\n out[1] = -a1 * invDot;\n out[2] = -a2 * invDot;\n out[3] = a3 * invDot;\n return out;\n}\n/**\r\n * Calculates the conjugate of a quat\r\n * If the quaternion is normalized, this function is faster than quat.inverse and produces the same result.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quat to calculate conjugate of\r\n * @returns {quat} out\r\n */\n\nexport function conjugate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n return out;\n}\n/**\r\n * Creates a quaternion from the given 3x3 rotation matrix.\r\n *\r\n * NOTE: The resultant quaternion is not normalized, so you should be sure\r\n * to renormalize the quaternion yourself where necessary.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyMat3} m rotation matrix\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport function fromMat3(out, m) {\n // Algorithm in Ken Shoemake's article in 1987 SIGGRAPH course notes\n // article \"Quaternion Calculus and Fast Animation\".\n var fTrace = m[0] + m[4] + m[8];\n var fRoot;\n\n if (fTrace > 0.0) {\n // |w| > 1/2, may as well choose w > 1/2\n fRoot = Math.sqrt(fTrace + 1.0); // 2w\n\n out[3] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot; // 1/(4w)\n\n out[0] = (m[5] - m[7]) * fRoot;\n out[1] = (m[6] - m[2]) * fRoot;\n out[2] = (m[1] - m[3]) * fRoot;\n } else {\n // |w| <= 1/2\n var i = 0;\n if (m[4] > m[0]) i = 1;\n if (m[8] > m[i * 3 + i]) i = 2;\n var j = (i + 1) % 3;\n var k = (i + 2) % 3;\n fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1.0);\n out[i] = 0.5 * fRoot;\n fRoot = 0.5 / fRoot;\n out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;\n out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;\n out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;\n }\n\n return out;\n}\n/**\r\n * Creates a quaternion from the given euler angle x, y, z.\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {x} Angle to rotate around X axis in degrees.\r\n * @param {y} Angle to rotate around Y axis in degrees.\r\n * @param {z} Angle to rotate around Z axis in degrees.\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport function fromEuler(out, x, y, z) {\n var halfToRad = 0.5 * Math.PI / 180.0;\n x *= halfToRad;\n y *= halfToRad;\n z *= halfToRad;\n var sx = Math.sin(x);\n var cx = Math.cos(x);\n var sy = Math.sin(y);\n var cy = Math.cos(y);\n var sz = Math.sin(z);\n var cz = Math.cos(z);\n out[0] = sx * cy * cz - cx * sy * sz;\n out[1] = cx * sy * cz + sx * cy * sz;\n out[2] = cx * cy * sz - sx * sy * cz;\n out[3] = cx * cy * cz + sx * sy * sz;\n return out;\n}\n/**\r\n * Returns a string representation of a quatenion\r\n *\r\n * @param {ReadonlyQuat} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"quat(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\r\n * Creates a new quat initialized with values from an existing quaternion\r\n *\r\n * @param {ReadonlyQuat} a quaternion to clone\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\n\nexport var clone = vec4.clone;\n/**\r\n * Creates a new quat initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} a new quaternion\r\n * @function\r\n */\n\nexport var fromValues = vec4.fromValues;\n/**\r\n * Copy the values from one quat to another\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the source quaternion\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var copy = vec4.copy;\n/**\r\n * Set the components of a quat to the given values\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @param {Number} z Z component\r\n * @param {Number} w W component\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var set = vec4.set;\n/**\r\n * Adds two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var add = vec4.add;\n/**\r\n * Alias for {@link quat.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Scales a quat by a scalar number\r\n *\r\n * @param {quat} out the receiving vector\r\n * @param {ReadonlyQuat} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var scale = vec4.scale;\n/**\r\n * Calculates the dot product of two quat's\r\n *\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @returns {Number} dot product of a and b\r\n * @function\r\n */\n\nexport var dot = vec4.dot;\n/**\r\n * Performs a linear interpolation between two quat's\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var lerp = vec4.lerp;\n/**\r\n * Calculates the length of a quat\r\n *\r\n * @param {ReadonlyQuat} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport var length = vec4.length;\n/**\r\n * Alias for {@link quat.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Calculates the squared length of a quat\r\n *\r\n * @param {ReadonlyQuat} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n * @function\r\n */\n\nexport var squaredLength = vec4.squaredLength;\n/**\r\n * Alias for {@link quat.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Normalize a quat\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a quaternion to normalize\r\n * @returns {quat} out\r\n * @function\r\n */\n\nexport var normalize = vec4.normalize;\n/**\r\n * Returns whether or not the quaternions have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyQuat} a The first quaternion.\r\n * @param {ReadonlyQuat} b The second quaternion.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport var exactEquals = vec4.exactEquals;\n/**\r\n * Returns whether or not the quaternions have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyQuat} a The first vector.\r\n * @param {ReadonlyQuat} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport var equals = vec4.equals;\n/**\r\n * Sets a quaternion to represent the shortest rotation from one\r\n * vector to another.\r\n *\r\n * Both vectors are assumed to be unit length.\r\n *\r\n * @param {quat} out the receiving quaternion.\r\n * @param {ReadonlyVec3} a the initial vector\r\n * @param {ReadonlyVec3} b the destination vector\r\n * @returns {quat} out\r\n */\n\nexport var rotationTo = function () {\n var tmpvec3 = vec3.create();\n var xUnitVec3 = vec3.fromValues(1, 0, 0);\n var yUnitVec3 = vec3.fromValues(0, 1, 0);\n return function (out, a, b) {\n var dot = vec3.dot(a, b);\n\n if (dot < -0.999999) {\n vec3.cross(tmpvec3, xUnitVec3, a);\n if (vec3.len(tmpvec3) < 0.000001) vec3.cross(tmpvec3, yUnitVec3, a);\n vec3.normalize(tmpvec3, tmpvec3);\n setAxisAngle(out, tmpvec3, Math.PI);\n return out;\n } else if (dot > 0.999999) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n return out;\n } else {\n vec3.cross(tmpvec3, a, b);\n out[0] = tmpvec3[0];\n out[1] = tmpvec3[1];\n out[2] = tmpvec3[2];\n out[3] = 1 + dot;\n return normalize(out, out);\n }\n };\n}();\n/**\r\n * Performs a spherical linear interpolation with two control points\r\n *\r\n * @param {quat} out the receiving quaternion\r\n * @param {ReadonlyQuat} a the first operand\r\n * @param {ReadonlyQuat} b the second operand\r\n * @param {ReadonlyQuat} c the third operand\r\n * @param {ReadonlyQuat} d the fourth operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat} out\r\n */\n\nexport var sqlerp = function () {\n var temp1 = create();\n var temp2 = create();\n return function (out, a, b, c, d, t) {\n slerp(temp1, a, d, t);\n slerp(temp2, b, c, t);\n slerp(out, temp1, temp2, 2 * t * (1 - t));\n return out;\n };\n}();\n/**\r\n * Sets the specified quaternion with values corresponding to the given\r\n * axes. Each axis is a vec3 and is expected to be unit length and\r\n * perpendicular to all other specified axes.\r\n *\r\n * @param {ReadonlyVec3} view the vector representing the viewing direction\r\n * @param {ReadonlyVec3} right the vector representing the local \"right\" direction\r\n * @param {ReadonlyVec3} up the vector representing the local \"up\" direction\r\n * @returns {quat} out\r\n */\n\nexport var setAxes = function () {\n var matr = mat3.create();\n return function (out, view, right, up) {\n matr[0] = right[0];\n matr[3] = right[1];\n matr[6] = right[2];\n matr[1] = up[0];\n matr[4] = up[1];\n matr[7] = up[2];\n matr[2] = -view[0];\n matr[5] = -view[1];\n matr[8] = -view[2];\n return normalize(out, fromMat3(out, matr));\n };\n}();","import * as glMatrix from \"./common.js\";\nimport * as quat from \"./quat.js\";\nimport * as mat4 from \"./mat4.js\";\n/**\r\n * Dual Quaternion
\r\n * Format: [real, dual]
\r\n * Quaternion format: XYZW
\r\n * Make sure to have normalized dual quaternions, otherwise the functions may not work as intended.
\r\n * @module quat2\r\n */\n\n/**\r\n * Creates a new identity dual quat\r\n *\r\n * @returns {quat2} a new dual quaternion [real -> rotation, dual -> translation]\r\n */\n\nexport function create() {\n var dq = new glMatrix.ARRAY_TYPE(8);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n dq[0] = 0;\n dq[1] = 0;\n dq[2] = 0;\n dq[4] = 0;\n dq[5] = 0;\n dq[6] = 0;\n dq[7] = 0;\n }\n\n dq[3] = 1;\n return dq;\n}\n/**\r\n * Creates a new quat initialized with values from an existing quaternion\r\n *\r\n * @param {ReadonlyQuat2} a dual quaternion to clone\r\n * @returns {quat2} new dual quaternion\r\n * @function\r\n */\n\nexport function clone(a) {\n var dq = new glMatrix.ARRAY_TYPE(8);\n dq[0] = a[0];\n dq[1] = a[1];\n dq[2] = a[2];\n dq[3] = a[3];\n dq[4] = a[4];\n dq[5] = a[5];\n dq[6] = a[6];\n dq[7] = a[7];\n return dq;\n}\n/**\r\n * Creates a new dual quat initialized with the given values\r\n *\r\n * @param {Number} x1 X component\r\n * @param {Number} y1 Y component\r\n * @param {Number} z1 Z component\r\n * @param {Number} w1 W component\r\n * @param {Number} x2 X component\r\n * @param {Number} y2 Y component\r\n * @param {Number} z2 Z component\r\n * @param {Number} w2 W component\r\n * @returns {quat2} new dual quaternion\r\n * @function\r\n */\n\nexport function fromValues(x1, y1, z1, w1, x2, y2, z2, w2) {\n var dq = new glMatrix.ARRAY_TYPE(8);\n dq[0] = x1;\n dq[1] = y1;\n dq[2] = z1;\n dq[3] = w1;\n dq[4] = x2;\n dq[5] = y2;\n dq[6] = z2;\n dq[7] = w2;\n return dq;\n}\n/**\r\n * Creates a new dual quat from the given values (quat and translation)\r\n *\r\n * @param {Number} x1 X component\r\n * @param {Number} y1 Y component\r\n * @param {Number} z1 Z component\r\n * @param {Number} w1 W component\r\n * @param {Number} x2 X component (translation)\r\n * @param {Number} y2 Y component (translation)\r\n * @param {Number} z2 Z component (translation)\r\n * @returns {quat2} new dual quaternion\r\n * @function\r\n */\n\nexport function fromRotationTranslationValues(x1, y1, z1, w1, x2, y2, z2) {\n var dq = new glMatrix.ARRAY_TYPE(8);\n dq[0] = x1;\n dq[1] = y1;\n dq[2] = z1;\n dq[3] = w1;\n var ax = x2 * 0.5,\n ay = y2 * 0.5,\n az = z2 * 0.5;\n dq[4] = ax * w1 + ay * z1 - az * y1;\n dq[5] = ay * w1 + az * x1 - ax * z1;\n dq[6] = az * w1 + ax * y1 - ay * x1;\n dq[7] = -ax * x1 - ay * y1 - az * z1;\n return dq;\n}\n/**\r\n * Creates a dual quat from a quaternion and a translation\r\n *\r\n * @param {ReadonlyQuat2} dual quaternion receiving operation result\r\n * @param {ReadonlyQuat} q a normalized quaternion\r\n * @param {ReadonlyVec3} t tranlation vector\r\n * @returns {quat2} dual quaternion receiving operation result\r\n * @function\r\n */\n\nexport function fromRotationTranslation(out, q, t) {\n var ax = t[0] * 0.5,\n ay = t[1] * 0.5,\n az = t[2] * 0.5,\n bx = q[0],\n by = q[1],\n bz = q[2],\n bw = q[3];\n out[0] = bx;\n out[1] = by;\n out[2] = bz;\n out[3] = bw;\n out[4] = ax * bw + ay * bz - az * by;\n out[5] = ay * bw + az * bx - ax * bz;\n out[6] = az * bw + ax * by - ay * bx;\n out[7] = -ax * bx - ay * by - az * bz;\n return out;\n}\n/**\r\n * Creates a dual quat from a translation\r\n *\r\n * @param {ReadonlyQuat2} dual quaternion receiving operation result\r\n * @param {ReadonlyVec3} t translation vector\r\n * @returns {quat2} dual quaternion receiving operation result\r\n * @function\r\n */\n\nexport function fromTranslation(out, t) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = t[0] * 0.5;\n out[5] = t[1] * 0.5;\n out[6] = t[2] * 0.5;\n out[7] = 0;\n return out;\n}\n/**\r\n * Creates a dual quat from a quaternion\r\n *\r\n * @param {ReadonlyQuat2} dual quaternion receiving operation result\r\n * @param {ReadonlyQuat} q the quaternion\r\n * @returns {quat2} dual quaternion receiving operation result\r\n * @function\r\n */\n\nexport function fromRotation(out, q) {\n out[0] = q[0];\n out[1] = q[1];\n out[2] = q[2];\n out[3] = q[3];\n out[4] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n return out;\n}\n/**\r\n * Creates a new dual quat from a matrix (4x4)\r\n *\r\n * @param {quat2} out the dual quaternion\r\n * @param {ReadonlyMat4} a the matrix\r\n * @returns {quat2} dual quat receiving operation result\r\n * @function\r\n */\n\nexport function fromMat4(out, a) {\n //TODO Optimize this\n var outer = quat.create();\n mat4.getRotation(outer, a);\n var t = new glMatrix.ARRAY_TYPE(3);\n mat4.getTranslation(t, a);\n fromRotationTranslation(out, outer, t);\n return out;\n}\n/**\r\n * Copy the values from one dual quat to another\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the source dual quaternion\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n return out;\n}\n/**\r\n * Set a dual quat to the identity dual quaternion\r\n *\r\n * @param {quat2} out the receiving quaternion\r\n * @returns {quat2} out\r\n */\n\nexport function identity(out) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n return out;\n}\n/**\r\n * Set the components of a dual quat to the given values\r\n *\r\n * @param {quat2} out the receiving quaternion\r\n * @param {Number} x1 X component\r\n * @param {Number} y1 Y component\r\n * @param {Number} z1 Z component\r\n * @param {Number} w1 W component\r\n * @param {Number} x2 X component\r\n * @param {Number} y2 Y component\r\n * @param {Number} z2 Z component\r\n * @param {Number} w2 W component\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function set(out, x1, y1, z1, w1, x2, y2, z2, w2) {\n out[0] = x1;\n out[1] = y1;\n out[2] = z1;\n out[3] = w1;\n out[4] = x2;\n out[5] = y2;\n out[6] = z2;\n out[7] = w2;\n return out;\n}\n/**\r\n * Gets the real part of a dual quat\r\n * @param {quat} out real part\r\n * @param {ReadonlyQuat2} a Dual Quaternion\r\n * @return {quat} real part\r\n */\n\nexport var getReal = quat.copy;\n/**\r\n * Gets the dual part of a dual quat\r\n * @param {quat} out dual part\r\n * @param {ReadonlyQuat2} a Dual Quaternion\r\n * @return {quat} dual part\r\n */\n\nexport function getDual(out, a) {\n out[0] = a[4];\n out[1] = a[5];\n out[2] = a[6];\n out[3] = a[7];\n return out;\n}\n/**\r\n * Set the real component of a dual quat to the given quaternion\r\n *\r\n * @param {quat2} out the receiving quaternion\r\n * @param {ReadonlyQuat} q a quaternion representing the real part\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport var setReal = quat.copy;\n/**\r\n * Set the dual component of a dual quat to the given quaternion\r\n *\r\n * @param {quat2} out the receiving quaternion\r\n * @param {ReadonlyQuat} q a quaternion representing the dual part\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function setDual(out, q) {\n out[4] = q[0];\n out[5] = q[1];\n out[6] = q[2];\n out[7] = q[3];\n return out;\n}\n/**\r\n * Gets the translation of a normalized dual quat\r\n * @param {vec3} out translation\r\n * @param {ReadonlyQuat2} a Dual Quaternion to be decomposed\r\n * @return {vec3} translation\r\n */\n\nexport function getTranslation(out, a) {\n var ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7],\n bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3];\n out[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n out[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n out[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n return out;\n}\n/**\r\n * Translates a dual quat by the given vector\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to translate\r\n * @param {ReadonlyVec3} v vector to translate by\r\n * @returns {quat2} out\r\n */\n\nexport function translate(out, a, v) {\n var ax1 = a[0],\n ay1 = a[1],\n az1 = a[2],\n aw1 = a[3],\n bx1 = v[0] * 0.5,\n by1 = v[1] * 0.5,\n bz1 = v[2] * 0.5,\n ax2 = a[4],\n ay2 = a[5],\n az2 = a[6],\n aw2 = a[7];\n out[0] = ax1;\n out[1] = ay1;\n out[2] = az1;\n out[3] = aw1;\n out[4] = aw1 * bx1 + ay1 * bz1 - az1 * by1 + ax2;\n out[5] = aw1 * by1 + az1 * bx1 - ax1 * bz1 + ay2;\n out[6] = aw1 * bz1 + ax1 * by1 - ay1 * bx1 + az2;\n out[7] = -ax1 * bx1 - ay1 * by1 - az1 * bz1 + aw2;\n return out;\n}\n/**\r\n * Rotates a dual quat around the X axis\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @param {number} rad how far should the rotation be\r\n * @returns {quat2} out\r\n */\n\nexport function rotateX(out, a, rad) {\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7],\n ax1 = ax * bw + aw * bx + ay * bz - az * by,\n ay1 = ay * bw + aw * by + az * bx - ax * bz,\n az1 = az * bw + aw * bz + ax * by - ay * bx,\n aw1 = aw * bw - ax * bx - ay * by - az * bz;\n quat.rotateX(out, a, rad);\n bx = out[0];\n by = out[1];\n bz = out[2];\n bw = out[3];\n out[4] = ax1 * bw + aw1 * bx + ay1 * bz - az1 * by;\n out[5] = ay1 * bw + aw1 * by + az1 * bx - ax1 * bz;\n out[6] = az1 * bw + aw1 * bz + ax1 * by - ay1 * bx;\n out[7] = aw1 * bw - ax1 * bx - ay1 * by - az1 * bz;\n return out;\n}\n/**\r\n * Rotates a dual quat around the Y axis\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @param {number} rad how far should the rotation be\r\n * @returns {quat2} out\r\n */\n\nexport function rotateY(out, a, rad) {\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7],\n ax1 = ax * bw + aw * bx + ay * bz - az * by,\n ay1 = ay * bw + aw * by + az * bx - ax * bz,\n az1 = az * bw + aw * bz + ax * by - ay * bx,\n aw1 = aw * bw - ax * bx - ay * by - az * bz;\n quat.rotateY(out, a, rad);\n bx = out[0];\n by = out[1];\n bz = out[2];\n bw = out[3];\n out[4] = ax1 * bw + aw1 * bx + ay1 * bz - az1 * by;\n out[5] = ay1 * bw + aw1 * by + az1 * bx - ax1 * bz;\n out[6] = az1 * bw + aw1 * bz + ax1 * by - ay1 * bx;\n out[7] = aw1 * bw - ax1 * bx - ay1 * by - az1 * bz;\n return out;\n}\n/**\r\n * Rotates a dual quat around the Z axis\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @param {number} rad how far should the rotation be\r\n * @returns {quat2} out\r\n */\n\nexport function rotateZ(out, a, rad) {\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7],\n ax1 = ax * bw + aw * bx + ay * bz - az * by,\n ay1 = ay * bw + aw * by + az * bx - ax * bz,\n az1 = az * bw + aw * bz + ax * by - ay * bx,\n aw1 = aw * bw - ax * bx - ay * by - az * bz;\n quat.rotateZ(out, a, rad);\n bx = out[0];\n by = out[1];\n bz = out[2];\n bw = out[3];\n out[4] = ax1 * bw + aw1 * bx + ay1 * bz - az1 * by;\n out[5] = ay1 * bw + aw1 * by + az1 * bx - ax1 * bz;\n out[6] = az1 * bw + aw1 * bz + ax1 * by - ay1 * bx;\n out[7] = aw1 * bw - ax1 * bx - ay1 * by - az1 * bz;\n return out;\n}\n/**\r\n * Rotates a dual quat by a given quaternion (a * q)\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @param {ReadonlyQuat} q quaternion to rotate by\r\n * @returns {quat2} out\r\n */\n\nexport function rotateByQuatAppend(out, a, q) {\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3],\n ax = a[0],\n ay = a[1],\n az = a[2],\n aw = a[3];\n out[0] = ax * qw + aw * qx + ay * qz - az * qy;\n out[1] = ay * qw + aw * qy + az * qx - ax * qz;\n out[2] = az * qw + aw * qz + ax * qy - ay * qx;\n out[3] = aw * qw - ax * qx - ay * qy - az * qz;\n ax = a[4];\n ay = a[5];\n az = a[6];\n aw = a[7];\n out[4] = ax * qw + aw * qx + ay * qz - az * qy;\n out[5] = ay * qw + aw * qy + az * qx - ax * qz;\n out[6] = az * qw + aw * qz + ax * qy - ay * qx;\n out[7] = aw * qw - ax * qx - ay * qy - az * qz;\n return out;\n}\n/**\r\n * Rotates a dual quat by a given quaternion (q * a)\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat} q quaternion to rotate by\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @returns {quat2} out\r\n */\n\nexport function rotateByQuatPrepend(out, q, a) {\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3],\n bx = a[0],\n by = a[1],\n bz = a[2],\n bw = a[3];\n out[0] = qx * bw + qw * bx + qy * bz - qz * by;\n out[1] = qy * bw + qw * by + qz * bx - qx * bz;\n out[2] = qz * bw + qw * bz + qx * by - qy * bx;\n out[3] = qw * bw - qx * bx - qy * by - qz * bz;\n bx = a[4];\n by = a[5];\n bz = a[6];\n bw = a[7];\n out[4] = qx * bw + qw * bx + qy * bz - qz * by;\n out[5] = qy * bw + qw * by + qz * bx - qx * bz;\n out[6] = qz * bw + qw * bz + qx * by - qy * bx;\n out[7] = qw * bw - qx * bx - qy * by - qz * bz;\n return out;\n}\n/**\r\n * Rotates a dual quat around a given axis. Does the normalisation automatically\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the dual quaternion to rotate\r\n * @param {ReadonlyVec3} axis the axis to rotate around\r\n * @param {Number} rad how far the rotation should be\r\n * @returns {quat2} out\r\n */\n\nexport function rotateAroundAxis(out, a, axis, rad) {\n //Special case for rad = 0\n if (Math.abs(rad) < glMatrix.EPSILON) {\n return copy(out, a);\n }\n\n var axisLength = Math.hypot(axis[0], axis[1], axis[2]);\n rad = rad * 0.5;\n var s = Math.sin(rad);\n var bx = s * axis[0] / axisLength;\n var by = s * axis[1] / axisLength;\n var bz = s * axis[2] / axisLength;\n var bw = Math.cos(rad);\n var ax1 = a[0],\n ay1 = a[1],\n az1 = a[2],\n aw1 = a[3];\n out[0] = ax1 * bw + aw1 * bx + ay1 * bz - az1 * by;\n out[1] = ay1 * bw + aw1 * by + az1 * bx - ax1 * bz;\n out[2] = az1 * bw + aw1 * bz + ax1 * by - ay1 * bx;\n out[3] = aw1 * bw - ax1 * bx - ay1 * by - az1 * bz;\n var ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n out[4] = ax * bw + aw * bx + ay * bz - az * by;\n out[5] = ay * bw + aw * by + az * bx - ax * bz;\n out[6] = az * bw + aw * bz + ax * by - ay * bx;\n out[7] = aw * bw - ax * bx - ay * by - az * bz;\n return out;\n}\n/**\r\n * Adds two dual quat's\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the first operand\r\n * @param {ReadonlyQuat2} b the second operand\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n return out;\n}\n/**\r\n * Multiplies two dual quat's\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a the first operand\r\n * @param {ReadonlyQuat2} b the second operand\r\n * @returns {quat2} out\r\n */\n\nexport function multiply(out, a, b) {\n var ax0 = a[0],\n ay0 = a[1],\n az0 = a[2],\n aw0 = a[3],\n bx1 = b[4],\n by1 = b[5],\n bz1 = b[6],\n bw1 = b[7],\n ax1 = a[4],\n ay1 = a[5],\n az1 = a[6],\n aw1 = a[7],\n bx0 = b[0],\n by0 = b[1],\n bz0 = b[2],\n bw0 = b[3];\n out[0] = ax0 * bw0 + aw0 * bx0 + ay0 * bz0 - az0 * by0;\n out[1] = ay0 * bw0 + aw0 * by0 + az0 * bx0 - ax0 * bz0;\n out[2] = az0 * bw0 + aw0 * bz0 + ax0 * by0 - ay0 * bx0;\n out[3] = aw0 * bw0 - ax0 * bx0 - ay0 * by0 - az0 * bz0;\n out[4] = ax0 * bw1 + aw0 * bx1 + ay0 * bz1 - az0 * by1 + ax1 * bw0 + aw1 * bx0 + ay1 * bz0 - az1 * by0;\n out[5] = ay0 * bw1 + aw0 * by1 + az0 * bx1 - ax0 * bz1 + ay1 * bw0 + aw1 * by0 + az1 * bx0 - ax1 * bz0;\n out[6] = az0 * bw1 + aw0 * bz1 + ax0 * by1 - ay0 * bx1 + az1 * bw0 + aw1 * bz0 + ax1 * by0 - ay1 * bx0;\n out[7] = aw0 * bw1 - ax0 * bx1 - ay0 * by1 - az0 * bz1 + aw1 * bw0 - ax1 * bx0 - ay1 * by0 - az1 * bz0;\n return out;\n}\n/**\r\n * Alias for {@link quat2.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Scales a dual quat by a scalar number\r\n *\r\n * @param {quat2} out the receiving dual quat\r\n * @param {ReadonlyQuat2} a the dual quat to scale\r\n * @param {Number} b amount to scale the dual quat by\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n return out;\n}\n/**\r\n * Calculates the dot product of two dual quat's (The dot product of the real parts)\r\n *\r\n * @param {ReadonlyQuat2} a the first operand\r\n * @param {ReadonlyQuat2} b the second operand\r\n * @returns {Number} dot product of a and b\r\n * @function\r\n */\n\nexport var dot = quat.dot;\n/**\r\n * Performs a linear interpolation between two dual quats's\r\n * NOTE: The resulting dual quaternions won't always be normalized (The error is most noticeable when t = 0.5)\r\n *\r\n * @param {quat2} out the receiving dual quat\r\n * @param {ReadonlyQuat2} a the first operand\r\n * @param {ReadonlyQuat2} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {quat2} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var mt = 1 - t;\n if (dot(a, b) < 0) t = -t;\n out[0] = a[0] * mt + b[0] * t;\n out[1] = a[1] * mt + b[1] * t;\n out[2] = a[2] * mt + b[2] * t;\n out[3] = a[3] * mt + b[3] * t;\n out[4] = a[4] * mt + b[4] * t;\n out[5] = a[5] * mt + b[5] * t;\n out[6] = a[6] * mt + b[6] * t;\n out[7] = a[7] * mt + b[7] * t;\n return out;\n}\n/**\r\n * Calculates the inverse of a dual quat. If they are normalized, conjugate is cheaper\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a dual quat to calculate inverse of\r\n * @returns {quat2} out\r\n */\n\nexport function invert(out, a) {\n var sqlen = squaredLength(a);\n out[0] = -a[0] / sqlen;\n out[1] = -a[1] / sqlen;\n out[2] = -a[2] / sqlen;\n out[3] = a[3] / sqlen;\n out[4] = -a[4] / sqlen;\n out[5] = -a[5] / sqlen;\n out[6] = -a[6] / sqlen;\n out[7] = a[7] / sqlen;\n return out;\n}\n/**\r\n * Calculates the conjugate of a dual quat\r\n * If the dual quaternion is normalized, this function is faster than quat2.inverse and produces the same result.\r\n *\r\n * @param {quat2} out the receiving quaternion\r\n * @param {ReadonlyQuat2} a quat to calculate conjugate of\r\n * @returns {quat2} out\r\n */\n\nexport function conjugate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = a[3];\n out[4] = -a[4];\n out[5] = -a[5];\n out[6] = -a[6];\n out[7] = a[7];\n return out;\n}\n/**\r\n * Calculates the length of a dual quat\r\n *\r\n * @param {ReadonlyQuat2} a dual quat to calculate length of\r\n * @returns {Number} length of a\r\n * @function\r\n */\n\nexport var length = quat.length;\n/**\r\n * Alias for {@link quat2.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Calculates the squared length of a dual quat\r\n *\r\n * @param {ReadonlyQuat2} a dual quat to calculate squared length of\r\n * @returns {Number} squared length of a\r\n * @function\r\n */\n\nexport var squaredLength = quat.squaredLength;\n/**\r\n * Alias for {@link quat2.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Normalize a dual quat\r\n *\r\n * @param {quat2} out the receiving dual quaternion\r\n * @param {ReadonlyQuat2} a dual quaternion to normalize\r\n * @returns {quat2} out\r\n * @function\r\n */\n\nexport function normalize(out, a) {\n var magnitude = squaredLength(a);\n\n if (magnitude > 0) {\n magnitude = Math.sqrt(magnitude);\n var a0 = a[0] / magnitude;\n var a1 = a[1] / magnitude;\n var a2 = a[2] / magnitude;\n var a3 = a[3] / magnitude;\n var b0 = a[4];\n var b1 = a[5];\n var b2 = a[6];\n var b3 = a[7];\n var a_dot_b = a0 * b0 + a1 * b1 + a2 * b2 + a3 * b3;\n out[0] = a0;\n out[1] = a1;\n out[2] = a2;\n out[3] = a3;\n out[4] = (b0 - a0 * a_dot_b) / magnitude;\n out[5] = (b1 - a1 * a_dot_b) / magnitude;\n out[6] = (b2 - a2 * a_dot_b) / magnitude;\n out[7] = (b3 - a3 * a_dot_b) / magnitude;\n }\n\n return out;\n}\n/**\r\n * Returns a string representation of a dual quatenion\r\n *\r\n * @param {ReadonlyQuat2} a dual quaternion to represent as a string\r\n * @returns {String} string representation of the dual quat\r\n */\n\nexport function str(a) {\n return \"quat2(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \")\";\n}\n/**\r\n * Returns whether or not the dual quaternions have exactly the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyQuat2} a the first dual quaternion.\r\n * @param {ReadonlyQuat2} b the second dual quaternion.\r\n * @returns {Boolean} true if the dual quaternions are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7];\n}\n/**\r\n * Returns whether or not the dual quaternions have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyQuat2} a the first dual quat.\r\n * @param {ReadonlyQuat2} b the second dual quat.\r\n * @returns {Boolean} true if the dual quats are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3],\n a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7));\n}","import * as glMatrix from \"./common.js\";\n/**\r\n * 2 Dimensional Vector\r\n * @module vec2\r\n */\n\n/**\r\n * Creates a new, empty vec2\r\n *\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with values from an existing vector\r\n *\r\n * @param {ReadonlyVec2} a vector to clone\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Creates a new vec2 initialized with the given values\r\n *\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} a new 2D vector\r\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Copy the values from one vec2 to another\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the source vector\r\n * @returns {vec2} out\r\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\r\n * Set the components of a vec2 to the given values\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} x X component\r\n * @param {Number} y Y component\r\n * @returns {vec2} out\r\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\r\n * Adds two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\r\n * Subtracts vector b from vector a\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\r\n * Multiplies two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\r\n * Divides two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\r\n * Math.ceil the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to ceil\r\n * @returns {vec2} out\r\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\r\n * Math.floor the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to floor\r\n * @returns {vec2} out\r\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\r\n * Returns the minimum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\r\n * Returns the maximum of two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec2} out\r\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\r\n * Math.round the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to round\r\n * @returns {vec2} out\r\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\r\n * Scales a vec2 by a scalar number\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to scale\r\n * @param {Number} b amount to scale the vector by\r\n * @returns {vec2} out\r\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\r\n * Adds two vec2's after scaling the second operand by a scalar value\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} scale the amount to scale b by before adding\r\n * @returns {vec2} out\r\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\r\n * Calculates the euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} distance between a and b\r\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared euclidian distance between two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} squared distance between a and b\r\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\r\n * Calculates the length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate length of\r\n * @returns {Number} length of a\r\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\r\n * Calculates the squared length of a vec2\r\n *\r\n * @param {ReadonlyVec2} a vector to calculate squared length of\r\n * @returns {Number} squared length of a\r\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\r\n * Negates the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to negate\r\n * @returns {vec2} out\r\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\r\n * Returns the inverse of the components of a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to invert\r\n * @returns {vec2} out\r\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\r\n * Normalize a vec2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a vector to normalize\r\n * @returns {vec2} out\r\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\r\n * Calculates the dot product of two vec2's\r\n *\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {Number} dot product of a and b\r\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\r\n * Computes the cross product of two vec2's\r\n * Note that the cross product must by definition produce a 3D vector\r\n *\r\n * @param {vec3} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @returns {vec3} out\r\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\r\n * Performs a linear interpolation between two vec2's\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the first operand\r\n * @param {ReadonlyVec2} b the second operand\r\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\r\n * @returns {vec2} out\r\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\r\n * Generates a random vector with the given scale\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\r\n * @returns {vec2} out\r\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat2d\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat2d} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat3\r\n * 3rd vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat3} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\r\n * Transforms the vec2 with a mat4\r\n * 3rd vector component is implicitly '0'\r\n * 4th vector component is implicitly '1'\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @param {ReadonlyVec2} a the vector to transform\r\n * @param {ReadonlyMat4} m matrix to transform with\r\n * @returns {vec2} out\r\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\r\n * Rotate a 2D vector\r\n * @param {vec2} out The receiving vec2\r\n * @param {ReadonlyVec2} a The vec2 point to rotate\r\n * @param {ReadonlyVec2} b The origin of the rotation\r\n * @param {Number} rad The angle of rotation in radians\r\n * @returns {vec2} out\r\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\r\n * Get the angle between two 2D vectors\r\n * @param {ReadonlyVec2} a The first operand\r\n * @param {ReadonlyVec2} b The second operand\r\n * @returns {Number} The angle in radians\r\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\r\n * Set the components of a vec2 to zero\r\n *\r\n * @param {vec2} out the receiving vector\r\n * @returns {vec2} out\r\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\r\n * Returns a string representation of a vector\r\n *\r\n * @param {ReadonlyVec2} a vector to represent as a string\r\n * @returns {String} string representation of the vector\r\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\r\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\r\n * Returns whether or not the vectors have approximately the same elements in the same position.\r\n *\r\n * @param {ReadonlyVec2} a The first vector.\r\n * @param {ReadonlyVec2} b The second vector.\r\n * @returns {Boolean} True if the vectors are equal, false otherwise.\r\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\r\n * Alias for {@link vec2.length}\r\n * @function\r\n */\n\nexport var len = length;\n/**\r\n * Alias for {@link vec2.subtract}\r\n * @function\r\n */\n\nexport var sub = subtract;\n/**\r\n * Alias for {@link vec2.multiply}\r\n * @function\r\n */\n\nexport var mul = multiply;\n/**\r\n * Alias for {@link vec2.divide}\r\n * @function\r\n */\n\nexport var div = divide;\n/**\r\n * Alias for {@link vec2.distance}\r\n * @function\r\n */\n\nexport var dist = distance;\n/**\r\n * Alias for {@link vec2.squaredDistance}\r\n * @function\r\n */\n\nexport var sqrDist = squaredDistance;\n/**\r\n * Alias for {@link vec2.squaredLength}\r\n * @function\r\n */\n\nexport var sqrLen = squaredLength;\n/**\r\n * Perform some operation over an array of vec2s.\r\n *\r\n * @param {Array} a the array of vectors to iterate over\r\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\r\n * @param {Number} offset Number of elements to skip at the beginning of the array\r\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\r\n * @param {Function} fn Function to call for each vector in the array\r\n * @param {Object} [arg] additional argument to pass to fn\r\n * @returns {Array} a\r\n * @function\r\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n\n if (!stride) {\n stride = 2;\n }\n\n if (!offset) {\n offset = 0;\n }\n\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n\n return a;\n };\n}();","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n\nfunction prefixProperty(property) {\n\n var style = document.documentElement.style;\n var prefixList = ['Moz', 'Webkit', 'Khtml', 'O', 'ms'];\n\n for (var i = 0; i < prefixList.length; i++) {\n var prefix = prefixList[i];\n var capitalizedProperty = property[0].toUpperCase() + property.slice(1);\n var prefixedProperty = prefix + capitalizedProperty;\n\n if (prefixedProperty in style) {\n return prefixedProperty;\n }\n }\n\n return property;\n\n}\n\n\nfunction getWithVendorPrefix(property) {\n var prefixedProperty = prefixProperty(property);\n return function getPropertyWithVendorPrefix(element) {\n return element.style[prefixedProperty];\n };\n\n}\n\n\nfunction setWithVendorPrefix(property) {\n var prefixedProperty = prefixProperty(property);\n return function setPropertyWithVendorPrefix(element, val) {\n return (element.style[prefixedProperty] = val);\n };\n}\n\n\nvar setTransform = setWithVendorPrefix('transform');\nvar setTransformOrigin = setWithVendorPrefix('transformOrigin');\n\n\nfunction setNullTransform(element) {\n setTransform(element, 'translateZ(0)');\n}\n\n\nfunction setNullTransformOrigin(element) {\n setTransformOrigin(element, '0 0 0');\n}\n\n\nfunction setAbsolute(element) {\n element.style.position = 'absolute';\n}\n\n\nfunction setPixelPosition(element, x, y) {\n element.style.left = x + 'px';\n element.style.top = y + 'px';\n}\n\n\nfunction setPixelSize(element, width, height) {\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n}\n\n\nfunction setNullSize(element) {\n element.style.width = element.style.height = 0;\n}\n\n\nfunction setFullSize(element) {\n element.style.width = element.style.height = '100%';\n}\n\n\nfunction setOverflowHidden(element) {\n element.style.overflow = 'hidden';\n}\n\n\nfunction setOverflowVisible(element) {\n element.style.overflow = 'visible';\n}\n\n\nfunction setNoPointerEvents(element) {\n element.style.pointerEvents = 'none';\n}\n\n\nmodule.exports = {\n prefixProperty: prefixProperty,\n getWithVendorPrefix: getWithVendorPrefix,\n setWithVendorPrefix: setWithVendorPrefix,\n setTransform: setTransform,\n setTransformOrigin: setTransformOrigin,\n setNullTransform: setNullTransform,\n setNullTransformOrigin: setNullTransformOrigin,\n setAbsolute: setAbsolute,\n setPixelPosition: setPixelPosition,\n setPixelSize: setPixelSize,\n setNullSize: setNullSize,\n setFullSize: setFullSize,\n setOverflowHidden: setOverflowHidden,\n setOverflowVisible: setOverflowVisible,\n setNoPointerEvents: setNoPointerEvents\n};\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nmodule.exports = {\n\n // Stages.\n WebGlStage: require('./stages/WebGl'),\n\n // Renderers.\n WebGlCubeRenderer: require('./renderers/WebGlCube'),\n WebGlFlatRenderer: require('./renderers/WebGlFlat'),\n WebGlEquirectRenderer: require('./renderers/WebGlEquirect'),\n registerDefaultRenderers: require('./renderers/registerDefaultRenderers'),\n\n // Geometries.\n CubeGeometry: require('./geometries/Cube'),\n FlatGeometry: require('./geometries/Flat'),\n EquirectGeometry: require('./geometries/Equirect'),\n\n // Views.\n RectilinearView: require('./views/Rectilinear'),\n FlatView: require('./views/Flat'),\n\n // Sources.\n ImageUrlSource: require('./sources/ImageUrl'),\n SingleAssetSource: require('./sources/SingleAsset'),\n\n // Assets.\n StaticAsset: require('./assets/Static'),\n DynamicAsset: require('./assets/Dynamic'),\n\n // Texture store.\n TextureStore: require('./TextureStore'),\n\n // Layer.\n Layer: require('./Layer'),\n\n // Render loop.\n RenderLoop: require('./RenderLoop'),\n\n // Controls.\n KeyControlMethod: require('./controls/Key'),\n DragControlMethod: require('./controls/Drag'),\n QtvrControlMethod: require('./controls/Qtvr'),\n ScrollZoomControlMethod: require('./controls/ScrollZoom'),\n PinchZoomControlMethod: require('./controls/PinchZoom'),\n VelocityControlMethod: require('./controls/Velocity'),\n ElementPressControlMethod: require('./controls/ElementPress'),\n Controls: require('./controls/Controls'),\n Dynamics: require('./controls/Dynamics'),\n\n // High-level API.\n Viewer: require('./Viewer'),\n Scene: require('./Scene'),\n\n // Hotspots.\n Hotspot: require('./Hotspot'),\n HotspotContainer: require('./HotspotContainer'),\n\n // Effects.\n colorEffects: require('./colorEffects'),\n\n // Miscellaneous functions.\n registerDefaultControls: require('./controls/registerDefaultControls'),\n autorotate: require('./autorotate'),\n\n // Utility functions.\n util: {\n async: require('./util/async'),\n cancelize: require('./util/cancelize'),\n chain: require('./util/chain'),\n clamp: require('./util/clamp'),\n clearOwnProperties: require('./util/clearOwnProperties'),\n cmp: require('./util/cmp'),\n compose: require('./util/compose'),\n convertFov: require('./util/convertFov'),\n decimal: require('./util/decimal'),\n defaults: require('./util/defaults'),\n defer: require('./util/defer'),\n degToRad: require('./util/degToRad'),\n delay: require('./util/delay'),\n dom: require('./util/dom'),\n extend: require('./util/extend'),\n hash: require('./util/hash'),\n inherits: require('./util/inherits'),\n mod: require('./util/mod'),\n noop: require('./util/noop'),\n now: require('./util/now'),\n once: require('./util/once'),\n pixelRatio: require('./util/pixelRatio'),\n radToDeg: require('./util/radToDeg'),\n real: require('./util/real'),\n retry: require('./util/retry'),\n tween: require('./util/tween'),\n type: require('./util/type')\n },\n\n // Expose dependencies for clients to use.\n dependencies: {\n bowser: require('bowser'),\n glMatrix: require('gl-matrix'),\n eventEmitter: require('minimal-event-emitter'),\n hammerjs: require('hammerjs')\n }\n};\n",null,"import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Make ctor a subclass of superCtor.\n// Do not depend on ES5 Object.create semantics because of older browsers.\nfunction inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n}\n\nmodule.exports = inherits;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction defaults(obj, defaultsObj) {\n for (var key in defaultsObj) {\n if (!(key in obj)) {\n obj[key] = defaultsObj[key];\n }\n }\n return obj;\n}\n\nmodule.exports = defaults;","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n/**\n * @class Dynamics\n * @classdesc\n *\n * Represents how a control parameter changes. Used in the events emitted by\n * {@link ControlMethod}.\n *\n * @property {number} offset Parameter changed by a fixed value\n * @property {number} velocity Parameter is changing at this velocity\n * @property {number} friction The velocity will decrease at this rate\n */\nfunction Dynamics() {\n this.velocity = null;\n this.friction = null;\n this.offset = null;\n}\n\nDynamics.equals = function(d1, d2) {\n return d1.velocity === d2.velocity && d1.friction === d2.friction && d1.offset === d2.offset;\n};\n\nDynamics.prototype.equals = function(other) {\n return Dynamics.equals(this, other);\n};\n\nDynamics.prototype.update = function(other, elapsed) {\n if (other.offset) {\n // If other has an offset, make this.offset a number instead of null\n this.offset = this.offset || 0;\n this.offset += other.offset;\n }\n\n var offsetFromVelocity = this.offsetFromVelocity(elapsed);\n if (offsetFromVelocity) {\n // If there is an offset to add from the velocity, make this offset a number instead of null\n this.offset = this.offset || 0;\n this.offset += offsetFromVelocity;\n }\n\n this.velocity = other.velocity;\n this.friction = other.friction;\n};\n\nDynamics.prototype.reset = function() {\n this.velocity = null;\n this.friction = null;\n this.offset = null;\n};\n\n\nDynamics.prototype.velocityAfter = function(elapsed) {\n if (!this.velocity) {\n return null;\n }\n if (this.friction) {\n return decreaseAbs(this.velocity, this.friction *elapsed);\n }\n return this.velocity;\n};\n\nDynamics.prototype.offsetFromVelocity = function(elapsed) {\n elapsed = Math.min(elapsed, this.nullVelocityTime());\n\n var velocityEnd = this.velocityAfter(elapsed);\n var averageVelocity = (this.velocity + velocityEnd) / 2;\n\n return averageVelocity * elapsed;\n};\n\n\nDynamics.prototype.nullVelocityTime = function() {\n if (this.velocity == null) {\n return 0;\n }\n if (this.velocity && !this.friction) {\n return Infinity;\n }\n return Math.abs(this.velocity / this.friction);\n};\n\nfunction decreaseAbs(num, dec) {\n if (num < 0) {\n return Math.min(0, num + dec);\n }\n if (num > 0) {\n return Math.max(0, num - dec);\n }\n return 0;\n}\n\nmodule.exports = Dynamics;\n",null,"/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n/**\n * Modulo operation\n *\n * @memberof util\n * @param {Number} dividend\n * @param {Number} divisor\n * @returns {Number} Value in range `[0,divisor[`\n */\nfunction mod(a, b) {\n return (+a % (b = +b) + b) % b;\n}\n\nmodule.exports = mod;","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction getNow() {\n if (typeof performance !== 'undefined' && performance.now) {\n return function performanceNow() {\n return performance.now();\n };\n }\n return function dateNow() {\n return Date.now();\n };\n}\n\nmodule.exports = getNow();\n",null,null,null,"/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\nmodule.exports = clamp;",null,null,null,null,"export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar cmp = require('../util/cmp');\n\nfunction makeLevelList(levelPropertiesList, LevelClass) {\n var list = [];\n\n for (var i = 0; i < levelPropertiesList.length; i++) {\n list.push(new LevelClass(levelPropertiesList[i]));\n }\n\n list.sort(function(level1, level2) {\n return cmp(level1.width(), level2.width());\n });\n\n return list;\n}\n\nfunction makeSelectableLevelList(levelList) {\n var list = [];\n\n for (var i = 0; i < levelList.length; i++) {\n if (!levelList[i]._fallbackOnly) {\n list.push(levelList[i]);\n }\n }\n\n if (!list.length) {\n throw new Error('No selectable levels in list');\n }\n\n return list;\n}\n\nmodule.exports = {\n makeLevelList: makeLevelList,\n makeSelectableLevelList: makeSelectableLevelList\n};\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction cmp(x, y) {\n if (x < y) {\n return -1;\n }\n if (x > y) {\n return 1;\n }\n return 0;\n}\n\nmodule.exports = cmp;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction type(x) {\n var typ = typeof x;\n if (typ === 'object') {\n if (x === null) {\n return 'null';\n }\n if (Object.prototype.toString.call(x) === '[object Array]') {\n return 'array';\n }\n if (Object.prototype.toString.call(x) === '[object RegExp]') {\n return 'regexp';\n }\n }\n return typ;\n}\n\nmodule.exports = type;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction noop() {}\n\nmodule.exports = noop;",null,null,"export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}",null,"/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar defaultPixelRatio = 1;\n\nfunction pixelRatio() {\n if (typeof window !== 'undefined') {\n if (window.devicePixelRatio) {\n return window.devicePixelRatio;\n }\n else {\n var screen = window.screen;\n if (screen && screen.deviceXDPI && screen.logicalXDPI) {\n return screen.deviceXDPI / screen.logicalXDPI;\n } else if (screen && screen.systemXDPI && screen.logicalXDPI) {\n return screen.systemXDPI / screen.logicalXDPI;\n }\n }\n }\n return defaultPixelRatio;\n}\n\nmodule.exports = pixelRatio;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Jenkins one-at-a-time hash\n// http://www.burtleburtle.net/bob/hash/doobs.html\n// Input: an array of integers\n// Output: an integer\n\nfunction hash() {\n var h = 0;\n for (var i = 0; i < arguments.length; i++) {\n var k = arguments[i];\n h += k;\n h += k << 10;\n h ^= k >> 6;\n }\n h += h << 3;\n h ^= h >> 11;\n h += h << 15;\n return h >= 0 ? h : -h;\n}\n\nmodule.exports = hash;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar Hammer = require('hammerjs');\n\nvar nextId = 1;\nvar idProperty = 'MarzipanoHammerElementId';\nfunction getKeyForElementAndType(element, type) {\n if (!element[idProperty]) {\n element[idProperty] = nextId++;\n }\n return type + element[idProperty];\n}\n\n\n/**\n * @class HammerGestures\n * @classdesc\n *\n * Manages Hammer.js instances. One instance is created for each combination of\n * DOM element and pointer type.\n */\nfunction HammerGestures() {\n this._managers = {};\n this._refCount = {};\n}\n\n\nHammerGestures.prototype.get = function(element, type) {\n var key = getKeyForElementAndType(element, type);\n if (!this._managers[key]) {\n this._managers[key] = this._createManager(element, type);\n this._refCount[key] = 0;\n }\n this._refCount[key]++;\n return new HammerGesturesHandle(this, this._managers[key], element, type);\n};\n\n\nHammerGestures.prototype._createManager = function(element, type) {\n var manager = new Hammer.Manager(element);\n\n // Managers are created with different parameters for different pointer\n // types.\n if (type === 'mouse') {\n manager.add(new Hammer.Pan({ direction: Hammer.DIRECTION_ALL, threshold: 0 }));\n }\n else if (type === 'touch' || type === 'pen' || type === 'kinect') {\n // On touch one wants to have both panning and pinching. The panning\n // recognizer needs a threshold to allow the pinch to be recognized.\n manager.add(new Hammer.Pan({ direction: Hammer.DIRECTION_ALL, threshold: 20, pointers: 1 }));\n manager.add(new Hammer.Pinch());\n }\n\n return manager;\n};\n\n\nHammerGestures.prototype._releaseHandle = function(element, type) {\n var key = getKeyForElementAndType(element, type);\n if (this._refCount[key]) {\n this._refCount[key]--;\n if (!this._refCount[key]) {\n this._managers[key].destroy();\n delete this._managers[key];\n delete this._refCount[key];\n }\n }\n};\n\n\nfunction HammerGesturesHandle(hammerGestures, manager, element, type) {\n this._manager = manager;\n this._element = element;\n this._type = type;\n this._hammerGestures = hammerGestures;\n this._eventHandlers = [];\n}\n\n\nHammerGesturesHandle.prototype.on = function(events, handler) {\n var type = this._type;\n var handlerFilteredEvents = function(e) {\n if (type === e.pointerType) {\n handler(e);\n }\n };\n\n this._eventHandlers.push({ events: events, handler: handlerFilteredEvents });\n this._manager.on(events, handlerFilteredEvents);\n};\n\n\nHammerGesturesHandle.prototype.release = function() {\n for (var i = 0; i < this._eventHandlers.length; i++) {\n var eventHandler = this._eventHandlers[i];\n this._manager.off(eventHandler.events, eventHandler.handler);\n }\n\n this._hammerGestures._releaseHandle(this._element, this._type);\n this._manager = null;\n this._element = null;\n this._type = null;\n this._hammerGestures = null;\n};\n\n\nHammerGesturesHandle.prototype.manager = function() {\n return this._manager;\n};\n\n\nmodule.exports = new HammerGestures();\n",null,"export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","/*!\n * Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER$1 = null;\nvar _PERFORMANCE = { mark: noop, measure: noop };\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER$1 = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {};\nvar _ref$userAgent = _ref.userAgent;\nvar userAgent = _ref$userAgent === undefined ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER$1;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\n\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter'].concat(oneToTen.map(function (n) {\n return n + 'x';\n})).concat(oneToTwenty.map(function (n) {\n return 'w-' + n;\n}));\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nvar initial = WINDOW.FontAwesomeConfig || {};\nvar initialKeys = Object.keys(initial);\n\nvar _default = _extends({\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}, initial);\n\nif (!_default.autoReplaceSvg) _default.observeMutations = false;\n\nvar config$1 = _extends({}, _default);\n\nWINDOW.FontAwesomeConfig = config$1;\n\nfunction update(newConfig) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$asNewDefault = params.asNewDefault,\n asNewDefault = _params$asNewDefault === undefined ? false : _params$asNewDefault;\n\n var validKeys = Object.keys(config$1);\n var ok = asNewDefault ? function (k) {\n return ~validKeys.indexOf(k) && !~initialKeys.indexOf(k);\n } : function (k) {\n return ~validKeys.indexOf(k);\n };\n\n Object.keys(newConfig).forEach(function (configKey) {\n if (ok(configKey)) config$1[configKey] = newConfig[configKey];\n });\n}\n\nfunction auto(value) {\n update({\n autoReplaceSvg: value,\n observeMutations: value\n });\n}\n\nvar w = WINDOW || {};\n\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nvar domready = function (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n};\n\nvar d = UNITS_IN_GRID;\n\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n}\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n\n return css;\n}\n\nvar _uniqueId = 0;\n\nfunction nextUniqueId() {\n _uniqueId++;\n\n return _uniqueId;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return ('' + str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + (attributeName + '=\"' + htmlEscape(attributes[attributeName]) + '\" ');\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + (styleName + ': ' + styles[styleName] + ';');\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n\n var outer = {\n transform: 'translate(' + containerWidth / 2 + ' 256)'\n };\n var innerTranslate = 'translate(' + transform.x * 32 + ', ' + transform.y * 32 + ') ';\n var innerScale = 'scale(' + transform.size / 16 * (transform.flipX ? -1 : 1) + ', ' + transform.size / 16 * (transform.flipY ? -1 : 1) + ') ';\n var innerRotate = 'rotate(' + transform.rotate + ' 0 0)';\n var inner = {\n transform: innerTranslate + ' ' + innerScale + ' ' + innerRotate\n };\n var path = {\n transform: 'translate(' + iconWidth / 2 * -1 + ' -256)'\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === undefined ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === undefined ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === undefined ? false : _ref2$startCentered;\n\n var val = '';\n\n if (startCentered && IS_IE) {\n val += 'translate(' + (transform.x / d - width / 2) + 'em, ' + (transform.y / d - height / 2) + 'em) ';\n } else if (startCentered) {\n val += 'translate(calc(-50% + ' + transform.x / d + 'em), calc(-50% + ' + transform.y / d + 'em)) ';\n } else {\n val += 'translate(' + transform.x / d + 'em, ' + transform.y / d + 'em) ';\n }\n\n val += 'scale(' + transform.size / d * (transform.flipX ? -1 : 1) + ', ' + transform.size / d * (transform.flipY ? -1 : 1) + ') ';\n val += 'rotate(' + transform.rotate + 'deg) ';\n\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nvar makeIconMasking = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n\n\n var trans = transformForSvg({ transform: transform, containerWidth: maskWidth, iconWidth: mainWidth });\n\n var maskRect = {\n tag: 'rect',\n attributes: _extends({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroup = {\n tag: 'g',\n attributes: _extends({}, trans.inner),\n children: [{ tag: 'path', attributes: _extends({}, mainPath.attributes, trans.path, { fill: 'black' }) }]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _extends({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = 'mask-' + nextUniqueId();\n var clipId = 'clip-' + nextUniqueId();\n var maskTag = {\n tag: 'mask',\n attributes: _extends({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{ tag: 'clipPath', attributes: { id: clipId }, children: [maskPath] }, maskTag]\n };\n\n children.push(defs, { tag: 'rect', attributes: _extends({ fill: 'currentColor', 'clip-path': 'url(#' + clipId + ')', mask: 'url(#' + maskId + ')' }, ALL_SPACE) });\n\n return {\n children: children,\n attributes: attributes\n };\n};\n\nvar makeIconStandard = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({ transform: transform, containerWidth: main.width, iconWidth: main.width });\n children.push({\n tag: 'g',\n attributes: _extends({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _extends({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _extends({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n};\n\nvar asIcon = function (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_extends({}, styles, {\n 'transform-origin': offset.x + transform.x / 16 + 'em ' + (offset.y + transform.y / 16) + 'em'\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n};\n\nvar asSymbol = function (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n\n var id = symbol === true ? prefix + '-' + config$1.familyPrefix + '-' + iconName : symbol;\n\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _extends({}, attributes, { id: id }),\n children: children\n }]\n }];\n};\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === undefined ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var widthClass = 'fa-w-' + Math.ceil(width / height * 16);\n var attrClass = [config$1.replacementClass, iconName ? config$1.familyPrefix + '-' + iconName : '', widthClass].concat(extra.classes).join(' ');\n\n var content = {\n children: [],\n attributes: _extends({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 ' + width + ' ' + height\n })\n };\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({ tag: 'title', attributes: { id: content.attributes['aria-labelledby'] || 'title-' + nextUniqueId() }, children: [title] });\n\n var args = _extends({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n transform: transform,\n symbol: symbol,\n styles: extra.styles\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === undefined ? false : _params$watchable2;\n\n\n var attributes = _extends({}, extra.attributes, title ? { 'title': title } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _extends({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({ transform: transform, startCentered: true, width: width, height: height });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({ tag: 'span', attributes: { class: 'sr-only' }, children: [title] });\n }\n\n return val;\n}\n\nvar noop$2 = function noop() {};\nvar p = config$1.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : { mark: noop$2, measure: noop$2 };\nvar preamble = 'FA \"5.0.13\"';\n\nvar begin = function begin(name) {\n p.mark(preamble + ' ' + name + ' begins');\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(preamble + ' ' + name + ' ends');\n p.measure(preamble + ' ' + name, preamble + ' ' + name + ' begins', preamble + ' ' + name + ' ends');\n};\n\nvar perf = { begin: begin, end: end };\n\n'use strict';\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4 (func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n'use strict';\n\n\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject (subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i, key, result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n }\n else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nvar styles$2 = namespace.styles;\nvar shims = namespace.shims;\n\n\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles$2, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n acc[icon[3]] = iconName;\n\n return acc;\n });\n\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n\n acc[iconName] = iconName;\n\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n\n return acc;\n });\n\n var hasRegular = 'far' in styles$2;\n\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = { prefix: prefix, iconName: iconName };\n\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return _byUnicode[prefix][unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return _byLigature[prefix][ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || { prefix: null, iconName: null };\n}\n\nvar styles$1 = namespace.styles;\n\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return { prefix: null, iconName: null, rest: [] };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config$1.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config$1.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === undefined ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === undefined ? [] : _abstractNodes$childr;\n\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return '<' + tag + ' ' + joinAttributes(attributes) + '>' + children.map(toHtml).join('') + '';\n }\n}\n\nvar noop$1 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config$1.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config$1.autoReplaceSvg];\n\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config$1.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? '' : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config$1.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(config$1.familyPrefix + '-.*');\n\n delete abstract[0].attributes.style;\n\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config$1.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, { toNode: [], toSvg: [] });\n\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$1;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = WINDOW.requestAnimationFrame || function (op) {\n return op();\n };\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n\n mutations.map(mutator);\n\n mark();\n\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation(operation) {\n disabled = true;\n operation();\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) return;\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback;\n\n\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config$1.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config$1.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n\n if (!IS_DOM) return;\n\n mo.observe(DOCUMENT.getElementsByTagName('body')[0], {\n childList: true, attributes: true, characterData: true, subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n\n mo.disconnect();\n}\n\nvar styleParser = function (node) {\n var style = node.getAttribute('style');\n\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nvar classParser = function (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nvar transformParser = function (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n};\n\nvar symbolParser = function (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n\n return symbol === null ? false : symbol === '' ? true : symbol;\n};\n\nvar attributesParser = function (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n\n var title = node.getAttribute('title');\n\n if (config$1.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = config$1.replacementClass + '-title-' + nextUniqueId();\n } else {\n extraAttributes['aria-hidden'] = 'true';\n }\n }\n\n return extraAttributes;\n};\n\nvar maskParser = function (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n};\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = { fill: 'currentColor' };\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\nvar OPACITY_ANIMATE = _extends({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\nvar DOT = {\n tag: 'circle',\n attributes: _extends({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, ANIMATION_BASE, { attributeName: 'r', values: '28;14;28;28;14;28;' }) }, { tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;1;1;0;1;' }) }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '1;0;0;0;0;1;' }) }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _extends({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{ tag: 'animate', attributes: _extends({}, OPACITY_ANIMATE, { values: '0;0;1;1;0;0;' }) }]\n};\n\nvar missing = { tag: 'g', children: [RING, DOT, QUESTION, EXCLAMATION] };\n\nvar styles = namespace.styles;\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Brands)/;\nvar STYLE_TO_PREFIX = {\n 'Solid': 'fas',\n 'Regular': 'far',\n 'Light': 'fal',\n 'Brands': 'fab'\n};\n\nfunction findIcon(iconName, prefix) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles[prefix] && styles[prefix][iconName]) {\n var icon = styles[prefix][iconName];\n var width = icon[0];\n var height = icon[1];\n var vectorData = icon.slice(4);\n\n val = {\n found: true,\n width: width,\n height: height,\n icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }\n };\n } else if (iconName && prefix && !config$1.showMissingIcons) {\n throw new MissingIcon('Icon is missing for prefix ' + prefix + ' with icon name ' + iconName);\n }\n\n return val;\n}\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n extra = nodeMeta.extra;\n\n\n return [node, makeInlineSvgAbstract({\n icons: {\n main: findIcon(iconName, prefix),\n mask: findIcon(mask.iconName, mask.prefix)\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n title: title,\n extra: extra,\n watchable: true\n })];\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n\n\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config$1.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return [node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })];\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction remove(node) {\n if (typeof node.remove === 'function') {\n node.remove();\n } else if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n\n var end = perf.begin('searchPseudoElements');\n\n disableObservation(function () {\n toArray(root.querySelectorAll('*')).forEach(function (node) {\n [':before', ':after'].forEach(function (pos) {\n var styles = WINDOW.getComputedStyle(node, pos);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var children = toArray(node.children);\n var pseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === pos;\n })[0];\n\n if (pseudoElement) {\n if (pseudoElement.nextSibling && pseudoElement.nextSibling.textContent.indexOf(DATA_FA_PSEUDO_ELEMENT) > -1) {\n remove(pseudoElement.nextSibling);\n }\n remove(pseudoElement);\n pseudoElement = null;\n }\n\n if (fontFamily && !pseudoElement) {\n var content = styles.getPropertyValue('content');\n var i = DOCUMENT.createElement('i');\n i.setAttribute('class', '' + STYLE_TO_PREFIX[fontFamily[1]]);\n i.setAttribute(DATA_FA_PSEUDO_ELEMENT, pos);\n i.innerText = content.length === 3 ? content.substr(1, 1) : content;\n if (pos === ':before') {\n node.insertBefore(i, node.firstChild);\n } else {\n node.appendChild(i);\n }\n }\n });\n });\n });\n\n end();\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!IS_DOM) return;\n\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(HTML_CLASS_I2SVG_BASE_CLASS + '-' + suffix);\n };\n var prefixes = Object.keys(styles);\n var prefixesDomQuery = ['.' + LAYERS_TEXT_CLASSNAME + ':not([' + DATA_FA_I2SVG + '])'].concat(prefixes.map(function (p) {\n return '.' + p + ':not([' + DATA_FA_I2SVG + '])';\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n\n mark();\n\n perform(mutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n\n if (typeof callback === 'function') callback();\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var mutation = generateMutation(node);\n\n if (mutation) {\n perform([mutation], callback);\n }\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible; }\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -.125em; }\\n .svg-inline--fa.fa-lg {\\n vertical-align: -.225em; }\\n .svg-inline--fa.fa-w-1 {\\n width: 0.0625em; }\\n .svg-inline--fa.fa-w-2 {\\n width: 0.125em; }\\n .svg-inline--fa.fa-w-3 {\\n width: 0.1875em; }\\n .svg-inline--fa.fa-w-4 {\\n width: 0.25em; }\\n .svg-inline--fa.fa-w-5 {\\n width: 0.3125em; }\\n .svg-inline--fa.fa-w-6 {\\n width: 0.375em; }\\n .svg-inline--fa.fa-w-7 {\\n width: 0.4375em; }\\n .svg-inline--fa.fa-w-8 {\\n width: 0.5em; }\\n .svg-inline--fa.fa-w-9 {\\n width: 0.5625em; }\\n .svg-inline--fa.fa-w-10 {\\n width: 0.625em; }\\n .svg-inline--fa.fa-w-11 {\\n width: 0.6875em; }\\n .svg-inline--fa.fa-w-12 {\\n width: 0.75em; }\\n .svg-inline--fa.fa-w-13 {\\n width: 0.8125em; }\\n .svg-inline--fa.fa-w-14 {\\n width: 0.875em; }\\n .svg-inline--fa.fa-w-15 {\\n width: 0.9375em; }\\n .svg-inline--fa.fa-w-16 {\\n width: 1em; }\\n .svg-inline--fa.fa-w-17 {\\n width: 1.0625em; }\\n .svg-inline--fa.fa-w-18 {\\n width: 1.125em; }\\n .svg-inline--fa.fa-w-19 {\\n width: 1.1875em; }\\n .svg-inline--fa.fa-w-20 {\\n width: 1.25em; }\\n .svg-inline--fa.fa-pull-left {\\n margin-right: .3em;\\n width: auto; }\\n .svg-inline--fa.fa-pull-right {\\n margin-left: .3em;\\n width: auto; }\\n .svg-inline--fa.fa-border {\\n height: 1.5em; }\\n .svg-inline--fa.fa-li {\\n width: 2em; }\\n .svg-inline--fa.fa-fw {\\n width: 1.25em; }\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0; }\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -.125em;\\n width: 1em; }\\n .fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.fa-layers-text, .fa-layers-counter {\\n display: inline-block;\\n position: absolute;\\n text-align: center; }\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: .25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right; }\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right; }\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left; }\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right; }\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left; }\\n\\n.fa-lg {\\n font-size: 1.33333em;\\n line-height: 0.75em;\\n vertical-align: -.0667em; }\\n\\n.fa-xs {\\n font-size: .75em; }\\n\\n.fa-sm {\\n font-size: .875em; }\\n\\n.fa-1x {\\n font-size: 1em; }\\n\\n.fa-2x {\\n font-size: 2em; }\\n\\n.fa-3x {\\n font-size: 3em; }\\n\\n.fa-4x {\\n font-size: 4em; }\\n\\n.fa-5x {\\n font-size: 5em; }\\n\\n.fa-6x {\\n font-size: 6em; }\\n\\n.fa-7x {\\n font-size: 7em; }\\n\\n.fa-8x {\\n font-size: 8em; }\\n\\n.fa-9x {\\n font-size: 9em; }\\n\\n.fa-10x {\\n font-size: 10em; }\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em; }\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0; }\\n .fa-ul > li {\\n position: relative; }\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit; }\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: .1em;\\n padding: .2em .25em .15em; }\\n\\n.fa-pull-left {\\n float: left; }\\n\\n.fa-pull-right {\\n float: right; }\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: .3em; }\\n\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: .3em; }\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear; }\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8); }\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg); }\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1); }\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1); }\\n\\n.fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1); }\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical {\\n -webkit-filter: none;\\n filter: none; }\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2em; }\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0; }\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1em; }\\n\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2em; }\\n\\n.fa-inverse {\\n color: #fff; }\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px; }\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto; }\\n\";\n\nvar css = function () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config$1.familyPrefix;\n var rc = config$1.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp('\\\\.' + dfp + '\\\\-', 'g');\n var rPatt = new RegExp('\\\\.' + drc, 'g');\n\n s = s.replace(dPatt, '.' + fp + '-').replace(rPatt, '.' + rc);\n }\n\n return s;\n};\n\nfunction define(prefix, icons) {\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function') {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n define('fa', icons);\n }\n}\n\nvar Library = function () {\n function Library() {\n classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n createClass(Library, [{\n key: 'add',\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _extends({}, _this.definitions[key] || {}, additions[key]);\n define(key, additions[key]);\n });\n }\n }, {\n key: 'reset',\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: '_pullDefinitions',\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? { 0: definition } : definition;\n\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n\n\n if (!additions[prefix]) additions[prefix] = {};\n\n additions[prefix][iconName] = icon;\n });\n\n return additions;\n }\n }]);\n return Library;\n}();\n\nfunction prepIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var vectorData = icon.slice(4);\n\n return {\n found: true,\n width: width,\n height: height,\n icon: { tag: 'path', attributes: { fill: 'currentColor', d: vectorData[0] } }\n };\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (!config$1.autoAddCss) {\n return;\n }\n\n if (!_cssInserted) {\n insertCss(css());\n }\n\n _cssInserted = true;\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n\n return val;\n}\n\nfunction findIconDefinition(params) {\n var _params$prefix = params.prefix,\n prefix = _params$prefix === undefined ? 'fa' : _params$prefix,\n iconName = params.iconName;\n\n\n if (!iconName) return;\n\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n\n var mask = params.mask;\n\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _extends({}, params, { mask: mask }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n auto(false);\n disconnect();\n};\n\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n\n var _params$node = params.node,\n node = _params$node === undefined ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === undefined ? function () {} : _params$callback;\n\n\n if (config$1.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n onTree(node, callback);\n }\n },\n\n css: css,\n\n insertCss: function insertCss$$1() {\n insertCss(css());\n }\n};\n\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\n\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === undefined ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === undefined ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === undefined ? null : _params$mask,\n _params$title = params.title,\n title = _params$title === undefined ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === undefined ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === undefined ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === undefined ? {} : _params$styles;\n\n\n if (!iconDefinition) return;\n\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n\n\n return apiObject(_extends({ type: 'icon' }, iconDefinition), function () {\n ensureCss();\n\n if (config$1.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = config$1.replacementClass + '-title-' + nextUniqueId();\n } else {\n attributes['aria-hidden'] = 'true';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: prepIcon(icon),\n mask: mask ? prepIcon(mask.icon) : { found: false, width: null, height: null, icon: {} }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _extends({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === undefined ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === undefined ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === undefined ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === undefined ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === undefined ? {} : _params$styles2;\n\n\n return apiObject({ type: 'text', content: content }, function () {\n ensureCss();\n\n return makeLayersTextAbstract({\n content: content,\n transform: _extends({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [config$1.familyPrefix + '-layers-text'].concat(toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n return apiObject({ type: 'layer' }, function () {\n ensureCss();\n\n var children = [];\n\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n\n return [{\n tag: 'span',\n attributes: { class: config$1.familyPrefix + '-layers' },\n children: children\n }];\n });\n};\n\nvar api$1 = {\n noAuto: noAuto,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n layer: layer\n};\n\nvar autoReplace = function autoReplace() {\n if (IS_DOM && config$1.autoReplaceSvg) api$1.dom.i2svg({ node: DOCUMENT });\n};\n\nfunction bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api$1;\n }\n\n domready(function () {\n if (Object.keys(namespace.styles).length > 0) {\n autoReplace();\n }\n\n if (config$1.observeMutations && typeof MutationObserver === 'function') {\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n }\n });\n }\n\n namespace.hooks = _extends({}, namespace.hooks, {\n\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _extends({}, namespace.styles[prefix] || {}, icons);\n\n build();\n autoReplace();\n },\n\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n}\n\nObject.defineProperty(api$1, 'config', {\n get: function get() {\n return config$1;\n },\n\n set: function set(newConfig) {\n update(newConfig);\n }\n});\n\nif (IS_DOM) bunker(bootstrap);\n\nvar config = api$1.config;\n\nexport { config, icon, noAuto, layer, text, library, dom, parse, findIconDefinition };\nexport default api$1;\n","export default __webpack_public_path__ + \"static/media/getFetch.5fde86e3.cjs\";","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction once(fn) {\n var called = false;\n var value;\n return function onced() {\n if (!called) {\n called = true;\n value = fn.apply(null, arguments);\n }\n return value;\n };\n}\n\nmodule.exports = once;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar global = require('../util/global');\nvar eventEmitter = require('minimal-event-emitter');\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar propertyMap = {\n HTMLImageElement: ['naturalWidth', 'naturalHeight'],\n HTMLCanvasElement: ['width', 'height'],\n ImageBitmap: ['width', 'height']\n};\n\n/**\n * @class StaticAsset\n * @implements Asset\n * @classdesc\n *\n * An {@link Asset} whose pixel contents never change.\n *\n * @param {HTMLImageElement|HTMLCanvasElement|ImageBitmap} element The\n * underlying pixel source.\n * @throws If the pixel source is unsupported.\n */\nfunction StaticAsset(element) {\n var supported = false;\n for (var type in propertyMap) {\n if (global[type] && element instanceof global[type]) {\n supported = true;\n this._widthProp = propertyMap[type][0];\n this._heightProp = propertyMap[type][1];\n break;\n }\n }\n if (!supported) {\n throw new Error('Unsupported pixel source');\n }\n\n this._element = element;\n}\n\neventEmitter(StaticAsset);\n\n/**\n * Destructor.\n */\nStaticAsset.prototype.destroy = function() {\n clearOwnProperties(this);\n};\n\nStaticAsset.prototype.element = function() {\n return this._element;\n};\n\nStaticAsset.prototype.width = function() {\n return this._element[this._widthProp];\n};\n\nStaticAsset.prototype.height = function() {\n return this._element[this._heightProp];\n};\n\nStaticAsset.prototype.timestamp = function() {\n return 0;\n};\n\nStaticAsset.prototype.isDynamic = function() {\n return false;\n};\n\nmodule.exports = StaticAsset;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * Bowser - a browser detector\n * https://github.com/ded/bowser\n * MIT License | (c) Dustin Diaz 2015\n */\n\n!function (root, name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\n else if (typeof define == 'function' && define.amd) define(name, definition)\n else root[name] = definition()\n}(this, 'bowser', function () {\n /**\n * See useragents.js for examples of navigator.userAgent\n */\n\n var t = true\n\n function detect(ua) {\n\n function getFirstMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[1]) || '';\n }\n\n function getSecondMatch(regex) {\n var match = ua.match(regex);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()\n , likeAndroid = /like android/i.test(ua)\n , android = !likeAndroid && /android/i.test(ua)\n , nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua)\n , nexusTablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua)\n , chromeos = /CrOS/.test(ua)\n , silk = /silk/i.test(ua)\n , sailfish = /sailfish/i.test(ua)\n , tizen = /tizen/i.test(ua)\n , webos = /(web|hpw)(o|0)s/i.test(ua)\n , windowsphone = /windows phone/i.test(ua)\n , samsungBrowser = /SamsungBrowser/i.test(ua)\n , windows = !windowsphone && /windows/i.test(ua)\n , mac = !iosdevice && !silk && /macintosh/i.test(ua)\n , linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua)\n , edgeVersion = getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.\\d+)?)/i)\n , versionIdentifier = getFirstMatch(/version\\/(\\d+(\\.\\d+)?)/i)\n , tablet = /tablet/i.test(ua) && !/tablet pc/i.test(ua)\n , mobile = !tablet && /[^-]mobi/i.test(ua)\n , xbox = /xbox/i.test(ua)\n , result\n\n if (/opera/i.test(ua)) {\n // an old Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n } else if (/opr\\/|opios/i.test(ua)) {\n // a new Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: getFirstMatch(/(?:opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/SamsungBrowser/i.test(ua)) {\n result = {\n name: 'Samsung Internet for Android'\n , samsungBrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/Whale/i.test(ua)) {\n result = {\n name: 'NAVER Whale browser'\n , whale: t\n , version: getFirstMatch(/(?:whale)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/MZBrowser/i.test(ua)) {\n result = {\n name: 'MZ Browser'\n , mzbrowser: t\n , version: getFirstMatch(/(?:MZBrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/coast/i.test(ua)) {\n result = {\n name: 'Opera Coast'\n , coast: t\n , version: versionIdentifier || getFirstMatch(/(?:coast)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/focus/i.test(ua)) {\n result = {\n name: 'Focus'\n , focus: t\n , version: getFirstMatch(/(?:focus)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/yabrowser/i.test(ua)) {\n result = {\n name: 'Yandex Browser'\n , yandexbrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/ucbrowser/i.test(ua)) {\n result = {\n name: 'UC Browser'\n , ucbrowser: t\n , version: getFirstMatch(/(?:ucbrowser)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/mxios/i.test(ua)) {\n result = {\n name: 'Maxthon'\n , maxthon: t\n , version: getFirstMatch(/(?:mxios)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/epiphany/i.test(ua)) {\n result = {\n name: 'Epiphany'\n , epiphany: t\n , version: getFirstMatch(/(?:epiphany)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/puffin/i.test(ua)) {\n result = {\n name: 'Puffin'\n , puffin: t\n , version: getFirstMatch(/(?:puffin)[\\s\\/](\\d+(?:\\.\\d+)?)/i)\n }\n }\n else if (/sleipnir/i.test(ua)) {\n result = {\n name: 'Sleipnir'\n , sleipnir: t\n , version: getFirstMatch(/(?:sleipnir)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/k-meleon/i.test(ua)) {\n result = {\n name: 'K-Meleon'\n , kMeleon: t\n , version: getFirstMatch(/(?:k-meleon)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (windowsphone) {\n result = {\n name: 'Windows Phone'\n , osname: 'Windows Phone'\n , windowsphone: t\n }\n if (edgeVersion) {\n result.msedge = t\n result.version = edgeVersion\n }\n else {\n result.msie = t\n result.version = getFirstMatch(/iemobile\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/msie|trident/i.test(ua)) {\n result = {\n name: 'Internet Explorer'\n , msie: t\n , version: getFirstMatch(/(?:msie |rv:)(\\d+(\\.\\d+)?)/i)\n }\n } else if (chromeos) {\n result = {\n name: 'Chrome'\n , osname: 'Chrome OS'\n , chromeos: t\n , chromeBook: t\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n } else if (/edg([ea]|ios)/i.test(ua)) {\n result = {\n name: 'Microsoft Edge'\n , msedge: t\n , version: edgeVersion\n }\n }\n else if (/vivaldi/i.test(ua)) {\n result = {\n name: 'Vivaldi'\n , vivaldi: t\n , version: getFirstMatch(/vivaldi\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (sailfish) {\n result = {\n name: 'Sailfish'\n , osname: 'Sailfish OS'\n , sailfish: t\n , version: getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/seamonkey\\//i.test(ua)) {\n result = {\n name: 'SeaMonkey'\n , seamonkey: t\n , version: getFirstMatch(/seamonkey\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/firefox|iceweasel|fxios/i.test(ua)) {\n result = {\n name: 'Firefox'\n , firefox: t\n , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \\/](\\d+(\\.\\d+)?)/i)\n }\n if (/\\((mobile|tablet);[^\\)]*rv:[\\d\\.]+\\)/i.test(ua)) {\n result.firefoxos = t\n result.osname = 'Firefox OS'\n }\n }\n else if (silk) {\n result = {\n name: 'Amazon Silk'\n , silk: t\n , version : getFirstMatch(/silk\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/phantom/i.test(ua)) {\n result = {\n name: 'PhantomJS'\n , phantom: t\n , version: getFirstMatch(/phantomjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/slimerjs/i.test(ua)) {\n result = {\n name: 'SlimerJS'\n , slimer: t\n , version: getFirstMatch(/slimerjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/blackberry|\\bbb\\d+/i.test(ua) || /rim\\stablet/i.test(ua)) {\n result = {\n name: 'BlackBerry'\n , osname: 'BlackBerry OS'\n , blackberry: t\n , version: versionIdentifier || getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (webos) {\n result = {\n name: 'WebOS'\n , osname: 'WebOS'\n , webos: t\n , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\\/(\\d+(\\.\\d+)?)/i)\n };\n /touchpad\\//i.test(ua) && (result.touchpad = t)\n }\n else if (/bada/i.test(ua)) {\n result = {\n name: 'Bada'\n , osname: 'Bada'\n , bada: t\n , version: getFirstMatch(/dolfin\\/(\\d+(\\.\\d+)?)/i)\n };\n }\n else if (tizen) {\n result = {\n name: 'Tizen'\n , osname: 'Tizen'\n , tizen: t\n , version: getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n };\n }\n else if (/qupzilla/i.test(ua)) {\n result = {\n name: 'QupZilla'\n , qupzilla: t\n , version: getFirstMatch(/(?:qupzilla)[\\s\\/](\\d+(?:\\.\\d+)+)/i) || versionIdentifier\n }\n }\n else if (/chromium/i.test(ua)) {\n result = {\n name: 'Chromium'\n , chromium: t\n , version: getFirstMatch(/(?:chromium)[\\s\\/](\\d+(?:\\.\\d+)?)/i) || versionIdentifier\n }\n }\n else if (/chrome|crios|crmo/i.test(ua)) {\n result = {\n name: 'Chrome'\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (android) {\n result = {\n name: 'Android'\n , version: versionIdentifier\n }\n }\n else if (/safari|applewebkit/i.test(ua)) {\n result = {\n name: 'Safari'\n , safari: t\n }\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if (iosdevice) {\n result = {\n name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'\n }\n // WTF: version is not part of user agent in web apps\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if(/googlebot/i.test(ua)) {\n result = {\n name: 'Googlebot'\n , googlebot: t\n , version: getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i) || versionIdentifier\n }\n }\n else {\n result = {\n name: getFirstMatch(/^(.*)\\/(.*) /),\n version: getSecondMatch(/^(.*)\\/(.*) /)\n };\n }\n\n // set webkit or gecko flag for browsers based on these engines\n if (!result.msedge && /(apple)?webkit/i.test(ua)) {\n if (/(apple)?webkit\\/537\\.36/i.test(ua)) {\n result.name = result.name || \"Blink\"\n result.blink = t\n } else {\n result.name = result.name || \"Webkit\"\n result.webkit = t\n }\n if (!result.version && versionIdentifier) {\n result.version = versionIdentifier\n }\n } else if (!result.opera && /gecko\\//i.test(ua)) {\n result.name = result.name || \"Gecko\"\n result.gecko = t\n result.version = result.version || getFirstMatch(/gecko\\/(\\d+(\\.\\d+)?)/i)\n }\n\n // set OS flags for platforms that have multiple browsers\n if (!result.windowsphone && (android || result.silk)) {\n result.android = t\n result.osname = 'Android'\n } else if (!result.windowsphone && iosdevice) {\n result[iosdevice] = t\n result.ios = t\n result.osname = 'iOS'\n } else if (mac) {\n result.mac = t\n result.osname = 'macOS'\n } else if (xbox) {\n result.xbox = t\n result.osname = 'Xbox'\n } else if (windows) {\n result.windows = t\n result.osname = 'Windows'\n } else if (linux) {\n result.linux = t\n result.osname = 'Linux'\n }\n\n function getWindowsVersion (s) {\n switch (s) {\n case 'NT': return 'NT'\n case 'XP': return 'XP'\n case 'NT 5.0': return '2000'\n case 'NT 5.1': return 'XP'\n case 'NT 5.2': return '2003'\n case 'NT 6.0': return 'Vista'\n case 'NT 6.1': return '7'\n case 'NT 6.2': return '8'\n case 'NT 6.3': return '8.1'\n case 'NT 10.0': return '10'\n default: return undefined\n }\n }\n\n // OS version extraction\n var osVersion = '';\n if (result.windows) {\n osVersion = getWindowsVersion(getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i))\n } else if (result.windowsphone) {\n osVersion = getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i);\n } else if (result.mac) {\n osVersion = getFirstMatch(/Mac OS X (\\d+([_\\.\\s]\\d+)*)/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (iosdevice) {\n osVersion = getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i);\n osVersion = osVersion.replace(/[_\\s]/g, '.');\n } else if (android) {\n osVersion = getFirstMatch(/android[ \\/-](\\d+(\\.\\d+)*)/i);\n } else if (result.webos) {\n osVersion = getFirstMatch(/(?:web|hpw)os\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.blackberry) {\n osVersion = getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i);\n } else if (result.bada) {\n osVersion = getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.tizen) {\n osVersion = getFirstMatch(/tizen[\\/\\s](\\d+(\\.\\d+)*)/i);\n }\n if (osVersion) {\n result.osversion = osVersion;\n }\n\n // device type extraction\n var osMajorVersion = !result.windows && osVersion.split('.')[0];\n if (\n tablet\n || nexusTablet\n || iosdevice == 'ipad'\n || (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))\n || result.silk\n ) {\n result.tablet = t\n } else if (\n mobile\n || iosdevice == 'iphone'\n || iosdevice == 'ipod'\n || android\n || nexusMobile\n || result.blackberry\n || result.webos\n || result.bada\n ) {\n result.mobile = t\n }\n\n // Graded Browser Support\n // http://developer.yahoo.com/yui/articles/gbs\n if (result.msedge ||\n (result.msie && result.version >= 10) ||\n (result.yandexbrowser && result.version >= 15) ||\n\t\t (result.vivaldi && result.version >= 1.0) ||\n (result.chrome && result.version >= 20) ||\n (result.samsungBrowser && result.version >= 4) ||\n (result.whale && compareVersions([result.version, '1.0']) === 1) ||\n (result.mzbrowser && compareVersions([result.version, '6.0']) === 1) ||\n (result.focus && compareVersions([result.version, '1.0']) === 1) ||\n (result.firefox && result.version >= 20.0) ||\n (result.safari && result.version >= 6) ||\n (result.opera && result.version >= 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] >= 6) ||\n (result.blackberry && result.version >= 10.1)\n || (result.chromium && result.version >= 20)\n ) {\n result.a = t;\n }\n else if ((result.msie && result.version < 10) ||\n (result.chrome && result.version < 20) ||\n (result.firefox && result.version < 20.0) ||\n (result.safari && result.version < 6) ||\n (result.opera && result.version < 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] < 6)\n || (result.chromium && result.version < 20)\n ) {\n result.c = t\n } else result.x = t\n\n return result\n }\n\n var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent || '' : '')\n\n bowser.test = function (browserList) {\n for (var i = 0; i < browserList.length; ++i) {\n var browserItem = browserList[i];\n if (typeof browserItem=== 'string') {\n if (browserItem in bowser) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n function getVersionPrecision(version) {\n return version.split(\".\").length;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n function map(arr, iterator) {\n var result = [], i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i++) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1\n * compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1\n * compareVersions(['1.10.2.1', '1.10.2.1']); // 0\n * compareVersions(['1.10.2.1', '1.0800.2']); // -1\n *\n * @param {Array} versions versions to compare\n * @return {Number} comparison result\n */\n function compareVersions(versions) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));\n var chunks = map(versions, function (version) {\n var delta = precision - getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n version = version + new Array(delta + 1).join(\".0\");\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return map(version.split(\".\"), function (chunk) {\n return new Array(20 - chunk.length).join(\"0\") + chunk;\n }).reverse();\n });\n\n // iterate in reverse order by reversed chunks array\n while (--precision >= 0) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n else if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === 0) {\n // all version chunks are same\n return 0;\n }\n }\n else {\n return -1;\n }\n }\n }\n\n /**\n * Check if browser is unsupported\n *\n * @example\n * bowser.isUnsupportedBrowser({\n * msie: \"10\",\n * firefox: \"23\",\n * chrome: \"29\",\n * safari: \"5.1\",\n * opera: \"16\",\n * phantom: \"534\"\n * });\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function isUnsupportedBrowser(minVersions, strictMode, ua) {\n var _bowser = bowser;\n\n // make strictMode param optional with ua param usage\n if (typeof strictMode === 'string') {\n ua = strictMode;\n strictMode = void(0);\n }\n\n if (strictMode === void(0)) {\n strictMode = false;\n }\n if (ua) {\n _bowser = detect(ua);\n }\n\n var version = \"\" + _bowser.version;\n for (var browser in minVersions) {\n if (minVersions.hasOwnProperty(browser)) {\n if (_bowser[browser]) {\n if (typeof minVersions[browser] !== 'string') {\n throw new Error('Browser version in the minVersion map should be a string: ' + browser + ': ' + String(minVersions));\n }\n\n // browser version and min supported version.\n return compareVersions([version, minVersions[browser]]) < 0;\n }\n }\n }\n\n return strictMode; // not found\n }\n\n /**\n * Check if browser is supported\n *\n * @param {Object} minVersions map of minimal version to browser\n * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n function check(minVersions, strictMode, ua) {\n return !isUnsupportedBrowser(minVersions, strictMode, ua);\n }\n\n bowser.isUnsupportedBrowser = isUnsupportedBrowser;\n bowser.compareVersions = compareVersions;\n bowser.check = check;\n\n /*\n * Set our detect method to the main bowser object so we can\n * reuse it to test other user agents.\n * This is needed to implement future tests.\n */\n bowser._detect = detect;\n\n /*\n * Set our detect public method to the main bowser object\n * This is needed to implement bowser in server side\n */\n bowser.detect = detect;\n return bowser\n});\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction Level(levelProperties) {\n this._fallbackOnly = !!levelProperties.fallbackOnly;\n}\n\nLevel.prototype.numHorizontalTiles = function() {\n return Math.ceil(this.width() / this.tileWidth());\n};\n\nLevel.prototype.numVerticalTiles = function() {\n return Math.ceil(this.height() / this.tileHeight());\n};\n\nLevel.prototype.fallbackOnly = function() {\n return this._fallbackOnly;\n};\n\nmodule.exports = Level;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction real(x) {\n return typeof x === 'number' && isFinite(x);\n}\n\nmodule.exports = real;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Convert a number to a string in decimal notation.\nfunction decimal(x) {\n // Double-precision floats have 15 significant decimal digits.\n return x.toPrecision(15);\n}\n\nmodule.exports = decimal;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar noop = require('./noop');\n\n// Return a function that executes its arguments (which should be cancelables)\n// in sequence, so that each of them passes its return values to the next.\n// Execution is aborted if one of the functions returns an error; in that case\n// the last function in the sequence is called with the error.\n// See util/cancelize.js for an explanation of what cancelables are.\nfunction chain() {\n\n // The list of functions to chain together.\n var argList = Array.prototype.slice.call(arguments, 0);\n\n return function chained() {\n\n // List of remaining functions to be executed.\n // Make a copy of the original list so we can mutate the former while\n // preserving the latter intact for future invocations of the chain.\n var fnList = argList.slice(0);\n\n // Currently executing function.\n var fn = null;\n\n // Cancel method for the currently executing function.\n var cfn = null;\n\n // Arguments for the first function.\n var args = arguments.length ? Array.prototype.slice.call(arguments, 0, arguments.length - 1) : [];\n\n // Callback for the chain.\n var done = arguments.length ? arguments[arguments.length - 1] : noop;\n\n // Execute the next function in the chain.\n // Receives the error and return values from the previous function.\n function exec() {\n\n // Extract error from arguments.\n var err = arguments[0];\n\n // Abort chain on error.\n if (err) {\n fn = cfn = null;\n done.apply(null, arguments);\n return;\n }\n\n // Terminate if there are no functions left in the chain.\n if (!fnList.length) {\n fn = cfn = null;\n done.apply(null, arguments);\n return;\n }\n\n // Advance to the next function in the chain.\n fn = fnList.shift();\n var _fn = fn;\n\n // Extract arguments to pass into the next function.\n var ret = Array.prototype.slice.call(arguments, 1);\n\n // Call next function with previous return value and call back exec.\n ret.push(exec);\n var _cfn = fn.apply(null, ret); // fn(null, ret..., exec)\n\n // Detect when fn has completed synchronously and do not clobber the\n // internal state in that case. You're not expected to understand this.\n if (_fn !== fn) {\n return;\n }\n\n // Remember the cancel method for the currently executing function.\n // Detect chaining on non-cancellable function.\n if (typeof _cfn !== 'function') {\n throw new Error('chain: chaining on non-cancellable function');\n } else {\n cfn = _cfn;\n }\n\n }\n\n // Cancel chain execution.\n function cancel() {\n if (cfn) {\n cfn.apply(null, arguments);\n }\n }\n\n // Start chain execution.\n // We call exec as if linking from a previous function in the chain,\n // except that the error is always null. As a consequence, chaining on an\n // empty list yields the identity function.\n args.unshift(null);\n exec.apply(null, args); // exec(null, args...)\n\n return cancel;\n\n };\n\n}\n\nmodule.exports = chain;\n",null,null,null,null,null,null,null,null,"/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar Stage = require('./Stage');\nvar HtmlImageLoader = require('../loaders/HtmlImage');\nvar browser = require('bowser');\nvar inherits = require('../util/inherits');\nvar pixelRatio = require('../util/pixelRatio');\nvar ispot = require('../util/ispot');\nvar setAbsolute = require('../util/dom').setAbsolute;\nvar setFullSize = require('../util/dom').setFullSize;\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\n// TODO(tjgq): Unify Stage and WebGlStage.\n\n// Browser-specific workarounds.\nvar browserQuirks = {\n // Whether to use texImage2D instead of texSubImage2D when repainting an\n // existing texture from a video element. On most browsers texSubImage2D is\n // faster, but on Chrome the performance degrades significantly. See:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=612542\n videoUseTexImage2D: browser.chrome\n};\n\n\nfunction initWebGlContext(canvas, opts) {\n var options = {\n alpha: true,\n premultipliedAlpha: true,\n antialias: !!(opts && opts.antialias),\n preserveDrawingBuffer: !!(opts && opts.preserveDrawingBuffer)\n };\n\n var gl = (canvas.getContext) && (canvas.getContext('webgl', options) || canvas.getContext('experimental-webgl', options));\n\n if (!gl) {\n throw new Error('Could not get WebGL context');\n }\n\n if (opts.wrapContext) {\n gl = opts.wrapContext(gl);\n }\n\n return gl;\n}\n\n/**\n * @class WebGlStage\n * @extends Stage\n * @classdesc\n *\n * A {@link Stage} implementation using WebGl.\n *\n * @param {Object} opts\n * @param {boolean} [opts.antialias=false]\n * @param {boolean} [opts.preserveDrawingBuffer=false]\n * @param {boolean} [opts.generateMipmaps=false]\n * @param {function} [opts.wrapContext]\n *\n * The `antialias` and `preserveDrawingBuffer` options control the WebGL\n * context attributes of the same name. The `alpha` and `premultipliedAlpha`\n * WebGL context attributes are set to their default true value and cannot\n * be overriden; this allows semitransparent textures to be composited with\n * the page. See:\n * https://www.khronos.org/registry/webgl/specs/1.0/#WEBGLCONTEXTATTRIBUTES\n *\n * The `generateMipmaps` option controls texture mipmap generation. Mipmaps\n * may improve rendering quality, at the cost of increased memory usage.\n * Due to technical limitations, they are only generated for textures whose\n * dimensions are a power of two. See:\n * https://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences#Non-Power_of_Two_Texture_Support\n *\n * The `wrapContext` option is a function that receives and returns a\n * WebGLRenderingContext. The stage will use its return value as the context.\n * This is useful when used together with WebGLDebugUtils to debug WebGL issues.\n * See https://www.khronos.org/webgl/wiki/Debugging.\n *\n * Also see the available {@link Stage} options.\n */\nfunction WebGlStage(opts) {\n opts = opts || {};\n\n var self = this;\n\n this.constructor.super_.call(this, opts);\n\n this._generateMipmaps = opts.generateMipmaps != null ?\n opts.generateMipmaps : false;\n\n this._loader = new HtmlImageLoader(this);\n\n this._domElement = document.createElement('canvas');\n\n setAbsolute(this._domElement);\n setFullSize(this._domElement);\n\n this._gl = initWebGlContext(this._domElement, opts);\n\n this._handleContextLoss = function() {\n self.emit('webglcontextlost');\n self._gl = null;\n };\n\n // Handle WebGl context loss.\n this._domElement.addEventListener('webglcontextlost', this._handleContextLoss);\n\n // WebGl renderers are singletons for a given stage. This list stores the\n // existing renderers so they can be reused across layers with the same\n // geometry and view type.\n this._rendererInstances = [];\n}\n\ninherits(WebGlStage, Stage);\n\n\n/**\n * Destructor.\n */\nWebGlStage.prototype.destroy = function() {\n this._domElement.removeEventListener('webglcontextlost', this._handleContextLoss);\n // Delegate clearing own properties to the Stage destructor.\n this.constructor.super_.prototype.destroy.call(this);\n};\n\n\n/**\n * Returns the underlying DOM element.\n *\n * @return {Element}\n */\nWebGlStage.prototype.domElement = function() {\n return this._domElement;\n};\n\n\n/**\n * Returns the underlying WebGL rendering context.\n *\n * @return {WebGLRenderingContext }\n */\nWebGlStage.prototype.webGlContext = function() {\n return this._gl;\n};\n\n\nWebGlStage.prototype.setSizeForType = function() {\n // Update the size of the canvas coordinate space.\n //\n // The size is obtained by taking the stage dimensions, which are set in CSS\n // pixels, and multiplying them by the device pixel ratio. Crucially, this\n // must be the only place where the WebGL rendering pipeline accesses the\n // pixel ratio; subsequent uses should reference the `drawingBufferWidth` and\n // `drawingBufferHeight` properties on the WebGLRenderingContext. Failing to\n // do so will break the rendering if the pixel ratio changes but the stage\n // size does not, e.g. when moving the window across screens.\n var ratio = pixelRatio();\n this._domElement.width = ratio * this._width;\n this._domElement.height = ratio * this._height;\n};\n\n\nWebGlStage.prototype.loadImage = function(url, rect, done) {\n return this._loader.loadImage(url, rect, done);\n};\n\n\nWebGlStage.prototype.maxTextureSize = function() {\n return this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE);\n};\n\n\nWebGlStage.prototype.validateLayer = function(layer) {\n var tileSize = layer.geometry().maxTileSize();\n var maxTextureSize = this.maxTextureSize();\n if (tileSize > maxTextureSize) {\n throw new Error('Layer has level with tile size larger than maximum texture size (' + tileSize + ' vs. ' + maxTextureSize + ')');\n }\n};\n\n\nWebGlStage.prototype.createRenderer = function(Renderer) {\n var rendererInstances = this._rendererInstances;\n for (var i = 0; i < rendererInstances.length; i++) {\n if (rendererInstances[i] instanceof Renderer) {\n return rendererInstances[i];\n }\n }\n var renderer = new Renderer(this._gl);\n rendererInstances.push(renderer);\n return renderer;\n};\n\n\nWebGlStage.prototype.destroyRenderer = function(renderer) {\n var rendererInstances = this._rendererInstances;\n if (this._renderers.indexOf(renderer) < 0) {\n renderer.destroy();\n var index = rendererInstances.indexOf(renderer);\n if (index >= 0) {\n rendererInstances.splice(index, 1);\n }\n }\n};\n\n\nWebGlStage.prototype.startFrame = function() {\n\n var gl = this._gl;\n\n if (!gl) {\n throw new Error('Bad WebGL context - maybe context was lost?');\n }\n\n // Set the WebGL viewport.\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n\n // Clear framebuffer.\n gl.clearColor(0.0, 0.0, 0.0, 0.0);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);\n\n // Enable depth testing.\n gl.enable(gl.DEPTH_TEST);\n\n // Enable blending. ONE and ONE_MINUS_SRC_ALPHA are the right choices for\n // premultiplied textures.\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n\n};\n\n\nWebGlStage.prototype.endFrame = function() {};\n\n\nWebGlStage.prototype.takeSnapshot = function(options) {\n\n // Validate passed argument\n if (typeof options !== 'object' || options == null) {\n options = {};\n }\n\n var quality = options.quality;\n\n // Set default quality if it is not passed\n if (typeof quality == 'undefined') {\n quality = 75;\n }\n\n // Throw if quality is of invlid type or out of bounds\n if (typeof quality !== 'number' || quality < 0 || quality > 100) {\n throw new Error('WebGLStage: Snapshot quality needs to be a number between 0 and 100');\n }\n\n // Canvas method \"toDataURL\" needs to be called in the same\n // context as where the actual rendering is done. Hence this.\n this.render();\n\n // Return the snapshot\n return this._domElement.toDataURL('image/jpeg', quality / 100);\n}\n\n\nWebGlStage.type = WebGlStage.prototype.type = 'webgl';\n\n\nfunction WebGlTexture(stage, tile, asset) {\n this._stage = stage;\n this._gl = stage._gl;\n this._texture = null;\n this._timestamp = null;\n this._width = this._height = null;\n this.refresh(tile, asset);\n}\n\n\nWebGlTexture.prototype.refresh = function(tile, asset) {\n\n var gl = this._gl;\n var stage = this._stage;\n var texture;\n\n // Check whether the texture needs to be updated.\n var timestamp = asset.timestamp();\n if (timestamp === this._timestamp) {\n return;\n }\n\n // Get asset element.\n var element = asset.element();\n\n // Get asset dimensions.\n var width = asset.width();\n var height = asset.height();\n\n if (width !== this._width || height !== this._height) {\n\n // If the texture dimensions have changed since the last refresh, create\n // a new texture with the correct size.\n\n // Check if texture dimensions would exceed the maximum texture size.\n var maxSize = stage.maxTextureSize();\n if (width > maxSize) {\n throw new Error('Texture width larger than max size (' + width + ' vs. ' + maxSize + ')');\n }\n if (height > maxSize) {\n throw new Error('Texture height larger than max size (' + height + ' vs. ' + maxSize + ')');\n }\n\n // Delete the current texture if it exists.\n // This is necessary for Chrome on Android. If it isn't done the textures\n // do not render when the size changes.\n if (this._texture) {\n gl.deleteTexture(texture);\n }\n\n // The texture must be premultiplied by alpha to ensure correct blending of\n // semitransparent textures. For details, see:\n // http://www.realtimerendering.com/blog/gpus-prefer-premultiplication/\n texture = this._texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, element);\n\n } else {\n\n // If the texture dimensions remain the same, repaint the existing texture.\n // Repainting with texSubImage2D is usually faster than with texImage2D,\n // except in the case noted in browserQuirks.\n\n texture = this._texture;\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n\n if (element instanceof HTMLVideoElement && browserQuirks.videoUseTexImage2D) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, element);\n } else {\n gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, element);\n }\n\n }\n\n // Generate mipmap if the corresponding stage option is set and the texture\n // dimensions are powers of two.\n if (stage._generateMipmaps && ispot(width) && ispot(height)) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);\n gl.generateMipmap(gl.TEXTURE_2D);\n } else {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n }\n\n // Clamp texture to edges.\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\n // Unbind texture.\n gl.bindTexture(gl.TEXTURE_2D, null);\n\n // Update texture dimensions and timestamp.\n this._timestamp = timestamp;\n this._width = width;\n this._height = height;\n\n};\n\n\nWebGlTexture.prototype.destroy = function() {\n if (this._texture) {\n this._gl.deleteTexture(this._texture);\n }\n clearOwnProperties(this);\n};\n\n\nWebGlStage.TextureClass = WebGlStage.prototype.TextureClass = WebGlTexture;\n\n\nmodule.exports = WebGlStage;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar now = require('../util/now');\n\n\nfunction WorkTask(fn, cb) {\n this.fn = fn;\n this.cb = cb;\n this.cfn = null;\n}\n\n\nfunction WorkQueue(opts) {\n this._queue = [];\n this._delay = opts && opts.delay || 0;\n this._paused = opts && !!opts.paused || false;\n this._currentTask = null;\n this._lastFinished = null;\n}\n\n\nWorkQueue.prototype.length = function() {\n return this._queue.length;\n};\n\n\nWorkQueue.prototype.push = function(fn, cb) {\n\n var task = new WorkTask(fn, cb);\n\n var cancel = this._cancel.bind(this, task);\n\n // Push the task into the queue.\n this._queue.push(task);\n\n // Run the task if idle.\n this._next();\n\n return cancel;\n\n};\n\n\nWorkQueue.prototype.pause = function() {\n if (!this._paused) {\n this._paused = true;\n }\n};\n\n\nWorkQueue.prototype.resume = function() {\n if (this._paused) {\n this._paused = false;\n this._next();\n }\n};\n\n\nWorkQueue.prototype._start = function(task) {\n\n // Consistency check.\n if (this._currentTask) {\n throw new Error('WorkQueue: called start while running task');\n }\n\n // Mark queue as busy, so that concurrent tasks wait.\n this._currentTask = task;\n\n // Execute the task.\n var finish = this._finish.bind(this, task);\n task.cfn = task.fn(finish);\n\n // Detect when a non-cancellable function has been queued.\n if (typeof task.cfn !== 'function') {\n throw new Error('WorkQueue: function is not cancellable');\n }\n\n};\n\n\nWorkQueue.prototype._finish = function(task) {\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n // Consistency check.\n if (this._currentTask !== task) {\n throw new Error('WorkQueue: called finish on wrong task');\n }\n\n // Call the task callback on the return values.\n task.cb.apply(null, args);\n\n // Mark as not busy and record task finish time, then advance to next task.\n this._currentTask = null;\n this._lastFinished = now();\n this._next();\n\n};\n\n\nWorkQueue.prototype._cancel = function(task) {\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (this._currentTask === task) {\n\n // Cancel running task. Because cancel passes control to the _finish\n // callback we passed into fn, the cleanup logic will be handled there.\n task.cfn.apply(null, args);\n\n } else {\n\n // Remove task from queue.\n var pos = this._queue.indexOf(task);\n if (pos >= 0) {\n this._queue.splice(pos, 1);\n task.cb.apply(null, args);\n }\n\n }\n\n};\n\n\nWorkQueue.prototype._next = function() {\n\n if (this._paused) {\n // Do not start tasks while paused.\n return;\n }\n\n if (!this._queue.length) {\n // No tasks to run.\n return;\n }\n\n if (this._currentTask) {\n // Will be called again when the current task finishes.\n return;\n }\n\n if (this._lastFinished != null) {\n var elapsed = now() - this._lastFinished;\n var remaining = this._delay - elapsed;\n if (remaining > 0) {\n // Too soon. Run again after the inter-task delay.\n setTimeout(this._next.bind(this), remaining);\n return;\n }\n }\n\n // Run the next task.\n var task = this._queue.shift();\n this._start(task);\n\n};\n\n\nmodule.exports = WorkQueue;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n/**\n * Converts a {@link RectSpec} into an equivalent {@link Rect}.\n *\n * A {@link RectSpec} is a convenient user API format, providing default values\n * and the flexibility of specifying absolute, relative or mixed dimensions.\n *\n * A {@link Rect} is a more convenient format for the rendering pipeline. It is\n * always expressed in normalized coordinates, and all its properties are\n * guaranteed to be present.\n *\n * @param {number} totalWidth The total width of the rendering area in pixels.\n * @param {number} totalHeight The total height of the rendering area in pixels.\n * @param {RectSpec} spec The input spec, defaulting to the full rendering area\n * if null or undefined.\n * @param {Rect} result The output spec. If the argument is present, it is\n * filled in and returned; otherwise, a fresh object is returned.\n */\nfunction calcRect(totalWidth, totalHeight, spec, result) {\n\n result = result || {};\n\n var width;\n if (spec != null && spec.absoluteWidth != null) {\n width = spec.absoluteWidth / totalWidth;\n } else if (spec != null && spec.relativeWidth != null) {\n width = spec.relativeWidth;\n } else {\n width = 1;\n }\n\n var height;\n if (spec && spec.absoluteHeight != null) {\n height = spec.absoluteHeight / totalHeight;\n } else if (spec != null && spec.relativeHeight != null) {\n height = spec.relativeHeight;\n } else {\n height = 1;\n }\n\n var x;\n if (spec != null && spec.absoluteX != null) {\n x = spec.absoluteX / totalWidth;\n } else if (spec != null && spec.relativeX != null) {\n x = spec.relativeX;\n } else {\n x = 0;\n }\n\n var y;\n if (spec != null && spec.absoluteY != null) {\n y = spec.absoluteY / totalHeight;\n } else if (spec != null && spec.relativeY != null) {\n y = spec.relativeY;\n } else {\n y = 0;\n }\n\n result.x = x;\n result.y = y;\n result.width = width;\n result.height = height;\n\n return result;\n}\n\nmodule.exports = calcRect;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Transform a synchronous function into an asynchronous one.\nfunction async(fn) {\n return function asynced(done) {\n var err, ret;\n try {\n ret = fn();\n } catch (e) {\n err = e;\n } finally {\n if (err) {\n done(err);\n } else {\n done(null, ret);\n }\n }\n };\n}\n\nmodule.exports = async;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar once = require('./once');\n\n// A cancelable function is an asynchronous function (i.e., one whose last\n// argument is a callback receiving an error plus zero or more return values)\n// that (synchronously) returns a cancel() function. Calling cancel() should\n// abort the asynchronous operation and call the callback with the arguments\n// that were passed into cancel(). Calling cancel() twice, as with callbacks,\n// is not guaranteed to be safe.\n\n// Wrap a non-cancellable asynchronous function into a cancelable one.\n//\n// Calling cancel() on the returned function will not interrupt the execution\n// of the original function; it will merely ignore its return value.\n//\n// Usually, instead of wrapping your function, you want to implement cancel()\n// yourself in order to have some abort logic. This utility function provides a\n// straighforward solution for cases in which no custom abort logic is required.\nfunction cancelize(fn) {\n return function cancelized() {\n if (!arguments.length) {\n throw new Error('cancelized: expected at least one argument');\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var done = args[args.length - 1] = once(args[args.length - 1]);\n\n function cancel() {\n done.apply(null, arguments);\n }\n\n fn.apply(null, args);\n\n return cancel;\n };\n}\n\nmodule.exports = cancelize;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// The global object.\nvar globalObject = (function() {\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return null;\n})();\n\nmodule.exports = globalObject;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar inherits = require('./util/inherits');\n\n/**\n * @class NetworkError\n * @extends {Error}\n * @classdesc\n *\n * Signals an error that occurred while fetching a URL. This is used by\n * {@link Loader loaders} to distinguish network failures from other errors.\n */\nfunction NetworkError(message) {\n // See: https://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript\n this.constructor.super_.apply(this, arguments);\n this.message = message;\n}\n\ninherits(NetworkError, Error);\n\nmodule.exports = NetworkError;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar WebGlBaseRenderer = require('./WebGlBase');\nvar inherits = require('../util/inherits');\n\n/**\n * @class WebGlCubeRenderer\n * @implements Renderer\n * @classdesc\n *\n * A renderer for {@link CubeGeometry} and {@link RectilinearView}, appropriate\n * for a {@link WebGlStage}.\n *\n * Most users do not need to instantiate this class. Renderers are created and\n * destroyed by {@link Stage} as necessary.\n */\nfunction WebGlCubeRenderer() {\n this.constructor.super_.apply(this, arguments);\n}\n\ninherits(WebGlCubeRenderer, WebGlBaseRenderer);\n\nmodule.exports = WebGlCubeRenderer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar mat4 = require('gl-matrix').mat4;\nvar vec3 = require('gl-matrix').vec3;\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar WebGlCommon = require('./WebGlCommon');\nvar createConstantBuffers = WebGlCommon.createConstantBuffers;\nvar destroyConstantBuffers = WebGlCommon.destroyConstantBuffers;\nvar createShaderProgram = WebGlCommon.createShaderProgram;\nvar destroyShaderProgram = WebGlCommon.destroyShaderProgram;\nvar enableAttributes = WebGlCommon.enableAttributes;\nvar disableAttributes = WebGlCommon.disableAttributes;\nvar setViewport = WebGlCommon.setViewport;\nvar setupPixelEffectUniforms = WebGlCommon.setupPixelEffectUniforms;\n\nvar setDepth = WebGlCommon.setDepth;\nvar setTexture = WebGlCommon.setTexture;\n\nvar vertexSrc = require('../shaders/vertexNormal');\nvar fragmentSrc = require('../shaders/fragmentNormal');\n\nvar vertexIndices = [0, 1, 2, 0, 2, 3];\nvar vertexPositions = [-0.5, -0.5, 0.0, 0.5, -0.5, 0.0, 0.5, 0.5, 0.0, -0.5, 0.5, 0.0];\nvar textureCoords = [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0];\n\nvar attribList = ['aVertexPosition', 'aTextureCoord'];\nvar uniformList = [\n 'uDepth', 'uOpacity', 'uSampler', 'uProjMatrix', 'uViewportMatrix',\n 'uColorOffset', 'uColorMatrix'\n];\n\n\nfunction WebGlBaseRenderer(gl) {\n this.gl = gl;\n\n // The projection matrix positions the tiles in world space.\n // We compute it in Javascript because lack of precision in the vertex shader\n // causes seams to appear between adjacent tiles at large zoom levels.\n this.projMatrix = mat4.create();\n\n // The viewport matrix responsible for viewport clamping.\n // See setViewport() for an explanation of how it works.\n this.viewportMatrix = mat4.create();\n\n // Translation and scale vectors for tiles.\n this.translateVector = vec3.create();\n this.scaleVector = vec3.create();\n\n this.constantBuffers = createConstantBuffers(gl, vertexIndices, vertexPositions, textureCoords);\n\n this.shaderProgram = createShaderProgram(gl, vertexSrc, fragmentSrc, attribList, uniformList);\n}\n\nWebGlBaseRenderer.prototype.destroy = function() {\n destroyConstantBuffers(this.gl, this.constantBuffers);\n destroyShaderProgram(this.gl, this.shaderProgram);\n clearOwnProperties(this);\n};\n\nWebGlBaseRenderer.prototype.startLayer = function(layer, rect) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n var constantBuffers = this.constantBuffers;\n var viewportMatrix = this.viewportMatrix;\n\n gl.useProgram(shaderProgram);\n\n enableAttributes(gl, shaderProgram);\n\n setViewport(gl, layer, rect, viewportMatrix);\n gl.uniformMatrix4fv(shaderProgram.uViewportMatrix, false, viewportMatrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, constantBuffers.vertexPositions);\n gl.vertexAttribPointer(shaderProgram.aVertexPosition, 3, gl.FLOAT, gl.FALSE, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, constantBuffers.textureCoords);\n gl.vertexAttribPointer(shaderProgram.aTextureCoord, 2, gl.FLOAT, gl.FALSE, 0, 0);\n\n setupPixelEffectUniforms(gl, layer.effects(), {\n opacity: shaderProgram.uOpacity,\n colorOffset: shaderProgram.uColorOffset,\n colorMatrix: shaderProgram.uColorMatrix\n });\n};\n\n\nWebGlBaseRenderer.prototype.endLayer = function(layer, rect) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n disableAttributes(gl, shaderProgram);\n};\n\n\nWebGlBaseRenderer.prototype.renderTile = function(tile, texture, layer, layerZ) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n var constantBuffers = this.constantBuffers;\n var projMatrix = this.projMatrix;\n var translateVector = this.translateVector;\n var scaleVector = this.scaleVector;\n\n translateVector[0] = tile.centerX();\n translateVector[1] = tile.centerY();\n translateVector[2] = -0.5;\n\n scaleVector[0] = tile.scaleX();\n scaleVector[1] = tile.scaleY();\n scaleVector[2] = 1.0;\n\n mat4.copy(projMatrix, layer.view().projection());\n mat4.rotateX(projMatrix, projMatrix, tile.rotX());\n mat4.rotateY(projMatrix, projMatrix, tile.rotY());\n mat4.translate(projMatrix, projMatrix, translateVector);\n mat4.scale(projMatrix, projMatrix, scaleVector);\n\n gl.uniformMatrix4fv(shaderProgram.uProjMatrix, false, projMatrix);\n\n setDepth(gl, shaderProgram, layerZ, tile.z);\n\n setTexture(gl, shaderProgram, texture);\n\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, constantBuffers.vertexIndices);\n gl.drawElements(gl.TRIANGLES, vertexIndices.length, gl.UNSIGNED_SHORT, 0);\n};\n\n\nmodule.exports = WebGlBaseRenderer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// These are used to set the WebGl depth for a tile.\nvar MAX_LAYERS = 256; // Max number of layers per stage.\nvar MAX_LEVELS = 256; // Max number of levels per layer.\n\nvar clamp = require('../util/clamp');\nvar vec4 = require('gl-matrix').vec4;\nvar vec3 = require('gl-matrix').vec3;\nvar mat4 = require('gl-matrix').mat4;\n\n\nfunction createShader(gl, type, src) {\n var shader = gl.createShader(type);\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw gl.getShaderInfoLog(shader);\n }\n return shader;\n}\n\n\nfunction createShaderProgram(gl, vertexSrc, fragmentSrc, attribList, uniformList) {\n\n var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSrc);\n var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSrc);\n\n var shaderProgram = gl.createProgram();\n\n gl.attachShader(shaderProgram, vertexShader);\n gl.attachShader(shaderProgram, fragmentShader);\n gl.linkProgram(shaderProgram);\n\n if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {\n throw gl.getProgramInfoLog(shaderProgram);\n }\n\n for (var i = 0; i < attribList.length; i++) {\n var attrib = attribList[i];\n shaderProgram[attrib] = gl.getAttribLocation(shaderProgram, attrib);\n if (shaderProgram[attrib] === -1) {\n throw new Error('Shader program has no ' + attrib + ' attribute');\n }\n }\n\n for (var j = 0; j < uniformList.length; j++) {\n var uniform = uniformList[j];\n shaderProgram[uniform] = gl.getUniformLocation(shaderProgram, uniform);\n if (shaderProgram[uniform] === -1) {\n throw new Error('Shader program has no ' + uniform + ' uniform');\n }\n }\n\n return shaderProgram;\n}\n\n\nfunction destroyShaderProgram(gl, shaderProgram) {\n var shaderList = gl.getAttachedShaders(shaderProgram);\n for (var i = 0; i < shaderList.length; i++) {\n var shader = shaderList[i];\n gl.detachShader(shaderProgram, shader);\n gl.deleteShader(shader);\n }\n gl.deleteProgram(shaderProgram);\n}\n\n\nfunction createConstantBuffer(gl, target, usage, value) {\n var buffer = gl.createBuffer();\n gl.bindBuffer(target, buffer);\n gl.bufferData(target, value, usage);\n return buffer;\n}\n\n\nfunction createConstantBuffers(gl, vertexIndices, vertexPositions, textureCoords) {\n return {\n vertexIndices: createConstantBuffer(gl, gl.ELEMENT_ARRAY_BUFFER, gl.STATIC_DRAW, new Uint16Array(vertexIndices)),\n vertexPositions: createConstantBuffer(gl, gl.ARRAY_BUFFER, gl.STATIC_DRAW, new Float32Array(vertexPositions)),\n textureCoords: createConstantBuffer(gl, gl.ARRAY_BUFFER, gl.STATIC_DRAW, new Float32Array(textureCoords))\n };\n}\n\n\nfunction destroyConstantBuffers(gl, constantBuffers) {\n gl.deleteBuffer(constantBuffers.vertexIndices);\n gl.deleteBuffer(constantBuffers.vertexPositions);\n gl.deleteBuffer(constantBuffers.textureCoords);\n}\n\n\nfunction enableAttributes(gl, shaderProgram) {\n var numAttrs = gl.getProgramParameter(shaderProgram, gl.ACTIVE_ATTRIBUTES);\n for (var i = 0; i < numAttrs; i++) {\n gl.enableVertexAttribArray(i);\n }\n}\n\n\nfunction disableAttributes(gl, shaderProgram) {\n var numAttrs = gl.getProgramParameter(shaderProgram, gl.ACTIVE_ATTRIBUTES);\n for (var i = 0; i < numAttrs; i++) {\n gl.disableVertexAttribArray(i);\n }\n}\n\n\nfunction setTexture(gl, shaderProgram, texture) {\n gl.activeTexture(gl.TEXTURE0);\n gl.bindTexture(gl.TEXTURE_2D, texture._texture);\n gl.uniform1i(shaderProgram.uSampler, 0);\n}\n\n\nfunction setDepth(gl, shaderProgram, layerZ, tileZ) {\n var depth = (((layerZ + 1) * MAX_LEVELS) - tileZ) / (MAX_LEVELS * MAX_LAYERS);\n gl.uniform1f(shaderProgram.uDepth, depth);\n}\n\n\nvar defaultOpacity = 1.0;\nvar defaultColorOffset = vec4.create();\nvar defaultColorMatrix = mat4.create();\nmat4.identity(defaultColorMatrix);\n\nfunction setupPixelEffectUniforms(gl, effects, uniforms) {\n var opacity = defaultOpacity;\n if (effects && effects.opacity != null) {\n opacity = effects.opacity;\n }\n gl.uniform1f(uniforms.opacity, opacity);\n\n var colorOffset = defaultColorOffset;\n if (effects && effects.colorOffset) {\n colorOffset = effects.colorOffset;\n }\n gl.uniform4fv(uniforms.colorOffset, colorOffset);\n\n var colorMatrix = defaultColorMatrix;\n if (effects && effects.colorMatrix) {\n colorMatrix = effects.colorMatrix;\n }\n gl.uniformMatrix4fv(uniforms.colorMatrix, false, colorMatrix);\n}\n\n\n// Temporary vectors for setViewport.\nvar translateVector = vec3.create();\nvar scaleVector = vec3.create();\n\n\n// Sets the WebGL viewport and returns a viewport clamping compensation matrix.\n//\n// Negative viewport origin coordinates cause rendering issues. Letting the\n// viewport dimensions extend beyond the visible area do not seem to cause\n// rendering issues, but they may still have an impact on performance.\n// Therefore, when the scene's rect is not fully contained in the rendering\n// area, we clamp the viewport to the rendering area, and return a compensation\n// matrix to scale and translate vertices accordingly.\nfunction setViewport(gl, layer, rect, viewportMatrix) {\n if (rect.x === 0 && rect.width === 1 && rect.y === 0 && rect.height === 1) {\n // Fast path for full rect.\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n mat4.identity(viewportMatrix);\n return;\n }\n\n var offsetX = rect.x;\n var clampedOffsetX = clamp(offsetX, 0, 1);\n var leftExcess = clampedOffsetX - offsetX;\n var maxClampedWidth = 1 - clampedOffsetX;\n var clampedWidth = clamp(rect.width - leftExcess, 0, maxClampedWidth);\n var rightExcess = rect.width - clampedWidth;\n\n var offsetY = 1 - rect.height - rect.y;\n var clampedOffsetY = clamp(offsetY, 0, 1);\n var bottomExcess = clampedOffsetY - offsetY;\n var maxClampedHeight = 1 - clampedOffsetY;\n var clampedHeight = clamp(rect.height - bottomExcess, 0, maxClampedHeight);\n var topExcess = rect.height - clampedHeight;\n\n vec3.set(\n scaleVector,\n rect.width / clampedWidth,\n rect.height / clampedHeight,\n 1);\n\n vec3.set(\n translateVector,\n (rightExcess - leftExcess) / clampedWidth,\n (topExcess - bottomExcess) / clampedHeight,\n 0);\n\n mat4.identity(viewportMatrix);\n mat4.translate(viewportMatrix, viewportMatrix, translateVector);\n mat4.scale(viewportMatrix, viewportMatrix, scaleVector);\n\n gl.viewport(gl.drawingBufferWidth * clampedOffsetX,\n gl.drawingBufferHeight * clampedOffsetY,\n gl.drawingBufferWidth * clampedWidth,\n gl.drawingBufferHeight * clampedHeight);\n}\n\nmodule.exports = {\n createShaderProgram: createShaderProgram,\n destroyShaderProgram: destroyShaderProgram,\n createConstantBuffers: createConstantBuffers,\n destroyConstantBuffers: destroyConstantBuffers,\n enableAttributes: enableAttributes,\n disableAttributes: disableAttributes,\n setTexture: setTexture,\n setDepth: setDepth,\n setViewport: setViewport,\n setupPixelEffectUniforms: setupPixelEffectUniforms\n};\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar WebGlBaseRenderer = require('./WebGlBase');\nvar inherits = require('../util/inherits');\n\n/**\n * @class WebGlFlatRenderer\n * @implements Renderer\n * @classdesc\n *\n * A renderer for {@link FlatGeometry} and {@link FlatView}, appropriate for a\n * {@link WebGlStage}.\n *\n * Most users do not need to instantiate this class. Renderers are created and\n * destroyed by {@link Stage} as necessary.\n */\nfunction WebGlFlatRenderer() {\n this.constructor.super_.apply(this, arguments);\n}\n\ninherits(WebGlFlatRenderer, WebGlBaseRenderer);\n\nmodule.exports = WebGlFlatRenderer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar mat4 = require('gl-matrix').mat4;\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar WebGlCommon = require('./WebGlCommon');\nvar createConstantBuffers = WebGlCommon.createConstantBuffers;\nvar destroyConstantBuffers = WebGlCommon.destroyConstantBuffers;\nvar createShaderProgram = WebGlCommon.createShaderProgram;\nvar destroyShaderProgram = WebGlCommon.destroyShaderProgram;\nvar enableAttributes = WebGlCommon.enableAttributes;\nvar disableAttributes = WebGlCommon.disableAttributes;\nvar setViewport = WebGlCommon.setViewport;\nvar setupPixelEffectUniforms = WebGlCommon.setupPixelEffectUniforms;\n\nvar setDepth = WebGlCommon.setDepth;\nvar setTexture = WebGlCommon.setTexture;\n\nvar vertexSrc = require('../shaders/vertexEquirect');\nvar fragmentSrc = require('../shaders/fragmentEquirect');\n\nvar vertexIndices = [0, 1, 2, 0, 2, 3];\nvar vertexPositions = [-1.0, -1.0, 0.0, 1.0, -1.0, 0.0, 1.0, 1.0, 0.0, -1.0, 1.0, 0.0];\nvar textureCoords = [0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0];\n\nvar attribList = ['aVertexPosition'];\nvar uniformList = [\n 'uDepth', 'uOpacity', 'uSampler', 'uInvProjMatrix', 'uViewportMatrix',\n 'uColorOffset', 'uColorMatrix', 'uTextureX', 'uTextureY', 'uTextureWidth',\n 'uTextureHeight'\n];\n\n\n/**\n * @class WebGlEquirectRenderer\n * @implements Renderer\n * @classdesc\n *\n * A renderer for {@link EquirectGeometry} and {@link RectilinearView},\n * appropriate for {@link WebGlStage}.\n *\n * Most users do not need to instantiate this class. Renderers are created and\n * destroyed by {@link Stage} as necessary.\n */\nfunction WebGlEquirectRenderer(gl) {\n this.gl = gl;\n\n // The inverse projection matrix.\n this.invProjMatrix = mat4.create();\n\n // The viewport matrix responsible for viewport clamping.\n // See setViewport() for an explanation of how it works.\n this.viewportMatrix = mat4.create();\n\n this.constantBuffers = createConstantBuffers(gl, vertexIndices, vertexPositions, textureCoords);\n\n this.shaderProgram = createShaderProgram(gl, vertexSrc, fragmentSrc, attribList, uniformList);\n}\n\nWebGlEquirectRenderer.prototype.destroy = function() {\n destroyConstantBuffers(this.gl, this.constantBuffers);\n destroyShaderProgram(this.gl, this.shaderProgram);\n clearOwnProperties(this);\n};\n\n\nWebGlEquirectRenderer.prototype.startLayer = function(layer, rect) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n var constantBuffers = this.constantBuffers;\n var invProjMatrix = this.invProjMatrix;\n var viewportMatrix = this.viewportMatrix;\n\n gl.useProgram(shaderProgram);\n\n enableAttributes(gl, shaderProgram);\n\n setViewport(gl, layer, rect, viewportMatrix);\n gl.uniformMatrix4fv(shaderProgram.uViewportMatrix, false, viewportMatrix);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, constantBuffers.vertexPositions);\n gl.vertexAttribPointer(shaderProgram.aVertexPosition, 3, gl.FLOAT, gl.FALSE, 0, 0);\n gl.bindBuffer(gl.ARRAY_BUFFER, constantBuffers.textureCoords);\n\n // Compute and set the inverse projection matrix.\n mat4.copy(invProjMatrix, layer.view().projection());\n mat4.invert(invProjMatrix, invProjMatrix);\n\n gl.uniformMatrix4fv(shaderProgram.uInvProjMatrix, false, invProjMatrix);\n\n // Compute and set the texture scale and crop offsets.\n var textureCrop = layer.effects().textureCrop || {};\n var textureX = textureCrop.x != null ? textureCrop.x : 0;\n var textureY = textureCrop.y != null ? textureCrop.y : 0;\n var textureWidth = textureCrop.width != null ? textureCrop.width : 1;\n var textureHeight = textureCrop.height != null ? textureCrop.height : 1;\n\n gl.uniform1f(shaderProgram.uTextureX, textureX);\n gl.uniform1f(shaderProgram.uTextureY, textureY);\n gl.uniform1f(shaderProgram.uTextureWidth, textureWidth);\n gl.uniform1f(shaderProgram.uTextureHeight, textureHeight);\n\n setupPixelEffectUniforms(gl, layer.effects(), {\n opacity: shaderProgram.uOpacity,\n colorOffset: shaderProgram.uColorOffset,\n colorMatrix: shaderProgram.uColorMatrix\n });\n};\n\n\nWebGlEquirectRenderer.prototype.endLayer = function(layer, rect) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n disableAttributes(gl, shaderProgram);\n};\n\n\nWebGlEquirectRenderer.prototype.renderTile = function(tile, texture, layer, layerZ) {\n var gl = this.gl;\n var shaderProgram = this.shaderProgram;\n var constantBuffers = this.constantBuffers;\n\n setDepth(gl, shaderProgram, layerZ, tile.z);\n\n setTexture(gl, shaderProgram, texture);\n\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, constantBuffers.vertexIndices);\n gl.drawElements(gl.TRIANGLES, vertexIndices.length, gl.UNSIGNED_SHORT, 0);\n};\n\n\nmodule.exports = WebGlEquirectRenderer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar WebGlCube = require('./WebGlCube');\nvar WebGlFlat = require('./WebGlFlat');\nvar WebGlEquirect = require('./WebGlEquirect');\n\n/**\n * Registers all known renderers for the given stage type into that stage.\n * Most users will not need to register renderers, as {@link Viewer} does it for\n * them.\n *\n * @param {Stage} stage The stage where the renderers are to be registered.\n * @throws An error if the stage type is unknown.\n */\nfunction registerDefaultRenderers(stage) {\n switch (stage.type) {\n case 'webgl':\n stage.registerRenderer('flat', 'flat', WebGlFlat);\n stage.registerRenderer('cube', 'rectilinear', WebGlCube);\n stage.registerRenderer('equirect', 'rectilinear', WebGlEquirect);\n break;\n default:\n throw new Error('Unknown stage type: ' + stage.type);\n }\n}\n\nmodule.exports = registerDefaultRenderers;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar Set = require('./collections/Set');\n\n/**\n * @class TileSearcher\n * @classdesc\n *\n * A TileSearcher performs searches for visible tiles.\n */\nfunction TileSearcher() {\n // Stack of tiles to be explored.\n this._stack = [];\n\n // Set of already explored tiles.\n this._visited = new Set();\n\n // Tile vertices. Allocated by Tile#vertices on first use.\n this._vertices = null;\n}\n\n/**\n * Performs a search for visible tiles by starting at a given tile and\n * recursively exploring neighbors until no more visible tiles are found.\n *\n * @param {View} view The view used to deem whether a tile is visible.\n * @param {Tile} tile The starting tile.\n * @param {Tile[]} result An array to append the visible tiles to, including the\n * starting tile when visible. Existing array members are preserved.\n * @return {number} The number of visible tiles found.\n */\nTileSearcher.prototype.search = function(view, startingTile, result) {\n var stack = this._stack;\n var visited = this._visited;\n var vertices = this._vertices;\n\n var count = 0;\n\n // Clear internal state.\n this._clear();\n\n stack.push(startingTile);\n\n while (stack.length > 0) {\n var tile = stack.pop();\n\n if (visited.has(tile)) {\n // Skip already visited tile.\n continue;\n }\n\n if (!view.intersects(tile.vertices(vertices))) {\n // Skip non-visible tile.\n continue;\n }\n\n // Mark tile as visited.\n visited.add(tile);\n\n // Add neighbors to the stack of tiles to explore.\n var neighbors = tile.neighbors();\n for (var i = 0; i < neighbors.length; i++) {\n stack.push(neighbors[i]);\n }\n\n // Add to result.\n result.push(tile);\n\n count++;\n }\n\n // Reuse the vertices array in future searches.\n this._vertices = vertices;\n\n // Clear internal state.\n this._clear();\n\n return count;\n};\n\nTileSearcher.prototype._clear = function() {\n this._stack.length = 0;\n this._visited.clear();\n};\n\nmodule.exports = TileSearcher;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar mod = require('../util/mod');\n\nvar defaultCapacity = 64;\n\n// A set data structure for elements implementing hash() and equals().\n// The capacity, if given, is just a hint; the set is allowed to exceed it, but\n// performance may suffer.\nfunction Set(capacity) {\n if (capacity != null &&\n (!isFinite(capacity) || Math.floor(capacity) !== capacity || capacity < 1)) {\n throw new Error('Set: invalid capacity');\n }\n this._capacity = this._capacity || defaultCapacity;\n\n this._buckets = [];\n for (var i = 0; i < this._capacity; i++) {\n this._buckets.push([]);\n }\n this._size = 0;\n}\n\n// Adds an element, replacing an existing element.\n// Returns the replaced element, or null if no element was replaced.\nSet.prototype.add = function(element) {\n var h = mod(element.hash(), this._capacity);\n var bucket = this._buckets[h];\n for (var i = 0; i < bucket.length; i++) {\n var existingElement = bucket[i];\n if (element.equals(existingElement)) {\n bucket[i] = element;\n return existingElement;\n }\n }\n bucket.push(element);\n this._size++;\n return null;\n};\n\n// Removes an element.\n// Returns the removed element, or null if the element was not found.\nSet.prototype.remove = function(element) {\n var h = mod(element.hash(), this._capacity);\n var bucket = this._buckets[h];\n for (var i = 0; i < bucket.length; i++) {\n var existingElement = bucket[i];\n if (element.equals(existingElement)) {\n // Splice manually to avoid Array#splice return value allocation.\n for (var j = i; j < bucket.length - 1; j++) {\n bucket[j] = bucket[j+1];\n }\n bucket.length = bucket.length - 1;\n this._size--;\n return existingElement;\n }\n }\n return null;\n};\n\n// Returns whether an element is in the set.\nSet.prototype.has = function(element) {\n var h = mod(element.hash(), this._capacity);\n var bucket = this._buckets[h];\n for (var i = 0; i < bucket.length; i++) {\n var existingElement = bucket[i];\n if (element.equals(existingElement)) {\n return true;\n }\n }\n return false;\n};\n\n// Returns the number of elements in the set.\nSet.prototype.size = function() {\n return this._size;\n};\n\n// Removes all elements from the set.\nSet.prototype.clear = function() {\n for (var i = 0; i < this._capacity; i++) {\n this._buckets[i].length = 0;\n }\n this._size = 0;\n};\n\n// Calls fn(element) for each element in the set, in an unspecified order.\n// Returns the number of times fn was called.\n// The result is unspecified if the set is mutated during iteration.\nSet.prototype.forEach = function(fn) {\n var count = 0;\n for (var i = 0; i < this._capacity; i++) {\n var bucket = this._buckets[i];\n for (var j = 0; j < bucket.length; j++) {\n fn(bucket[j]);\n count += 1;\n }\n }\n return count;\n};\n\nmodule.exports = Set;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar mod = require('../util/mod');\n\n// An LruMap holds up to a maximum number of key-value pairs, ordered by their\n// time of insertion. When the addition of a key-value pair would cause the\n// capacity to be exceeded, the oldest key-value pair in the set is evicted.\n// As a special case, an LruMap with zero capacity always rejects the insertion\n// of a key-value pair.\n//\n// Keys must implement hash() and equals(). Note that the implementation doesn't\n// currently use hash(), but a future version might.\nfunction LruMap(capacity) {\n if (!isFinite(capacity) || Math.floor(capacity) !== capacity || capacity < 0) {\n throw new Error('LruMap: invalid capacity');\n }\n this._capacity = capacity;\n\n // Keys and values are stored in circular arrays ordered by decreasing age.\n // Start is the index of the oldest key/value and size is the number of valid\n // key/values; the region containing valid keys/values may wrap around.\n this._keys = new Array(this._capacity);\n this._values = new Array(this._capacity);\n this._start = 0;\n this._size = 0;\n}\n\nLruMap.prototype._index = function(i) {\n return mod(this._start + i, this._capacity);\n};\n\n// Returns the value associated to the specified key, or null if not found.\nLruMap.prototype.get = function(key) {\n for (var i = 0; i < this._size; i++) {\n var existingKey = this._keys[this._index(i)];\n if (key.equals(existingKey)) {\n return this._values[this._index(i)];\n }\n }\n return null;\n};\n\n// Associates the specified value with the specified key, possibly replacing the\n// currently associated value. The key-value pair becomes the newest. If the map\n// is at capacity, the oldest key-value pair is removed. Returns the removed\n// key, or null otherwise. If the capacity is zero, does nothing and returns\n// the key.\nLruMap.prototype.set = function(key, value) {\n if (this._capacity === 0) {\n return key;\n }\n this.del(key);\n var evictedKey =\n this._size === this._capacity ? this._keys[this._index(0)] : null;\n this._keys[this._index(this._size)] = key;\n this._values[this._index(this._size)] = value;\n if (this._size < this._capacity) {\n this._size++;\n } else {\n this._start = this._index(1);\n }\n return evictedKey;\n};\n\n// Removes the key-value pair associated with the specified key.\n// Returns the removed value, or null if not found.\nLruMap.prototype.del = function(key) {\n for (var i = 0; i < this._size; i++) {\n if (key.equals(this._keys[this._index(i)])) {\n var existingValue = this._values[this._index(i)];\n for (var j = i; j < this._size - 1; j++) {\n this._keys[this._index(j)] = this._keys[this._index(j + 1)];\n this._values[this._index(j)] = this._values[this._index(j + 1)];\n }\n this._size--;\n return existingValue;\n }\n }\n return null;\n};\n\n// Returns whether there is a value associated with the specified key.\nLruMap.prototype.has = function(key) {\n for (var i = 0; i < this._size; i++) {\n if (key.equals(this._keys[this._index(i)])) {\n return true;\n }\n }\n return false;\n};\n\n// Returns the number of key-value pairs in the map.\nLruMap.prototype.size = function() {\n return this._size;\n};\n\n// Removes all key-value pairs from the map.\nLruMap.prototype.clear = function() {\n this._keys.length = 0;\n this._values.length = 0;\n this._start = 0;\n this._size = 0;\n};\n\n// Calls fn(key, value) for each item in the map, in an unspecified order.\n// Returns the number of times fn was called.\n// The result is unspecified if the map is mutated during iteration.\nLruMap.prototype.forEach = function(fn) {\n var count = 0;\n for (var i = 0; i < this._size; i++) {\n fn(this._keys[this._index(i)], this._values[this._index(i)]);\n count += 1;\n }\n return count;\n};\n\nmodule.exports = LruMap;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n/**\n * Convert fov\n *\n * For example, to convert from hfov to vfov one would call \n * `convert(hfov, width, height)`\n *\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction convert(fov, fromDimension, toDimension) {\n return 2 * Math.atan(toDimension * Math.tan(fov / 2) / fromDimension);\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction htov(fov, width, height) {\n return convert(fov, width, height);\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction htod(fov, width, height) {\n return convert(fov, width, Math.sqrt(width * width + height * height));\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction vtoh(fov, width, height) {\n return convert(fov, height, width);\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction vtod(fov, width, height) {\n return convert(fov, height, Math.sqrt(width * width + height * height));\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction dtoh(fov, width, height) {\n return convert(fov, Math.sqrt(width * width + height * height), width);\n}\n\n/**\n * @param {number} fov\n * @param {number} fromDimension\n * @param {number} toDimension\n * @return {number}\n * @memberof util.convertFov\n */\nfunction dtov(fov, width, height) {\n return convert(fov, Math.sqrt(width * width + height * height), height);\n}\n\n/**\n * @namespace util.convertFov\n */\nmodule.exports = {\n convert: convert,\n htov: htov,\n htod: htod,\n vtoh: vtoh,\n vtod: vtod,\n dtoh: dtoh,\n dtov: dtov\n};\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n/**\n * Compose multiple functions\n *\n * `compose(f, g)` returns `function(x) { return f(g(x)); }`\n *\n * @memberof util\n * @param {Function[]} functions The functions to compose\n * @return {Function}\n */\nfunction compose() {\n var fnList = arguments;\n return function composed(initialArg) {\n var ret = initialArg;\n for (var i = 0; i < fnList.length; i++) {\n var fn = fnList[i];\n ret = fn.call(null, ret);\n }\n return ret;\n };\n}\n\nmodule.exports = compose;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n// Perform a cancelable delay.\n// See util/cancelize.js for an explanation of what cancelables are.\nfunction delay(ms, done) {\n\n // Work around IE8 bug whereby a setTimeout callback may still be called\n // after the corresponding clearTimeout is invoked.\n var timer = null;\n\n function finish() {\n if (timer != null) {\n timer = null;\n done(null);\n }\n }\n\n function cancel() {\n if (timer != null) {\n clearTimeout(timer);\n timer = null;\n done.apply(null, arguments);\n }\n }\n\n timer = setTimeout(finish, ms);\n\n return cancel;\n\n}\n\nmodule.exports = delay;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar Map = require('./collections/Map');\nvar Set = require('./collections/Set');\nvar LruSet = require('./collections/LruSet');\nvar eventEmitter = require('minimal-event-emitter');\nvar defaults = require('./util/defaults');\nvar retry = require('./util/retry');\nvar chain = require('./util/chain');\nvar inherits = require('./util/inherits');\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\nvar debug = typeof MARZIPANODEBUG !== 'undefined' && MARZIPANODEBUG.textureStore;\n\n\n// A Stage informs the TextureStore about the set of visible tiles during a\n// frame by calling startFrame, markTile and endFrame. In a particular frame,\n// TextureStore expects one or more calls to startFrame, followed by zero or\n// more calls to markTile, followed by one or more calls to endFrame. The\n// number of calls to startFrame and endFrame must match. Calls to other\n// TextureStore methods may be freely interleaved with this sequence.\n//\n// At any given time, TextureStore is in one of four states. The START state\n// corresponds to the interval between the first startFrame and the first\n// markTile of a frame. The MARK state corresponds to the interval between the\n// first markTile and the first endFrame. The END state corresponds to the\n// interval between the first and the last endFrame. At any other time, the\n// TextureStore is in the IDLE state.\nvar State = {\n IDLE: 0,\n START: 1,\n MARK: 2,\n END: 3\n};\n\n\nvar defaultOptions = {\n // Maximum number of cached textures for previously visible tiles.\n previouslyVisibleCacheSize: 512\n};\n\n\n// Assign an id to each operation so we can track its state.\n// We actually only need this in debug mode, but the code is less convoluted\n// if we track unconditionally, and the performance hit is minimal anyway.\nvar nextId = 0;\n\n\n// Distinguishes a cancellation from other kinds of errors.\nfunction CancelError() {}\ninherits(CancelError, Error);\n\n\n/**\n * @class TextureStoreItem\n * @classdesc\n *\n * An item saved in a {@link TextureStore}.\n *\n * Clients do not need to instantiate this. It is automatically instantiated by\n * a {@link TextureStore} to manage the lifetime of a stored item: loading,\n * refreshing, unloading and emitting associated events.\n *\n * @param {TextureStore} store The underlying {@link TextureStore}.\n * @param {Tile} tile The underlying tile.\n */\nfunction TextureStoreItem(store, tile) {\n\n var self = this;\n\n var id = nextId++;\n\n self._id = id;\n self._store = store;\n self._tile = tile;\n\n self._asset = null;\n self._texture = null;\n\n self._changeHandler = function() {\n store.emit('textureInvalid', tile);\n };\n\n var source = store.source();\n var stage = store.stage();\n\n var loadAsset = source.loadAsset.bind(source);\n var createTexture = stage.createTexture.bind(stage);\n\n // Retry loading the asset until it succeeds, then create the texture from it.\n // This process may be canceled at any point by calling the destroy() method.\n var fn = chain(retry(loadAsset), createTexture);\n\n store.emit('textureStartLoad', tile);\n if (debug) {\n console.log('loading', id, tile);\n }\n\n self._cancel = fn(stage, tile, function(err, _tile, asset, texture) {\n\n // Make sure we do not call cancel after the operation is complete.\n self._cancel = null;\n\n if (err) {\n // The loading process was interrupted by an error.\n // This could either be because the texture creation failed, or because\n // the operation was canceled before the loading was complete.\n\n // Destroy the asset and texture, if they exist.\n if (asset) {\n asset.destroy();\n }\n if (texture) {\n texture.destroy();\n }\n\n // Emit events.\n if (err instanceof CancelError) {\n store.emit('textureCancel', tile);\n if (debug) {\n console.log('cancel', id, tile);\n }\n } else {\n store.emit('textureError', tile, err);\n if (debug) {\n console.log('error', id, tile);\n }\n }\n\n return;\n }\n\n // Save a local reference to the texture.\n self._texture = texture;\n\n // If the asset is dynamic, save a local reference to it and set up a\n // handler to be called whenever it changes. Otherwise, destroy the asset\n // as we won't be needing it any longer.\n if (asset.isDynamic()) {\n self._asset = asset;\n asset.addEventListener('change', self._changeHandler);\n } else {\n asset.destroy();\n }\n\n // Emit event.\n store.emit('textureLoad', tile);\n if (debug) {\n console.log('load', id, tile);\n }\n });\n\n}\n\n\nTextureStoreItem.prototype.asset = function() {\n return this._asset;\n};\n\n\nTextureStoreItem.prototype.texture = function() {\n return this._texture;\n};\n\n\nTextureStoreItem.prototype.destroy = function() {\n var id = this._id;\n var store = this._store;\n var tile = this._tile;\n var asset = this._asset;\n var texture = this._texture;\n var cancel = this._cancel;\n\n if (cancel) {\n // The texture is still loading, so cancel it.\n cancel(new CancelError('Texture load cancelled'));\n return;\n }\n\n // Destroy asset.\n if (asset) {\n asset.removeEventListener('change', this._changeHandler);\n asset.destroy();\n }\n\n // Destroy texture.\n if (texture) {\n texture.destroy();\n }\n\n // Emit event.\n store.emit('textureUnload', tile);\n if (debug) {\n console.log('unload', id, tile);\n }\n\n clearOwnProperties(this);\n};\n\neventEmitter(TextureStoreItem);\n\n/**\n * Signals that a texture has started to load.\n *\n * This event is followed by either {@link TextureStore#textureLoad},\n * {@link TextureStore#textureError} or {@link TextureStore#textureCancel}.\n *\n * @event TextureStore#textureStartLoad\n * @param {Tile} tile The tile for which the texture has started to load.\n */\n\n/**\n * Signals that a texture has been loaded.\n *\n * @event TextureStore#textureLoad\n * @param {Tile} tile The tile for which the texture was loaded.\n */\n\n/**\n * Signals that a texture has been unloaded.\n *\n * @event TextureStore#textureUnload\n * @param {Tile} tile The tile for which the texture was unloaded.\n */\n\n/**\n * Signals that a texture has been invalidated.\n *\n * This event may be raised for a texture with an underlying dynamic asset. It\n * may only occur while the texture is loaded, i.e., in between\n * {@link TextureStore#textureLoad} and {@link TextureStore#textureUnload}.\n *\n * @event TextureStore#textureInvalid\n * @param {Tile} tile The tile for which the texture was invalidated.\n */\n\n/**\n * Signals that loading a texture has been cancelled.\n *\n * This event may follow {@link TextureStore#textureStartLoad} if the texture\n * becomes unnecessary before it finishes loading.\n *\n * @event TextureStore#textureCancel\n * @param {Tile} tile The tile for which the texture loading was cancelled.\n */\n\n/**\n * Signals that loading a texture has failed.\n *\n * This event may follow {@link TextureStore#textureStartLoad} if the texture\n * fails to load.\n *\n * @event TextureStore#textureError\n * @param {Tile} tile The tile for which the texture loading has failed.\n */\n\n/**\n * @class TextureStore\n * @classdesc\n *\n * A TextureStore maintains a cache of textures used to render a {@link Layer}.\n *\n * A {@link Stage} communicates with the TextureStore through the startFrame(),\n * markTile() and endFrame() methods, which indicate the tiles that are visible\n * in the current frame. Textures for visible tiles are loaded and retained\n * as long as the tiles remain visible. A limited amount of textures whose\n * tiles were previously visible are cached according to an LRU policy. Tiles\n * may be pinned to keep their respective textures cached even when they are\n * invisible; these textures do not count towards the previously visible limit.\n *\n * Multiple layers belonging to the same underlying {@link WebGlStage} may\n * share the same TextureStore. Layers belonging to distinct {@link WebGlStage}\n * instances may not do so due to restrictions on the use of textures across\n * stages.\n *\n * @param {Source} source The underlying source.\n * @param {Stage} stage The underlying stage.\n * @param {Object} opts Options.\n * @param {Number} [opts.previouslyVisibleCacheSize=32] The maximum number of\n * previously visible textures to cache according to an LRU policy.\n */\nfunction TextureStore(source, stage, opts) {\n opts = defaults(opts || {}, defaultOptions);\n\n this._source = source;\n this._stage = stage;\n\n // The current state.\n this._state = State.IDLE;\n\n // The number of startFrame calls yet to be matched by endFrame calls during\n // the current frame.\n this._delimCount = 0;\n\n // The cache proper: map cached tiles to their respective textures/assets.\n this._itemMap = new Map();\n\n // The subset of cached tiles that are currently visible.\n this._visible = new Set();\n\n // The subset of cached tiles that were visible recently, but are not\n // visible right now. Newly inserted tiles replace older ones.\n this._previouslyVisible = new LruSet(opts.previouslyVisibleCacheSize);\n\n // The subset of cached tiles that should never be evicted from the cache.\n // A tile may be pinned more than once; map each tile into a reference count.\n this._pinMap = new Map();\n\n // Temporary variables.\n this._newVisible = new Set();\n this._noLongerVisible = [];\n this._visibleAgain = [];\n this._evicted = [];\n}\n\neventEmitter(TextureStore);\n\n\n/**\n * Destructor.\n */\nTextureStore.prototype.destroy = function() {\n this.clear();\n clearOwnProperties(this);\n};\n\n\n/**\n * Return the underlying {@link Stage}.\n * @return {Stage}\n */\nTextureStore.prototype.stage = function() {\n return this._stage;\n};\n\n\n/**\n * Return the underlying {@link Source}.\n * @return {Source}\n */\nTextureStore.prototype.source = function() {\n return this._source;\n};\n\n\n/**\n * Remove all textures from the TextureStore, including pinned textures.\n */\nTextureStore.prototype.clear = function() {\n var self = this;\n\n // Collect list of tiles to be evicted.\n self._evicted.length = 0;\n self._itemMap.forEach(function(tile) {\n self._evicted.push(tile);\n });\n\n // Evict tiles.\n self._evicted.forEach(function(tile) {\n self._unloadTile(tile);\n });\n\n // Clear all internal state.\n self._itemMap.clear();\n self._visible.clear();\n self._previouslyVisible.clear();\n self._pinMap.clear();\n self._newVisible.clear();\n self._noLongerVisible.length = 0;\n self._visibleAgain.length = 0;\n self._evicted.length = 0;\n};\n\n\n/**\n * Remove all textures in the TextureStore, excluding unpinned textures.\n */\nTextureStore.prototype.clearNotPinned = function() {\n var self = this;\n\n // Collect list of tiles to be evicted.\n self._evicted.length = 0;\n self._itemMap.forEach(function(tile) {\n if (!self._pinMap.has(tile)) {\n self._evicted.push(tile);\n }\n });\n\n // Evict tiles.\n self._evicted.forEach(function(tile) {\n self._unloadTile(tile);\n });\n\n // Clear all caches except the pinned set.\n self._visible.clear();\n self._previouslyVisible.clear();\n\n // Clear temporary variables.\n self._evicted.length = 0;\n};\n\n\n/**\n * Signal the beginning of a frame. Called from {@link Stage}.\n */\nTextureStore.prototype.startFrame = function() {\n // Check that we are in an appropriate state.\n if (this._state !== State.IDLE && this._state !== State.START) {\n throw new Error('TextureStore: startFrame called out of sequence');\n }\n\n // Enter the START state, if not already there.\n this._state = State.START;\n\n // Expect one more endFrame call.\n this._delimCount++;\n};\n\n\n/**\n * Mark a tile as visible within the current frame. Called from {@link Stage}.\n * @param {Tile} tile The tile to mark.\n */\nTextureStore.prototype.markTile = function(tile) {\n // Check that we are in an appropriate state.\n if (this._state !== State.START && this._state !== State.MARK) {\n throw new Error('TextureStore: markTile called out of sequence');\n }\n\n // Enter the MARK state, if not already there.\n this._state = State.MARK;\n\n // Refresh texture for dynamic assets.\n var item = this._itemMap.get(tile);\n var texture = item && item.texture();\n var asset = item && item.asset();\n if (texture && asset) {\n texture.refresh(tile, asset);\n }\n\n // Add tile to the visible set.\n this._newVisible.add(tile);\n};\n\n\n/**\n * Signal the end of a frame. Called from {@link Stage}.\n */\nTextureStore.prototype.endFrame = function() {\n // Check that we are in an appropriate state.\n if (this._state !== State.START && this._state !== State.MARK && this._state !== State.END) {\n throw new Error('TextureStore: endFrame called out of sequence');\n }\n\n // Enter the END state, if not already there.\n this._state = State.END;\n\n // Expect one less call to endFrame.\n this._delimCount--;\n\n // If no further calls are expected, process frame and enter the IDLE state.\n if (!this._delimCount) {\n this._update();\n this._state = State.IDLE;\n }\n};\n\n\nTextureStore.prototype._update = function() {\n var self = this;\n\n // Calculate the set of tiles that used to be visible but no longer are.\n self._noLongerVisible.length = 0;\n self._visible.forEach(function(tile) {\n if (!self._newVisible.has(tile)) {\n self._noLongerVisible.push(tile);\n }\n });\n\n // Calculate the set of tiles that were visible recently and have become\n // visible again.\n self._visibleAgain.length = 0;\n self._newVisible.forEach(function(tile) {\n if (self._previouslyVisible.has(tile)) {\n self._visibleAgain.push(tile);\n }\n });\n\n // Remove tiles that have become visible again from the list of previously\n // visible tiles.\n self._visibleAgain.forEach(function(tile) {\n self._previouslyVisible.remove(tile);\n });\n\n // Cancel loading of tiles that are no longer visible.\n // Move no longer visible tiles with a loaded texture into the previously\n // visible set, and collect the tiles evicted from the latter.\n self._evicted.length = 0;\n self._noLongerVisible.forEach(function(tile) {\n var item = self._itemMap.get(tile);\n var texture = item && item.texture();\n if (texture) {\n var otherTile = self._previouslyVisible.add(tile);\n if (otherTile != null) {\n self._evicted.push(otherTile);\n }\n } else if (item) {\n self._unloadTile(tile);\n }\n });\n\n // Unload evicted tiles, unless they are pinned.\n self._evicted.forEach(function(tile) {\n if (!self._pinMap.has(tile)) {\n self._unloadTile(tile);\n }\n });\n\n // Load visible tiles that are not already in the store.\n // Refresh texture on visible tiles for dynamic assets.\n self._newVisible.forEach(function(tile) {\n var item = self._itemMap.get(tile);\n if (!item) {\n self._loadTile(tile);\n }\n });\n\n // Swap the old visible set with the new one.\n var tmp = self._visible;\n self._visible = self._newVisible;\n self._newVisible = tmp;\n\n // Clear the new visible set.\n self._newVisible.clear();\n\n // Clear temporary variables.\n self._noLongerVisible.length = 0;\n self._visibleAgain.length = 0;\n self._evicted.length = 0;\n};\n\n\nTextureStore.prototype._loadTile = function(tile) {\n if (this._itemMap.has(tile)) {\n throw new Error('TextureStore: loading texture already in cache');\n }\n var item = new TextureStoreItem(this, tile);\n this._itemMap.set(tile, item);\n};\n\n\nTextureStore.prototype._unloadTile = function(tile) {\n var item = this._itemMap.del(tile);\n if (!item) {\n throw new Error('TextureStore: unloading texture not in cache');\n }\n item.destroy();\n};\n\n\nTextureStore.prototype.asset = function(tile) {\n var item = this._itemMap.get(tile);\n if (item) {\n return item.asset();\n }\n return null;\n};\n\n\nTextureStore.prototype.texture = function(tile) {\n var item = this._itemMap.get(tile);\n if (item) {\n return item.texture();\n }\n return null;\n};\n\n\n/**\n * Pin a tile. Textures for pinned tiles are never evicted from the store.\n * Upon pinning, the texture is created if not already present. Pins are\n * reference-counted; a tile may be pinned multiple times and must be unpinned\n * the corresponding number of times. Pinning is useful e.g. to ensure that\n * the lowest-resolution level of an image is always available to fall back\n * onto.\n * @param {Tile} tile the tile to pin\n * @returns {number} the pin reference count.\n */\nTextureStore.prototype.pin = function(tile) {\n // Increment reference count.\n var count = (this._pinMap.get(tile) || 0) + 1;\n this._pinMap.set(tile, count);\n // If the texture for the tile is not present, load it now.\n if (!this._itemMap.has(tile)) {\n this._loadTile(tile);\n }\n return count;\n};\n\n\n/**\n * Unpin a tile. Pins are reference-counted; a tile may be pinned multiple\n * times and must be unpinned the corresponding number of times.\n * @param {Tile} tile the tile to unpin\n * @returns {number} the pin reference count.\n */\nTextureStore.prototype.unpin = function(tile) {\n var count = this._pinMap.get(tile);\n // Consistency check.\n if (!count) {\n throw new Error('TextureStore: unpin when not pinned');\n } else {\n // Decrement reference count.\n count--;\n if (count > 0) {\n this._pinMap.set(tile, count);\n } else {\n this._pinMap.del(tile);\n // If the tile does not belong to either the visible or previously\n // visible sets, evict it from the cache.\n if (!this._visible.has(tile) && !this._previouslyVisible.has(tile)) {\n this._unloadTile(tile);\n }\n }\n }\n return count;\n};\n\n\n/**\n * Return type for {@link TextureStore#query}.\n * @typedef {Object} TileState\n * @property {boolean} visible Whether the tile is in the visible set.\n * @property {boolean} previouslyVisible Whether the tile is in the previously\n * visible set.\n * @property {boolean} hasAsset Whether the asset for the tile is present.\n * @property {boolean} hasTexture Whether the texture for the tile is present.\n * @property {boolean} pinned Whether the tile is in the pinned set.\n * @property {number} pinCount The pin reference count for the tile.\n */\n\n\n/**\n * Return the state of a tile.\n * @param {Tile} tile The tile to query.\n * @return {TileState}\n */\nTextureStore.prototype.query = function(tile) {\n var item = this._itemMap.get(tile);\n var pinCount = this._pinMap.get(tile) || 0;\n return {\n visible: this._visible.has(tile),\n previouslyVisible: this._previouslyVisible.has(tile),\n hasAsset: item != null && item.asset() != null,\n hasTexture: item != null && item.texture() != null,\n pinned: pinCount !== 0,\n pinCount: pinCount\n };\n};\n\n\nmodule.exports = TextureStore;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar noop = require('./noop');\n\n// Return a cancelable function that executes fn in a loop until it returns\n// successfully.\nfunction retry(fn) {\n\n return function retried() {\n\n var args = arguments.length ? Array.prototype.slice.call(arguments, 0, arguments.length - 1) : [];\n var done = arguments.length ? arguments[arguments.length - 1] : noop;\n\n var cfn = null;\n var canceled = false;\n\n function exec() {\n var err = arguments[0];\n if (!err || canceled) {\n done.apply(null, arguments);\n } else {\n cfn = fn.apply(null, args);\n }\n }\n\n args.push(exec);\n exec(true);\n\n return function cancel() {\n canceled = true;\n cfn.apply(null, arguments);\n };\n\n };\n\n}\n\nmodule.exports = retry;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\n\nvar eventEmitter = require('minimal-event-emitter');\nvar extend = require('./util/extend');\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\n/**\n * Signals that the layer has been rendered.\n *\n * @param {boolean} stable Whether all tiles were successfully rendered without\n * missing textures or resorting to fallbacks.\n * @event Layer#renderComplete\n */\n\n/**\n * @class Layer\n * @classdesc\n *\n * A Layer is a combination of {@link Source}, {@link Geometry}, {@link View}\n * and {@link TextureStore} that may be added into a {@link Stage} and rendered\n * with {@link Effects}.\n *\n * @param {Source} source\n * @param {Geometry} geometry\n * @param {View} view\n * @param {TextureStore} textureStore\n * @param {Object} opts\n * @param {Effects} opts.effects\n*/\nfunction Layer(source, geometry, view, textureStore, opts) {\n opts = opts || {};\n\n var self = this;\n\n this._source = source;\n this._geometry = geometry;\n this._view = view;\n this._textureStore = textureStore;\n\n this._effects = opts.effects || {};\n\n this._fixedLevelIndex = null;\n\n this._viewChangeHandler = function() {\n self.emit('viewChange', self.view());\n };\n\n this._view.addEventListener('change', this._viewChangeHandler);\n\n this._textureStoreChangeHandler = function() {\n self.emit('textureStoreChange', self.textureStore());\n };\n\n this._textureStore.addEventListener('textureLoad',\n this._textureStoreChangeHandler);\n this._textureStore.addEventListener('textureError',\n this._textureStoreChangeHandler);\n this._textureStore.addEventListener('textureInvalid',\n this._textureStoreChangeHandler);\n}\n\neventEmitter(Layer);\n\n\n/**\n * Destructor.\n */\nLayer.prototype.destroy = function() {\n this._view.removeEventListener('change', this._viewChangeHandler);\n this._textureStore.removeEventListener('textureLoad',\n this._textureStoreChangeHandler);\n this._textureStore.removeEventListener('textureError',\n this._textureStoreChangeHandler);\n this._textureStore.removeEventListener('textureInvalid',\n this._textureStoreChangeHandler);\n clearOwnProperties(this);\n};\n\n\n/**\n * Returns the underlying {@link Source source}.\n * @return {Source}\n */\nLayer.prototype.source = function() {\n return this._source;\n};\n\n\n/**\n * Returns the underlying {@link Geometry geometry}.\n * @return {Geometry}\n */\nLayer.prototype.geometry = function() {\n return this._geometry;\n};\n\n\n/**\n * Returns the underlying {@link View view}.\n * @return {View}\n */\nLayer.prototype.view = function() {\n return this._view;\n};\n\n\n/**\n * Returns the underlying {@link TextureStore texture store}.\n * @return {TextureStore}\n */\nLayer.prototype.textureStore = function() {\n return this._textureStore;\n};\n\n\n/**\n * Returns the currently set {@link Effects effects}.\n * @return {Effects}\n */\nLayer.prototype.effects = function() {\n return this._effects;\n};\n\n\n/**\n * Sets the {@link Effects effects}.\n * @param {Effects} effects\n */\nLayer.prototype.setEffects = function(effects) {\n this._effects = effects;\n this.emit('effectsChange', this._effects);\n};\n\n\n/**\n * Merges effects into the currently set ones. The merge is non-recursive; for\n * instance, if current effects are `{ rect: { relativeWidth: 0.5 } }`,\n * calling this method with `{ rect: { relativeX: 0.5 }}` will reset\n * `rect.relativeWidth`.\n *\n * @param {Effects} effects\n */\nLayer.prototype.mergeEffects = function(effects) {\n extend(this._effects, effects);\n this.emit('effectsChange', this._effects);\n};\n\n\n/**\n * Returns the fixed level index.\n * @return {(number|null)}\n */\nLayer.prototype.fixedLevel = function() {\n return this._fixedLevelIndex;\n};\n\n\n/**\n * Sets the fixed level index. When set, the corresponding level will be\n * used regardless of the view parameters. Unset with a null argument.\n *\n * @param {(number|null)} levelIndex\n * @throws An error if the level index is out of range.\n */\nLayer.prototype.setFixedLevel = function(levelIndex) {\n if (levelIndex !== this._fixedLevelIndex) {\n if (levelIndex != null && (levelIndex >= this._geometry.levelList.length ||\n levelIndex < 0)) {\n throw new Error(\"Level index out of range: \" + levelIndex);\n }\n this._fixedLevelIndex = levelIndex;\n this.emit('fixedLevelChange', this._fixedLevelIndex);\n }\n};\n\n\nLayer.prototype._selectLevel = function() {\n var level;\n if (this._fixedLevelIndex != null) {\n level = this._geometry.levelList[this._fixedLevelIndex];\n } else {\n level = this._view.selectLevel(this._geometry.selectableLevelList);\n }\n return level;\n};\n\n\nLayer.prototype.visibleTiles = function(result) {\n var level = this._selectLevel();\n return this._geometry.visibleTiles(this._view, level, result);\n};\n\n\n/**\n * Pin a whole level into the texture store.\n * @param {Number} levelIndex\n */\nLayer.prototype.pinLevel = function(levelIndex) {\n var level = this._geometry.levelList[levelIndex];\n var tiles = this._geometry.levelTiles(level);\n for (var i = 0; i < tiles.length; i++) {\n this._textureStore.pin(tiles[i]);\n }\n};\n\n\n/**\n * Unpin a whole level from the texture store.\n * @param {Number} levelIndex\n */\nLayer.prototype.unpinLevel = function(levelIndex) {\n var level = this._geometry.levelList[levelIndex];\n var tiles = this._geometry.levelTiles(level);\n for (var i = 0; i < tiles.length; i++) {\n this._textureStore.unpin(tiles[i]);\n }\n};\n\n\n/**\n * Pin the first level. Equivalent to `pinLevel(0)`.\n */\nLayer.prototype.pinFirstLevel = function() {\n return this.pinLevel(0);\n};\n\n\n/**\n * Unpin the first level. Equivalent to `unpinLevel(0)`.\n */\nLayer.prototype.unpinFirstLevel = function() {\n return this.unpinLevel(0);\n};\n\n\nmodule.exports = Layer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction extend(obj, sourceObj) {\n for (var key in sourceObj) {\n obj[key] = sourceObj[key];\n }\n return obj;\n}\n\nmodule.exports = extend;","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\n/**\n * Signals that {@link Stage#render} is about to be called.\n * @event RenderLoop#beforeRender\n */\n\n/**\n * Signals that {@link Stage#render} has just been called.\n * @event RenderLoop#afterRender\n */\n\n/**\n * @class RenderLoop\n * @classdesc\n *\n * A RenderLoop wraps a {@link Stage} and calls {@link Stage#render} on the next\n * frame whenever it fires {@link Stage#renderInvalid}. It may be started and\n * stopped, and is initially in the stopped state, in which no call to\n * {@link Stage#render} occurs.\n *\n * @listens Stage#renderInvalid\n *\n * @param {Stage} stage\n */\nfunction RenderLoop(stage) {\n\n var self = this;\n\n // The stage wrapped by the loop.\n this._stage = stage;\n\n // Whether the loop is running.\n this._running = false;\n\n // Whether the loop is currently rendering.\n this._rendering = false;\n\n // The current requestAnimationFrame handle.\n this._requestHandle = null;\n\n // The callback passed into requestAnimationFrame.\n this._boundLoop = this._loop.bind(this);\n\n // Handler for renderInvalid events emitted by the stage.\n this._renderInvalidHandler = function() {\n // If we are already rendering, there's no need to schedule a new render\n // on the next frame.\n if (!self._rendering) {\n self.renderOnNextFrame();\n }\n };\n\n // Handle renderInvalid events emitted by the stage.\n this._stage.addEventListener('renderInvalid', this._renderInvalidHandler);\n\n}\n\neventEmitter(RenderLoop);\n\n\n/**\n * Destructor.\n */\nRenderLoop.prototype.destroy = function() {\n this.stop();\n this._stage.removeEventListener('renderInvalid', this._renderInvalidHandler);\n clearOwnProperties(this);\n};\n\n\n/**\n * Returns the underlying stage.\n * @return {Stage}\n */\nRenderLoop.prototype.stage = function() {\n return this._stage;\n};\n\n\n/**\n * Starts the render loop.\n */\nRenderLoop.prototype.start = function() {\n this._running = true;\n this.renderOnNextFrame();\n};\n\n\n/**\n * Stops the render loop.\n */\nRenderLoop.prototype.stop = function() {\n if (this._requestHandle) {\n window.cancelAnimationFrame(this._requestHandle);\n this._requestHandle = null;\n }\n this._running = false;\n};\n\n\n/**\n * Forces the stage to render on the next frame, even if its contents remain\n * valid. Does nothing if the loop is stopped.\n */\nRenderLoop.prototype.renderOnNextFrame = function() {\n if (this._running && !this._requestHandle) {\n this._requestHandle = window.requestAnimationFrame(this._boundLoop);\n }\n};\n\n\nRenderLoop.prototype._loop = function() {\n if (!this._running) {\n throw new Error('Render loop running while in stopped state');\n }\n this._requestHandle = null;\n this._rendering = true;\n this.emit('beforeRender');\n this._rendering = false;\n this._stage.render();\n this.emit('afterRender');\n};\n\n\nmodule.exports = RenderLoop;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Dynamics = require('./Dynamics');\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\n/**\n * @class KeyControlMethod\n * @implements ControlMethod\n * @classdesc\n *\n * Sets the velocity and friction of a single parameter by pressing and\n * unpressing a key.\n *\n * @param {number} keyCode Key which activates the method when pressed\n * @param {string} parameter The parameter to be controlled (e.g. `x`, `y` or `zoom`)\n * @param {number} velocity Velocity at which the parameter changes. Use a\n * negative number for opposite direction\n * @param {number} friction Friction at which the parameter stops\n * @param {Element} [element=document] DOM element where the key events are listened to\n */\nfunction KeyControlMethod(keyCode, parameter, velocity, friction, element) {\n if(!keyCode) {\n throw new Error(\"KeyControlMethod: keyCode must be defined\");\n }\n if(!parameter) {\n throw new Error(\"KeyControlMethod: parameter must be defined\");\n }\n if(!velocity) {\n throw new Error(\"KeyControlMethod: velocity must be defined\");\n }\n if(!friction) {\n throw new Error(\"KeyControlMethod: friction must be defined\");\n }\n\n element = element || document;\n\n this._keyCode = keyCode;\n this._parameter = parameter;\n this._velocity = velocity;\n this._friction = friction;\n this._element = element;\n\n this._keydownHandler = this._handlePress.bind(this);\n this._keyupHandler = this._handleRelease.bind(this);\n this._blurHandler = this._handleBlur.bind(this);\n\n this._element.addEventListener('keydown', this._keydownHandler);\n this._element.addEventListener('keyup', this._keyupHandler);\n window.addEventListener('blur', this._blurHandler);\n\n this._dynamics = new Dynamics();\n this._pressing = false;\n}\neventEmitter(KeyControlMethod);\n\n/**\n * Destructor.\n */\nKeyControlMethod.prototype.destroy = function() {\n this._element.removeEventListener('keydown', this._keydownHandler);\n this._element.removeEventListener('keyup', this._keyupHandler);\n window.removeEventListener('blur', this._blurHandler);\n clearOwnProperties(this);\n};\n\nKeyControlMethod.prototype._handlePress = function(e) {\n if(e.keyCode !== this._keyCode) { return; }\n\n this._pressing = true;\n\n this._dynamics.velocity = this._velocity;\n this._dynamics.friction = 0;\n this.emit('parameterDynamics', this._parameter, this._dynamics);\n this.emit('active');\n};\n\nKeyControlMethod.prototype._handleRelease = function(e) {\n if(e.keyCode !== this._keyCode) { return; }\n\n if(this._pressing) {\n this._dynamics.friction = this._friction;\n this.emit('parameterDynamics', this._parameter, this._dynamics);\n this.emit('inactive');\n }\n\n this._pressing = false;\n};\n\nKeyControlMethod.prototype._handleBlur = function() {\n this._dynamics.velocity = 0;\n this.emit('parameterDynamics', this._parameter, this._dynamics);\n this.emit('inactive');\n\n this._pressing = false;\n};\n\nmodule.exports = KeyControlMethod;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Dynamics = require('./Dynamics');\nvar HammerGestures = require('./HammerGestures');\nvar defaults = require('../util/defaults');\nvar maxFriction = require('./util').maxFriction;\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar defaultOptions = {\n friction: 6,\n maxFrictionTime: 0.3,\n hammerEvent: 'pan'\n};\n\nvar debug = typeof MARZIPANODEBUG !== 'undefined' && MARZIPANODEBUG.controls;\n\n/**\n * @class DragControlMethod\n * @implements ControlMethod\n * @classdesc\n *\n * Controls the view by clicking/tapping and dragging.\n *\n * @param {Element} element Element to listen for events.\n * @param {string} pointerType Which Hammer.js pointer type to use (e.g.\n * `mouse` or `touch`).\n * @param {Object} opts\n * @param {number} opts.friction\n * @param {number} opts.maxFrictionTime\n * @param {'pan'|'pinch'} opts.hammerEvent\n */\nfunction DragControlMethod(element, pointerType, opts) {\n this._element = element;\n\n this._opts = defaults(opts || {}, defaultOptions);\n\n this._startEvent = null;\n this._lastEvent = null;\n\n this._active = false;\n\n this._dynamics = {\n x: new Dynamics(),\n y: new Dynamics()\n };\n\n this._hammer = HammerGestures.get(element, pointerType);\n\n this._hammer.on(\"hammer.input\", this._handleHammerEvent.bind(this));\n\n if (this._opts.hammerEvent != 'pan' && this._opts.hammerEvent != 'pinch') {\n throw new Error(this._opts.hammerEvent + ' is not a hammerEvent managed in DragControlMethod');\n }\n\n this._hammer.on(this._opts.hammerEvent + 'start', this._handleStart.bind(this));\n this._hammer.on(this._opts.hammerEvent + 'move', this._handleMove.bind(this));\n this._hammer.on(this._opts.hammerEvent + 'end', this._handleEnd.bind(this));\n this._hammer.on(this._opts.hammerEvent + 'cancel', this._handleEnd.bind(this));\n}\n\neventEmitter(DragControlMethod);\n\n/**\n * Destructor.\n */\nDragControlMethod.prototype.destroy = function() {\n this._hammer.release();\n clearOwnProperties(this);\n};\n\nDragControlMethod.prototype._handleHammerEvent = function(e) {\n if (e.isFirst) {\n if (debug && this._active) {\n throw new Error('DragControlMethod active detected when already active');\n }\n this._active = true;\n this.emit('active');\n }\n if (e.isFinal) {\n if (debug && !this._active) {\n throw new Error('DragControlMethod inactive detected when already inactive');\n }\n this._active = false;\n this.emit('inactive');\n }\n};\n\nDragControlMethod.prototype._handleStart = function(e) {\n // Prevent this event from dragging other DOM elements, causing\n // unexpected behavior on Chrome.\n e.preventDefault();\n\n this._startEvent = e;\n};\n\n\nDragControlMethod.prototype._handleMove = function(e) {\n // Prevent this event from dragging other DOM elements, causing\n // unexpected behavior on Chrome.\n e.preventDefault();\n\n if (this._startEvent) {\n this._updateDynamicsMove(e);\n this.emit('parameterDynamics', 'axisScaledX', this._dynamics.x);\n this.emit('parameterDynamics', 'axisScaledY', this._dynamics.y);\n }\n};\n\n\nDragControlMethod.prototype._handleEnd = function(e) {\n // Prevent this event from dragging other DOM elements, causing\n // unexpected behavior on Chrome.\n e.preventDefault();\n\n if (this._startEvent) {\n this._updateDynamicsRelease(e);\n this.emit('parameterDynamics', 'axisScaledX', this._dynamics.x);\n this.emit('parameterDynamics', 'axisScaledY', this._dynamics.y);\n }\n\n this._startEvent = false;\n this._lastEvent = false;\n};\n\n\nDragControlMethod.prototype._updateDynamicsMove = function(e) {\n var x = e.deltaX;\n var y = e.deltaY;\n\n // When a second finger touches the screen, panstart sometimes has a large\n // offset at start; subtract that offset to prevent a sudden jump.\n var eventToSubtract = this._lastEvent || this._startEvent;\n\n if (eventToSubtract) {\n x -= eventToSubtract.deltaX;\n y -= eventToSubtract.deltaY;\n }\n\n var elementRect = this._element.getBoundingClientRect();\n var width = elementRect.right - elementRect.left;\n var height = elementRect.bottom - elementRect.top;\n\n x /= width;\n y /= height;\n\n this._dynamics.x.reset();\n this._dynamics.y.reset();\n this._dynamics.x.offset = -x;\n this._dynamics.y.offset = -y;\n\n this._lastEvent = e;\n};\n\n\nvar tmpReleaseFriction = [ null, null ];\nDragControlMethod.prototype._updateDynamicsRelease = function(e) {\n var elementRect = this._element.getBoundingClientRect();\n var width = elementRect.right - elementRect.left;\n var height = elementRect.bottom - elementRect.top;\n\n var x = 1000 * e.velocityX / width;\n var y = 1000 * e.velocityY / height;\n\n this._dynamics.x.reset();\n this._dynamics.y.reset();\n this._dynamics.x.velocity = x;\n this._dynamics.y.velocity = y;\n\n maxFriction(this._opts.friction, this._dynamics.x.velocity, this._dynamics.y.velocity, this._opts.maxFrictionTime, tmpReleaseFriction);\n this._dynamics.x.friction = tmpReleaseFriction[0];\n this._dynamics.y.friction = tmpReleaseFriction[1];\n};\n\n\nmodule.exports = DragControlMethod;\n","/*! Hammer.JS - v2.0.4 - 2014-09-28\r\n * http://hammerjs.github.io/\r\n *\r\n * Copyright (c) 2014 Jorik Tangelder;\r\n * Licensed under the MIT license */\r\n(function(window, document, exportName, undefined) {\r\n 'use strict';\r\n\r\nvar VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o'];\r\nvar TEST_ELEMENT = document.createElement('div');\r\n\r\nvar TYPE_FUNCTION = 'function';\r\n\r\nvar round = Math.round;\r\nvar abs = Math.abs;\r\nvar now = Date.now;\r\n\r\n/**\r\n * set a timeout with a given scope\r\n * @param {Function} fn\r\n * @param {Number} timeout\r\n * @param {Object} context\r\n * @returns {number}\r\n */\r\nfunction setTimeoutContext(fn, timeout, context) {\r\n return setTimeout(bindFn(fn, context), timeout);\r\n}\r\n\r\n/**\r\n * if the argument is an array, we want to execute the fn on each entry\r\n * if it aint an array we don't want to do a thing.\r\n * this is used by all the methods that accept a single and array argument.\r\n * @param {*|Array} arg\r\n * @param {String} fn\r\n * @param {Object} [context]\r\n * @returns {Boolean}\r\n */\r\nfunction invokeArrayArg(arg, fn, context) {\r\n if (Array.isArray(arg)) {\r\n each(arg, context[fn], context);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * walk objects and arrays\r\n * @param {Object} obj\r\n * @param {Function} iterator\r\n * @param {Object} context\r\n */\r\nfunction each(obj, iterator, context) {\r\n var i;\r\n\r\n if (!obj) {\r\n return;\r\n }\r\n\r\n if (obj.forEach) {\r\n obj.forEach(iterator, context);\r\n } else if (obj.length !== undefined) {\r\n i = 0;\r\n while (i < obj.length) {\r\n iterator.call(context, obj[i], i, obj);\r\n i++;\r\n }\r\n } else {\r\n for (i in obj) {\r\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * extend object.\r\n * means that properties in dest will be overwritten by the ones in src.\r\n * @param {Object} dest\r\n * @param {Object} src\r\n * @param {Boolean} [merge]\r\n * @returns {Object} dest\r\n */\r\nfunction extend(dest, src, merge) {\r\n var keys = Object.keys(src);\r\n var i = 0;\r\n while (i < keys.length) {\r\n if (!merge || (merge && dest[keys[i]] === undefined)) {\r\n dest[keys[i]] = src[keys[i]];\r\n }\r\n i++;\r\n }\r\n return dest;\r\n}\r\n\r\n/**\r\n * merge the values from src in the dest.\r\n * means that properties that exist in dest will not be overwritten by src\r\n * @param {Object} dest\r\n * @param {Object} src\r\n * @returns {Object} dest\r\n */\r\nfunction merge(dest, src) {\r\n return extend(dest, src, true);\r\n}\r\n\r\n/**\r\n * simple class inheritance\r\n * @param {Function} child\r\n * @param {Function} base\r\n * @param {Object} [properties]\r\n */\r\nfunction inherit(child, base, properties) {\r\n var baseP = base.prototype,\r\n childP;\r\n\r\n childP = child.prototype = Object.create(baseP);\r\n childP.constructor = child;\r\n childP._super = baseP;\r\n\r\n if (properties) {\r\n extend(childP, properties);\r\n }\r\n}\r\n\r\n/**\r\n * simple function bind\r\n * @param {Function} fn\r\n * @param {Object} context\r\n * @returns {Function}\r\n */\r\nfunction bindFn(fn, context) {\r\n return function boundFn() {\r\n return fn.apply(context, arguments);\r\n };\r\n}\r\n\r\n/**\r\n * let a boolean value also be a function that must return a boolean\r\n * this first item in args will be used as the context\r\n * @param {Boolean|Function} val\r\n * @param {Array} [args]\r\n * @returns {Boolean}\r\n */\r\nfunction boolOrFn(val, args) {\r\n if (typeof val == TYPE_FUNCTION) {\r\n return val.apply(args ? args[0] || undefined : undefined, args);\r\n }\r\n return val;\r\n}\r\n\r\n/**\r\n * use the val2 when val1 is undefined\r\n * @param {*} val1\r\n * @param {*} val2\r\n * @returns {*}\r\n */\r\nfunction ifUndefined(val1, val2) {\r\n return (val1 === undefined) ? val2 : val1;\r\n}\r\n\r\n/**\r\n * addEventListener with multiple events at once\r\n * @param {EventTarget} target\r\n * @param {String} types\r\n * @param {Function} handler\r\n */\r\nfunction addEventListeners(target, types, handler) {\r\n each(splitStr(types), function(type) {\r\n target.addEventListener(type, handler, false);\r\n });\r\n}\r\n\r\n/**\r\n * removeEventListener with multiple events at once\r\n * @param {EventTarget} target\r\n * @param {String} types\r\n * @param {Function} handler\r\n */\r\nfunction removeEventListeners(target, types, handler) {\r\n each(splitStr(types), function(type) {\r\n target.removeEventListener(type, handler, false);\r\n });\r\n}\r\n\r\n/**\r\n * find if a node is in the given parent\r\n * @method hasParent\r\n * @param {HTMLElement} node\r\n * @param {HTMLElement} parent\r\n * @return {Boolean} found\r\n */\r\nfunction hasParent(node, parent) {\r\n while (node) {\r\n if (node == parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * small indexOf wrapper\r\n * @param {String} str\r\n * @param {String} find\r\n * @returns {Boolean} found\r\n */\r\nfunction inStr(str, find) {\r\n return str.indexOf(find) > -1;\r\n}\r\n\r\n/**\r\n * split string on whitespace\r\n * @param {String} str\r\n * @returns {Array} words\r\n */\r\nfunction splitStr(str) {\r\n return str.trim().split(/\\s+/g);\r\n}\r\n\r\n/**\r\n * find if a array contains the object using indexOf or a simple polyFill\r\n * @param {Array} src\r\n * @param {String} find\r\n * @param {String} [findByKey]\r\n * @return {Boolean|Number} false when not found, or the index\r\n */\r\nfunction inArray(src, find, findByKey) {\r\n if (src.indexOf && !findByKey) {\r\n return src.indexOf(find);\r\n } else {\r\n var i = 0;\r\n while (i < src.length) {\r\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\r\n return i;\r\n }\r\n i++;\r\n }\r\n return -1;\r\n }\r\n}\r\n\r\n/**\r\n * convert array-like objects to real arrays\r\n * @param {Object} obj\r\n * @returns {Array}\r\n */\r\nfunction toArray(obj) {\r\n return Array.prototype.slice.call(obj, 0);\r\n}\r\n\r\n/**\r\n * unique array with objects based on a key (like 'id') or just by the array's value\r\n * @param {Array} src [{id:1},{id:2},{id:1}]\r\n * @param {String} [key]\r\n * @param {Boolean} [sort=False]\r\n * @returns {Array} [{id:1},{id:2}]\r\n */\r\nfunction uniqueArray(src, key, sort) {\r\n var results = [];\r\n var values = [];\r\n var i = 0;\r\n\r\n while (i < src.length) {\r\n var val = key ? src[i][key] : src[i];\r\n if (inArray(values, val) < 0) {\r\n results.push(src[i]);\r\n }\r\n values[i] = val;\r\n i++;\r\n }\r\n\r\n if (sort) {\r\n if (!key) {\r\n results = results.sort();\r\n } else {\r\n results = results.sort(function sortUniqueArray(a, b) {\r\n return a[key] > b[key];\r\n });\r\n }\r\n }\r\n\r\n return results;\r\n}\r\n\r\n/**\r\n * get the prefixed property\r\n * @param {Object} obj\r\n * @param {String} property\r\n * @returns {String|Undefined} prefixed\r\n */\r\nfunction prefixed(obj, property) {\r\n var prefix, prop;\r\n var camelProp = property[0].toUpperCase() + property.slice(1);\r\n\r\n var i = 0;\r\n while (i < VENDOR_PREFIXES.length) {\r\n prefix = VENDOR_PREFIXES[i];\r\n prop = (prefix) ? prefix + camelProp : property;\r\n\r\n if (prop in obj) {\r\n return prop;\r\n }\r\n i++;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * get a unique id\r\n * @returns {number} uniqueId\r\n */\r\nvar _uniqueId = 1;\r\nfunction uniqueId() {\r\n return _uniqueId++;\r\n}\r\n\r\n/**\r\n * get the window object of an element\r\n * @param {HTMLElement} element\r\n * @returns {DocumentView|Window}\r\n */\r\nfunction getWindowForElement(element) {\r\n var doc = element.ownerDocument;\r\n return (doc.defaultView || doc.parentWindow);\r\n}\r\n\r\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\r\n\r\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\r\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\r\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\r\n\r\nvar INPUT_TYPE_TOUCH = 'touch';\r\nvar INPUT_TYPE_PEN = 'pen';\r\nvar INPUT_TYPE_MOUSE = 'mouse';\r\nvar INPUT_TYPE_KINECT = 'kinect';\r\n\r\nvar COMPUTE_INTERVAL = 25;\r\n\r\nvar INPUT_START = 1;\r\nvar INPUT_MOVE = 2;\r\nvar INPUT_END = 4;\r\nvar INPUT_CANCEL = 8;\r\n\r\nvar DIRECTION_NONE = 1;\r\nvar DIRECTION_LEFT = 2;\r\nvar DIRECTION_RIGHT = 4;\r\nvar DIRECTION_UP = 8;\r\nvar DIRECTION_DOWN = 16;\r\n\r\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\r\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\r\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\r\n\r\nvar PROPS_XY = ['x', 'y'];\r\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\r\n\r\n/**\r\n * create new input type manager\r\n * @param {Manager} manager\r\n * @param {Function} callback\r\n * @returns {Input}\r\n * @constructor\r\n */\r\nfunction Input(manager, callback) {\r\n var self = this;\r\n this.manager = manager;\r\n this.callback = callback;\r\n this.element = manager.element;\r\n this.target = manager.options.inputTarget;\r\n\r\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\r\n // so when disabled the input events are completely bypassed.\r\n this.domHandler = function(ev) {\r\n if (boolOrFn(manager.options.enable, [manager])) {\r\n self.handler(ev);\r\n }\r\n };\r\n\r\n this.init();\r\n\r\n}\r\n\r\nInput.prototype = {\r\n /**\r\n * should handle the inputEvent data and trigger the callback\r\n * @virtual\r\n */\r\n handler: function() { },\r\n\r\n /**\r\n * bind the events\r\n */\r\n init: function() {\r\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\r\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\r\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\r\n },\r\n\r\n /**\r\n * unbind the events\r\n */\r\n destroy: function() {\r\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\r\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\r\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\r\n }\r\n};\r\n\r\n/**\r\n * create new input type manager\r\n * called by the Manager constructor\r\n * @param {Hammer} manager\r\n * @returns {Input}\r\n */\r\nfunction createInputInstance(manager) {\r\n var Type;\r\n var inputClass = manager.options.inputClass;\r\n\r\n if (inputClass) {\r\n Type = inputClass;\r\n } else if (SUPPORT_POINTER_EVENTS) {\r\n Type = PointerEventInput;\r\n } else if (SUPPORT_ONLY_TOUCH) {\r\n Type = TouchInput;\r\n } else if (!SUPPORT_TOUCH) {\r\n Type = MouseInput;\r\n } else {\r\n Type = TouchMouseInput;\r\n }\r\n return new (Type)(manager, inputHandler);\r\n}\r\n\r\n/**\r\n * handle input events\r\n * @param {Manager} manager\r\n * @param {String} eventType\r\n * @param {Object} input\r\n */\r\nfunction inputHandler(manager, eventType, input) {\r\n var pointersLen = input.pointers.length;\r\n var changedPointersLen = input.changedPointers.length;\r\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\r\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\r\n\r\n input.isFirst = !!isFirst;\r\n input.isFinal = !!isFinal;\r\n\r\n if (isFirst) {\r\n manager.session = {};\r\n }\r\n\r\n // source event is the normalized value of the domEvents\r\n // like 'touchstart, mouseup, pointerdown'\r\n input.eventType = eventType;\r\n\r\n // compute scale, rotation etc\r\n computeInputData(manager, input);\r\n\r\n // emit secret event\r\n manager.emit('hammer.input', input);\r\n\r\n manager.recognize(input);\r\n manager.session.prevInput = input;\r\n}\r\n\r\n/**\r\n * extend the data with some usable properties like scale, rotate, velocity etc\r\n * @param {Object} manager\r\n * @param {Object} input\r\n */\r\nfunction computeInputData(manager, input) {\r\n var session = manager.session;\r\n var pointers = input.pointers;\r\n var pointersLength = pointers.length;\r\n\r\n // store the first input to calculate the distance and direction\r\n if (!session.firstInput) {\r\n session.firstInput = simpleCloneInputData(input);\r\n }\r\n\r\n // to compute scale and rotation we need to store the multiple touches\r\n if (pointersLength > 1 && !session.firstMultiple) {\r\n session.firstMultiple = simpleCloneInputData(input);\r\n } else if (pointersLength === 1) {\r\n session.firstMultiple = false;\r\n }\r\n\r\n var firstInput = session.firstInput;\r\n var firstMultiple = session.firstMultiple;\r\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\r\n\r\n var center = input.center = getCenter(pointers);\r\n input.timeStamp = now();\r\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\r\n\r\n input.angle = getAngle(offsetCenter, center);\r\n input.distance = getDistance(offsetCenter, center);\r\n\r\n computeDeltaXY(session, input);\r\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\r\n\r\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\r\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\r\n\r\n computeIntervalInputData(session, input);\r\n\r\n // find the correct target\r\n var target = manager.element;\r\n if (hasParent(input.srcEvent.target, target)) {\r\n target = input.srcEvent.target;\r\n }\r\n input.target = target;\r\n}\r\n\r\nfunction computeDeltaXY(session, input) {\r\n var center = input.center;\r\n var offset = session.offsetDelta || {};\r\n var prevDelta = session.prevDelta || {};\r\n var prevInput = session.prevInput || {};\r\n\r\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\r\n prevDelta = session.prevDelta = {\r\n x: prevInput.deltaX || 0,\r\n y: prevInput.deltaY || 0\r\n };\r\n\r\n offset = session.offsetDelta = {\r\n x: center.x,\r\n y: center.y\r\n };\r\n }\r\n\r\n input.deltaX = prevDelta.x + (center.x - offset.x);\r\n input.deltaY = prevDelta.y + (center.y - offset.y);\r\n}\r\n\r\n/**\r\n * velocity is calculated every x ms\r\n * @param {Object} session\r\n * @param {Object} input\r\n */\r\nfunction computeIntervalInputData(session, input) {\r\n var last = session.lastInterval || input,\r\n deltaTime = input.timeStamp - last.timeStamp,\r\n velocity, velocityX, velocityY, direction;\r\n\r\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\r\n var deltaX = last.deltaX - input.deltaX;\r\n var deltaY = last.deltaY - input.deltaY;\r\n\r\n var v = getVelocity(deltaTime, deltaX, deltaY);\r\n velocityX = v.x;\r\n velocityY = v.y;\r\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\r\n direction = getDirection(deltaX, deltaY);\r\n\r\n session.lastInterval = input;\r\n } else {\r\n // use latest velocity info if it doesn't overtake a minimum period\r\n velocity = last.velocity;\r\n velocityX = last.velocityX;\r\n velocityY = last.velocityY;\r\n direction = last.direction;\r\n }\r\n\r\n input.velocity = velocity;\r\n input.velocityX = velocityX;\r\n input.velocityY = velocityY;\r\n input.direction = direction;\r\n}\r\n\r\n/**\r\n * create a simple clone from the input used for storage of firstInput and firstMultiple\r\n * @param {Object} input\r\n * @returns {Object} clonedInputData\r\n */\r\nfunction simpleCloneInputData(input) {\r\n // make a simple copy of the pointers because we will get a reference if we don't\r\n // we only need clientXY for the calculations\r\n var pointers = [];\r\n var i = 0;\r\n while (i < input.pointers.length) {\r\n pointers[i] = {\r\n clientX: round(input.pointers[i].clientX),\r\n clientY: round(input.pointers[i].clientY)\r\n };\r\n i++;\r\n }\r\n\r\n return {\r\n timeStamp: now(),\r\n pointers: pointers,\r\n center: getCenter(pointers),\r\n deltaX: input.deltaX,\r\n deltaY: input.deltaY\r\n };\r\n}\r\n\r\n/**\r\n * get the center of all the pointers\r\n * @param {Array} pointers\r\n * @return {Object} center contains `x` and `y` properties\r\n */\r\nfunction getCenter(pointers) {\r\n var pointersLength = pointers.length;\r\n\r\n // no need to loop when only one touch\r\n if (pointersLength === 1) {\r\n return {\r\n x: round(pointers[0].clientX),\r\n y: round(pointers[0].clientY)\r\n };\r\n }\r\n\r\n var x = 0, y = 0, i = 0;\r\n while (i < pointersLength) {\r\n x += pointers[i].clientX;\r\n y += pointers[i].clientY;\r\n i++;\r\n }\r\n\r\n return {\r\n x: round(x / pointersLength),\r\n y: round(y / pointersLength)\r\n };\r\n}\r\n\r\n/**\r\n * calculate the velocity between two points. unit is in px per ms.\r\n * @param {Number} deltaTime\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @return {Object} velocity `x` and `y`\r\n */\r\nfunction getVelocity(deltaTime, x, y) {\r\n return {\r\n x: x / deltaTime || 0,\r\n y: y / deltaTime || 0\r\n };\r\n}\r\n\r\n/**\r\n * get the direction between two points\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @return {Number} direction\r\n */\r\nfunction getDirection(x, y) {\r\n if (x === y) {\r\n return DIRECTION_NONE;\r\n }\r\n\r\n if (abs(x) >= abs(y)) {\r\n return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\r\n }\r\n return y > 0 ? DIRECTION_UP : DIRECTION_DOWN;\r\n}\r\n\r\n/**\r\n * calculate the absolute distance between two points\r\n * @param {Object} p1 {x, y}\r\n * @param {Object} p2 {x, y}\r\n * @param {Array} [props] containing x and y keys\r\n * @return {Number} distance\r\n */\r\nfunction getDistance(p1, p2, props) {\r\n if (!props) {\r\n props = PROPS_XY;\r\n }\r\n var x = p2[props[0]] - p1[props[0]],\r\n y = p2[props[1]] - p1[props[1]];\r\n\r\n return Math.sqrt((x * x) + (y * y));\r\n}\r\n\r\n/**\r\n * calculate the angle between two coordinates\r\n * @param {Object} p1\r\n * @param {Object} p2\r\n * @param {Array} [props] containing x and y keys\r\n * @return {Number} angle\r\n */\r\nfunction getAngle(p1, p2, props) {\r\n if (!props) {\r\n props = PROPS_XY;\r\n }\r\n var x = p2[props[0]] - p1[props[0]],\r\n y = p2[props[1]] - p1[props[1]];\r\n return Math.atan2(y, x) * 180 / Math.PI;\r\n}\r\n\r\n/**\r\n * calculate the rotation degrees between two pointersets\r\n * @param {Array} start array of pointers\r\n * @param {Array} end array of pointers\r\n * @return {Number} rotation\r\n */\r\nfunction getRotation(start, end) {\r\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY);\r\n}\r\n\r\n/**\r\n * calculate the scale factor between two pointersets\r\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\r\n * @param {Array} start array of pointers\r\n * @param {Array} end array of pointers\r\n * @return {Number} scale\r\n */\r\nfunction getScale(start, end) {\r\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\r\n}\r\n\r\nvar MOUSE_INPUT_MAP = {\r\n mousedown: INPUT_START,\r\n mousemove: INPUT_MOVE,\r\n mouseup: INPUT_END\r\n};\r\n\r\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\r\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\r\n\r\n/**\r\n * Mouse events input\r\n * @constructor\r\n * @extends Input\r\n */\r\nfunction MouseInput() {\r\n this.evEl = MOUSE_ELEMENT_EVENTS;\r\n this.evWin = MOUSE_WINDOW_EVENTS;\r\n\r\n this.allow = true; // used by Input.TouchMouse to disable mouse events\r\n this.pressed = false; // mousedown state\r\n\r\n Input.apply(this, arguments);\r\n}\r\n\r\ninherit(MouseInput, Input, {\r\n /**\r\n * handle mouse events\r\n * @param {Object} ev\r\n */\r\n handler: function MEhandler(ev) {\r\n var eventType = MOUSE_INPUT_MAP[ev.type];\r\n\r\n // on start we want to have the left mouse button down\r\n if (eventType & INPUT_START && ev.button === 0) {\r\n this.pressed = true;\r\n }\r\n\r\n if (eventType & INPUT_MOVE && ev.which !== 1) {\r\n eventType = INPUT_END;\r\n }\r\n\r\n // mouse must be down, and mouse events are allowed (see the TouchMouse input)\r\n if (!this.pressed || !this.allow) {\r\n return;\r\n }\r\n\r\n if (eventType & INPUT_END) {\r\n this.pressed = false;\r\n }\r\n\r\n this.callback(this.manager, eventType, {\r\n pointers: [ev],\r\n changedPointers: [ev],\r\n pointerType: INPUT_TYPE_MOUSE,\r\n srcEvent: ev\r\n });\r\n }\r\n});\r\n\r\nvar POINTER_INPUT_MAP = {\r\n pointerdown: INPUT_START,\r\n pointermove: INPUT_MOVE,\r\n pointerup: INPUT_END,\r\n pointercancel: INPUT_CANCEL,\r\n pointerout: INPUT_CANCEL\r\n};\r\n\r\n// in IE10 the pointer types is defined as an enum\r\nvar IE10_POINTER_TYPE_ENUM = {\r\n 2: INPUT_TYPE_TOUCH,\r\n 3: INPUT_TYPE_PEN,\r\n 4: INPUT_TYPE_MOUSE,\r\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\r\n};\r\n\r\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\r\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\r\n\r\n// IE10 has prefixed support, and case-sensitive\r\nif (window.MSPointerEvent) {\r\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\r\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\r\n}\r\n\r\n/**\r\n * Pointer events input\r\n * @constructor\r\n * @extends Input\r\n */\r\nfunction PointerEventInput() {\r\n this.evEl = POINTER_ELEMENT_EVENTS;\r\n this.evWin = POINTER_WINDOW_EVENTS;\r\n\r\n Input.apply(this, arguments);\r\n\r\n this.store = (this.manager.session.pointerEvents = []);\r\n}\r\n\r\ninherit(PointerEventInput, Input, {\r\n /**\r\n * handle mouse events\r\n * @param {Object} ev\r\n */\r\n handler: function PEhandler(ev) {\r\n var store = this.store;\r\n var removePointer = false;\r\n\r\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\r\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\r\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\r\n\r\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\r\n\r\n // get index of the event in the store\r\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\r\n\r\n // start and mouse must be down\r\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\r\n if (storeIndex < 0) {\r\n store.push(ev);\r\n storeIndex = store.length - 1;\r\n }\r\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\r\n removePointer = true;\r\n }\r\n\r\n // it not found, so the pointer hasn't been down (so it's probably a hover)\r\n if (storeIndex < 0) {\r\n return;\r\n }\r\n\r\n // update the event in the store\r\n store[storeIndex] = ev;\r\n\r\n this.callback(this.manager, eventType, {\r\n pointers: store,\r\n changedPointers: [ev],\r\n pointerType: pointerType,\r\n srcEvent: ev\r\n });\r\n\r\n if (removePointer) {\r\n // remove from the store\r\n store.splice(storeIndex, 1);\r\n }\r\n }\r\n});\r\n\r\nvar SINGLE_TOUCH_INPUT_MAP = {\r\n touchstart: INPUT_START,\r\n touchmove: INPUT_MOVE,\r\n touchend: INPUT_END,\r\n touchcancel: INPUT_CANCEL\r\n};\r\n\r\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\r\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\r\n\r\n/**\r\n * Touch events input\r\n * @constructor\r\n * @extends Input\r\n */\r\nfunction SingleTouchInput() {\r\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\r\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\r\n this.started = false;\r\n\r\n Input.apply(this, arguments);\r\n}\r\n\r\ninherit(SingleTouchInput, Input, {\r\n handler: function TEhandler(ev) {\r\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\r\n\r\n // should we handle the touch events?\r\n if (type === INPUT_START) {\r\n this.started = true;\r\n }\r\n\r\n if (!this.started) {\r\n return;\r\n }\r\n\r\n var touches = normalizeSingleTouches.call(this, ev, type);\r\n\r\n // when done, reset the started state\r\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\r\n this.started = false;\r\n }\r\n\r\n this.callback(this.manager, type, {\r\n pointers: touches[0],\r\n changedPointers: touches[1],\r\n pointerType: INPUT_TYPE_TOUCH,\r\n srcEvent: ev\r\n });\r\n }\r\n});\r\n\r\n/**\r\n * @this {TouchInput}\r\n * @param {Object} ev\r\n * @param {Number} type flag\r\n * @returns {undefined|Array} [all, changed]\r\n */\r\nfunction normalizeSingleTouches(ev, type) {\r\n var all = toArray(ev.touches);\r\n var changed = toArray(ev.changedTouches);\r\n\r\n if (type & (INPUT_END | INPUT_CANCEL)) {\r\n all = uniqueArray(all.concat(changed), 'identifier', true);\r\n }\r\n\r\n return [all, changed];\r\n}\r\n\r\nvar TOUCH_INPUT_MAP = {\r\n touchstart: INPUT_START,\r\n touchmove: INPUT_MOVE,\r\n touchend: INPUT_END,\r\n touchcancel: INPUT_CANCEL\r\n};\r\n\r\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\r\n\r\n/**\r\n * Multi-user touch events input\r\n * @constructor\r\n * @extends Input\r\n */\r\nfunction TouchInput() {\r\n this.evTarget = TOUCH_TARGET_EVENTS;\r\n this.targetIds = {};\r\n\r\n Input.apply(this, arguments);\r\n}\r\n\r\ninherit(TouchInput, Input, {\r\n handler: function MTEhandler(ev) {\r\n var type = TOUCH_INPUT_MAP[ev.type];\r\n var touches = getTouches.call(this, ev, type);\r\n if (!touches) {\r\n return;\r\n }\r\n\r\n this.callback(this.manager, type, {\r\n pointers: touches[0],\r\n changedPointers: touches[1],\r\n pointerType: INPUT_TYPE_TOUCH,\r\n srcEvent: ev\r\n });\r\n }\r\n});\r\n\r\n/**\r\n * @this {TouchInput}\r\n * @param {Object} ev\r\n * @param {Number} type flag\r\n * @returns {undefined|Array} [all, changed]\r\n */\r\nfunction getTouches(ev, type) {\r\n var allTouches = toArray(ev.touches);\r\n var targetIds = this.targetIds;\r\n\r\n // when there is only one touch, the process can be simplified\r\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\r\n targetIds[allTouches[0].identifier] = true;\r\n return [allTouches, allTouches];\r\n }\r\n\r\n var i,\r\n targetTouches,\r\n changedTouches = toArray(ev.changedTouches),\r\n changedTargetTouches = [],\r\n target = this.target;\r\n\r\n // get target touches from touches\r\n targetTouches = allTouches.filter(function(touch) {\r\n return hasParent(touch.target, target);\r\n });\r\n\r\n // collect touches\r\n if (type === INPUT_START) {\r\n i = 0;\r\n while (i < targetTouches.length) {\r\n targetIds[targetTouches[i].identifier] = true;\r\n i++;\r\n }\r\n }\r\n\r\n // filter changed touches to only contain touches that exist in the collected target ids\r\n i = 0;\r\n while (i < changedTouches.length) {\r\n if (targetIds[changedTouches[i].identifier]) {\r\n changedTargetTouches.push(changedTouches[i]);\r\n }\r\n\r\n // cleanup removed touches\r\n if (type & (INPUT_END | INPUT_CANCEL)) {\r\n delete targetIds[changedTouches[i].identifier];\r\n }\r\n i++;\r\n }\r\n\r\n if (!changedTargetTouches.length) {\r\n return;\r\n }\r\n\r\n return [\r\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\r\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\r\n changedTargetTouches\r\n ];\r\n}\r\n\r\n/**\r\n * Combined touch and mouse input\r\n *\r\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\r\n * This because touch devices also emit mouse events while doing a touch.\r\n *\r\n * @constructor\r\n * @extends Input\r\n */\r\nfunction TouchMouseInput() {\r\n Input.apply(this, arguments);\r\n\r\n var handler = bindFn(this.handler, this);\r\n this.touch = new TouchInput(this.manager, handler);\r\n this.mouse = new MouseInput(this.manager, handler);\r\n}\r\n\r\ninherit(TouchMouseInput, Input, {\r\n /**\r\n * handle mouse and touch events\r\n * @param {Hammer} manager\r\n * @param {String} inputEvent\r\n * @param {Object} inputData\r\n */\r\n handler: function TMEhandler(manager, inputEvent, inputData) {\r\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\r\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\r\n\r\n // when we're in a touch event, so block all upcoming mouse events\r\n // most mobile browser also emit mouseevents, right after touchstart\r\n if (isTouch) {\r\n this.mouse.allow = false;\r\n } else if (isMouse && !this.mouse.allow) {\r\n return;\r\n }\r\n\r\n // reset the allowMouse when we're done\r\n if (inputEvent & (INPUT_END | INPUT_CANCEL)) {\r\n this.mouse.allow = true;\r\n }\r\n\r\n this.callback(manager, inputEvent, inputData);\r\n },\r\n\r\n /**\r\n * remove the event listeners\r\n */\r\n destroy: function destroy() {\r\n this.touch.destroy();\r\n this.mouse.destroy();\r\n }\r\n});\r\n\r\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\r\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\r\n\r\n// magical touchAction value\r\nvar TOUCH_ACTION_COMPUTE = 'compute';\r\nvar TOUCH_ACTION_AUTO = 'auto';\r\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\r\nvar TOUCH_ACTION_NONE = 'none';\r\nvar TOUCH_ACTION_PAN_X = 'pan-x';\r\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\r\n\r\n/**\r\n * Touch Action\r\n * sets the touchAction property or uses the js alternative\r\n * @param {Manager} manager\r\n * @param {String} value\r\n * @constructor\r\n */\r\nfunction TouchAction(manager, value) {\r\n this.manager = manager;\r\n this.set(value);\r\n}\r\n\r\nTouchAction.prototype = {\r\n /**\r\n * set the touchAction value on the element or enable the polyfill\r\n * @param {String} value\r\n */\r\n set: function(value) {\r\n // find out the touch-action by the event handlers\r\n if (value == TOUCH_ACTION_COMPUTE) {\r\n value = this.compute();\r\n }\r\n\r\n if (NATIVE_TOUCH_ACTION) {\r\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\r\n }\r\n this.actions = value.toLowerCase().trim();\r\n },\r\n\r\n /**\r\n * just re-set the touchAction value\r\n */\r\n update: function() {\r\n this.set(this.manager.options.touchAction);\r\n },\r\n\r\n /**\r\n * compute the value for the touchAction property based on the recognizer's settings\r\n * @returns {String} value\r\n */\r\n compute: function() {\r\n var actions = [];\r\n each(this.manager.recognizers, function(recognizer) {\r\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\r\n actions = actions.concat(recognizer.getTouchAction());\r\n }\r\n });\r\n return cleanTouchActions(actions.join(' '));\r\n },\r\n\r\n /**\r\n * this method is called on each input cycle and provides the preventing of the browser behavior\r\n * @param {Object} input\r\n */\r\n preventDefaults: function(input) {\r\n // not needed with native support for the touchAction property\r\n if (NATIVE_TOUCH_ACTION) {\r\n return;\r\n }\r\n\r\n var srcEvent = input.srcEvent;\r\n var direction = input.offsetDirection;\r\n\r\n // if the touch action did prevented once this session\r\n if (this.manager.session.prevented) {\r\n srcEvent.preventDefault();\r\n return;\r\n }\r\n\r\n var actions = this.actions;\r\n var hasNone = inStr(actions, TOUCH_ACTION_NONE);\r\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\r\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\r\n\r\n if (hasNone ||\r\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\r\n (hasPanX && direction & DIRECTION_VERTICAL)) {\r\n return this.preventSrc(srcEvent);\r\n }\r\n },\r\n\r\n /**\r\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\r\n * @param {Object} srcEvent\r\n */\r\n preventSrc: function(srcEvent) {\r\n this.manager.session.prevented = true;\r\n srcEvent.preventDefault();\r\n }\r\n};\r\n\r\n/**\r\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\r\n * @param {String} actions\r\n * @returns {*}\r\n */\r\nfunction cleanTouchActions(actions) {\r\n // none\r\n if (inStr(actions, TOUCH_ACTION_NONE)) {\r\n return TOUCH_ACTION_NONE;\r\n }\r\n\r\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\r\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\r\n\r\n // pan-x and pan-y can be combined\r\n if (hasPanX && hasPanY) {\r\n return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y;\r\n }\r\n\r\n // pan-x OR pan-y\r\n if (hasPanX || hasPanY) {\r\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\r\n }\r\n\r\n // manipulation\r\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\r\n return TOUCH_ACTION_MANIPULATION;\r\n }\r\n\r\n return TOUCH_ACTION_AUTO;\r\n}\r\n\r\n/**\r\n * Recognizer flow explained; *\r\n * All recognizers have the initial state of POSSIBLE when a input session starts.\r\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\r\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\r\n *\r\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\r\n * which determines with state it should be.\r\n *\r\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\r\n * POSSIBLE to give it another change on the next cycle.\r\n *\r\n * Possible\r\n * |\r\n * +-----+---------------+\r\n * | |\r\n * +-----+-----+ |\r\n * | | |\r\n * Failed Cancelled |\r\n * +-------+------+\r\n * | |\r\n * Recognized Began\r\n * |\r\n * Changed\r\n * |\r\n * Ended/Recognized\r\n */\r\nvar STATE_POSSIBLE = 1;\r\nvar STATE_BEGAN = 2;\r\nvar STATE_CHANGED = 4;\r\nvar STATE_ENDED = 8;\r\nvar STATE_RECOGNIZED = STATE_ENDED;\r\nvar STATE_CANCELLED = 16;\r\nvar STATE_FAILED = 32;\r\n\r\n/**\r\n * Recognizer\r\n * Every recognizer needs to extend from this class.\r\n * @constructor\r\n * @param {Object} options\r\n */\r\nfunction Recognizer(options) {\r\n this.id = uniqueId();\r\n\r\n this.manager = null;\r\n this.options = merge(options || {}, this.defaults);\r\n\r\n // default is enable true\r\n this.options.enable = ifUndefined(this.options.enable, true);\r\n\r\n this.state = STATE_POSSIBLE;\r\n\r\n this.simultaneous = {};\r\n this.requireFail = [];\r\n}\r\n\r\nRecognizer.prototype = {\r\n /**\r\n * @virtual\r\n * @type {Object}\r\n */\r\n defaults: {},\r\n\r\n /**\r\n * set options\r\n * @param {Object} options\r\n * @return {Recognizer}\r\n */\r\n set: function(options) {\r\n extend(this.options, options);\r\n\r\n // also update the touchAction, in case something changed about the directions/enabled state\r\n this.manager && this.manager.touchAction.update();\r\n return this;\r\n },\r\n\r\n /**\r\n * recognize simultaneous with an other recognizer.\r\n * @param {Recognizer} otherRecognizer\r\n * @returns {Recognizer} this\r\n */\r\n recognizeWith: function(otherRecognizer) {\r\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\r\n return this;\r\n }\r\n\r\n var simultaneous = this.simultaneous;\r\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\r\n if (!simultaneous[otherRecognizer.id]) {\r\n simultaneous[otherRecognizer.id] = otherRecognizer;\r\n otherRecognizer.recognizeWith(this);\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\r\n * @param {Recognizer} otherRecognizer\r\n * @returns {Recognizer} this\r\n */\r\n dropRecognizeWith: function(otherRecognizer) {\r\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\r\n return this;\r\n }\r\n\r\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\r\n delete this.simultaneous[otherRecognizer.id];\r\n return this;\r\n },\r\n\r\n /**\r\n * recognizer can only run when an other is failing\r\n * @param {Recognizer} otherRecognizer\r\n * @returns {Recognizer} this\r\n */\r\n requireFailure: function(otherRecognizer) {\r\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\r\n return this;\r\n }\r\n\r\n var requireFail = this.requireFail;\r\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\r\n if (inArray(requireFail, otherRecognizer) === -1) {\r\n requireFail.push(otherRecognizer);\r\n otherRecognizer.requireFailure(this);\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * drop the requireFailure link. it does not remove the link on the other recognizer.\r\n * @param {Recognizer} otherRecognizer\r\n * @returns {Recognizer} this\r\n */\r\n dropRequireFailure: function(otherRecognizer) {\r\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\r\n return this;\r\n }\r\n\r\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\r\n var index = inArray(this.requireFail, otherRecognizer);\r\n if (index > -1) {\r\n this.requireFail.splice(index, 1);\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * has require failures boolean\r\n * @returns {boolean}\r\n */\r\n hasRequireFailures: function() {\r\n return this.requireFail.length > 0;\r\n },\r\n\r\n /**\r\n * if the recognizer can recognize simultaneous with an other recognizer\r\n * @param {Recognizer} otherRecognizer\r\n * @returns {Boolean}\r\n */\r\n canRecognizeWith: function(otherRecognizer) {\r\n return !!this.simultaneous[otherRecognizer.id];\r\n },\r\n\r\n /**\r\n * You should use `tryEmit` instead of `emit` directly to check\r\n * that all the needed recognizers has failed before emitting.\r\n * @param {Object} input\r\n */\r\n emit: function(input) {\r\n var self = this;\r\n var state = this.state;\r\n\r\n function emit(withState) {\r\n self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input);\r\n }\r\n\r\n // 'panstart' and 'panmove'\r\n if (state < STATE_ENDED) {\r\n emit(true);\r\n }\r\n\r\n emit(); // simple 'eventName' events\r\n\r\n // panend and pancancel\r\n if (state >= STATE_ENDED) {\r\n emit(true);\r\n }\r\n },\r\n\r\n /**\r\n * Check that all the require failure recognizers has failed,\r\n * if true, it emits a gesture event,\r\n * otherwise, setup the state to FAILED.\r\n * @param {Object} input\r\n */\r\n tryEmit: function(input) {\r\n if (this.canEmit()) {\r\n return this.emit(input);\r\n }\r\n // it's failing anyway\r\n this.state = STATE_FAILED;\r\n },\r\n\r\n /**\r\n * can we emit?\r\n * @returns {boolean}\r\n */\r\n canEmit: function() {\r\n var i = 0;\r\n while (i < this.requireFail.length) {\r\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\r\n return false;\r\n }\r\n i++;\r\n }\r\n return true;\r\n },\r\n\r\n /**\r\n * update the recognizer\r\n * @param {Object} inputData\r\n */\r\n recognize: function(inputData) {\r\n // make a new copy of the inputData\r\n // so we can change the inputData without messing up the other recognizers\r\n var inputDataClone = extend({}, inputData);\r\n\r\n // is is enabled and allow recognizing?\r\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\r\n this.reset();\r\n this.state = STATE_FAILED;\r\n return;\r\n }\r\n\r\n // reset when we've reached the end\r\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\r\n this.state = STATE_POSSIBLE;\r\n }\r\n\r\n this.state = this.process(inputDataClone);\r\n\r\n // the recognizer has recognized a gesture\r\n // so trigger an event\r\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\r\n this.tryEmit(inputDataClone);\r\n }\r\n },\r\n\r\n /**\r\n * return the state of the recognizer\r\n * the actual recognizing happens in this method\r\n * @virtual\r\n * @param {Object} inputData\r\n * @returns {Const} STATE\r\n */\r\n process: function(inputData) { }, // jshint ignore:line\r\n\r\n /**\r\n * return the preferred touch-action\r\n * @virtual\r\n * @returns {Array}\r\n */\r\n getTouchAction: function() { },\r\n\r\n /**\r\n * called when the gesture isn't allowed to recognize\r\n * like when another is being recognized or it is disabled\r\n * @virtual\r\n */\r\n reset: function() { }\r\n};\r\n\r\n/**\r\n * get a usable string, used as event postfix\r\n * @param {Const} state\r\n * @returns {String} state\r\n */\r\nfunction stateStr(state) {\r\n if (state & STATE_CANCELLED) {\r\n return 'cancel';\r\n } else if (state & STATE_ENDED) {\r\n return 'end';\r\n } else if (state & STATE_CHANGED) {\r\n return 'move';\r\n } else if (state & STATE_BEGAN) {\r\n return 'start';\r\n }\r\n return '';\r\n}\r\n\r\n/**\r\n * direction cons to string\r\n * @param {Const} direction\r\n * @returns {String}\r\n */\r\nfunction directionStr(direction) {\r\n if (direction == DIRECTION_DOWN) {\r\n return 'down';\r\n } else if (direction == DIRECTION_UP) {\r\n return 'up';\r\n } else if (direction == DIRECTION_LEFT) {\r\n return 'left';\r\n } else if (direction == DIRECTION_RIGHT) {\r\n return 'right';\r\n }\r\n return '';\r\n}\r\n\r\n/**\r\n * get a recognizer by name if it is bound to a manager\r\n * @param {Recognizer|String} otherRecognizer\r\n * @param {Recognizer} recognizer\r\n * @returns {Recognizer}\r\n */\r\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\r\n var manager = recognizer.manager;\r\n if (manager) {\r\n return manager.get(otherRecognizer);\r\n }\r\n return otherRecognizer;\r\n}\r\n\r\n/**\r\n * This recognizer is just used as a base for the simple attribute recognizers.\r\n * @constructor\r\n * @extends Recognizer\r\n */\r\nfunction AttrRecognizer() {\r\n Recognizer.apply(this, arguments);\r\n}\r\n\r\ninherit(AttrRecognizer, Recognizer, {\r\n /**\r\n * @namespace\r\n * @memberof AttrRecognizer\r\n */\r\n defaults: {\r\n /**\r\n * @type {Number}\r\n * @default 1\r\n */\r\n pointers: 1\r\n },\r\n\r\n /**\r\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\r\n * @memberof AttrRecognizer\r\n * @param {Object} input\r\n * @returns {Boolean} recognized\r\n */\r\n attrTest: function(input) {\r\n var optionPointers = this.options.pointers;\r\n return optionPointers === 0 || input.pointers.length === optionPointers;\r\n },\r\n\r\n /**\r\n * Process the input and return the state for the recognizer\r\n * @memberof AttrRecognizer\r\n * @param {Object} input\r\n * @returns {*} State\r\n */\r\n process: function(input) {\r\n var state = this.state;\r\n var eventType = input.eventType;\r\n\r\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\r\n var isValid = this.attrTest(input);\r\n\r\n // on cancel input and we've recognized before, return STATE_CANCELLED\r\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\r\n return state | STATE_CANCELLED;\r\n } else if (isRecognized || isValid) {\r\n if (eventType & INPUT_END) {\r\n return state | STATE_ENDED;\r\n } else if (!(state & STATE_BEGAN)) {\r\n return STATE_BEGAN;\r\n }\r\n return state | STATE_CHANGED;\r\n }\r\n return STATE_FAILED;\r\n }\r\n});\r\n\r\n/**\r\n * Pan\r\n * Recognized when the pointer is down and moved in the allowed direction.\r\n * @constructor\r\n * @extends AttrRecognizer\r\n */\r\nfunction PanRecognizer() {\r\n AttrRecognizer.apply(this, arguments);\r\n\r\n this.pX = null;\r\n this.pY = null;\r\n}\r\n\r\ninherit(PanRecognizer, AttrRecognizer, {\r\n /**\r\n * @namespace\r\n * @memberof PanRecognizer\r\n */\r\n defaults: {\r\n event: 'pan',\r\n threshold: 10,\r\n pointers: 1,\r\n direction: DIRECTION_ALL\r\n },\r\n\r\n getTouchAction: function() {\r\n var direction = this.options.direction;\r\n var actions = [];\r\n if (direction & DIRECTION_HORIZONTAL) {\r\n actions.push(TOUCH_ACTION_PAN_Y);\r\n }\r\n if (direction & DIRECTION_VERTICAL) {\r\n actions.push(TOUCH_ACTION_PAN_X);\r\n }\r\n return actions;\r\n },\r\n\r\n directionTest: function(input) {\r\n var options = this.options;\r\n var hasMoved = true;\r\n var distance = input.distance;\r\n var direction = input.direction;\r\n var x = input.deltaX;\r\n var y = input.deltaY;\r\n\r\n // lock to axis?\r\n if (!(direction & options.direction)) {\r\n if (options.direction & DIRECTION_HORIZONTAL) {\r\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\r\n hasMoved = x != this.pX;\r\n distance = Math.abs(input.deltaX);\r\n } else {\r\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\r\n hasMoved = y != this.pY;\r\n distance = Math.abs(input.deltaY);\r\n }\r\n }\r\n input.direction = direction;\r\n return hasMoved && distance > options.threshold && direction & options.direction;\r\n },\r\n\r\n attrTest: function(input) {\r\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\r\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\r\n },\r\n\r\n emit: function(input) {\r\n this.pX = input.deltaX;\r\n this.pY = input.deltaY;\r\n\r\n var direction = directionStr(input.direction);\r\n if (direction) {\r\n this.manager.emit(this.options.event + direction, input);\r\n }\r\n\r\n this._super.emit.call(this, input);\r\n }\r\n});\r\n\r\n/**\r\n * Pinch\r\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\r\n * @constructor\r\n * @extends AttrRecognizer\r\n */\r\nfunction PinchRecognizer() {\r\n AttrRecognizer.apply(this, arguments);\r\n}\r\n\r\ninherit(PinchRecognizer, AttrRecognizer, {\r\n /**\r\n * @namespace\r\n * @memberof PinchRecognizer\r\n */\r\n defaults: {\r\n event: 'pinch',\r\n threshold: 0,\r\n pointers: 2\r\n },\r\n\r\n getTouchAction: function() {\r\n return [TOUCH_ACTION_NONE];\r\n },\r\n\r\n attrTest: function(input) {\r\n return this._super.attrTest.call(this, input) &&\r\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\r\n },\r\n\r\n emit: function(input) {\r\n this._super.emit.call(this, input);\r\n if (input.scale !== 1) {\r\n var inOut = input.scale < 1 ? 'in' : 'out';\r\n this.manager.emit(this.options.event + inOut, input);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Press\r\n * Recognized when the pointer is down for x ms without any movement.\r\n * @constructor\r\n * @extends Recognizer\r\n */\r\nfunction PressRecognizer() {\r\n Recognizer.apply(this, arguments);\r\n\r\n this._timer = null;\r\n this._input = null;\r\n}\r\n\r\ninherit(PressRecognizer, Recognizer, {\r\n /**\r\n * @namespace\r\n * @memberof PressRecognizer\r\n */\r\n defaults: {\r\n event: 'press',\r\n pointers: 1,\r\n time: 500, // minimal time of the pointer to be pressed\r\n threshold: 5 // a minimal movement is ok, but keep it low\r\n },\r\n\r\n getTouchAction: function() {\r\n return [TOUCH_ACTION_AUTO];\r\n },\r\n\r\n process: function(input) {\r\n var options = this.options;\r\n var validPointers = input.pointers.length === options.pointers;\r\n var validMovement = input.distance < options.threshold;\r\n var validTime = input.deltaTime > options.time;\r\n\r\n this._input = input;\r\n\r\n // we only allow little movement\r\n // and we've reached an end event, so a tap is possible\r\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\r\n this.reset();\r\n } else if (input.eventType & INPUT_START) {\r\n this.reset();\r\n this._timer = setTimeoutContext(function() {\r\n this.state = STATE_RECOGNIZED;\r\n this.tryEmit();\r\n }, options.time, this);\r\n } else if (input.eventType & INPUT_END) {\r\n return STATE_RECOGNIZED;\r\n }\r\n return STATE_FAILED;\r\n },\r\n\r\n reset: function() {\r\n clearTimeout(this._timer);\r\n },\r\n\r\n emit: function(input) {\r\n if (this.state !== STATE_RECOGNIZED) {\r\n return;\r\n }\r\n\r\n if (input && (input.eventType & INPUT_END)) {\r\n this.manager.emit(this.options.event + 'up', input);\r\n } else {\r\n this._input.timeStamp = now();\r\n this.manager.emit(this.options.event, this._input);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Rotate\r\n * Recognized when two or more pointer are moving in a circular motion.\r\n * @constructor\r\n * @extends AttrRecognizer\r\n */\r\nfunction RotateRecognizer() {\r\n AttrRecognizer.apply(this, arguments);\r\n}\r\n\r\ninherit(RotateRecognizer, AttrRecognizer, {\r\n /**\r\n * @namespace\r\n * @memberof RotateRecognizer\r\n */\r\n defaults: {\r\n event: 'rotate',\r\n threshold: 0,\r\n pointers: 2\r\n },\r\n\r\n getTouchAction: function() {\r\n return [TOUCH_ACTION_NONE];\r\n },\r\n\r\n attrTest: function(input) {\r\n return this._super.attrTest.call(this, input) &&\r\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\r\n }\r\n});\r\n\r\n/**\r\n * Swipe\r\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\r\n * @constructor\r\n * @extends AttrRecognizer\r\n */\r\nfunction SwipeRecognizer() {\r\n AttrRecognizer.apply(this, arguments);\r\n}\r\n\r\ninherit(SwipeRecognizer, AttrRecognizer, {\r\n /**\r\n * @namespace\r\n * @memberof SwipeRecognizer\r\n */\r\n defaults: {\r\n event: 'swipe',\r\n threshold: 10,\r\n velocity: 0.65,\r\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\r\n pointers: 1\r\n },\r\n\r\n getTouchAction: function() {\r\n return PanRecognizer.prototype.getTouchAction.call(this);\r\n },\r\n\r\n attrTest: function(input) {\r\n var direction = this.options.direction;\r\n var velocity;\r\n\r\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\r\n velocity = input.velocity;\r\n } else if (direction & DIRECTION_HORIZONTAL) {\r\n velocity = input.velocityX;\r\n } else if (direction & DIRECTION_VERTICAL) {\r\n velocity = input.velocityY;\r\n }\r\n\r\n return this._super.attrTest.call(this, input) &&\r\n direction & input.direction &&\r\n input.distance > this.options.threshold &&\r\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\r\n },\r\n\r\n emit: function(input) {\r\n var direction = directionStr(input.direction);\r\n if (direction) {\r\n this.manager.emit(this.options.event + direction, input);\r\n }\r\n\r\n this.manager.emit(this.options.event, input);\r\n }\r\n});\r\n\r\n/**\r\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\r\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\r\n * a single tap.\r\n *\r\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\r\n * multi-taps being recognized.\r\n * @constructor\r\n * @extends Recognizer\r\n */\r\nfunction TapRecognizer() {\r\n Recognizer.apply(this, arguments);\r\n\r\n // previous time and center,\r\n // used for tap counting\r\n this.pTime = false;\r\n this.pCenter = false;\r\n\r\n this._timer = null;\r\n this._input = null;\r\n this.count = 0;\r\n}\r\n\r\ninherit(TapRecognizer, Recognizer, {\r\n /**\r\n * @namespace\r\n * @memberof PinchRecognizer\r\n */\r\n defaults: {\r\n event: 'tap',\r\n pointers: 1,\r\n taps: 1,\r\n interval: 300, // max time between the multi-tap taps\r\n time: 250, // max time of the pointer to be down (like finger on the screen)\r\n threshold: 2, // a minimal movement is ok, but keep it low\r\n posThreshold: 10 // a multi-tap can be a bit off the initial position\r\n },\r\n\r\n getTouchAction: function() {\r\n return [TOUCH_ACTION_MANIPULATION];\r\n },\r\n\r\n process: function(input) {\r\n var options = this.options;\r\n\r\n var validPointers = input.pointers.length === options.pointers;\r\n var validMovement = input.distance < options.threshold;\r\n var validTouchTime = input.deltaTime < options.time;\r\n\r\n this.reset();\r\n\r\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\r\n return this.failTimeout();\r\n }\r\n\r\n // we only allow little movement\r\n // and we've reached an end event, so a tap is possible\r\n if (validMovement && validTouchTime && validPointers) {\r\n if (input.eventType != INPUT_END) {\r\n return this.failTimeout();\r\n }\r\n\r\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\r\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\r\n\r\n this.pTime = input.timeStamp;\r\n this.pCenter = input.center;\r\n\r\n if (!validMultiTap || !validInterval) {\r\n this.count = 1;\r\n } else {\r\n this.count += 1;\r\n }\r\n\r\n this._input = input;\r\n\r\n // if tap count matches we have recognized it,\r\n // else it has began recognizing...\r\n var tapCount = this.count % options.taps;\r\n if (tapCount === 0) {\r\n // no failing requirements, immediately trigger the tap event\r\n // or wait as long as the multitap interval to trigger\r\n if (!this.hasRequireFailures()) {\r\n return STATE_RECOGNIZED;\r\n } else {\r\n this._timer = setTimeoutContext(function() {\r\n this.state = STATE_RECOGNIZED;\r\n this.tryEmit();\r\n }, options.interval, this);\r\n return STATE_BEGAN;\r\n }\r\n }\r\n }\r\n return STATE_FAILED;\r\n },\r\n\r\n failTimeout: function() {\r\n this._timer = setTimeoutContext(function() {\r\n this.state = STATE_FAILED;\r\n }, this.options.interval, this);\r\n return STATE_FAILED;\r\n },\r\n\r\n reset: function() {\r\n clearTimeout(this._timer);\r\n },\r\n\r\n emit: function() {\r\n if (this.state == STATE_RECOGNIZED ) {\r\n this._input.tapCount = this.count;\r\n this.manager.emit(this.options.event, this._input);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Simple way to create an manager with a default set of recognizers.\r\n * @param {HTMLElement} element\r\n * @param {Object} [options]\r\n * @constructor\r\n */\r\nfunction Hammer(element, options) {\r\n options = options || {};\r\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\r\n return new Manager(element, options);\r\n}\r\n\r\n/**\r\n * @const {string}\r\n */\r\nHammer.VERSION = '2.0.4';\r\n\r\n/**\r\n * default settings\r\n * @namespace\r\n */\r\nHammer.defaults = {\r\n /**\r\n * set if DOM events are being triggered.\r\n * But this is slower and unused by simple implementations, so disabled by default.\r\n * @type {Boolean}\r\n * @default false\r\n */\r\n domEvents: false,\r\n\r\n /**\r\n * The value for the touchAction property/fallback.\r\n * When set to `compute` it will magically set the correct value based on the added recognizers.\r\n * @type {String}\r\n * @default compute\r\n */\r\n touchAction: TOUCH_ACTION_COMPUTE,\r\n\r\n /**\r\n * @type {Boolean}\r\n * @default true\r\n */\r\n enable: true,\r\n\r\n /**\r\n * EXPERIMENTAL FEATURE -- can be removed/changed\r\n * Change the parent input target element.\r\n * If Null, then it is being set the to main element.\r\n * @type {Null|EventTarget}\r\n * @default null\r\n */\r\n inputTarget: null,\r\n\r\n /**\r\n * force an input class\r\n * @type {Null|Function}\r\n * @default null\r\n */\r\n inputClass: null,\r\n\r\n /**\r\n * Default recognizer setup when calling `Hammer()`\r\n * When creating a new Manager these will be skipped.\r\n * @type {Array}\r\n */\r\n preset: [\r\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\r\n [RotateRecognizer, { enable: false }],\r\n [PinchRecognizer, { enable: false }, ['rotate']],\r\n [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }],\r\n [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']],\r\n [TapRecognizer],\r\n [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']],\r\n [PressRecognizer]\r\n ],\r\n\r\n /**\r\n * Some CSS properties can be used to improve the working of Hammer.\r\n * Add them to this method and they will be set when creating a new Manager.\r\n * @namespace\r\n */\r\n cssProps: {\r\n /**\r\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\r\n * @type {String}\r\n * @default 'none'\r\n */\r\n userSelect: 'none',\r\n\r\n /**\r\n * Disable the Windows Phone grippers when pressing an element.\r\n * @type {String}\r\n * @default 'none'\r\n */\r\n touchSelect: 'none',\r\n\r\n /**\r\n * Disables the default callout shown when you touch and hold a touch target.\r\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\r\n * a callout containing information about the link. This property allows you to disable that callout.\r\n * @type {String}\r\n * @default 'none'\r\n */\r\n touchCallout: 'none',\r\n\r\n /**\r\n * Specifies whether zooming is enabled. Used by IE10>\r\n * @type {String}\r\n * @default 'none'\r\n */\r\n contentZooming: 'none',\r\n\r\n /**\r\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\r\n * @type {String}\r\n * @default 'none'\r\n */\r\n userDrag: 'none',\r\n\r\n /**\r\n * Overrides the highlight color shown when the user taps a link or a JavaScript\r\n * clickable element in iOS. This property obeys the alpha value, if specified.\r\n * @type {String}\r\n * @default 'rgba(0,0,0,0)'\r\n */\r\n tapHighlightColor: 'rgba(0,0,0,0)'\r\n }\r\n};\r\n\r\nvar STOP = 1;\r\nvar FORCED_STOP = 2;\r\n\r\n/**\r\n * Manager\r\n * @param {HTMLElement} element\r\n * @param {Object} [options]\r\n * @constructor\r\n */\r\nfunction Manager(element, options) {\r\n options = options || {};\r\n\r\n this.options = merge(options, Hammer.defaults);\r\n this.options.inputTarget = this.options.inputTarget || element;\r\n\r\n this.handlers = {};\r\n this.session = {};\r\n this.recognizers = [];\r\n\r\n this.element = element;\r\n this.input = createInputInstance(this);\r\n this.touchAction = new TouchAction(this, this.options.touchAction);\r\n\r\n toggleCssProps(this, true);\r\n\r\n each(options.recognizers, function(item) {\r\n var recognizer = this.add(new (item[0])(item[1]));\r\n item[2] && recognizer.recognizeWith(item[2]);\r\n item[3] && recognizer.requireFailure(item[3]);\r\n }, this);\r\n}\r\n\r\nManager.prototype = {\r\n /**\r\n * set options\r\n * @param {Object} options\r\n * @returns {Manager}\r\n */\r\n set: function(options) {\r\n extend(this.options, options);\r\n\r\n // Options that need a little more setup\r\n if (options.touchAction) {\r\n this.touchAction.update();\r\n }\r\n if (options.inputTarget) {\r\n // Clean up existing event listeners and reinitialize\r\n this.input.destroy();\r\n this.input.target = options.inputTarget;\r\n this.input.init();\r\n }\r\n return this;\r\n },\r\n\r\n /**\r\n * stop recognizing for this session.\r\n * This session will be discarded, when a new [input]start event is fired.\r\n * When forced, the recognizer cycle is stopped immediately.\r\n * @param {Boolean} [force]\r\n */\r\n stop: function(force) {\r\n this.session.stopped = force ? FORCED_STOP : STOP;\r\n },\r\n\r\n /**\r\n * run the recognizers!\r\n * called by the inputHandler function on every movement of the pointers (touches)\r\n * it walks through all the recognizers and tries to detect the gesture that is being made\r\n * @param {Object} inputData\r\n */\r\n recognize: function(inputData) {\r\n var session = this.session;\r\n if (session.stopped) {\r\n return;\r\n }\r\n\r\n // run the touch-action polyfill\r\n this.touchAction.preventDefaults(inputData);\r\n\r\n var recognizer;\r\n var recognizers = this.recognizers;\r\n\r\n // this holds the recognizer that is being recognized.\r\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\r\n // if no recognizer is detecting a thing, it is set to `null`\r\n var curRecognizer = session.curRecognizer;\r\n\r\n // reset when the last recognizer is recognized\r\n // or when we're in a new session\r\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\r\n curRecognizer = session.curRecognizer = null;\r\n }\r\n\r\n var i = 0;\r\n while (i < recognizers.length) {\r\n recognizer = recognizers[i];\r\n\r\n // find out if we are allowed try to recognize the input for this one.\r\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\r\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\r\n // that is being recognized.\r\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\r\n // this can be setup with the `recognizeWith()` method on the recognizer.\r\n if (session.stopped !== FORCED_STOP && ( // 1\r\n !curRecognizer || recognizer == curRecognizer || // 2\r\n recognizer.canRecognizeWith(curRecognizer))) { // 3\r\n recognizer.recognize(inputData);\r\n } else {\r\n recognizer.reset();\r\n }\r\n\r\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\r\n // current active recognizer. but only if we don't already have an active recognizer\r\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\r\n curRecognizer = session.curRecognizer = recognizer;\r\n }\r\n i++;\r\n }\r\n },\r\n\r\n /**\r\n * get a recognizer by its event name.\r\n * @param {Recognizer|String} recognizer\r\n * @returns {Recognizer|Null}\r\n */\r\n get: function(recognizer) {\r\n if (recognizer instanceof Recognizer) {\r\n return recognizer;\r\n }\r\n\r\n var recognizers = this.recognizers;\r\n for (var i = 0; i < recognizers.length; i++) {\r\n if (recognizers[i].options.event == recognizer) {\r\n return recognizers[i];\r\n }\r\n }\r\n return null;\r\n },\r\n\r\n /**\r\n * add a recognizer to the manager\r\n * existing recognizers with the same event name will be removed\r\n * @param {Recognizer} recognizer\r\n * @returns {Recognizer|Manager}\r\n */\r\n add: function(recognizer) {\r\n if (invokeArrayArg(recognizer, 'add', this)) {\r\n return this;\r\n }\r\n\r\n // remove existing\r\n var existing = this.get(recognizer.options.event);\r\n if (existing) {\r\n this.remove(existing);\r\n }\r\n\r\n this.recognizers.push(recognizer);\r\n recognizer.manager = this;\r\n\r\n this.touchAction.update();\r\n return recognizer;\r\n },\r\n\r\n /**\r\n * remove a recognizer by name or instance\r\n * @param {Recognizer|String} recognizer\r\n * @returns {Manager}\r\n */\r\n remove: function(recognizer) {\r\n if (invokeArrayArg(recognizer, 'remove', this)) {\r\n return this;\r\n }\r\n\r\n var recognizers = this.recognizers;\r\n recognizer = this.get(recognizer);\r\n recognizers.splice(inArray(recognizers, recognizer), 1);\r\n\r\n this.touchAction.update();\r\n return this;\r\n },\r\n\r\n /**\r\n * bind event\r\n * @param {String} events\r\n * @param {Function} handler\r\n * @returns {EventEmitter} this\r\n */\r\n on: function(events, handler) {\r\n var handlers = this.handlers;\r\n each(splitStr(events), function(event) {\r\n handlers[event] = handlers[event] || [];\r\n handlers[event].push(handler);\r\n });\r\n return this;\r\n },\r\n\r\n /**\r\n * unbind event, leave emit blank to remove all handlers\r\n * @param {String} events\r\n * @param {Function} [handler]\r\n * @returns {EventEmitter} this\r\n */\r\n off: function(events, handler) {\r\n var handlers = this.handlers;\r\n each(splitStr(events), function(event) {\r\n if (!handler) {\r\n delete handlers[event];\r\n } else {\r\n handlers[event].splice(inArray(handlers[event], handler), 1);\r\n }\r\n });\r\n return this;\r\n },\r\n\r\n /**\r\n * emit event to the listeners\r\n * @param {String} event\r\n * @param {Object} data\r\n */\r\n emit: function(event, data) {\r\n // we also want to trigger dom events\r\n if (this.options.domEvents) {\r\n triggerDomEvent(event, data);\r\n }\r\n\r\n // no handlers, so skip it all\r\n var handlers = this.handlers[event] && this.handlers[event].slice();\r\n if (!handlers || !handlers.length) {\r\n return;\r\n }\r\n\r\n data.type = event;\r\n data.preventDefault = function() {\r\n data.srcEvent.preventDefault();\r\n };\r\n\r\n var i = 0;\r\n while (i < handlers.length) {\r\n handlers[i](data);\r\n i++;\r\n }\r\n },\r\n\r\n /**\r\n * destroy the manager and unbinds all events\r\n * it doesn't unbind dom events, that is the user own responsibility\r\n */\r\n destroy: function() {\r\n this.element && toggleCssProps(this, false);\r\n\r\n this.handlers = {};\r\n this.session = {};\r\n this.input.destroy();\r\n this.element = null;\r\n }\r\n};\r\n\r\n/**\r\n * add/remove the css properties as defined in manager.options.cssProps\r\n * @param {Manager} manager\r\n * @param {Boolean} add\r\n */\r\nfunction toggleCssProps(manager, add) {\r\n var element = manager.element;\r\n each(manager.options.cssProps, function(value, name) {\r\n element.style[prefixed(element.style, name)] = add ? value : '';\r\n });\r\n}\r\n\r\n/**\r\n * trigger dom event\r\n * @param {String} event\r\n * @param {Object} data\r\n */\r\nfunction triggerDomEvent(event, data) {\r\n var gestureEvent = document.createEvent('Event');\r\n gestureEvent.initEvent(event, true, true);\r\n gestureEvent.gesture = data;\r\n data.target.dispatchEvent(gestureEvent);\r\n}\r\n\r\nextend(Hammer, {\r\n INPUT_START: INPUT_START,\r\n INPUT_MOVE: INPUT_MOVE,\r\n INPUT_END: INPUT_END,\r\n INPUT_CANCEL: INPUT_CANCEL,\r\n\r\n STATE_POSSIBLE: STATE_POSSIBLE,\r\n STATE_BEGAN: STATE_BEGAN,\r\n STATE_CHANGED: STATE_CHANGED,\r\n STATE_ENDED: STATE_ENDED,\r\n STATE_RECOGNIZED: STATE_RECOGNIZED,\r\n STATE_CANCELLED: STATE_CANCELLED,\r\n STATE_FAILED: STATE_FAILED,\r\n\r\n DIRECTION_NONE: DIRECTION_NONE,\r\n DIRECTION_LEFT: DIRECTION_LEFT,\r\n DIRECTION_RIGHT: DIRECTION_RIGHT,\r\n DIRECTION_UP: DIRECTION_UP,\r\n DIRECTION_DOWN: DIRECTION_DOWN,\r\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\r\n DIRECTION_ALL: DIRECTION_ALL,\r\n\r\n Manager: Manager,\r\n Input: Input,\r\n TouchAction: TouchAction,\r\n\r\n TouchInput: TouchInput,\r\n MouseInput: MouseInput,\r\n PointerEventInput: PointerEventInput,\r\n TouchMouseInput: TouchMouseInput,\r\n SingleTouchInput: SingleTouchInput,\r\n\r\n Recognizer: Recognizer,\r\n AttrRecognizer: AttrRecognizer,\r\n Tap: TapRecognizer,\r\n Pan: PanRecognizer,\r\n Swipe: SwipeRecognizer,\r\n Pinch: PinchRecognizer,\r\n Rotate: RotateRecognizer,\r\n Press: PressRecognizer,\r\n\r\n on: addEventListeners,\r\n off: removeEventListeners,\r\n each: each,\r\n merge: merge,\r\n extend: extend,\r\n inherit: inherit,\r\n bindFn: bindFn,\r\n prefixed: prefixed\r\n});\r\n\r\nif (typeof define == TYPE_FUNCTION && define.amd) {\r\n define(function() {\r\n return Hammer;\r\n });\r\n} else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Hammer;\r\n} else {\r\n window[exportName] = Hammer;\r\n}\r\n\r\n})(window, document, 'Hammer');\r\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nfunction maxFriction(friction, velocityX, velocityY, maxFrictionTime, result) {\n var velocity = Math.sqrt(Math.pow(velocityX,2) + Math.pow(velocityY,2));\n friction = Math.max(friction, velocity/maxFrictionTime);\n changeVectorNorm(velocityX, velocityY, friction, result);\n result[0] = Math.abs(result[0]);\n result[1] = Math.abs(result[1]);\n}\n\nfunction changeVectorNorm(x, y, n, result) {\n var theta = Math.atan(y/x);\n result[0] = n * Math.cos(theta);\n result[1] = n * Math.sin(theta);\n}\n\nmodule.exports = {\n maxFriction: maxFriction,\n changeVectorNorm: changeVectorNorm\n};","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Dynamics = require('./Dynamics');\nvar HammerGestures = require('./HammerGestures');\nvar defaults = require('../util/defaults');\nvar maxFriction = require('./util').maxFriction;\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\n\nvar defaultOptions = {\n speed: 8,\n friction: 6,\n maxFrictionTime: 0.3\n};\n\n\n/**\n * @class QtvrControlMethod\n * @implements ControlMethod\n * @classdesc\n *\n * Controls the view by holding the mouse button down and moving it.\n * Also known as \"QTVR\" control mode.\n *\n * @param {Element} element Element to listen for events.\n * @param {string} pointerType Which Hammer.js pointer type to use (e.g.\n * `mouse` or `touch`).\n * @param {Object} opts\n * @param {number} opts.speed\n * @param {number} opts.friction\n * @param {number} opts.maxFrictionTime\n */\n// TODO: allow speed not change linearly with distance to click spot.\n// Quadratic or other would allow a larger speed range.\nfunction QtvrControlMethod(element, pointerType, opts) {\n this._element = element;\n\n this._opts = defaults(opts || {}, defaultOptions);\n\n this._active = false;\n\n this._hammer = HammerGestures.get(element, pointerType);\n\n this._dynamics = {\n x: new Dynamics(),\n y: new Dynamics()\n };\n\n this._hammer.on('panstart', this._handleStart.bind(this));\n this._hammer.on('panmove', this._handleMove.bind(this));\n this._hammer.on('panend', this._handleRelease.bind(this));\n this._hammer.on('pancancel', this._handleRelease.bind(this));\n}\n\neventEmitter(QtvrControlMethod);\n\n/**\n * Destructor.\n */\nQtvrControlMethod.prototype.destroy = function() {\n this._hammer.release();\n clearOwnProperties(this);\n};\n\n\nQtvrControlMethod.prototype._handleStart = function(e) {\n // Prevent event dragging other DOM elements and causing strange behavior on Chrome\n e.preventDefault();\n\n if (!this._active) {\n this._active = true;\n this.emit('active');\n }\n};\n\n\nQtvrControlMethod.prototype._handleMove = function(e) {\n // Prevent event dragging other DOM elements and causing strange behavior on Chrome\n e.preventDefault();\n\n this._updateDynamics(e, false);\n};\n\n\nQtvrControlMethod.prototype._handleRelease = function(e) {\n // Prevent event dragging other DOM elements and causing strange behavior on Chrome\n e.preventDefault();\n\n this._updateDynamics(e, true);\n\n if (this._active) {\n this._active = false;\n this.emit('inactive');\n }\n};\n\n\nvar tmpReleaseFriction = [ null, null ];\nQtvrControlMethod.prototype._updateDynamics = function(e, release) {\n var elementRect = this._element.getBoundingClientRect();\n var width = elementRect.right - elementRect.left;\n var height = elementRect.bottom - elementRect.top;\n var maxDim = Math.max(width, height);\n\n var x = e.deltaX / maxDim * this._opts.speed;\n var y = e.deltaY / maxDim * this._opts.speed;\n\n this._dynamics.x.reset();\n this._dynamics.y.reset();\n this._dynamics.x.velocity = x;\n this._dynamics.y.velocity = y;\n\n if (release) {\n maxFriction(this._opts.friction, this._dynamics.x.velocity, this._dynamics.y.velocity, this._opts.maxFrictionTime, tmpReleaseFriction);\n this._dynamics.x.friction = tmpReleaseFriction[0];\n this._dynamics.y.friction = tmpReleaseFriction[1];\n }\n\n this.emit('parameterDynamics', 'x', this._dynamics.x);\n this.emit('parameterDynamics', 'y', this._dynamics.y);\n};\n\n\nmodule.exports = QtvrControlMethod;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Dynamics = require('./Dynamics');\nvar defaults = require('../util/defaults');\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar defaultOptions = {\n frictionTime: 0.2,\n zoomDelta: 0.001\n};\n\n/**\n * @class ScrollZoomControlMethod\n * @implements ControlMethod\n * @classdesc\n *\n * Controls the fov/zoom through the mouse wheel.\n *\n * @param {Element} element Element to listen for events.\n * @param {Object} opts\n * @param {number} [opts.frictionTime=0.2]\n * @param {number} [opts.zoomDelta=0.001]\n */\nfunction ScrollZoomControlMethod(element, opts) {\n this._element = element;\n this._opts = defaults(opts || {}, defaultOptions);\n this._dynamics = new Dynamics();\n this._eventList = [];\n\n var fn = this._opts.frictionTime ? this.withSmoothing : this.withoutSmoothing;\n this._wheelListener = fn.bind(this);\n \n element.addEventListener('wheel', this._wheelListener);\n}\n\neventEmitter(ScrollZoomControlMethod);\n\n/**\n * Destructor.\n */\nScrollZoomControlMethod.prototype.destroy = function() {\n this._element.removeEventListener('wheel', this._wheelListener);\n clearOwnProperties(this);\n};\n\n\nScrollZoomControlMethod.prototype.withoutSmoothing = function(e) {\n this._dynamics.offset = wheelEventDelta(e) * this._opts.zoomDelta;\n this.emit('parameterDynamics', 'zoom', this._dynamics);\n\n e.preventDefault();\n\n this.emit('active');\n this.emit('inactive');\n};\n\n\nScrollZoomControlMethod.prototype.withSmoothing = function(e) {\n var currentTime = e.timeStamp;\n\n // Record event.\n this._eventList.push(e);\n\n // Remove events whose smoothing has already expired.\n while (this._eventList[0].timeStamp < currentTime - this._opts.frictionTime*1000) {\n this._eventList.shift(0);\n }\n\n // Get the current velocity from the recorded events.\n // Each wheel movement causes a velocity of change/frictionTime during frictionTime.\n var velocity = 0;\n for (var i = 0; i < this._eventList.length; i++) {\n var zoomChangeFromEvent = wheelEventDelta(this._eventList[i]) * this._opts.zoomDelta;\n velocity += zoomChangeFromEvent / this._opts.frictionTime;\n }\n\n this._dynamics.velocity = velocity;\n this._dynamics.friction = Math.abs(velocity) / this._opts.frictionTime;\n\n this.emit('parameterDynamics', 'zoom', this._dynamics);\n\n e.preventDefault();\n\n this.emit('active');\n this.emit('inactive');\n};\n\n\nfunction wheelEventDelta(e) {\n var multiplier = e.deltaMode == 1 ? 20 : 1;\n return e.deltaY * multiplier;\n}\n\n\nmodule.exports = ScrollZoomControlMethod;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Dynamics = require('./Dynamics');\nvar HammerGestures = require('./HammerGestures');\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\n/**\n * @class PinchZoomControlMethod\n * @implements ControlMethod\n * @classdesc\n *\n * Control the view fov/zoom by pinching with two fingers.\n *\n * @param {Element} element Element to listen for events.\n * @param {string} pointerType Which Hammer.js pointer type to use\n * @param {Object} opts\n */\nfunction PinchZoomControlMethod(element, pointerType, opts) {\n this._hammer = HammerGestures.get(element, pointerType);\n\n this._lastEvent = null;\n\n this._active = false;\n\n this._dynamics = new Dynamics();\n\n this._hammer.on('pinchstart', this._handleStart.bind(this));\n this._hammer.on('pinch', this._handleEvent.bind(this));\n this._hammer.on('pinchend', this._handleEnd.bind(this));\n this._hammer.on('pinchcancel', this._handleEnd.bind(this));\n}\n\neventEmitter(PinchZoomControlMethod);\n\n/**\n * Destructor.\n */\nPinchZoomControlMethod.prototype.destroy = function() {\n this._hammer.release();\n clearOwnProperties(this);\n};\n\n\nPinchZoomControlMethod.prototype._handleStart = function() {\n if (!this._active) {\n this._active = true;\n this.emit('active');\n }\n};\n\n\nPinchZoomControlMethod.prototype._handleEnd = function() {\n this._lastEvent = null;\n\n if (this._active) {\n this._active = false;\n this.emit('inactive');\n }\n};\n\n\nPinchZoomControlMethod.prototype._handleEvent = function(e) {\n var scale = e.scale;\n\n if (this._lastEvent) {\n scale /= this._lastEvent.scale;\n }\n\n this._dynamics.offset = (scale - 1) * -1;\n this.emit('parameterDynamics', 'zoom', this._dynamics);\n\n this._lastEvent = e;\n};\n\n\nmodule.exports = PinchZoomControlMethod;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Composer = require('./Composer');\nvar clearOwnProperties = require('../util/clearOwnProperties');\n\nvar debug = typeof MARZIPANODEBUG !== 'undefined' && MARZIPANODEBUG.controls;\n\n/**\n * @class Controls\n * @classdesc\n *\n * Set of controls which affect a view (e.g. keyboard, touch)\n *\n * {@link ControlMethod} instances can be registered on this class. The methods\n * are then combined to calculate the final parameters to change the {@link View}.\n *\n * Controls is attached to a {@link RenderLoop}. Currently it affects the\n * {@link view} of all {@link Layer} on the {@link Stage} of the\n * {@link RenderLoop} it is attached to. A more flexible API may be provided\n * in the future.\n *\n * The ControlMethod instances are registered with an id and may be enabled,\n * disabled and unregistered using that id. The whole Control can also be\n * enabled or disabled.\n *\n */\nfunction Controls(opts) {\n opts = opts || {};\n\n this._methods = {};\n this._methodGroups = {};\n this._composer = new Composer();\n\n // Whether the controls are enabled.\n this._enabled = (opts && opts.enabled) ? !!opts.enabled : true;\n\n // How many control methods are enabled and in the active state.\n this._activeCount = 0;\n\n this.updatedViews_ = [];\n\n this._attachedRenderLoop = null;\n}\n\neventEmitter(Controls);\n\n/**\n * Destructor.\n */\nControls.prototype.destroy = function() {\n this.detach();\n this._composer.destroy();\n clearOwnProperties(this);\n};\n\n\n/**\n * @return {ControlMethod[]} List of registered @{link ControlMethod instances}\n */\nControls.prototype.methods = function() {\n var obj = {};\n for (var id in this._methods) {\n obj[id] = this._methods[id];\n }\n return obj;\n};\n\n/**\n * @param {String} id\n * @return {ControlMethod}\n */\nControls.prototype.method = function(id) {\n return this._methods[id];\n};\n\n/**\n * @param {String} id\n * @param {ControlMethod} instance\n * @param {Boolean} [enable=false]\n */\nControls.prototype.registerMethod = function(id, instance, enable) {\n if (this._methods[id]) {\n throw new Error('Control method already registered with id ' + id);\n }\n\n this._methods[id] = {\n instance: instance,\n enabled: false,\n active: false,\n activeHandler: this._handleActive.bind(this, id),\n inactiveHandler: this._handleInactive.bind(this, id)\n };\n\n if(enable) {\n this.enableMethod(id, instance);\n }\n};\n\n\n/**\n * @param {String} id\n */\nControls.prototype.unregisterMethod = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('No control method registered with id ' + id);\n }\n if (method.enabled) {\n this.disableMethod(id);\n }\n delete this._methods[id];\n};\n\n/**\n * @param {String} id\n */\nControls.prototype.enableMethod = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('No control method registered with id ' + id);\n }\n if (method.enabled) {\n return;\n }\n method.enabled = true;\n if (method.active) {\n this._incrementActiveCount();\n }\n this._listen(id);\n this._updateComposer();\n this.emit('methodEnabled', id);\n};\n\n\n/**\n * @param {String} id\n */\nControls.prototype.disableMethod = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('No control method registered with id ' + id);\n }\n if (!method.enabled) {\n return;\n }\n method.enabled = false;\n if (method.active) {\n this._decrementActiveCount();\n }\n this._unlisten(id);\n this._updateComposer();\n this.emit('methodDisabled', id);\n};\n\n\n/**\n * Create a method group, which can be used to more conveniently enable or\n * disable several control methods at once\n * @param {String} groupId\n * @param {String[]} methodIds\n */\nControls.prototype.addMethodGroup = function(groupId, methodIds) {\n this._methodGroups[groupId] = methodIds;\n}\n\n/**\n * @param {String} groupId\n */\nControls.prototype.removeMethodGroup = function(id) {\n delete this._methodGroups[id];\n}\n\n/**\n * @return {ControlMethodGroup[]} List of control method groups\n */\nControls.prototype.methodGroups = function() {\n var obj = {};\n for (var id in this._methodGroups) {\n obj[id] = this._methodGroups[id];\n }\n return obj;\n}\n\n/**\n * Enables all the control methods in the group\n * @param {String} groupId\n */\nControls.prototype.enableMethodGroup = function(id) {\n var self = this;\n self._methodGroups[id].forEach(function(methodId) {\n self.enableMethod(methodId);\n });\n}\n\n/**\n * Disables all the control methods in the group\n * @param {String} groupId\n */\nControls.prototype.disableMethodGroup = function(id) {\n var self = this;\n self._methodGroups[id].forEach(function(methodId) {\n self.disableMethod(methodId);\n });\n}\n\n/**\n * @returns {Boolean}\n */\nControls.prototype.enabled = function() {\n return this._enabled;\n};\n\n/**\n * Enables the controls\n */\nControls.prototype.enable = function() {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n if (this._activeCount > 0) {\n this.emit('active');\n }\n this.emit('enabled');\n this._updateComposer();\n};\n\n\n/**\n * Disables the controls\n */\nControls.prototype.disable = function() {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n if (this._activeCount > 0) {\n this.emit('inactive');\n }\n this.emit('disabled');\n this._updateComposer();\n};\n\n\n\n/**\n * Attaches the controls to a {@link RenderLoop}. The RenderLoop will be woken\n * up when the controls are activated\n *\n * @param {RenderLoop}\n */\nControls.prototype.attach = function(renderLoop) {\n if (this._attachedRenderLoop) {\n this.detach();\n }\n\n this._attachedRenderLoop = renderLoop;\n this._beforeRenderHandler = this._updateViewsWithControls.bind(this);\n this._changeHandler = renderLoop.renderOnNextFrame.bind(renderLoop);\n\n this._attachedRenderLoop.addEventListener('beforeRender', this._beforeRenderHandler);\n this._composer.addEventListener('change', this._changeHandler);\n};\n\n/**\n * Detaches the controls\n */\nControls.prototype.detach = function() {\n if (!this._attachedRenderLoop) {\n return;\n }\n\n this._attachedRenderLoop.removeEventListener('beforeRender', this._beforeRenderHandler);\n this._composer.removeEventListener('change', this._changeHandler);\n\n this._beforeRenderHandler = null;\n this._changeHandler = null;\n this._attachedRenderLoop = null;\n};\n\n/**\n * @param {Boolean}\n */\nControls.prototype.attached = function() {\n return this._attachedRenderLoop != null;\n};\n\n\nControls.prototype._listen = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('Bad method id');\n }\n method.instance.addEventListener('active', method.activeHandler);\n method.instance.addEventListener('inactive', method.inactiveHandler);\n};\n\n\nControls.prototype._unlisten = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('Bad method id');\n }\n method.instance.removeEventListener('active', method.activeHandler);\n method.instance.removeEventListener('inactive', method.inactiveHandler);\n};\n\n\nControls.prototype._handleActive = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('Bad method id');\n }\n if (!method.enabled) {\n throw new Error('Should not receive event from disabled control method');\n }\n if (!method.active) {\n method.active = true;\n this._incrementActiveCount();\n }\n};\n\n\nControls.prototype._handleInactive = function(id) {\n var method = this._methods[id];\n if (!method) {\n throw new Error('Bad method id');\n }\n if (!method.enabled) {\n throw new Error('Should not receive event from disabled control method');\n }\n if (method.active) {\n method.active = false;\n this._decrementActiveCount();\n }\n};\n\n\nControls.prototype._incrementActiveCount = function() {\n this._activeCount++;\n if (debug) {\n this._checkActiveCount();\n }\n if (this._enabled && this._activeCount === 1) {\n this.emit('active');\n }\n};\n\n\nControls.prototype._decrementActiveCount = function() {\n this._activeCount--;\n if (debug) {\n this._checkActiveCount();\n }\n if (this._enabled && this._activeCount === 0) {\n this.emit('inactive');\n }\n};\n\n\nControls.prototype._checkActiveCount = function() {\n var count = 0;\n for (var id in this._methods) {\n var method = this._methods[id];\n if (method.enabled && method.active) {\n count++;\n }\n }\n if (count != this._activeCount) {\n throw new Error('Bad control state');\n }\n};\n\n\nControls.prototype._updateComposer = function() {\n var composer = this._composer;\n\n for (var id in this._methods) {\n var method = this._methods[id];\n var enabled = this._enabled && method.enabled;\n\n if (enabled && !composer.has(method.instance)) {\n composer.add(method.instance);\n }\n if (!enabled && composer.has(method.instance)) {\n composer.remove(method.instance);\n }\n }\n};\n\n\nControls.prototype._updateViewsWithControls = function() {\n var controlData = this._composer.offsets();\n if (controlData.changing) {\n this._attachedRenderLoop.renderOnNextFrame();\n }\n\n // Update each view at most once, even when shared by multiple layers.\n // The number of views is expected to be small, so use an array to keep track.\n this.updatedViews_.length = 0;\n\n var layers = this._attachedRenderLoop.stage().listLayers();\n for (var i = 0; i < layers.length; i++) {\n var view = layers[i].view();\n if (this.updatedViews_.indexOf(view) < 0) {\n layers[i].view().updateWithControlParameters(controlData.offsets);\n this.updatedViews_.push(view);\n }\n }\n};\n\n\nmodule.exports = Controls;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar Layer = require('./Layer');\nvar TextureStore = require('./TextureStore');\nvar HotspotContainer = require('./HotspotContainer');\nvar eventEmitter = require('minimal-event-emitter');\nvar now = require('./util/now');\nvar noop = require('./util/noop');\nvar type = require('./util/type');\nvar defaults = require('./util/defaults');\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\n/**\n * Signals that the scene's view has changed. See {@link View#event:change}.\n * @event Scene#viewChange\n */\n\n/**\n * Signals that the scene's layers have changed.\n * @event Scene#layerChange\n */\n\n/**\n * @class Scene\n * @classdesc\n *\n * A Scene is a stack of {@link Layer layers} sharing the same {@link View view}\n * and {@link HotspotContainer hotspot container}. It belongs to the\n * {@link Viewer viewer} inside which it is displayed.\n *\n * Clients should call {@link Viewer#createScene} instead of invoking the\n * constructor directly.\n *\n * @param {Viewer} viewer The viewer this scene belongs to.\n * @param {View} view The scene's underlying view.\n */\nfunction Scene(viewer, view) {\n this._viewer = viewer;\n this._view = view;\n this._layers = [];\n\n // Hotspot container. Assume it occupies a full rect.\n this._hotspotContainer = new HotspotContainer(\n viewer._controlContainer,\n viewer.stage(),\n this._view,\n viewer.renderLoop());\n\n // The current movement.\n this._movement = null;\n this._movementStartTime = null;\n this._movementStep = null;\n this._movementParams = null;\n this._movementCallback = null;\n\n // Event listener for updating the view according to the current movement.\n // The listener is set/unset on the render loop when a movement starts/stops.\n this._updateMovementHandler = this._updateMovement.bind(this);\n\n // Show or hide hotspots when scene changes.\n this._updateHotspotContainerHandler = this._updateHotspotContainer.bind(this);\n this._viewer.addEventListener('sceneChange', this._updateHotspotContainerHandler);\n\n // Emit event when view changes.\n this._viewChangeHandler = this.emit.bind(this, 'viewChange');\n this._view.addEventListener('change', this._viewChangeHandler);\n\n // Update the hotspot container.\n this._updateHotspotContainer();\n}\n\neventEmitter(Scene);\n\n\n/**\n * Destructor. Clients should call {@link Viewer#destroyScene} instead.\n */\nScene.prototype.destroy = function() {\n this._view.removeEventListener('change', this._viewChangeHandler);\n this._viewer.removeEventListener('sceneChange', this._updateHotspotContainerHandler);\n\n if (this._movement) {\n this.stopMovement();\n }\n\n this._hotspotContainer.destroy();\n\n this.destroyAllLayers();\n\n clearOwnProperties(this);\n};\n\n\n\n/**\n * Returns the {@link HotspotContainer hotspot container} for the scene.\n * @return {Layer}\n */\nScene.prototype.hotspotContainer = function() {\n return this._hotspotContainer;\n};\n\n/**\n * Returns the first of the {@link Layer layers} belonging to the scene, or\n * null if the scene has no layers.\n *\n * This method is equivalent to `Scene#listLayers[0]`. It may be removed in the\n * future.\n *\n * @return {Layer}\n */\nScene.prototype.layer = function() {\n return this._layers[0];\n};\n\n/**\n* Returns a list of all {@link Layer layers} belonging to the scene. The\n* returned list is in display order, background to foreground.\n* @return {Layer[]}\n */\nScene.prototype.listLayers = function() {\n return [].concat(this._layers);\n};\n\n\n/**\n * Returns the scene's underlying {@link View view}.\n * @return {View}\n */\nScene.prototype.view = function() {\n return this._view;\n};\n\n\n/**\n * Returns the {@link Viewer viewer} the scene belongs to.\n * @return {Viewer}\n */\nScene.prototype.viewer = function() {\n return this._viewer;\n};\n\n\n/**\n * Returns whether the scene is currently visible.\n * @return {boolean}\n */\nScene.prototype.visible = function() {\n return this._viewer.scene() === this;\n};\n\n\n/**\n * Creates a new {@link Layer layer} and adds it into the scene in the\n * foreground position.\n *\n * @param {Object} opts Layer creation options.\n * @param {Source} opts.source The layer's underlying {@link Source}.\n * @param {Source} opts.geometry The layer's underlying {@link Geometry}.\n * @param {boolean} [opts.pinFirstLevel=false] Whether to pin the first level to\n * provide a fallback of last resort, at the cost of memory consumption.\n * @param {Object} [opts.textureStoreOpts={}] Options to pass to the\n * {@link TextureStore} constructor.\n * @param {Object} [opts.layerOpts={}] Options to pass to the {@link Layer}\n * constructor.\n * @return {Layer}\n */\nScene.prototype.createLayer = function(opts) {\n opts = opts || {};\n\n var textureStoreOpts = opts.textureStoreOpts || {};\n var layerOpts = opts.layerOpts || {};\n\n var source = opts.source;\n var geometry = opts.geometry;\n var view = this._view;\n var stage = this._viewer.stage();\n var textureStore = new TextureStore(source, stage, textureStoreOpts);\n var layer = new Layer(source, geometry, view, textureStore, layerOpts);\n\n this._layers.push(layer);\n\n if (opts.pinFirstLevel) {\n layer.pinFirstLevel();\n }\n\n // Signal that the layers have changed.\n this.emit('layerChange');\n\n return layer;\n};\n\n\n/**\n * Destroys a {@link Layer layer} and removes it from the scene.\n * @param {Layer} layer\n * @throws An error if the layer does not belong to the scene.\n */\nScene.prototype.destroyLayer = function(layer) {\n var i = this._layers.indexOf(layer);\n if (i < 0) {\n throw new Error('No such layer in scene');\n }\n\n this._layers.splice(i, 1);\n\n // Signal that the layers have changed.\n this.emit('layerChange');\n\n layer.textureStore().destroy();\n layer.destroy();\n};\n\n\n/**\n * Destroys all {@link Layer layers} and removes them from the scene.\n */\nScene.prototype.destroyAllLayers = function() {\n while (this._layers.length > 0) {\n this.destroyLayer(this._layers[0]);\n }\n};\n\n\n/**\n * Switches to the scene.\n *\n * This is equivalent to calling {@link Viewer#switchScene} on this scene.\n *\n * @param {Object} opts Options to pass into {@link Viewer#switchScene}.\n * @param {function} done Function to call when the switch is complete.\n */\nScene.prototype.switchTo = function(opts, done) {\n return this._viewer.switchScene(this, opts, done);\n};\n\n\n/**\n * Tweens the scene's underlying {@link View view}.\n *\n * @param {Object} params Target view parameters.\n * @param {Object} opts Transition options.\n * @param {function} [opts.ease=easeInOutQuad] Tween easing function\n * @param {number} [opts.controlsInterrupt=false] allow controls to interrupt\n * an ongoing tween.\n * @param {number} [opts.transitionDuration=1000] Tween duration, in\n * milliseconds.\n * @param {number} [opts.closest=true] Whether to tween through the shortest\n * path between the initial and final view parameters. This requires\n * {@link View#normalizeToClosest} to be implemented, and does nothing\n * otherwise.\n * @param {function} done Function to call when the tween finishes or is\n * interrupted.\n */\nScene.prototype.lookTo = function(params, opts, done) {\n var self = this;\n\n opts = opts || {};\n done = done || noop;\n\n if (type(params) !== 'object') {\n throw new Error(\"Target view parameters must be an object\");\n }\n\n // Quadratic in/out easing.\n var easeInOutQuad = function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * (--k * (k - 2) - 1);\n };\n\n var ease = opts.ease != null ? opts.ease : easeInOutQuad;\n var controlsInterrupt = opts.controlsInterrupt != null ? opts.controlsInterrupt : false;\n var duration = opts.transitionDuration != null ? opts.transitionDuration : 1000;\n var shortest = opts.shortest != null ? opts.shortest : true;\n\n var view = this._view;\n\n var initialParams = view.parameters();\n\n var finalParams = {};\n defaults(finalParams, params);\n defaults(finalParams, initialParams);\n\n // Tween through the shortest path if requested.\n // The view must implement the normalizeToClosest() method.\n if (shortest && view.normalizeToClosest) {\n view.normalizeToClosest(finalParams, finalParams);\n }\n\n var movement = function() {\n\n var finalUpdate = false;\n\n return function(params, elapsed) {\n\n if (elapsed >= duration && finalUpdate) {\n return null;\n }\n\n var delta = Math.min(elapsed / duration, 1);\n\n for (var param in params) {\n var start = initialParams[param];\n var end = finalParams[param];\n params[param] = start + ease(delta) * (end - start);\n }\n\n finalUpdate = elapsed >= duration;\n\n return params;\n\n };\n };\n\n var reenableControls = this._viewer.controls().enabled();\n\n if (!controlsInterrupt) {\n this._viewer.controls().disable();\n }\n\n this.startMovement(movement, function() {\n if (reenableControls) {\n self._viewer.controls().enable();\n }\n done();\n });\n\n};\n\n\n/**\n * Starts a movement, possibly replacing the current movement.\n *\n * @param {function} fn The movement function.\n * @param {function} done Function to be called when the movement finishes or is\n * interrupted.\n */\nScene.prototype.startMovement = function(fn, done) {\n\n var renderLoop = this._viewer.renderLoop();\n\n if (this._movement) {\n this.stopMovement();\n }\n\n var step = fn();\n if (typeof step !== 'function') {\n throw new Error('Bad movement');\n }\n\n this._movement = fn;\n this._movementStep = step;\n this._movementStartTime = now();\n this._movementParams = {};\n this._movementCallback = done;\n\n renderLoop.addEventListener('beforeRender', this._updateMovementHandler);\n renderLoop.renderOnNextFrame();\n};\n\n\n/**\n * Stops the current movement.\n */\nScene.prototype.stopMovement = function() {\n\n var done = this._movementCallback;\n var renderLoop = this._viewer.renderLoop();\n\n if (!this._movement) {\n return;\n }\n\n // Clear state before calling done, to prevent an infinite loop when the\n // callback starts a new movement.\n this._movement = null;\n this._movementStep = null;\n this._movementStartTime = null;\n this._movementParams = null;\n this._movementCallback = null;\n\n renderLoop.removeEventListener('beforeRender', this._updateMovementHandler);\n\n if (done) {\n done();\n }\n};\n\n\n/**\n * Returns the current movement.\n * @return {function}\n */\nScene.prototype.movement = function() {\n return this._movement;\n};\n\n\nScene.prototype._updateMovement = function() {\n\n if (!this._movement) {\n throw new Error('Should not call update');\n }\n\n var renderLoop = this._viewer.renderLoop();\n var view = this._view;\n\n var elapsed = now() - this._movementStartTime;\n var step = this._movementStep;\n var params = this._movementParams;\n\n params = view.parameters(params);\n params = step(params, elapsed);\n if (params == null) {\n this.stopMovement();\n } else {\n view.setParameters(params);\n renderLoop.renderOnNextFrame();\n }\n\n};\n\n\nScene.prototype._updateHotspotContainer = function() {\n if (this.visible()) {\n this._hotspotContainer.show();\n } else {\n this._hotspotContainer.hide();\n }\n};\n\n\nmodule.exports = Scene;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar Hotspot = require('./Hotspot');\nvar calcRect = require('./util/calcRect');\nvar positionAbsolutely = require('./util/positionAbsolutely');\nvar setAbsolute = require('./util/dom').setAbsolute;\nvar setOverflowHidden = require('./util/dom').setOverflowHidden;\nvar setOverflowVisible = require('./util/dom').setOverflowVisible;\nvar setNullSize = require('./util/dom').setNullSize;\nvar setPixelSize = require('./util/dom').setPixelSize;\nvar setPointerEvents = require('./util/dom').setWithVendorPrefix('pointer-events');\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\n/**\n * Signals that a hotspot has been created or destroyed on the container.\n * @event HotspotContainer#hotspotsChange\n */\n\n/**\n * @class HotspotContainer\n * @classdesc\n *\n * Creates a DOM element to hold {@link Hotspot hotspots} and updates their\n * position when necessary.\n *\n * @param {Element} parentDomElement The DOM element inside which the container\n * should be created.\n * @param {Stage} stage The underlying stage.\n * @param {View} view The view according to which the hotspots are positioned.\n * @param {RenderLoop} renderLoop The render loop indicating when the hotspots\n * must be rendered.\n * @param {Object} opts\n * @param {RectSpec} opts.rect Rectangular region covered by the container. See\n * {@link Effects#rect}.\n */\nfunction HotspotContainer(parentDomElement, stage, view, renderLoop, opts) {\n opts = opts || {};\n\n this._parentDomElement = parentDomElement;\n this._stage = stage;\n this._view = view;\n this._renderLoop = renderLoop;\n\n // Hotspot list.\n this._hotspots = [];\n\n // Whether the hotspot container should be visible.\n this._visible = true;\n\n // The current rect.\n this._rect = opts.rect;\n\n // Whether the visibility or the rect have changed since the last DOM update.\n this._visibilityOrRectChanged = true;\n\n // The last seen stage dimensions.\n this._stageWidth = null;\n this._stageHeight = null;\n\n // Temporary variable to hold the calculated position and size.\n this._tmpRect = {};\n\n // Wrapper element. When the rect effect is set, the wrapper will have nonzero\n // dimensions and `pointer-events: none` so that hotspots outside the rect are\n // hidden, but no mouse events are hijacked.\n this._hotspotContainerWrapper = document.createElement('div');\n setAbsolute(this._hotspotContainerWrapper);\n setPointerEvents(this._hotspotContainerWrapper, 'none');\n this._parentDomElement.appendChild(this._hotspotContainerWrapper);\n\n // Hotspot container element. It has zero dimensions and `pointer-events: all`\n // to override the `pointer-events: none` on the wrapper and allow hotspots to\n // be interacted with.\n this._hotspotContainer = document.createElement('div');\n setAbsolute(this._hotspotContainer);\n setPointerEvents(this._hotspotContainer, 'all');\n this._hotspotContainerWrapper.appendChild(this._hotspotContainer);\n\n // Update when the hotspots change or scene is re-rendered.\n this._updateHandler = this._update.bind(this);\n this._renderLoop.addEventListener('afterRender', this._updateHandler);\n}\n\neventEmitter(HotspotContainer);\n\n\n/**\n * Destructor.\n */\nHotspotContainer.prototype.destroy = function() {\n while (this._hotspots.length) {\n this.destroyHotspot(this._hotspots[0]);\n }\n\n this._parentDomElement.removeChild(this._hotspotContainerWrapper);\n\n this._renderLoop.removeEventListener('afterRender', this._updateHandler);\n\n clearOwnProperties(this);\n};\n\n\n/**\n * @return {Element}\n */\nHotspotContainer.prototype.domElement = function() {\n return this._hotspotContainer;\n};\n\n\n/**\n * @param {Rect} rect\n */\nHotspotContainer.prototype.setRect = function(rect) {\n this._rect = rect;\n this._visibilityOrRectChanged = true;\n};\n\n\n/**\n * @return {Rect}\n */\nHotspotContainer.prototype.rect = function() {\n return this._rect;\n};\n\n\n/**\n * Creates a new hotspot in this container.\n *\n * @param {Element} domElement DOM element to use for the hotspot\n * @param {Object} coords The hotspot coordinates.\n * Use {@link RectilinearViewCoords}` for a {@link RectilinearView} or\n * {@link FlatViewCoords} for a {@link FlatView}.\n * @param {Object} opts Options in the same format as the `opts` argument to\n * the {@link Hotspot} constructor.\n * @return {Hotspot}\n */\nHotspotContainer.prototype.createHotspot = function(domElement, coords, opts) {\n coords = coords || {};\n\n var hotspot = new Hotspot(\n domElement, this._hotspotContainer, this._view, coords, opts);\n this._hotspots.push(hotspot);\n hotspot._update();\n\n this.emit('hotspotsChange');\n\n return hotspot;\n};\n\n\n/**\n * @param {Hotspot} hotspot\n * @return {boolean}\n */\nHotspotContainer.prototype.hasHotspot = function(hotspot) {\n return this._hotspots.indexOf(hotspot) >= 0;\n};\n\n\n/**\n * @return {Hotspot[]}\n */\nHotspotContainer.prototype.listHotspots = function() {\n return [].concat(this._hotspots);\n};\n\n\n/**\n * Removes a hotspot from the container.\n *\n * @param {Hotspot} hotspot\n */\nHotspotContainer.prototype.destroyHotspot = function(hotspot) {\n var i = this._hotspots.indexOf(hotspot);\n if (i < 0) {\n throw new Error('No such hotspot');\n }\n this._hotspots.splice(i, 1);\n\n hotspot.destroy();\n this.emit('hotspotsChange');\n};\n\n\n/**\n * Hide the container's DOM element, causing every contained {@link Hotspot} to\n * be hidden.\n */\nHotspotContainer.prototype.hide = function() {\n if (this._visible) {\n this._visible = false;\n this._visibilityOrRectChanged = true;\n this._update();\n }\n};\n\n\n/**\n * Show the container's DOM element, causing every contained {@link Hotspot} to\n * be shown.\n */\nHotspotContainer.prototype.show = function() {\n if (!this._visible) {\n this._visible = true;\n this._visibilityOrRectChanged = true;\n this._update();\n }\n};\n\n\nHotspotContainer.prototype._update = function() {\n var wrapper = this._hotspotContainerWrapper;\n var width = this._stage.width();\n var height = this._stage.height();\n var tmpRect = this._tmpRect;\n\n // Avoid updating the wrapper DOM unless necessary.\n if (this._visibilityOrRectChanged ||\n (this._rect && (width !== this._stageWidth || height !== this._stageHeight))) {\n var visible = this._visible;\n wrapper.style.display = visible ? 'block' : 'none';\n\n if (visible) {\n if (this._rect) {\n calcRect(width, height, this._rect, tmpRect);\n positionAbsolutely(wrapper, width * tmpRect.x, height * tmpRect.y);\n setPixelSize(wrapper, width * tmpRect.width, height * tmpRect.height);\n setOverflowHidden(wrapper);\n } else {\n positionAbsolutely(wrapper, 0, 0);\n setNullSize(wrapper);\n setOverflowVisible(wrapper);\n }\n }\n\n this._stageWidth = width;\n this._stageHeight = height;\n this._visibilityOrRectChanged = false;\n }\n\n // Update hotspots unconditionally, as the view parameters may have changed.\n for (var i = 0; i < this._hotspots.length; i++) {\n this._hotspots[i]._update();\n }\n};\n\n\nmodule.exports = HotspotContainer;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar eventEmitter = require('minimal-event-emitter');\nvar positionAbsolutely = require('./util/positionAbsolutely');\nvar setTransform = require('./util/dom').setTransform;\nvar clearOwnProperties = require('./util/clearOwnProperties');\n\n/**\n * @class Hotspot\n * @classdesc\n *\n * A Hotspot allows a DOM element to be placed at a fixed position in the\n * image. The position is updated automatically when the {@link View view}\n * changes.\n *\n * Positioning is performed with the `transform` CSS property when available,\n * falling back to the `position`, `left` and `top` properties when not.\n * In both cases, the top left corner of the element is placed in the requested\n * position; clients are expected to use additional children elements or other\n * CSS properties to achieve more sophisticated layouts.\n *\n * There are two kinds of hotspots: regular and embedded. A regular hotspot\n * does not change size depending on the zoom level. An embedded hotspot is\n * displayed at a fixed size relative to the panorama, always covering the\n * same portion of the image.\n *\n * Clients should call {@link HotspotContainer#createHotspot} instead of\n * invoking the constructor directly.\n *\n * @param {Element} domElement The DOM element.\n * @param {View} view The view.\n * @param {Object} coords The hotspot coordinates.\n * Use {@link RectilinearViewCoords} for a {@link RectilinearView} or\n * {@link FlatViewCoords} for a {@link FlatView}.\n * @param {Object} opts Additional options.\n * @param {Object} opts.perspective Perspective options for embedded hotspots.\n * @param {number} [opts.perspective.radius=null] If set, embed the hotspot\n * into the image by transforming it into the surface of a sphere with this\n * radius.\n * @param {string} [opts.perspective.extraTransforms=null] If set, append this\n * value to the CSS `transform` property used to position the hotspot. This\n * may be used to rotate an embedded hotspot.\n */\nfunction Hotspot(domElement, parentDomElement, view, coords, opts) {\n\n opts = opts || {};\n opts.perspective = opts.perspective || {};\n opts.perspective.extraTransforms =\n opts.perspective.extraTransforms != null ? opts.perspective.extraTransforms : \"\";\n\n this._domElement = domElement;\n this._parentDomElement = parentDomElement;\n this._view = view;\n this._coords = {};\n this._perspective = {};\n\n this.setPosition(coords);\n\n // Add hotspot into the DOM.\n this._parentDomElement.appendChild(this._domElement);\n\n this.setPerspective(opts.perspective);\n\n // Whether the hotspot is visible.\n // The hotspot may still be hidden if it's inside a hidden HotspotContainer.\n this._visible = true;\n\n // The current calculated screen position.\n this._position = { x: 0, y: 0 };\n}\n\neventEmitter(Hotspot);\n\n\n/**\n * Destructor.\n * Clients should call {@link HotspotContainer#destroyHotspot} instead.\n */\nHotspot.prototype.destroy = function() {\n this._parentDomElement.removeChild(this._domElement);\n clearOwnProperties(this);\n};\n\n\n/**\n * @return {Element}\n */\nHotspot.prototype.domElement = function() {\n return this._domElement;\n};\n\n\n/**\n * @return {Object}\n */\nHotspot.prototype.position = function() {\n return this._coords;\n};\n\n\n/**\n * @param {Object} coords\n */\nHotspot.prototype.setPosition = function(coords) {\n for (var key in coords) {\n this._coords[key] = coords[key];\n }\n this._update();\n // TODO: We should probably emit a hotspotsChange event on the parent\n // HotspotContainer. What's the best way to do so?\n};\n\n\n/**\n * @return {Object}\n */\nHotspot.prototype.perspective = function() {\n return this._perspective;\n};\n\n\n/**\n * @param {Object}\n */\nHotspot.prototype.setPerspective = function(perspective) {\n for (var key in perspective) {\n this._perspective[key] = perspective[key];\n }\n this._update();\n};\n\n\n/**\n * Show the hotspot\n */\nHotspot.prototype.show = function() {\n if (!this._visible) {\n this._visible = true;\n this._update();\n }\n};\n\n\n/**\n * Hide the hotspot\n */\nHotspot.prototype.hide = function() {\n if (this._visible) {\n this._visible = false;\n this._update();\n }\n};\n\n\nHotspot.prototype._update = function() {\n var element = this._domElement;\n\n var params = this._coords;\n var position = this._position;\n var x, y;\n\n var isVisible = false;\n\n if (this._visible) {\n var view = this._view;\n\n if (this._perspective.radius) {\n // Hotspots that are embedded in the panorama may be visible even when\n // positioned behind the camera.\n isVisible = true;\n this._setEmbeddedPosition(view, params);\n } else {\n // Regular hotspots are only visible when positioned in front of the\n // camera. Note that they may be partially visible when positioned outside\n // the viewport.\n view.coordinatesToScreen(params, position);\n x = position.x;\n y = position.y;\n\n if (x != null && y != null) {\n isVisible = true;\n this._setPosition(x, y);\n }\n }\n }\n\n // Show if visible, hide if not.\n if (isVisible) {\n element.style.display = 'block';\n element.style.position = 'absolute';\n }\n else {\n element.style.display = 'none';\n element.style.position = '';\n }\n\n};\n\n\nHotspot.prototype._setEmbeddedPosition = function(view, params) {\n var transform = view.coordinatesToPerspectiveTransform(\n params, this._perspective.radius, this._perspective.extraTransforms);\n setTransform(this._domElement, transform);\n};\n\n\nHotspot.prototype._setPosition = function(x, y) {\n positionAbsolutely(this._domElement, x, y, this._perspective.extraTransforms);\n};\n\n\nmodule.exports = Hotspot;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar setTransform = require('./dom').setTransform;\nvar decimal = require('./decimal');\n\nfunction positionAbsolutely(element, x, y, extraTransforms) {\n extraTransforms = extraTransforms || '';\n // A translateZ(0) transform improves performance on Chrome by creating a\n // new layer for the element, which prevents unnecessary repaints.\n var transform = 'translateX(' + decimal(x) + 'px) translateY(' + decimal(y) + 'px) translateZ(0) ' + extraTransforms;\n setTransform(element, transform);\n}\n\nmodule.exports = positionAbsolutely;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar defaults = require('../util/defaults');\nvar DragControlMethod = require('./Drag');\nvar QtvrControlMethod = require('./Qtvr');\nvar ScrollZoomControlMethod = require('./ScrollZoom');\nvar PinchZoomControlMethod = require('./PinchZoom');\nvar KeyControlMethod = require('./Key');\n\nvar defaultOptions = {\n mouseViewMode: 'drag',\n dragMode: 'pan'\n};\n\n/**\n * Instantiate and register some commonly used {@link ControlMethod} instances.\n *\n * The following instances are registered:\n * - mouseViewDrag\n * - mouseViewQtvr\n * - touchView\n * - pinch\n * - arrowKeys\n * - plusMinusKeys\n * - wasdKeys\n * - qeKeys\n *\n * @param {Controls} controls Where to register the instances.\n * @param {Element} element Element to listen for events.\n * @param {'drag'|'qtvr'} opts.mouseViewMode\n * @param {'pan'|'pinch'} opts.dragMode\n * @param {boolean} opts.scrollZoom\n */\nfunction registerDefaultControls(controls, element, opts) {\n opts = defaults(opts || {}, defaultOptions);\n\n var controlMethods = {\n mouseViewDrag: new DragControlMethod(element, 'mouse'),\n mouseViewQtvr: new QtvrControlMethod(element, 'mouse'),\n\n leftArrowKey: new KeyControlMethod(37, 'x', -0.7, 3),\n rightArrowKey: new KeyControlMethod(39, 'x', 0.7, 3),\n upArrowKey: new KeyControlMethod(38, 'y', -0.7, 3),\n downArrowKey: new KeyControlMethod(40, 'y', 0.7, 3),\n plusKey: new KeyControlMethod(107, 'zoom', -0.7, 3),\n minusKey: new KeyControlMethod(109, 'zoom', 0.7, 3),\n\n wKey: new KeyControlMethod(87, 'y', -0.7, 3),\n aKey: new KeyControlMethod(65, 'x', -0.7, 3),\n sKey: new KeyControlMethod(83, 'y', 0.7, 3),\n dKey: new KeyControlMethod(68, 'x', 0.7, 3),\n qKey: new KeyControlMethod(81, 'roll', 0.7, 3),\n eKey: new KeyControlMethod(69, 'roll', -0.7, 3)\n };\n\n var enabledControls = ['scrollZoom', 'touchView', 'pinch' ];\n\n if (opts.scrollZoom !== false) {\n controlMethods.scrollZoom = new ScrollZoomControlMethod(element); //{ frictionTime: 0 }\n }\n\n var controlMethodGroups = {\n arrowKeys: [ 'leftArrowKey', 'rightArrowKey', 'upArrowKey', 'downArrowKey' ],\n plusMinusKeys: [ 'plusKey', 'minusKey' ],\n wasdKeys: [ 'wKey', 'aKey', 'sKey', 'dKey' ],\n qeKeys: [ 'qKey', 'eKey' ]\n };\n\n\n switch (opts.dragMode) {\n case 'pinch':\n controlMethods.pinch = new DragControlMethod(element, 'touch', { hammerEvent: 'pinch' });\n break;\n case 'pan':\n controlMethods.touchView = new DragControlMethod(element, 'touch');\n controlMethods.pinch = new PinchZoomControlMethod(element, 'touch');\n break;\n default:\n throw new Error(\"Unknown drag mode: \" + opts.dragMode);\n }\n\n switch (opts.mouseViewMode) {\n case 'drag':\n enabledControls.push('mouseViewDrag');\n break;\n case 'qtvr':\n enabledControls.push('mouseViewQtvr');\n break;\n default:\n throw new Error(\"Unknown mouse view mode: \" + opts.mouseViewMode);\n }\n\n for (var id in controlMethods) {\n var method = controlMethods[id];\n controls.registerMethod(id, method);\n if (enabledControls.indexOf(id) >= 0) {\n controls.enableMethod(id);\n }\n }\n\n for (var groupId in controlMethodGroups) {\n var methodGroup = controlMethodGroups[groupId];\n controls.addMethodGroup(groupId, methodGroup);\n }\n\n return controlMethods;\n}\n\nmodule.exports = registerDefaultControls;\n","/*\n * Copyright 2016 Google Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use strict';\n\nvar now = require('./now');\n\nfunction tween(duration, update, done) {\n var cancelled = false;\n\n var startTime = now();\n\n function runUpdate() {\n if(cancelled) { return; }\n var tweenVal = (now() - startTime)/duration;\n if(tweenVal < 1) {\n update(tweenVal);\n requestAnimationFrame(runUpdate);\n }\n else {\n update(1);\n done();\n }\n }\n\n update(0);\n requestAnimationFrame(runUpdate);\n\n return function cancel() {\n cancelled = true;\n done.apply(null, arguments);\n }\n}\n\nmodule.exports = tween;",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"module.exports = WebSocket;\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback) {\n fetchApi(url, fetchOptions).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\nvar omitFetchOptions = false;\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n try {\n fetchIt(url, fetchOptions, callback);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += \"; Domain=\".concat(opt.domain);\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += \"; Path=\".concat(opt.path);\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n\n var query = search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1; // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i); // if there is no match (null) return undefined\n\n if (!language) return undefined; // return the given group match\n\n return language[lookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","module.exports = { prefix: 'fas', iconName: 'sync', icon: [512, 512, [], \"f021\", \"M440.935 12.574l3.966 82.766C399.416 41.904 331.674 8 256 8 134.813 8 33.933 94.924 12.296 209.824 10.908 217.193 16.604 224 24.103 224h49.084c5.57 0 10.377-3.842 11.676-9.259C103.407 137.408 172.931 80 256 80c60.893 0 114.512 30.856 146.104 77.801l-101.53-4.865c-6.845-.328-12.574 5.133-12.574 11.986v47.411c0 6.627 5.373 12 12 12h200.333c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12h-47.411c-6.853 0-12.315 5.729-11.987 12.574zM256 432c-60.895 0-114.517-30.858-146.109-77.805l101.868 4.871c6.845.327 12.573-5.134 12.573-11.986v-47.412c0-6.627-5.373-12-12-12H12c-6.627 0-12 5.373-12 12V500c0 6.627 5.373 12 12 12h47.385c6.863 0 12.328-5.745 11.985-12.599l-4.129-82.575C112.725 470.166 180.405 504 256 504c121.187 0 222.067-86.924 243.704-201.824 1.388-7.369-4.308-14.176-11.807-14.176h-49.084c-5.57 0-10.377 3.842-11.676 9.259C408.593 374.592 339.069 432 256 432z\"] };","module.exports = { prefix: 'fas', iconName: 'sign-in-alt', icon: [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"] };","module.exports = { prefix: 'fas', iconName: 'play', icon: [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"] };","module.exports = { prefix: 'fas', iconName: 'arrow-left', icon: [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"] };","module.exports = { prefix: 'fas', iconName: 'arrow-right', icon: [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"] };","module.exports = { prefix: 'fas', iconName: 'arrow-up', icon: [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"] };","module.exports = { prefix: 'fas', iconName: 'arrow-down', icon: [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"] };","module.exports = { prefix: 'fas', iconName: 'plus', icon: [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"] };","module.exports = { prefix: 'fas', iconName: 'minus', icon: [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"] };","module.exports = { prefix: 'fas', iconName: 'spinner', icon: [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"] };","module.exports = { prefix: 'fas', iconName: 'play-circle', icon: [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"] };","module.exports = { prefix: 'fas', iconName: 'circle', icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"] };","module.exports = { prefix: 'fas', iconName: 'link', icon: [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"] };","module.exports = { prefix: 'fas', iconName: 'unlink', icon: [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"] };","module.exports = { prefix: 'fas', iconName: 'phone', icon: [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"] };","module.exports = { prefix: 'fas', iconName: 'phone-slash', icon: [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"] };","module.exports = { prefix: 'fas', iconName: 'microphone', icon: [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"] };","module.exports = { prefix: 'fas', iconName: 'microphone-slash', icon: [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"] };","module.exports = { prefix: 'fas', iconName: 'expand', icon: [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"] };","module.exports = { prefix: 'fas', iconName: 'info', icon: [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"] };","module.exports = { prefix: 'far', iconName: 'circle', icon: [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"] };","module.exports = { prefix: 'fas', iconName: 'arrow-alt-circle-right', icon: [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"] };","module.exports = { prefix: 'fas', iconName: 'comments', icon: [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"] };","module.exports = { prefix: 'fas', iconName: 'times', icon: [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"] };","module.exports = { prefix: 'fas', iconName: 'check', icon: [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"] };","module.exports = { prefix: 'fas', iconName: 'shoe-prints', icon: [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"] };","module.exports = { prefix: 'fas', iconName: 'walking', icon: [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"] };","module.exports = { prefix: 'fas', iconName: 'user-tie', icon: [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"] };","module.exports = { prefix: 'fas', iconName: 'envelope', icon: [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"] };","module.exports = { prefix: 'fas', iconName: 'map', icon: [576, 512, [], \"f279\", \"M576 56.015v335.97a23.998 23.998 0 0 1-13.267 21.466l-128 64C418.948 485.344 400 473.992 400 455.985v-335.97a23.998 23.998 0 0 1 13.267-21.466l128-64C557.052 26.656 576 38.008 576 56.015zm-206.253 42.07l-144-64c-15.751-7-33.747 4.461-33.747 21.932v335.967a24 24 0 0 0 14.253 21.931l144 64c15.751 7 33.747-4.461 33.747-21.931V120.017a24 24 0 0 0-14.253-21.932zm-228.48-63.536l-128 63.985A23.998 23.998 0 0 0 0 120v335.985c0 18.007 18.948 29.359 34.733 21.466l128-63.985A23.998 23.998 0 0 0 176 392V56.015c0-18.007-18.948-29.359-34.733-21.466z\"] };","module.exports = { prefix: 'far', iconName: 'smile', icon: [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"] };","module.exports = { prefix: 'fas', iconName: 'camera', icon: [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"] };","module.exports = { prefix: 'fas', iconName: 'volume-up', icon: [576, 512, [], \"f028\", \"M256 88.017v335.964c0 21.438-25.943 31.998-40.971 16.971L126.059 352H24c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h102.059l88.971-88.954c15.01-15.01 40.97-4.49 40.97 16.971zm182.056-77.876C422.982.92 403.283 5.668 394.061 20.745c-9.221 15.077-4.473 34.774 10.604 43.995C468.967 104.063 512 174.983 512 256c0 73.431-36.077 142.292-96.507 184.206-14.522 10.072-18.129 30.01-8.057 44.532 10.076 14.528 30.016 18.126 44.531 8.057C529.633 438.927 576 350.406 576 256c0-103.244-54.579-194.877-137.944-245.859zM480 256c0-68.547-36.15-129.777-91.957-163.901-15.076-9.22-34.774-4.471-43.994 10.607-9.22 15.078-4.471 34.774 10.607 43.994C393.067 170.188 416 211.048 416 256c0 41.964-20.62 81.319-55.158 105.276-14.521 10.073-18.128 30.01-8.056 44.532 6.216 8.96 16.185 13.765 26.322 13.765a31.862 31.862 0 0 0 18.21-5.709C449.091 377.953 480 318.938 480 256zm-96 0c0-33.717-17.186-64.35-45.972-81.944-15.079-9.214-34.775-4.463-43.992 10.616s-4.464 34.775 10.615 43.992C314.263 234.538 320 244.757 320 256a32.056 32.056 0 0 1-13.802 26.332c-14.524 10.069-18.136 30.006-8.067 44.53 10.07 14.525 30.008 18.136 44.53 8.067C368.546 316.983 384 287.478 384 256z\"] };","module.exports = { prefix: 'fas', iconName: 'volume-off', icon: [256, 512, [], \"f026\", \"M256 88.017v335.964c0 21.438-25.943 31.998-40.971 16.971L126.059 352H24c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h102.059l88.971-88.954c15.01-15.01 40.97-4.49 40.97 16.971z\"] };","module.exports = { prefix: 'fas', iconName: 'comment', icon: [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"] };","module.exports = { prefix: 'fas', iconName: 'comment-slash', icon: [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"] };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","export const EMPTY_OBJ = {};\r\nexport const EMPTY_ARR = [];\r\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\r\n","import { EMPTY_ARR } from \"./constants\";\r\n\r\n/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\t// @ts-ignore We change the type of `obj` to be `O & P`\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Remove a child node from its parent if attached. This is a workaround for\r\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\r\n * is smaller than including a dedicated polyfill.\r\n * @param {Node} node The node to remove\r\n */\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n\r\nexport const slice = EMPTY_ARR.slice;\r\n","import { _catchError } from './diff/catch-error';\r\n\r\n/**\r\n * The `option` object can potentially contain callback functions\r\n * that are called during various stages of our renderer. This is the\r\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\r\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\r\n * for a full list of available option hooks (most editors/IDEs allow you to\r\n * ctrl+click or cmd+click on mac the type definition below).\r\n * @type {import('./internal').Options}\r\n */\r\nconst options = {\r\n\t_catchError\r\n};\r\n\r\nexport default options;\r\n","import { slice } from './util';\r\nimport options from './options';\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * Create an virtual node (used for JSX)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * constructor for this virtual node\r\n * @param {object | null | undefined} [props] The properties of the virtual node\r\n * @param {Array} [children] The children of the virtual node\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createElement(type, props, children) {\r\n\tlet normalizedProps = {},\r\n\t\tkey,\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'key') key = props[i];\r\n\t\telse if (i == 'ref') ref = props[i];\r\n\t\telse normalizedProps[i] = props[i];\r\n\t}\r\n\r\n\tif (arguments.length > 2) {\r\n\t\tnormalizedProps.children =\r\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\r\n\t}\r\n\r\n\t// If a Component VNode, check for and apply defaultProps\r\n\t// Note: type may be undefined in development, must never error here.\r\n\tif (typeof type == 'function' && type.defaultProps != null) {\r\n\t\tfor (i in type.defaultProps) {\r\n\t\t\tif (normalizedProps[i] === undefined) {\r\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn createVNode(type, normalizedProps, key, ref, null);\r\n}\r\n\r\n/**\r\n * Create a VNode (used internally by Preact)\r\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\r\n * Constructor for this virtual node\r\n * @param {object | string | number | null} props The properties of this virtual node.\r\n * If this virtual node represents a text node, this is the text of the node (string or number).\r\n * @param {string | number | null} key The key for this virtual node, used when\r\n * diffing it against its children\r\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\r\n * receive a reference to its created child\r\n * @returns {import('./internal').VNode}\r\n */\r\nexport function createVNode(type, props, key, ref, original) {\r\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\r\n\t// Do not inline into createElement and coerceToVNode!\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\r\n\t\t// be set to dom.nextSibling which can return `null` and it is important\r\n\t\t// to be able to distinguish between an uninitialized _nextDom and\r\n\t\t// a _nextDom that has been set to `null`\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: original == null ? ++vnodeId : original\r\n\t};\r\n\r\n\t// Only invoke the vnode hook if this was *not* a direct copy:\r\n\tif (original == null && options.vnode != null) options.vnode(vnode);\r\n\r\n\treturn vnode;\r\n}\r\n\r\nexport function createRef() {\r\n\treturn { current: null };\r\n}\r\n\r\nexport function Fragment(props) {\r\n\treturn props.children;\r\n}\r\n\r\n/**\r\n * Check if a the argument is a valid Preact VNode.\r\n * @param {*} vnode\r\n * @returns {vnode is import('./internal').VNode}\r\n */\r\nexport const isValidElement = vnode =>\r\n\tvnode != null && vnode.constructor === undefined;\r\n","import { assign } from './util';\r\nimport { diff, commitRoot } from './diff/index';\r\nimport options from './options';\r\nimport { Fragment } from './create-element';\r\n\r\n/**\r\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\r\n * trigger rendering\r\n * @param {object} props The initial component props\r\n * @param {object} context The initial context from parent components'\r\n * getChildContext\r\n */\r\nexport function Component(props, context) {\r\n\tthis.props = props;\r\n\tthis.context = context;\r\n}\r\n\r\n/**\r\n * Update component state and schedule a re-render.\r\n * @this {import('./internal').Component}\r\n * @param {object | ((s: object, p: object) => object)} update A hash of state\r\n * properties to update with new values or a function that given the current\r\n * state and props returns a new partial state\r\n * @param {() => void} [callback] A function to be called once component state is\r\n * updated\r\n */\r\nComponent.prototype.setState = function(update, callback) {\r\n\t// only clone state when copying to nextState the first time.\r\n\tlet s;\r\n\tif (this._nextState != null && this._nextState !== this.state) {\r\n\t\ts = this._nextState;\r\n\t} else {\r\n\t\ts = this._nextState = assign({}, this.state);\r\n\t}\r\n\r\n\tif (typeof update == 'function') {\r\n\t\t// Some libraries like `immer` mark the current state as readonly,\r\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\r\n\t\tupdate = update(assign({}, s), this.props);\r\n\t}\r\n\r\n\tif (update) {\r\n\t\tassign(s, update);\r\n\t}\r\n\r\n\t// Skip update if updater function returned null\r\n\tif (update == null) return;\r\n\r\n\tif (this._vnode) {\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Immediately perform a synchronous re-render of the component\r\n * @this {import('./internal').Component}\r\n * @param {() => void} [callback] A function to be called after component is\r\n * re-rendered\r\n */\r\nComponent.prototype.forceUpdate = function(callback) {\r\n\tif (this._vnode) {\r\n\t\t// Set render mode so that we can differentiate where the render request\r\n\t\t// is coming from. We need this because forceUpdate should never call\r\n\t\t// shouldComponentUpdate\r\n\t\tthis._force = true;\r\n\t\tif (callback) this._renderCallbacks.push(callback);\r\n\t\tenqueueRender(this);\r\n\t}\r\n};\r\n\r\n/**\r\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\r\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\r\n * @param {object} props Props (eg: JSX attributes) received from parent\r\n * element/component\r\n * @param {object} state The component's current state\r\n * @param {object} context Context object, as returned by the nearest\r\n * ancestor's `getChildContext()`\r\n * @returns {import('./index').ComponentChildren | void}\r\n */\r\nComponent.prototype.render = Fragment;\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n * @param {number | null} [childIndex]\r\n */\r\nexport function getDomSibling(vnode, childIndex) {\r\n\tif (childIndex == null) {\r\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\r\n\t\treturn vnode._parent\r\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\r\n\t\t\t: null;\r\n\t}\r\n\r\n\tlet sibling;\r\n\tfor (; childIndex < vnode._children.length; childIndex++) {\r\n\t\tsibling = vnode._children[childIndex];\r\n\r\n\t\tif (sibling != null && sibling._dom != null) {\r\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\r\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\r\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\r\n\t\t\treturn sibling._dom;\r\n\t\t}\r\n\t}\r\n\r\n\t// If we get here, we have not found a DOM node in this vnode's children.\r\n\t// We must resume from this vnode's sibling (in it's parent _children array)\r\n\t// Only climb up and search the parent if we aren't searching through a DOM\r\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\r\n\t// the search)\r\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\r\n}\r\n\r\n/**\r\n * Trigger in-place re-rendering of a component.\r\n * @param {import('./internal').Component} component The component to rerender\r\n */\r\nfunction renderComponent(component) {\r\n\tlet vnode = component._vnode,\r\n\t\toldDom = vnode._dom,\r\n\t\tparentDom = component._parentDom;\r\n\r\n\tif (parentDom) {\r\n\t\tlet commitQueue = [];\r\n\t\tconst oldVNode = assign({}, vnode);\r\n\t\toldVNode._original = vnode._original + 1;\r\n\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tvnode,\r\n\t\t\toldVNode,\r\n\t\t\tcomponent._globalContext,\r\n\t\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\r\n\t\t\tvnode._hydrating\r\n\t\t);\r\n\t\tcommitRoot(commitQueue, vnode);\r\n\r\n\t\tif (vnode._dom != oldDom) {\r\n\t\t\tupdateParentDomPointers(vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').VNode} vnode\r\n */\r\nfunction updateParentDomPointers(vnode) {\r\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\r\n\t\tvnode._dom = vnode._component.base = null;\r\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\r\n\t\t\tlet child = vnode._children[i];\r\n\t\t\tif (child != null && child._dom != null) {\r\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn updateParentDomPointers(vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * The render queue\r\n * @type {Array}\r\n */\r\nlet rerenderQueue = [];\r\n\r\n/**\r\n * Asynchronously schedule a callback\r\n * @type {(cb: () => void) => void}\r\n */\r\n/* istanbul ignore next */\r\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\r\nconst defer =\r\n\ttypeof Promise == 'function'\r\n\t\t? Promise.prototype.then.bind(Promise.resolve())\r\n\t\t: setTimeout;\r\n\r\n/*\r\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\r\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\r\n * do, and when their effects will be applied. See the links below for some further reading on designing\r\n * asynchronous APIs.\r\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\r\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\r\n */\r\n\r\nlet prevDebounce;\r\n\r\n/**\r\n * Enqueue a rerender of a component\r\n * @param {import('./internal').Component} c The component to rerender\r\n */\r\nexport function enqueueRender(c) {\r\n\tif (\r\n\t\t(!c._dirty &&\r\n\t\t\t(c._dirty = true) &&\r\n\t\t\trerenderQueue.push(c) &&\r\n\t\t\t!process._rerenderCount++) ||\r\n\t\tprevDebounce !== options.debounceRendering\r\n\t) {\r\n\t\tprevDebounce = options.debounceRendering;\r\n\t\t(prevDebounce || defer)(process);\r\n\t}\r\n}\r\n\r\n/** Flush the render queue by rerendering all queued components */\r\nfunction process() {\r\n\tlet queue;\r\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\r\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\t\trerenderQueue = [];\r\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\r\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\r\n\t\tqueue.some(c => {\r\n\t\t\tif (c._dirty) renderComponent(c);\r\n\t\t});\r\n\t}\r\n}\r\nprocess._rerenderCount = 0;\r\n","import { diff, unmount, applyRef } from './index';\r\nimport { createVNode, Fragment } from '../create-element';\r\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\r\nimport { getDomSibling } from '../component';\r\n\r\n/**\r\n * Diff the children of a virtual node\r\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\r\n * children are being diffed\r\n * @param {import('../internal').ComponentChildren[]} renderResult\r\n * @param {import('../internal').VNode} newParentVNode The new virtual\r\n * node whose children should be diff'ed against oldParentVNode\r\n * @param {import('../internal').VNode} oldParentVNode The old virtual\r\n * node whose children should be diff'ed against newParentVNode\r\n * @param {object} globalContext The current context object - modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n */\r\nexport function diffChildren(\r\n\tparentDom,\r\n\trenderResult,\r\n\tnewParentVNode,\r\n\toldParentVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\r\n\r\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\r\n\t// as EMPTY_OBJ._children should be `undefined`.\r\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\r\n\r\n\tlet oldChildrenLength = oldChildren.length;\r\n\r\n\tnewParentVNode._children = [];\r\n\tfor (i = 0; i < renderResult.length; i++) {\r\n\t\tchildVNode = renderResult[i];\r\n\r\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\r\n\t\t\tchildVNode = newParentVNode._children[i] = null;\r\n\t\t}\r\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\r\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\r\n\t\t// it's own DOM & etc. pointers\r\n\t\telse if (\r\n\t\t\ttypeof childVNode == 'string' ||\r\n\t\t\ttypeof childVNode == 'number' ||\r\n\t\t\t// eslint-disable-next-line valid-typeof\r\n\t\t\ttypeof childVNode == 'bigint'\r\n\t\t) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode\r\n\t\t\t);\r\n\t\t} else if (Array.isArray(childVNode)) {\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tFragment,\r\n\t\t\t\t{ children: childVNode },\r\n\t\t\t\tnull,\r\n\t\t\t\tnull,\r\n\t\t\t\tnull\r\n\t\t\t);\r\n\t\t} else if (childVNode._depth > 0) {\r\n\t\t\t// VNode is already in use, clone it. This can happen in the following\r\n\t\t\t// scenario:\r\n\t\t\t// const reuse =
\r\n\t\t\t//
{reuse}{reuse}
\r\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\r\n\t\t\t\tchildVNode.type,\r\n\t\t\t\tchildVNode.props,\r\n\t\t\t\tchildVNode.key,\r\n\t\t\t\tnull,\r\n\t\t\t\tchildVNode._original\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\r\n\t\t}\r\n\r\n\t\t// Terser removes the `continue` here and wraps the loop body\r\n\t\t// in a `if (childVNode) { ... } condition\r\n\t\tif (childVNode == null) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tchildVNode._parent = newParentVNode;\r\n\t\tchildVNode._depth = newParentVNode._depth + 1;\r\n\r\n\t\t// Check if we find a corresponding element in oldChildren.\r\n\t\t// If found, delete the array item by setting to `undefined`.\r\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\r\n\t\t// (holes).\r\n\t\toldVNode = oldChildren[i];\r\n\r\n\t\tif (\r\n\t\t\toldVNode === null ||\r\n\t\t\t(oldVNode &&\r\n\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\tchildVNode.type === oldVNode.type)\r\n\t\t) {\r\n\t\t\toldChildren[i] = undefined;\r\n\t\t} else {\r\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\r\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\r\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\r\n\t\t\t\toldVNode = oldChildren[j];\r\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\r\n\t\t\t\t// We always match by type (in either case).\r\n\t\t\t\tif (\r\n\t\t\t\t\toldVNode &&\r\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\r\n\t\t\t\t\tchildVNode.type === oldVNode.type\r\n\t\t\t\t) {\r\n\t\t\t\t\toldChildren[j] = undefined;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\toldVNode = null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toldVNode = oldVNode || EMPTY_OBJ;\r\n\r\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\r\n\t\tdiff(\r\n\t\t\tparentDom,\r\n\t\t\tchildVNode,\r\n\t\t\toldVNode,\r\n\t\t\tglobalContext,\r\n\t\t\tisSvg,\r\n\t\t\texcessDomChildren,\r\n\t\t\tcommitQueue,\r\n\t\t\toldDom,\r\n\t\t\tisHydrating\r\n\t\t);\r\n\r\n\t\tnewDom = childVNode._dom;\r\n\r\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\r\n\t\t\tif (!refs) refs = [];\r\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\r\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\r\n\t\t}\r\n\r\n\t\tif (newDom != null) {\r\n\t\t\tif (firstChildDom == null) {\r\n\t\t\t\tfirstChildDom = newDom;\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof childVNode.type == 'function' &&\r\n\t\t\t\tchildVNode._children === oldVNode._children\r\n\t\t\t) {\r\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldDom,\r\n\t\t\t\t\tparentDom\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tchildVNode,\r\n\t\t\t\t\toldVNode,\r\n\t\t\t\t\toldChildren,\r\n\t\t\t\t\tnewDom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof newParentVNode.type == 'function') {\r\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\r\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\r\n\t\t\t\t//\r\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\r\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\r\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\r\n\t\t\t\t// node's nextSibling.\r\n\t\t\t\tnewParentVNode._nextDom = oldDom;\r\n\t\t\t}\r\n\t\t} else if (\r\n\t\t\toldDom &&\r\n\t\t\toldVNode._dom == oldDom &&\r\n\t\t\toldDom.parentNode != parentDom\r\n\t\t) {\r\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\r\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\r\n\t\t\toldDom = getDomSibling(oldVNode);\r\n\t\t}\r\n\t}\r\n\r\n\tnewParentVNode._dom = firstChildDom;\r\n\r\n\t// Remove remaining oldChildren if there are any.\r\n\tfor (i = oldChildrenLength; i--; ) {\r\n\t\tif (oldChildren[i] != null) {\r\n\t\t\tif (\r\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\r\n\t\t\t\toldChildren[i]._dom != null &&\r\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\r\n\t\t\t) {\r\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\r\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\r\n\t\t\t\t// _nextDom to it\r\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\r\n\t\t\t}\r\n\r\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t// Set refs only after unmount\r\n\tif (refs) {\r\n\t\tfor (i = 0; i < refs.length; i++) {\r\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction reorderChildren(childVNode, oldDom, parentDom) {\r\n\t// Note: VNodes in nested suspended trees may be missing _children.\r\n\tlet c = childVNode._children;\r\n\tlet tmp = 0;\r\n\tfor (; c && tmp < c.length; tmp++) {\r\n\t\tlet vnode = c[tmp];\r\n\t\tif (vnode) {\r\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\r\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\r\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\r\n\t\t\t// (childVNode here).\r\n\t\t\tvnode._parent = childVNode;\r\n\r\n\t\t\tif (typeof vnode.type == 'function') {\r\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\r\n\t\t\t} else {\r\n\t\t\t\toldDom = placeChild(\r\n\t\t\t\t\tparentDom,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tvnode,\r\n\t\t\t\t\tc,\r\n\t\t\t\t\tvnode._dom,\r\n\t\t\t\t\toldDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn oldDom;\r\n}\r\n\r\n/**\r\n * Flatten and loop through the children of a virtual node\r\n * @param {import('../index').ComponentChildren} children The unflattened\r\n * children of a virtual node\r\n * @returns {import('../internal').VNode[]}\r\n */\r\nexport function toChildArray(children, out) {\r\n\tout = out || [];\r\n\tif (children == null || typeof children == 'boolean') {\r\n\t} else if (Array.isArray(children)) {\r\n\t\tchildren.some(child => {\r\n\t\t\ttoChildArray(child, out);\r\n\t\t});\r\n\t} else {\r\n\t\tout.push(children);\r\n\t}\r\n\treturn out;\r\n}\r\n\r\nfunction placeChild(\r\n\tparentDom,\r\n\tchildVNode,\r\n\toldVNode,\r\n\toldChildren,\r\n\tnewDom,\r\n\toldDom\r\n) {\r\n\tlet nextDom;\r\n\tif (childVNode._nextDom !== undefined) {\r\n\t\t// Only Fragments or components that return Fragment like VNodes will\r\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\r\n\t\t// of last DOM child of this child VNode\r\n\t\tnextDom = childVNode._nextDom;\r\n\r\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\r\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\r\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\r\n\t\t// can clean up the property\r\n\t\tchildVNode._nextDom = undefined;\r\n\t} else if (\r\n\t\toldVNode == null ||\r\n\t\tnewDom != oldDom ||\r\n\t\tnewDom.parentNode == null\r\n\t) {\r\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\r\n\t\t\tparentDom.appendChild(newDom);\r\n\t\t\tnextDom = null;\r\n\t\t} else {\r\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\r\n\t\t\t// - className --> class\r\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\r\n\t\t} else if (\r\n\t\t\tname !== 'href' &&\r\n\t\t\tname !== 'list' &&\r\n\t\t\tname !== 'form' &&\r\n\t\t\t// Default value in browsers is `-1` and an empty string is\r\n\t\t\t// cast to `0` instead\r\n\t\t\tname !== 'tabIndex' &&\r\n\t\t\tname !== 'download' &&\r\n\t\t\tname in dom\r\n\t\t) {\r\n\t\t\ttry {\r\n\t\t\t\tdom[name] = value == null ? '' : value;\r\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\r\n\t\t\t\tbreak o;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\t// ARIA-attributes have a different notion of boolean values.\r\n\t\t// The value `false` is different from the attribute not\r\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\r\n\t\t// ARIA-attributes we could treat false as a removal, but the\r\n\t\t// amount of exceptions would cost us too many bytes. On top of\r\n\t\t// that other VDOM frameworks also always stringify `false`.\r\n\r\n\t\tif (typeof value === 'function') {\r\n\t\t\t// never serialize functions as attribute values\r\n\t\t} else if (\r\n\t\t\tvalue != null &&\r\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\r\n\t\t) {\r\n\t\t\tdom.setAttribute(name, value);\r\n\t\t} else {\r\n\t\t\tdom.removeAttribute(name);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Proxy an event to hooked event handlers\r\n * @param {Event} e The event object from the browser\r\n * @private\r\n */\r\nfunction eventProxy(e) {\r\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\r\n}\r\n\r\nfunction eventProxyCapture(e) {\r\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\r\n}\r\n","import { EMPTY_OBJ } from '../constants';\r\nimport { Component, getDomSibling } from '../component';\r\nimport { Fragment } from '../create-element';\r\nimport { diffChildren } from './children';\r\nimport { diffProps, setProperty } from './props';\r\nimport { assign, removeNode, slice } from '../util';\r\nimport options from '../options';\r\n\r\n/**\r\n * Diff two virtual nodes and apply proper changes to the DOM\r\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object. Modified by getChildContext\r\n * @param {boolean} isSvg Whether or not this element is an SVG node\r\n * @param {Array} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\r\n * element any new dom elements should be placed around. Likely `null` on first\r\n * render (except when hydrating). Can be a sibling DOM element when diffing\r\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\r\n * @param {boolean} [isHydrating] Whether or not we are in hydration\r\n */\r\nexport function diff(\r\n\tparentDom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\toldDom,\r\n\tisHydrating\r\n) {\r\n\tlet tmp,\r\n\t\tnewType = newVNode.type;\r\n\r\n\t// When passing through createElement it assigns the object\r\n\t// constructor as undefined. This to prevent JSON-injection.\r\n\tif (newVNode.constructor !== undefined) return null;\r\n\r\n\t// If the previous diff bailed out, resume creating/hydrating.\r\n\tif (oldVNode._hydrating != null) {\r\n\t\tisHydrating = oldVNode._hydrating;\r\n\t\toldDom = newVNode._dom = oldVNode._dom;\r\n\t\t// if we resume, we want the tree to be \"unlocked\"\r\n\t\tnewVNode._hydrating = null;\r\n\t\texcessDomChildren = [oldDom];\r\n\t}\r\n\r\n\tif ((tmp = options._diff)) tmp(newVNode);\r\n\r\n\ttry {\r\n\t\touter: if (typeof newType == 'function') {\r\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\r\n\t\t\tlet newProps = newVNode.props;\r\n\r\n\t\t\t// Necessary for createContext api. Setting this property will pass\r\n\t\t\t// the context value as `this.context` just for this component.\r\n\t\t\ttmp = newType.contextType;\r\n\t\t\tlet provider = tmp && globalContext[tmp._id];\r\n\t\t\tlet componentContext = tmp\r\n\t\t\t\t? provider\r\n\t\t\t\t\t? provider.props.value\r\n\t\t\t\t\t: tmp._defaultValue\r\n\t\t\t\t: globalContext;\r\n\r\n\t\t\t// Get component and set it to `c`\r\n\t\t\tif (oldVNode._component) {\r\n\t\t\t\tc = newVNode._component = oldVNode._component;\r\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\r\n\t\t\t} else {\r\n\t\t\t\t// Instantiate the new component\r\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\r\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\r\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\r\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\r\n\t\t\t\t\tc.constructor = newType;\r\n\t\t\t\t\tc.render = doRender;\r\n\t\t\t\t}\r\n\t\t\t\tif (provider) provider.sub(c);\r\n\r\n\t\t\t\tc.props = newProps;\r\n\t\t\t\tif (!c.state) c.state = {};\r\n\t\t\t\tc.context = componentContext;\r\n\t\t\t\tc._globalContext = globalContext;\r\n\t\t\t\tisNew = c._dirty = true;\r\n\t\t\t\tc._renderCallbacks = [];\r\n\t\t\t}\r\n\r\n\t\t\t// Invoke getDerivedStateFromProps\r\n\t\t\tif (c._nextState == null) {\r\n\t\t\t\tc._nextState = c.state;\r\n\t\t\t}\r\n\t\t\tif (newType.getDerivedStateFromProps != null) {\r\n\t\t\t\tif (c._nextState == c.state) {\r\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tassign(\r\n\t\t\t\t\tc._nextState,\r\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\toldProps = c.props;\r\n\t\t\toldState = c.state;\r\n\r\n\t\t\t// Invoke pre-render lifecycle methods\r\n\t\t\tif (isNew) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tc.componentWillMount != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillMount();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidMount != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (\r\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\r\n\t\t\t\t\tnewProps !== oldProps &&\r\n\t\t\t\t\tc.componentWillReceiveProps != null\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t(!c._force &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\r\n\t\t\t\t\t\tc.shouldComponentUpdate(\r\n\t\t\t\t\t\t\tnewProps,\r\n\t\t\t\t\t\t\tc._nextState,\r\n\t\t\t\t\t\t\tcomponentContext\r\n\t\t\t\t\t\t) === false) ||\r\n\t\t\t\t\tnewVNode._original === oldVNode._original\r\n\t\t\t\t) {\r\n\t\t\t\t\tc.props = newProps;\r\n\t\t\t\t\tc.state = c._nextState;\r\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\r\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\r\n\t\t\t\t\tc._vnode = newVNode;\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\r\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\t\t\tcommitQueue.push(c);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak outer;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentWillUpdate != null) {\r\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (c.componentDidUpdate != null) {\r\n\t\t\t\t\tc._renderCallbacks.push(() => {\r\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tc.context = componentContext;\r\n\t\t\tc.props = newProps;\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\r\n\r\n\t\t\tc._dirty = false;\r\n\t\t\tc._vnode = newVNode;\r\n\t\t\tc._parentDom = parentDom;\r\n\r\n\t\t\ttmp = c.render(c.props, c.state, c.context);\r\n\r\n\t\t\t// Handle setState called in render, see #2553\r\n\t\t\tc.state = c._nextState;\r\n\r\n\t\t\tif (c.getChildContext != null) {\r\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\r\n\t\t\t}\r\n\r\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\r\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\r\n\t\t\t}\r\n\r\n\t\t\tlet isTopLevelFragment =\r\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\r\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\r\n\r\n\t\t\tdiffChildren(\r\n\t\t\t\tparentDom,\r\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\toldDom,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\tc.base = newVNode._dom;\r\n\r\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\r\n\t\t\tnewVNode._hydrating = null;\r\n\r\n\t\t\tif (c._renderCallbacks.length) {\r\n\t\t\t\tcommitQueue.push(c);\r\n\t\t\t}\r\n\r\n\t\t\tif (clearProcessingException) {\r\n\t\t\t\tc._pendingError = c._processingException = null;\r\n\t\t\t}\r\n\r\n\t\t\tc._force = false;\r\n\t\t} else if (\r\n\t\t\texcessDomChildren == null &&\r\n\t\t\tnewVNode._original === oldVNode._original\r\n\t\t) {\r\n\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t} else {\r\n\t\t\tnewVNode._dom = diffElementNodes(\r\n\t\t\t\toldVNode._dom,\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg,\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\r\n\t} catch (e) {\r\n\t\tnewVNode._original = null;\r\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\r\n\t\tif (isHydrating || excessDomChildren != null) {\r\n\t\t\tnewVNode._dom = oldDom;\r\n\t\t\tnewVNode._hydrating = !!isHydrating;\r\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\r\n\t\t\t// ^ could possibly be simplified to:\r\n\t\t\t// excessDomChildren.length = 0;\r\n\t\t}\r\n\t\toptions._catchError(e, newVNode, oldVNode);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {import('../internal').VNode} root\r\n */\r\nexport function commitRoot(commitQueue, root) {\r\n\tif (options._commit) options._commit(root, commitQueue);\r\n\r\n\tcommitQueue.some(c => {\r\n\t\ttry {\r\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\r\n\t\t\tcommitQueue = c._renderCallbacks;\r\n\t\t\tc._renderCallbacks = [];\r\n\t\t\tcommitQueue.some(cb => {\r\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\r\n\t\t\t\tcb.call(c);\r\n\t\t\t});\r\n\t\t} catch (e) {\r\n\t\t\toptions._catchError(e, c._vnode);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/**\r\n * Diff two virtual nodes representing DOM element\r\n * @param {import('../internal').PreactElement} dom The DOM element representing\r\n * the virtual nodes being diffed\r\n * @param {import('../internal').VNode} newVNode The new virtual node\r\n * @param {import('../internal').VNode} oldVNode The old virtual node\r\n * @param {object} globalContext The current context object\r\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\r\n * @param {*} excessDomChildren\r\n * @param {Array} commitQueue List of components\r\n * which have callbacks to invoke in commitRoot\r\n * @param {boolean} isHydrating Whether or not we are in hydration\r\n * @returns {import('../internal').PreactElement}\r\n */\r\nfunction diffElementNodes(\r\n\tdom,\r\n\tnewVNode,\r\n\toldVNode,\r\n\tglobalContext,\r\n\tisSvg,\r\n\texcessDomChildren,\r\n\tcommitQueue,\r\n\tisHydrating\r\n) {\r\n\tlet oldProps = oldVNode.props;\r\n\tlet newProps = newVNode.props;\r\n\tlet nodeType = newVNode.type;\r\n\tlet i = 0;\r\n\r\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\r\n\tif (nodeType === 'svg') isSvg = true;\r\n\r\n\tif (excessDomChildren != null) {\r\n\t\tfor (; i < excessDomChildren.length; i++) {\r\n\t\t\tconst child = excessDomChildren[i];\r\n\r\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\r\n\t\t\t// argument matches an element in excessDomChildren, remove it from\r\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\r\n\t\t\tif (\r\n\t\t\t\tchild &&\r\n\t\t\t\t'setAttribute' in child === !!nodeType &&\r\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\r\n\t\t\t) {\r\n\t\t\t\tdom = child;\r\n\t\t\t\texcessDomChildren[i] = null;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (dom == null) {\r\n\t\tif (nodeType === null) {\r\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\r\n\t\t\treturn document.createTextNode(newProps);\r\n\t\t}\r\n\r\n\t\tif (isSvg) {\r\n\t\t\tdom = document.createElementNS(\r\n\t\t\t\t'http://www.w3.org/2000/svg',\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tdom = document.createElement(\r\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\r\n\t\t\t\tnodeType,\r\n\t\t\t\tnewProps.is && newProps\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// we created a new parent, so none of the previously attached children can be reused:\r\n\t\texcessDomChildren = null;\r\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\r\n\t\tisHydrating = false;\r\n\t}\r\n\r\n\tif (nodeType === null) {\r\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\r\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\r\n\t\t\tdom.data = newProps;\r\n\t\t}\r\n\t} else {\r\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\r\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\r\n\r\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\r\n\r\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\r\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\r\n\r\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\r\n\t\t// @TODO we should warn in debug mode when props don't match here.\r\n\t\tif (!isHydrating) {\r\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\r\n\t\t\t// we should read the existing DOM attributes to diff them\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\toldProps = {};\r\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\r\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (newHtml || oldHtml) {\r\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\r\n\t\t\t\tif (\r\n\t\t\t\t\t!newHtml ||\r\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\r\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\r\n\t\t\t\t) {\r\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\r\n\r\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\r\n\t\tif (newHtml) {\r\n\t\t\tnewVNode._children = [];\r\n\t\t} else {\r\n\t\t\ti = newVNode.props.children;\r\n\t\t\tdiffChildren(\r\n\t\t\t\tdom,\r\n\t\t\t\tArray.isArray(i) ? i : [i],\r\n\t\t\t\tnewVNode,\r\n\t\t\t\toldVNode,\r\n\t\t\t\tglobalContext,\r\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\r\n\t\t\t\texcessDomChildren,\r\n\t\t\t\tcommitQueue,\r\n\t\t\t\texcessDomChildren\r\n\t\t\t\t\t? excessDomChildren[0]\r\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\r\n\t\t\t\tisHydrating\r\n\t\t\t);\r\n\r\n\t\t\t// Remove children that are not part of any vnode.\r\n\t\t\tif (excessDomChildren != null) {\r\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\r\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// (as above, don't diff props during hydration)\r\n\t\tif (!isHydrating) {\r\n\t\t\tif (\r\n\t\t\t\t'value' in newProps &&\r\n\t\t\t\t(i = newProps.value) !== undefined &&\r\n\t\t\t\t// #2756 For the -element the initial value is 0,\r\n\t\t\t\t// despite the attribute not being present. When the attribute\r\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\r\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\r\n\t\t\t\t(i !== oldProps.value ||\r\n\t\t\t\t\ti !== dom.value ||\r\n\t\t\t\t\t(nodeType === 'progress' && !i))\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\r\n\t\t\t}\r\n\t\t\tif (\r\n\t\t\t\t'checked' in newProps &&\r\n\t\t\t\t(i = newProps.checked) !== undefined &&\r\n\t\t\t\ti !== dom.checked\r\n\t\t\t) {\r\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn dom;\r\n}\r\n\r\n/**\r\n * Invoke or update a ref, depending on whether it is a function or object ref.\r\n * @param {object|function} ref\r\n * @param {any} value\r\n * @param {import('../internal').VNode} vnode\r\n */\r\nexport function applyRef(ref, value, vnode) {\r\n\ttry {\r\n\t\tif (typeof ref == 'function') ref(value);\r\n\t\telse ref.current = value;\r\n\t} catch (e) {\r\n\t\toptions._catchError(e, vnode);\r\n\t}\r\n}\r\n\r\n/**\r\n * Unmount a virtual node from the tree and apply DOM changes\r\n * @param {import('../internal').VNode} vnode The virtual node to unmount\r\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\r\n * initiated the unmount\r\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\r\n * current element is already detached from the DOM.\r\n */\r\nexport function unmount(vnode, parentVNode, skipRemove) {\r\n\tlet r;\r\n\tif (options.unmount) options.unmount(vnode);\r\n\r\n\tif ((r = vnode.ref)) {\r\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\r\n\t}\r\n\r\n\tif ((r = vnode._component) != null) {\r\n\t\tif (r.componentWillUnmount) {\r\n\t\t\ttry {\r\n\t\t\t\tr.componentWillUnmount();\r\n\t\t\t} catch (e) {\r\n\t\t\t\toptions._catchError(e, parentVNode);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tr.base = r._parentDom = null;\r\n\t}\r\n\r\n\tif ((r = vnode._children)) {\r\n\t\tfor (let i = 0; i < r.length; i++) {\r\n\t\t\tif (r[i]) {\r\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\r\n\r\n\t// Must be set to `undefined` to properly clean up `_nextDom`\r\n\t// for which `null` is a valid value. See comment in `create-element.js`\r\n\tvnode._dom = vnode._nextDom = undefined;\r\n}\r\n\r\n/** The `.render()` method for a PFC backing instance. */\r\nfunction doRender(props, state, context) {\r\n\treturn this.constructor(props, context);\r\n}\r\n","import { EMPTY_OBJ } from './constants';\r\nimport { commitRoot, diff } from './diff/index';\r\nimport { createElement, Fragment } from './create-element';\r\nimport options from './options';\r\nimport { slice } from './util';\r\n\r\n/**\r\n * Render a Preact virtual node into a DOM element\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * render into\r\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\r\n * existing DOM tree rooted at `replaceNode`\r\n */\r\nexport function render(vnode, parentDom, replaceNode) {\r\n\tif (options._root) options._root(vnode, parentDom);\r\n\r\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\r\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\r\n\t// element..\r\n\tlet isHydrating = typeof replaceNode === 'function';\r\n\r\n\t// To be able to support calling `render()` multiple times on the same\r\n\t// DOM node, we need to obtain a reference to the previous tree. We do\r\n\t// this by assigning a new `_children` property to DOM nodes which points\r\n\t// to the last rendered tree. By default this property is not present, which\r\n\t// means that we are mounting a new tree for the first time.\r\n\tlet oldVNode = isHydrating\r\n\t\t? null\r\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\r\n\r\n\tvnode = (\r\n\t\t(!isHydrating && replaceNode) ||\r\n\t\tparentDom\r\n\t)._children = createElement(Fragment, null, [vnode]);\r\n\r\n\t// List of effects that need to be called after diffing.\r\n\tlet commitQueue = [];\r\n\tdiff(\r\n\t\tparentDom,\r\n\t\t// Determine the new vnode tree and store it on the DOM element on\r\n\t\t// our custom `_children` property.\r\n\t\tvnode,\r\n\t\toldVNode || EMPTY_OBJ,\r\n\t\tEMPTY_OBJ,\r\n\t\tparentDom.ownerSVGElement !== undefined,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? [replaceNode]\r\n\t\t\t: oldVNode\r\n\t\t\t? null\r\n\t\t\t: parentDom.firstChild\r\n\t\t\t? slice.call(parentDom.childNodes)\r\n\t\t\t: null,\r\n\t\tcommitQueue,\r\n\t\t!isHydrating && replaceNode\r\n\t\t\t? replaceNode\r\n\t\t\t: oldVNode\r\n\t\t\t? oldVNode._dom\r\n\t\t\t: parentDom.firstChild,\r\n\t\tisHydrating\r\n\t);\r\n\r\n\t// Flush all queued effects\r\n\tcommitRoot(commitQueue, vnode);\r\n}\r\n\r\n/**\r\n * Update an existing DOM element with data from a Preact virtual node\r\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\r\n * @param {import('./internal').PreactElement} parentDom The DOM element to\r\n * update\r\n */\r\nexport function hydrate(vnode, parentDom) {\r\n\trender(vnode, parentDom, hydrate);\r\n}\r\n","/**\r\n * Find the closest error boundary to a thrown error and call it\r\n * @param {object} error The thrown value\r\n * @param {import('../internal').VNode} vnode The vnode that threw\r\n * the error that was caught (except for unmounting when this parameter\r\n * is the highest parent that was being unmounted)\r\n */\r\nexport function _catchError(error, vnode) {\r\n\t/** @type {import('../internal').Component} */\r\n\tlet component, ctor, handled;\r\n\r\n\tfor (; (vnode = vnode._parent); ) {\r\n\t\tif ((component = vnode._component) && !component._processingException) {\r\n\t\t\ttry {\r\n\t\t\t\tctor = component.constructor;\r\n\r\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\r\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (component.componentDidCatch != null) {\r\n\t\t\t\t\tcomponent.componentDidCatch(error);\r\n\t\t\t\t\thandled = component._dirty;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\r\n\t\t\t\tif (handled) {\r\n\t\t\t\t\treturn (component._pendingError = component);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\terror = e;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthrow error;\r\n}\r\n","import { options, Fragment } from 'preact';\r\n\r\n/** @typedef {import('preact').VNode} VNode */\r\n\r\nlet vnodeId = 0;\r\n\r\n/**\r\n * @fileoverview\r\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\r\n * - jsx(type, props, key)\r\n * - jsxs(type, props, key)\r\n * - jsxDEV(type, props, key, __source, __self)\r\n *\r\n * The implementation of createVNode here is optimized for performance.\r\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\r\n */\r\n\r\n/**\r\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\r\n * @param {VNode['type']} type\r\n * @param {VNode['props']} props\r\n * @param {VNode['key']} [key]\r\n * @param {string} [__source]\r\n * @param {string} [__self]\r\n */\r\nfunction createVNode(type, props, key, __source, __self) {\r\n\t// We'll want to preserve `ref` in props to get rid of the need for\r\n\t// forwardRef components in the future, but that should happen via\r\n\t// a separate PR.\r\n\tlet normalizedProps = {},\r\n\t\tref,\r\n\t\ti;\r\n\tfor (i in props) {\r\n\t\tif (i == 'ref') {\r\n\t\t\tref = props[i];\r\n\t\t} else {\r\n\t\t\tnormalizedProps[i] = props[i];\r\n\t\t}\r\n\t}\r\n\r\n\tconst vnode = {\r\n\t\ttype,\r\n\t\tprops: normalizedProps,\r\n\t\tkey,\r\n\t\tref,\r\n\t\t_children: null,\r\n\t\t_parent: null,\r\n\t\t_depth: 0,\r\n\t\t_dom: null,\r\n\t\t_nextDom: undefined,\r\n\t\t_component: null,\r\n\t\t_hydrating: null,\r\n\t\tconstructor: undefined,\r\n\t\t_original: --vnodeId,\r\n\t\t__source,\r\n\t\t__self\r\n\t};\r\n\r\n\t// If a Component VNode, check for and apply defaultProps.\r\n\t// Note: `type` is often a String, and can be `undefined` in development.\r\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\r\n\t\tfor (i in ref)\r\n\t\t\tif (typeof normalizedProps[i] === 'undefined') {\r\n\t\t\t\tnormalizedProps[i] = ref[i];\r\n\t\t\t}\r\n\t}\r\n\r\n\tif (options.vnode) options.vnode(vnode);\r\n\treturn vnode;\r\n}\r\n\r\nexport {\r\n\tcreateVNode as jsx,\r\n\tcreateVNode as jsxs,\r\n\tcreateVNode as jsxDEV,\r\n\tFragment\r\n};\r\n","function set(key: string, value: string) {\n try {\n window.localStorage[`emoji-mart.${key}`] = JSON.stringify(value)\n } catch (error) {}\n}\n\nfunction get(key: string): any {\n try {\n const value = window.localStorage[`emoji-mart.${key}`]\n\n if (value) {\n return JSON.parse(value)\n }\n } catch (error) {}\n}\n\nexport default { set, get }\n","const CACHE = new Map()\nconst VERSIONS = [\n { v: 14, emoji: '🫠' },\n { v: 13.1, emoji: '😶‍🌫️' },\n { v: 13, emoji: '🥸' },\n { v: 12.1, emoji: '🧑‍🦰' },\n { v: 12, emoji: '🥱' },\n { v: 11, emoji: '🥰' },\n { v: 5, emoji: '🤩' },\n { v: 4, emoji: '👱‍♀️' },\n { v: 3, emoji: '🤣' },\n { v: 2, emoji: '👋🏻' },\n { v: 1, emoji: '🙃' },\n]\n\nfunction latestVersion() {\n for (const { v, emoji } of VERSIONS) {\n if (isSupported(emoji)) {\n return v\n }\n }\n}\n\nfunction noCountryFlags() {\n if (isSupported('🇨🇦')) {\n return false\n }\n\n return true\n}\n\nfunction isSupported(emoji) {\n if (CACHE.has(emoji)) {\n return CACHE.get(emoji)\n }\n\n const supported = isEmojiSupported(emoji)\n CACHE.set(emoji, supported)\n\n return supported\n}\n\n// https://github.com/koala-interactive/is-emoji-supported\nconst isEmojiSupported = (() => {\n let ctx = null\n try {\n if (!navigator.userAgent.includes('jsdom')) {\n ctx = document\n .createElement('canvas')\n .getContext('2d', { willReadFrequently: true })\n }\n } catch {}\n\n // Not in browser env\n if (!ctx) {\n return () => false\n }\n\n const CANVAS_HEIGHT = 25\n const CANVAS_WIDTH = 20\n const textSize = Math.floor(CANVAS_HEIGHT / 2)\n\n // Initialize convas context\n ctx.font = textSize + 'px Arial, Sans-Serif'\n ctx.textBaseline = 'top'\n ctx.canvas.width = CANVAS_WIDTH * 2\n ctx.canvas.height = CANVAS_HEIGHT\n\n return (unicode) => {\n ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT)\n\n // Draw in red on the left\n ctx.fillStyle = '#FF0000'\n ctx.fillText(unicode, 0, 22)\n\n // Draw in blue on right\n ctx.fillStyle = '#0000FF'\n ctx.fillText(unicode, CANVAS_WIDTH, 22)\n\n const a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data\n const count = a.length\n let i = 0\n\n // Search the first visible pixel\n for (; i < count && !a[i + 3]; i += 4);\n\n // No visible pixel\n if (i >= count) {\n return false\n }\n\n // Emoji has immutable color, so we check the color of the emoji in two different colors\n // the result show be the same.\n const x = CANVAS_WIDTH + ((i / 4) % CANVAS_WIDTH)\n const y = Math.floor(i / 4 / CANVAS_WIDTH)\n const b = ctx.getImageData(x, y, 1, 1).data\n\n if (a[i] !== b[0] || a[i + 2] !== b[2]) {\n return false\n }\n\n // Some emojis are a contraction of different ones, so if it's not\n // supported, it will show multiple characters\n if (ctx.measureText(unicode).width >= CANVAS_WIDTH) {\n return false\n }\n\n // Supported\n return true\n }\n})()\n\nexport default { latestVersion, noCountryFlags }\n","// @ts-nocheck\nimport { Store } from '../helpers'\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'scream',\n 'disappointed',\n 'unamused',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n]\n\nlet Index: any | null = null\n\nfunction add(emoji: { id: string }) {\n Index || (Index = Store.get('frequently') || {})\n\n const emojiId = emoji.id || emoji\n if (!emojiId) return\n\n Index[emojiId] || (Index[emojiId] = 0)\n Index[emojiId] += 1\n\n Store.set('last', emojiId)\n Store.set('frequently', Index)\n}\n\nfunction get({ maxFrequentRows, perLine }) {\n if (!maxFrequentRows) return []\n\n Index || (Index = Store.get('frequently'))\n let emojiIds = []\n\n if (!Index) {\n Index = {}\n\n for (let i in DEFAULTS.slice(0, perLine)) {\n const emojiId = DEFAULTS[i]\n\n Index[emojiId] = perLine - i\n emojiIds.push(emojiId)\n }\n\n return emojiIds\n }\n\n const max = maxFrequentRows * perLine\n const last = Store.get('last')\n\n for (let emojiId in Index) {\n emojiIds.push(emojiId)\n }\n\n emojiIds.sort((a, b) => {\n const aScore = Index[b]\n const bScore = Index[a]\n\n if (aScore == bScore) {\n return a.localeCompare(b)\n }\n\n return aScore - bScore\n })\n\n if (emojiIds.length > max) {\n const removedIds = emojiIds.slice(max)\n emojiIds = emojiIds.slice(0, max)\n\n for (let removedId of removedIds) {\n if (removedId == last) continue\n delete Index[removedId]\n }\n\n if (last && emojiIds.indexOf(last) == -1) {\n delete Index[emojiIds[emojiIds.length - 1]]\n emojiIds.splice(-1, 1, last)\n }\n\n Store.set('frequently', Index)\n }\n\n return emojiIds\n}\n\nexport default { add, get }\n","{\n \"search\": \"Search\",\n \"search_no_results_1\": \"Oh no!\",\n \"search_no_results_2\": \"That emoji couldn’t be found\",\n \"pick\": \"Pick an emoji…\",\n \"add_custom\": \"Add custom emoji\",\n \"categories\": {\n \"activity\": \"Activity\",\n \"custom\": \"Custom\",\n \"flags\": \"Flags\",\n \"foods\": \"Food & Drink\",\n \"frequent\": \"Frequently used\",\n \"nature\": \"Animals & Nature\",\n \"objects\": \"Objects\",\n \"people\": \"Smileys & People\",\n \"places\": \"Travel & Places\",\n \"search\": \"Search Results\",\n \"symbols\": \"Symbols\"\n },\n \"skins\": {\n \"choose\": \"Choose default skin tone\",\n \"1\": \"Default\",\n \"2\": \"Light\",\n \"3\": \"Medium-Light\",\n \"4\": \"Medium\",\n \"5\": \"Medium-Dark\",\n \"6\": \"Dark\"\n }\n}\n","export default {\n autoFocus: {\n value: false,\n },\n emojiButtonColors: {\n value: null,\n },\n emojiButtonRadius: {\n value: '100%',\n },\n emojiButtonSize: {\n value: 36,\n },\n emojiSize: {\n value: 24,\n },\n emojiVersion: {\n value: 14,\n choices: [1, 2, 3, 4, 5, 11, 12, 12.1, 13, 13.1, 14],\n },\n icons: {\n value: 'auto',\n choices: ['auto', 'outline', 'solid'],\n },\n locale: {\n value: 'en',\n choices: [\n 'en',\n 'ar',\n 'be',\n 'cs',\n 'de',\n 'es',\n 'fa',\n 'fi',\n 'fr',\n 'hi',\n 'it',\n 'ja',\n 'nl',\n 'pl',\n 'pt',\n 'ru',\n 'sa',\n 'tr',\n 'uk',\n 'vi',\n 'zh',\n ],\n },\n maxFrequentRows: {\n value: 4,\n },\n navPosition: {\n value: 'top',\n choices: ['top', 'bottom', 'none'],\n },\n noCountryFlags: {\n value: false,\n },\n noResultsEmoji: {\n value: null,\n },\n perLine: {\n value: 9,\n },\n previewEmoji: {\n value: null,\n },\n previewPosition: {\n value: 'bottom',\n choices: ['top', 'bottom', 'none'],\n },\n searchPosition: {\n value: 'sticky',\n choices: ['sticky', 'static', 'none'],\n },\n set: {\n value: 'native',\n choices: ['native', 'apple', 'facebook', 'google', 'twitter'],\n },\n skin: {\n value: 1,\n choices: [1, 2, 3, 4, 5, 6],\n },\n skinTonePosition: {\n value: 'preview',\n choices: ['preview', 'search', 'none'],\n },\n theme: {\n value: 'auto',\n choices: ['auto', 'light', 'dark'],\n },\n\n // Data\n categories: null,\n categoryIcons: null,\n custom: null,\n data: null,\n i18n: null,\n\n // Callbacks\n getImageURL: null,\n getSpritesheetURL: null,\n onAddCustomEmoji: null,\n onClickOutside: null,\n onEmojiSelect: null,\n\n // Deprecated\n stickySearch: {\n deprecated: true,\n value: true,\n },\n}\n","// @ts-nocheck\nimport i18n_en from '@emoji-mart/data/i18n/en.json'\nimport PickerProps from './components/Picker/PickerProps'\nimport {\n FrequentlyUsed,\n NativeSupport,\n SafeFlags,\n SearchIndex,\n} from './helpers'\n\nexport let I18n = null\nexport let Data = null\n\nconst fetchCache = {}\nasync function fetchJSON(src) {\n if (fetchCache[src]) {\n return fetchCache[src]\n }\n\n const response = await fetch(src)\n const json = await response.json()\n\n fetchCache[src] = json\n return json\n}\n\nlet promise: Promise | null = null\nlet initiated = false\nlet initCallback = null\nlet initialized = false\n\nexport function init(options, { caller } = {}) {\n promise ||\n (promise = new Promise((resolve) => {\n initCallback = resolve\n }))\n\n if (options) {\n _init(options)\n } else if (caller && !initialized) {\n console.warn(\n `\\`${caller}\\` requires data to be initialized first. Promise will be pending until \\`init\\` is called.`,\n )\n }\n\n return promise\n}\n\nasync function _init(props) {\n initialized = true\n\n let { emojiVersion, set, locale } = props\n emojiVersion || (emojiVersion = PickerProps.emojiVersion.value)\n set || (set = PickerProps.set.value)\n locale || (locale = PickerProps.locale.value)\n\n if (!Data) {\n Data =\n (typeof props.data === 'function' ? await props.data() : props.data) ||\n (await fetchJSON(\n `https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/sets/${emojiVersion}/${set}.json`,\n ))\n\n Data.emoticons = {}\n Data.natives = {}\n\n Data.categories.unshift({\n id: 'frequent',\n emojis: [],\n })\n\n for (const alias in Data.aliases) {\n const emojiId = Data.aliases[alias]\n const emoji = Data.emojis[emojiId]\n if (!emoji) continue\n\n emoji.aliases || (emoji.aliases = [])\n emoji.aliases.push(alias)\n }\n\n Data.originalCategories = Data.categories\n } else {\n Data.categories = Data.categories.filter((c) => {\n const isCustom = !!c.name\n if (!isCustom) return true\n\n return false\n })\n }\n\n I18n =\n (typeof props.i18n === 'function' ? await props.i18n() : props.i18n) ||\n (locale == 'en'\n ? i18n_en\n : await fetchJSON(\n `https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/i18n/${locale}.json`,\n ))\n\n if (props.custom) {\n for (let i in props.custom) {\n i = parseInt(i)\n const category = props.custom[i]\n const prevCategory = props.custom[i - 1]\n\n if (!category.emojis || !category.emojis.length) continue\n\n category.id || (category.id = `custom_${i + 1}`)\n category.name || (category.name = I18n.categories.custom)\n\n if (prevCategory && !category.icon) {\n category.target = prevCategory.target || prevCategory\n }\n\n Data.categories.push(category)\n\n for (const emoji of category.emojis) {\n Data.emojis[emoji.id] = emoji\n }\n }\n }\n\n if (props.categories) {\n Data.categories = Data.originalCategories\n .filter((c) => {\n return props.categories.indexOf(c.id) != -1\n })\n .sort((c1, c2) => {\n const i1 = props.categories.indexOf(c1.id)\n const i2 = props.categories.indexOf(c2.id)\n\n return i1 - i2\n })\n }\n\n let latestVersionSupport = null\n let noCountryFlags = null\n if (set == 'native') {\n latestVersionSupport = NativeSupport.latestVersion()\n noCountryFlags = props.noCountryFlags || NativeSupport.noCountryFlags()\n }\n\n let categoryIndex = Data.categories.length\n let resetSearchIndex = false\n while (categoryIndex--) {\n const category = Data.categories[categoryIndex]\n\n if (category.id == 'frequent') {\n let { maxFrequentRows, perLine } = props\n\n maxFrequentRows =\n maxFrequentRows >= 0\n ? maxFrequentRows\n : PickerProps.maxFrequentRows.value\n perLine || (perLine = PickerProps.perLine.value)\n\n category.emojis = FrequentlyUsed.get({ maxFrequentRows, perLine })\n }\n\n if (!category.emojis || !category.emojis.length) {\n Data.categories.splice(categoryIndex, 1)\n continue\n }\n\n const { categoryIcons } = props\n if (categoryIcons) {\n const icon = categoryIcons[category.id]\n if (icon && !category.icon) {\n category.icon = icon\n }\n }\n\n let emojiIndex = category.emojis.length\n while (emojiIndex--) {\n const emojiId = category.emojis[emojiIndex]\n const emoji = emojiId.id ? emojiId : Data.emojis[emojiId]\n\n const ignore = () => {\n category.emojis.splice(emojiIndex, 1)\n }\n\n if (!emoji) {\n ignore()\n continue\n }\n\n if (latestVersionSupport && emoji.version > latestVersionSupport) {\n ignore()\n continue\n }\n\n if (noCountryFlags && category.id == 'flags') {\n if (!SafeFlags.includes(emoji.id)) {\n ignore()\n continue\n }\n }\n\n if (!emoji.search) {\n resetSearchIndex = true\n emoji.search =\n ',' +\n [\n [emoji.id, false],\n [emoji.name, true],\n [emoji.keywords, false],\n [emoji.emoticons, false],\n ]\n .map(([strings, split]) => {\n if (!strings) return\n return (Array.isArray(strings) ? strings : [strings])\n .map((string) => {\n return (split ? string.split(/[-|_|\\s]+/) : [string]).map(\n (s) => s.toLowerCase(),\n )\n })\n .flat()\n })\n .flat()\n .filter((a) => a && a.trim())\n .join(',')\n\n if (emoji.emoticons) {\n for (const emoticon of emoji.emoticons) {\n if (Data.emoticons[emoticon]) continue\n Data.emoticons[emoticon] = emoji.id\n }\n }\n\n let skinIndex = 0\n for (const skin of emoji.skins) {\n if (!skin) continue\n skinIndex++\n\n const { native } = skin\n if (native) {\n Data.natives[native] = emoji.id\n emoji.search += `,${native}`\n }\n\n const skinShortcodes =\n skinIndex == 1 ? '' : `:skin-tone-${skinIndex}:`\n skin.shortcodes = `:${emoji.id}:${skinShortcodes}`\n }\n }\n }\n }\n\n if (resetSearchIndex) {\n SearchIndex.reset()\n }\n\n initCallback()\n}\n\nexport function getProps(props, defaultProps, element) {\n props || (props = {})\n\n const _props = {}\n for (let k in defaultProps) {\n _props[k] = getProp(k, props, defaultProps, element)\n }\n\n return _props\n}\n\nexport function getProp(propName, props, defaultProps, element) {\n const defaults = defaultProps[propName]\n let value =\n (element && element.getAttribute(propName)) ||\n (props[propName] != null && props[propName] != undefined\n ? props[propName]\n : null)\n\n if (!defaults) {\n return value\n }\n\n if (\n value != null &&\n defaults.value &&\n typeof defaults.value != typeof value\n ) {\n if (typeof defaults.value == 'boolean') {\n value = value == 'false' ? false : true\n } else {\n value = defaults.value.constructor(value)\n }\n }\n\n if (defaults.transform && value) {\n value = defaults.transform(value)\n }\n\n if (\n value == null ||\n (defaults.choices && defaults.choices.indexOf(value) == -1)\n ) {\n value = defaults.value\n }\n\n return value\n}\n","// @ts-nocheck\nimport { init, Data } from '../config'\n\nconst SHORTCODES_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/\nlet Pool = null\n\nfunction get(emojiId) {\n if (emojiId.id) {\n return emojiId\n }\n\n return (\n Data.emojis[emojiId] ||\n Data.emojis[Data.aliases[emojiId]] ||\n Data.emojis[Data.natives[emojiId]]\n )\n}\n\nfunction reset() {\n Pool = null\n}\n\nasync function search(value, { maxResults, caller } = {}) {\n if (!value || !value.trim().length) return null\n maxResults || (maxResults = 90)\n\n await init(null, { caller: caller || 'SearchIndex.search' })\n\n const values = value\n .toLowerCase()\n .replace(/(\\w)-/, '$1 ')\n .split(/[\\s|,]+/)\n .filter((word, i, words) => {\n return word.trim() && words.indexOf(word) == i\n })\n\n if (!values.length) return\n\n let pool = Pool || (Pool = Object.values(Data.emojis))\n let results, scores\n\n for (const value of values) {\n if (!pool.length) break\n\n results = []\n scores = {}\n\n for (const emoji of pool) {\n if (!emoji.search) continue\n const score = emoji.search.indexOf(`,${value}`)\n if (score == -1) continue\n\n results.push(emoji)\n scores[emoji.id] || (scores[emoji.id] = 0)\n scores[emoji.id] += emoji.id == value ? 0 : score + 1\n }\n\n pool = results\n }\n\n if (results.length < 2) {\n return results\n }\n\n results.sort((a, b) => {\n const aScore = scores[a.id]\n const bScore = scores[b.id]\n\n if (aScore == bScore) {\n return a.id.localeCompare(b.id)\n }\n\n return aScore - bScore\n })\n\n if (results.length > maxResults) {\n results = results.slice(0, maxResults)\n }\n\n return results\n}\n\nexport default { search, get, reset, SHORTCODES_REGEX }\n","export { default as Store } from './store'\n\nexport { default as NativeSupport } from './native-support'\nexport { default as FrequentlyUsed } from './frequently-used'\nexport { default as SearchIndex } from './search-index'\n\nexport const SafeFlags = [\n 'checkered_flag',\n 'crossed_flags',\n 'pirate_flag',\n 'rainbow-flag',\n 'transgender_flag',\n 'triangular_flag_on_post',\n 'waving_black_flag',\n 'waving_white_flag',\n]\n","import { SearchIndex } from './helpers'\n\nexport function deepEqual(a: any, b: any): boolean {\n return (\n Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val == b[index])\n )\n}\n\nexport async function sleep(frames = 1) {\n for (let _ in [...Array(frames).keys()]) {\n await new Promise(requestAnimationFrame)\n }\n}\n\nexport function getEmojiData(emoji, { skinIndex = 0 } = {}) {\n const skin =\n emoji.skins[skinIndex] ||\n (() => {\n skinIndex = 0\n return emoji.skins[skinIndex]\n })()\n\n const emojiData: any = {\n id: emoji.id,\n name: emoji.name,\n native: skin.native,\n unified: skin.unified,\n keywords: emoji.keywords,\n shortcodes: skin.shortcodes || emoji.shortcodes,\n }\n\n if (emoji.skins.length > 1) {\n emojiData.skin = skinIndex + 1\n }\n\n if (skin.src) {\n emojiData.src = skin.src\n }\n\n if (emoji.aliases && emoji.aliases.length) {\n emojiData.aliases = emoji.aliases\n }\n\n if (emoji.emoticons && emoji.emoticons.length) {\n emojiData.emoticons = emoji.emoticons\n }\n\n return emojiData\n}\n\nexport async function getEmojiDataFromNative(nativeString) {\n const results = await SearchIndex.search(nativeString, {\n maxResults: 1,\n caller: 'getEmojiDataFromNative',\n })\n if (!results || !results.length) return null\n\n const emoji = results[0]\n let skinIndex = 0\n\n for (let skin of emoji.skins) {\n if (skin.native == nativeString) {\n break\n }\n\n skinIndex++\n }\n\n return getEmojiData(emoji, { skinIndex })\n}\n","const categories = {\n activity: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n custom: (\n \n \n \n ),\n\n flags: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n foods: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n frequent: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n nature: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n objects: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n people: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n places: {\n outline: (\n \n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n\n symbols: {\n outline: (\n \n \n \n ),\n solid: (\n \n \n \n ),\n },\n}\n\nconst search = {\n loupe: (\n \n \n \n ),\n\n delete: (\n \n \n \n ),\n}\n\nexport default { categories, search }\n","import { Data } from '../../config'\nimport { SearchIndex } from '../../helpers'\n\nexport default function Emoji(props) {\n let { id, skin, emoji } = props\n\n if (props.shortcodes) {\n const matches = props.shortcodes.match(SearchIndex.SHORTCODES_REGEX)\n\n if (matches) {\n id = matches[1]\n\n if (matches[2]) {\n skin = matches[2]\n }\n }\n }\n\n emoji || (emoji = SearchIndex.get(id || props.native))\n if (!emoji) return props.fallback\n\n const emojiSkin = emoji.skins[skin - 1] || emoji.skins[0]\n\n const imageSrc =\n emojiSkin.src ||\n (props.set != 'native' && !props.spritesheet\n ? typeof props.getImageURL === 'function'\n ? props.getImageURL(props.set, emojiSkin.unified)\n : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@14.0.0/img/${props.set}/64/${emojiSkin.unified}.png`\n : undefined)\n\n const spritesheetSrc =\n typeof props.getSpritesheetURL === 'function'\n ? props.getSpritesheetURL(props.set)\n : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@14.0.0/img/${props.set}/sheets-256/64.png`\n\n return (\n \n {imageSrc ? (\n \n ) : props.set == 'native' ? (\n \n {emojiSkin.native}\n \n ) : (\n \n )}\n \n )\n}\n","// @ts-nocheck\nimport { getProp } from '../../config'\n\nconst WindowHTMLElement =\n typeof window !== 'undefined' && window.HTMLElement\n ? window.HTMLElement\n : Object\n\nexport default class HTMLElement extends WindowHTMLElement {\n static get observedAttributes() {\n return Object.keys(this.Props)\n }\n\n constructor(props = {}) {\n super()\n this.props = props\n\n if (props.parent || props.ref) {\n let ref = null\n const parent = props.parent || (ref = props.ref && props.ref.current)\n\n if (ref) ref.innerHTML = ''\n if (parent) parent.appendChild(this)\n }\n }\n\n update(props = {}) {\n for (let k in props) {\n this.attributeChangedCallback(k, null, props[k])\n }\n }\n\n attributeChangedCallback(attr, _, newValue) {\n if (!this.component) return\n\n const value = getProp(\n attr,\n { [attr]: newValue },\n this.constructor.Props,\n this,\n )\n\n if (this.component.componentWillReceiveProps) {\n this.component.componentWillReceiveProps({ [attr]: value })\n } else {\n this.component.props[attr] = value\n this.component.forceUpdate()\n }\n }\n\n disconnectedCallback() {\n this.disconnected = true\n\n if (this.component && this.component.unregister) {\n this.component.unregister()\n }\n }\n}\n","// @ts-nocheck\nimport { HTMLElement } from '.'\n\nexport default class ShadowElement extends HTMLElement {\n constructor(props, { styles } = {}) {\n super(props)\n\n this.setShadow()\n this.injectStyles(styles)\n }\n\n setShadow() {\n this.attachShadow({ mode: 'open' })\n }\n\n injectStyles(styles) {\n if (!styles) return\n\n const style = document.createElement('style')\n style.textContent = styles\n\n this.shadowRoot.insertBefore(style, this.shadowRoot.firstChild)\n }\n}\n","import PickerProps from '../Picker/PickerProps'\n\nexport default {\n fallback: '',\n id: '',\n native: '',\n shortcodes: '',\n size: {\n value: '',\n transform: (value) => {\n // If the value is a number, then we assume it’s a pixel value.\n if (!/\\D/.test(value)) {\n return `${value}px`\n }\n\n return value\n },\n },\n\n // Shared\n set: PickerProps.set,\n skin: PickerProps.skin,\n}\n","import { render } from 'preact'\n\nimport { init, getProps } from '../../config'\nimport { HTMLElement } from '../HTMLElement'\nimport { Emoji } from '.'\nimport EmojiProps from './EmojiProps'\n\nexport default class EmojiElement extends HTMLElement {\n static Props = EmojiProps\n\n constructor(props) {\n super(props)\n }\n\n async connectedCallback() {\n const props = getProps(this.props, EmojiProps, this)\n props.element = this\n props.ref = (component) => {\n this.component = component\n }\n\n await init()\n if (this.disconnected) return\n\n render(, this)\n }\n}\n\nif (typeof customElements !== 'undefined' && !customElements.get('em-emoji')) {\n customElements.define('em-emoji', EmojiElement)\n}\n","import { options } from 'preact';\r\n\r\n/** @type {number} */\r\nlet currentIndex;\r\n\r\n/** @type {import('./internal').Component} */\r\nlet currentComponent;\r\n\r\n/** @type {number} */\r\nlet currentHook = 0;\r\n\r\n/** @type {Array} */\r\nlet afterPaintEffects = [];\r\n\r\nlet oldBeforeDiff = options._diff;\r\nlet oldBeforeRender = options._render;\r\nlet oldAfterDiff = options.diffed;\r\nlet oldCommit = options._commit;\r\nlet oldBeforeUnmount = options.unmount;\r\n\r\nconst RAF_TIMEOUT = 100;\r\nlet prevRaf;\r\n\r\noptions._diff = vnode => {\r\n\tcurrentComponent = null;\r\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\r\n};\r\n\r\noptions._render = vnode => {\r\n\tif (oldBeforeRender) oldBeforeRender(vnode);\r\n\r\n\tcurrentComponent = vnode._component;\r\n\tcurrentIndex = 0;\r\n\r\n\tconst hooks = currentComponent.__hooks;\r\n\tif (hooks) {\r\n\t\thooks._pendingEffects.forEach(invokeCleanup);\r\n\t\thooks._pendingEffects.forEach(invokeEffect);\r\n\t\thooks._pendingEffects = [];\r\n\t}\r\n};\r\n\r\noptions.diffed = vnode => {\r\n\tif (oldAfterDiff) oldAfterDiff(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks && c.__hooks._pendingEffects.length) {\r\n\t\tafterPaint(afterPaintEffects.push(c));\r\n\t}\r\n\tcurrentComponent = null;\r\n};\r\n\r\noptions._commit = (vnode, commitQueue) => {\r\n\tcommitQueue.some(component => {\r\n\t\ttry {\r\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\r\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\r\n\t\t\t\tcb._value ? invokeEffect(cb) : true\r\n\t\t\t);\r\n\t\t} catch (e) {\r\n\t\t\tcommitQueue.some(c => {\r\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\r\n\t\t\t});\r\n\t\t\tcommitQueue = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t});\r\n\r\n\tif (oldCommit) oldCommit(vnode, commitQueue);\r\n};\r\n\r\noptions.unmount = vnode => {\r\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\r\n\r\n\tconst c = vnode._component;\r\n\tif (c && c.__hooks) {\r\n\t\tlet hasErrored;\r\n\t\tc.__hooks._list.forEach(s => {\r\n\t\t\ttry {\r\n\t\t\t\tinvokeCleanup(s);\r\n\t\t\t} catch (e) {\r\n\t\t\t\thasErrored = e;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\r\n\t}\r\n};\r\n\r\n/**\r\n * Get a hook's state from the currentComponent\r\n * @param {number} index The index of the hook to get\r\n * @param {number} type The index of the hook to get\r\n * @returns {any}\r\n */\r\nfunction getHookState(index, type) {\r\n\tif (options._hook) {\r\n\t\toptions._hook(currentComponent, index, currentHook || type);\r\n\t}\r\n\tcurrentHook = 0;\r\n\r\n\t// Largely inspired by:\r\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\r\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\r\n\t// Other implementations to look at:\r\n\t// * https://codesandbox.io/s/mnox05qp8\r\n\tconst hooks =\r\n\t\tcurrentComponent.__hooks ||\r\n\t\t(currentComponent.__hooks = {\r\n\t\t\t_list: [],\r\n\t\t\t_pendingEffects: []\r\n\t\t});\r\n\r\n\tif (index >= hooks._list.length) {\r\n\t\thooks._list.push({});\r\n\t}\r\n\treturn hooks._list[index];\r\n}\r\n\r\n/**\r\n * @param {import('./index').StateUpdater} [initialState]\r\n */\r\nexport function useState(initialState) {\r\n\tcurrentHook = 1;\r\n\treturn useReducer(invokeOrReturn, initialState);\r\n}\r\n\r\n/**\r\n * @param {import('./index').Reducer} reducer\r\n * @param {import('./index').StateUpdater} initialState\r\n * @param {(initialState: any) => void} [init]\r\n * @returns {[ any, (state: any) => void ]}\r\n */\r\nexport function useReducer(reducer, initialState, init) {\r\n\t/** @type {import('./internal').ReducerHookState} */\r\n\tconst hookState = getHookState(currentIndex++, 2);\r\n\thookState._reducer = reducer;\r\n\tif (!hookState._component) {\r\n\t\thookState._value = [\r\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\r\n\r\n\t\t\taction => {\r\n\t\t\t\tconst nextValue = hookState._reducer(hookState._value[0], action);\r\n\t\t\t\tif (hookState._value[0] !== nextValue) {\r\n\t\t\t\t\thookState._value = [nextValue, hookState._value[1]];\r\n\t\t\t\t\thookState._component.setState({});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\thookState._component = currentComponent;\r\n\t}\r\n\r\n\treturn hookState._value;\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 3);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').Effect} callback\r\n * @param {any[]} args\r\n */\r\nexport function useLayoutEffect(callback, args) {\r\n\t/** @type {import('./internal').EffectHookState} */\r\n\tconst state = getHookState(currentIndex++, 4);\r\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\r\n\t\tstate._value = callback;\r\n\t\tstate._args = args;\r\n\r\n\t\tcurrentComponent._renderCallbacks.push(state);\r\n\t}\r\n}\r\n\r\nexport function useRef(initialValue) {\r\n\tcurrentHook = 5;\r\n\treturn useMemo(() => ({ current: initialValue }), []);\r\n}\r\n\r\n/**\r\n * @param {object} ref\r\n * @param {() => object} createHandle\r\n * @param {any[]} args\r\n */\r\nexport function useImperativeHandle(ref, createHandle, args) {\r\n\tcurrentHook = 6;\r\n\tuseLayoutEffect(\r\n\t\t() => {\r\n\t\t\tif (typeof ref == 'function') ref(createHandle());\r\n\t\t\telse if (ref) ref.current = createHandle();\r\n\t\t},\r\n\t\targs == null ? args : args.concat(ref)\r\n\t);\r\n}\r\n\r\n/**\r\n * @param {() => any} factory\r\n * @param {any[]} args\r\n */\r\nexport function useMemo(factory, args) {\r\n\t/** @type {import('./internal').MemoHookState} */\r\n\tconst state = getHookState(currentIndex++, 7);\r\n\tif (argsChanged(state._args, args)) {\r\n\t\tstate._value = factory();\r\n\t\tstate._args = args;\r\n\t\tstate._factory = factory;\r\n\t}\r\n\r\n\treturn state._value;\r\n}\r\n\r\n/**\r\n * @param {() => void} callback\r\n * @param {any[]} args\r\n */\r\nexport function useCallback(callback, args) {\r\n\tcurrentHook = 8;\r\n\treturn useMemo(() => callback, args);\r\n}\r\n\r\n/**\r\n * @param {import('./internal').PreactContext} context\r\n */\r\nexport function useContext(context) {\r\n\tconst provider = currentComponent.context[context._id];\r\n\t// We could skip this call here, but than we'd not call\r\n\t// `options._hook`. We need to do that in order to make\r\n\t// the devtools aware of this hook.\r\n\t/** @type {import('./internal').ContextHookState} */\r\n\tconst state = getHookState(currentIndex++, 9);\r\n\t// The devtools needs access to the context object to\r\n\t// be able to pull of the default value when no provider\r\n\t// is present in the tree.\r\n\tstate._context = context;\r\n\tif (!provider) return context._defaultValue;\r\n\t// This is probably not safe to convert to \"!\"\r\n\tif (state._value == null) {\r\n\t\tstate._value = true;\r\n\t\tprovider.sub(currentComponent);\r\n\t}\r\n\treturn provider.props.value;\r\n}\r\n\r\n/**\r\n * Display a custom label for a custom hook for the devtools panel\r\n * @type {(value: T, cb?: (value: T) => string | number) => void}\r\n */\r\nexport function useDebugValue(value, formatter) {\r\n\tif (options.useDebugValue) {\r\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {(error: any) => void} cb\r\n */\r\nexport function useErrorBoundary(cb) {\r\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\r\n\tconst state = getHookState(currentIndex++, 10);\r\n\tconst errState = useState();\r\n\tstate._value = cb;\r\n\tif (!currentComponent.componentDidCatch) {\r\n\t\tcurrentComponent.componentDidCatch = err => {\r\n\t\t\tif (state._value) state._value(err);\r\n\t\t\terrState[1](err);\r\n\t\t};\r\n\t}\r\n\treturn [\r\n\t\terrState[0],\r\n\t\t() => {\r\n\t\t\terrState[1](undefined);\r\n\t\t}\r\n\t];\r\n}\r\n\r\n/**\r\n * After paint effects consumer.\r\n */\r\nfunction flushAfterPaintEffects() {\r\n\tlet component;\r\n\t// sort the queue by depth (outermost to innermost)\r\n\tafterPaintEffects.sort((a, b) => a._vnode._depth - b._vnode._depth);\r\n\twhile (component = afterPaintEffects.pop()) {\r\n\t\tif (!component._parentDom) continue;\r\n\t\ttry {\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\r\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t} catch (e) {\r\n\t\t\tcomponent.__hooks._pendingEffects = [];\r\n\t\t\toptions._catchError(e, component._vnode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\r\n\r\n/**\r\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\r\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\r\n * the next browser frame.\r\n *\r\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\r\n * even if RAF doesn't fire (for example if the browser tab is not visible)\r\n *\r\n * @param {() => void} callback\r\n */\r\nfunction afterNextFrame(callback) {\r\n\tconst done = () => {\r\n\t\tclearTimeout(timeout);\r\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\r\n\t\tsetTimeout(callback);\r\n\t};\r\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\r\n\r\n\tlet raf;\r\n\tif (HAS_RAF) {\r\n\t\traf = requestAnimationFrame(done);\r\n\t}\r\n}\r\n\r\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\r\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\r\n// Perhaps this is not such a big deal.\r\n/**\r\n * Schedule afterPaintEffects flush after the browser paints\r\n * @param {number} newQueueLength\r\n */\r\nfunction afterPaint(newQueueLength) {\r\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\r\n\t\tprevRaf = options.requestAnimationFrame;\r\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\r\n\t}\r\n}\r\n\r\n/**\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeCleanup(hook) {\r\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\tlet cleanup = hook._cleanup;\r\n\tif (typeof cleanup == 'function') {\r\n\t\thook._cleanup = undefined;\r\n\t\tcleanup();\r\n\t}\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * Invoke a Hook's effect\r\n * @param {import('./internal').EffectHookState} hook\r\n */\r\nfunction invokeEffect(hook) {\r\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\r\n\t// and move the currentComponent away.\r\n\tconst comp = currentComponent;\r\n\thook._cleanup = hook._value();\r\n\tcurrentComponent = comp;\r\n}\r\n\r\n/**\r\n * @param {any[]} oldArgs\r\n * @param {any[]} newArgs\r\n */\r\nfunction argsChanged(oldArgs, newArgs) {\r\n\treturn (\r\n\t\t!oldArgs ||\r\n\t\toldArgs.length !== newArgs.length ||\r\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\r\n\t);\r\n}\r\n\r\nfunction invokeOrReturn(arg, f) {\r\n\treturn typeof f == 'function' ? f(arg) : f;\r\n}\r\n","/**\r\n * Assign properties from `props` to `obj`\r\n * @template O, P The obj and props types\r\n * @param {O} obj The object to copy properties to\r\n * @param {P} props The object to copy properties from\r\n * @returns {O & P}\r\n */\r\nexport function assign(obj, props) {\r\n\tfor (let i in props) obj[i] = props[i];\r\n\treturn /** @type {O & P} */ (obj);\r\n}\r\n\r\n/**\r\n * Check if two objects have a different shape\r\n * @param {object} a\r\n * @param {object} b\r\n * @returns {boolean}\r\n */\r\nexport function shallowDiffers(a, b) {\r\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\r\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\r\n\treturn false;\r\n}\r\n\r\nexport function removeNode(node) {\r\n\tlet parentNode = node.parentNode;\r\n\tif (parentNode) parentNode.removeChild(node);\r\n}\r\n","import { Component } from 'preact';\r\nimport { shallowDiffers } from './util';\r\n\r\n/**\r\n * Component class with a predefined `shouldComponentUpdate` implementation\r\n */\r\nexport function PureComponent(p) {\r\n\tthis.props = p;\r\n}\r\nPureComponent.prototype = new Component();\r\n// Some third-party libraries check if this property is present\r\nPureComponent.prototype.isPureReactComponent = true;\r\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\r\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\r\n};\r\n","import { options } from 'preact';\r\nimport { assign } from './util';\r\n\r\nlet oldDiffHook = options._diff;\r\noptions._diff = vnode => {\r\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\r\n\t\tvnode.props.ref = vnode.ref;\r\n\t\tvnode.ref = null;\r\n\t}\r\n\tif (oldDiffHook) oldDiffHook(vnode);\r\n};\r\n\r\nexport const REACT_FORWARD_SYMBOL =\r\n\t(typeof Symbol != 'undefined' &&\r\n\t\tSymbol.for &&\r\n\t\tSymbol.for('react.forward_ref')) ||\r\n\t0xf47;\r\n\r\n/**\r\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\r\n * wrap components. Using `forwardRef` there is an easy way to get a reference\r\n * of the wrapped component instead of one of the wrapper itself.\r\n * @param {import('./index').ForwardFn} fn\r\n * @returns {import('./internal').FunctionComponent}\r\n */\r\nexport function forwardRef(fn) {\r\n\t// We always have ref in props.ref, except for\r\n\t// mobx-react. It will call this function directly\r\n\t// and always pass ref as the second argument.\r\n\tfunction Forwarded(props, ref) {\r\n\t\tlet clone = assign({}, props);\r\n\t\tdelete clone.ref;\r\n\t\tref = props.ref || ref;\r\n\t\treturn fn(\r\n\t\t\tclone,\r\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\r\n\t\t);\r\n\t}\r\n\r\n\t// mobx-react checks for this being present\r\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\r\n\t// mobx-react heavily relies on implementation details.\r\n\t// It expects an object here with a `render` property,\r\n\t// and prototype.render will fail. Without this\r\n\t// mobx-react throws.\r\n\tForwarded.render = Forwarded;\r\n\r\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\r\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\r\n\treturn Forwarded;\r\n}\r\n","import { Component, createElement, options, Fragment } from 'preact';\r\nimport { assign } from './util';\r\n\r\nconst oldCatchError = options._catchError;\r\noptions._catchError = function(error, newVNode, oldVNode) {\r\n\tif (error.then) {\r\n\t\t/** @type {import('./internal').Component} */\r\n\t\tlet component;\r\n\t\tlet vnode = newVNode;\r\n\r\n\t\tfor (; (vnode = vnode._parent); ) {\r\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\r\n\t\t\t\tif (newVNode._dom == null) {\r\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\r\n\t\t\t\t\tnewVNode._children = oldVNode._children;\r\n\t\t\t\t}\r\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\r\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\toldCatchError(error, newVNode, oldVNode);\r\n};\r\n\r\nconst oldUnmount = options.unmount;\r\noptions.unmount = function(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tconst component = vnode._component;\r\n\tif (component && component._onResolve) {\r\n\t\tcomponent._onResolve();\r\n\t}\r\n\r\n\t// if the component is still hydrating\r\n\t// most likely it is because the component is suspended\r\n\t// we set the vnode.type as `null` so that it is not a typeof function\r\n\t// so the unmount will remove the vnode._dom\r\n\tif (component && vnode._hydrating === true) {\r\n\t\tvnode.type = null;\r\n\t}\r\n\r\n\tif (oldUnmount) oldUnmount(vnode);\r\n};\r\n\r\nfunction detachedClone(vnode, detachedParent, parentDom) {\r\n\tif (vnode) {\r\n\t\tif (vnode._component && vnode._component.__hooks) {\r\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\r\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\r\n\t\t\t});\r\n\r\n\t\t\tvnode._component.__hooks = null;\r\n\t\t}\r\n\r\n\t\tvnode = assign({}, vnode);\r\n\t\tif (vnode._component != null) {\r\n\t\t\tif (vnode._component._parentDom === parentDom) {\r\n\t\t\t\tvnode._component._parentDom = detachedParent;\r\n\t\t\t}\r\n\t\t\tvnode._component = null;\r\n\t\t}\r\n\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\r\n\t\t\t);\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\nfunction removeOriginal(vnode, detachedParent, originalParent) {\r\n\tif (vnode) {\r\n\t\tvnode._original = null;\r\n\t\tvnode._children =\r\n\t\t\tvnode._children &&\r\n\t\t\tvnode._children.map(child =>\r\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\r\n\t\t\t);\r\n\r\n\t\tif (vnode._component) {\r\n\t\t\tif (vnode._component._parentDom === detachedParent) {\r\n\t\t\t\tif (vnode._dom) {\r\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\r\n\t\t\t\t}\r\n\t\t\t\tvnode._component._force = true;\r\n\t\t\t\tvnode._component._parentDom = originalParent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn vnode;\r\n}\r\n\r\n// having custom inheritance instead of a class here saves a lot of bytes\r\nexport function Suspense() {\r\n\t// we do not call super here to golf some bytes...\r\n\tthis._pendingSuspensionCount = 0;\r\n\tthis._suspenders = null;\r\n\tthis._detachOnNextRender = null;\r\n}\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspense.prototype = new Component();\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {Promise} promise The thrown promise\r\n * @param {import('./internal').VNode} suspendingVNode The suspending component\r\n */\r\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\r\n\tconst suspendingComponent = suspendingVNode._component;\r\n\r\n\t/** @type {import('./internal').SuspenseComponent} */\r\n\tconst c = this;\r\n\r\n\tif (c._suspenders == null) {\r\n\t\tc._suspenders = [];\r\n\t}\r\n\tc._suspenders.push(suspendingComponent);\r\n\r\n\tconst resolve = suspended(c._vnode);\r\n\r\n\tlet resolved = false;\r\n\tconst onResolved = () => {\r\n\t\tif (resolved) return;\r\n\r\n\t\tresolved = true;\r\n\t\tsuspendingComponent._onResolve = null;\r\n\r\n\t\tif (resolve) {\r\n\t\t\tresolve(onSuspensionComplete);\r\n\t\t} else {\r\n\t\t\tonSuspensionComplete();\r\n\t\t}\r\n\t};\r\n\r\n\tsuspendingComponent._onResolve = onResolved;\r\n\r\n\tconst onSuspensionComplete = () => {\r\n\t\tif (!--c._pendingSuspensionCount) {\r\n\t\t\t// If the suspension was during hydration we don't need to restore the\r\n\t\t\t// suspended children into the _children array\r\n\t\t\tif (c.state._suspended) {\r\n\t\t\t\tconst suspendedVNode = c.state._suspended;\r\n\t\t\t\tc._vnode._children[0] = removeOriginal(\r\n\t\t\t\t\tsuspendedVNode,\r\n\t\t\t\t\tsuspendedVNode._component._parentDom,\r\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\r\n\r\n\t\t\tlet suspended;\r\n\t\t\twhile ((suspended = c._suspenders.pop())) {\r\n\t\t\t\tsuspended.forceUpdate();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * We do not set `suspended: true` during hydration because we want the actual markup\r\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\r\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\r\n\t */\r\n\tconst wasHydrating = suspendingVNode._hydrating === true;\r\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\r\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\r\n\t}\r\n\tpromise.then(onResolved, onResolved);\r\n};\r\n\r\nSuspense.prototype.componentWillUnmount = function() {\r\n\tthis._suspenders = [];\r\n};\r\n\r\n/**\r\n * @this {import('./internal').SuspenseComponent}\r\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\r\n * @param {import('./internal').SuspenseState} state\r\n */\r\nSuspense.prototype.render = function(props, state) {\r\n\tif (this._detachOnNextRender) {\r\n\t\t// When the Suspense's _vnode was created by a call to createVNode\r\n\t\t// (i.e. due to a setState further up in the tree)\r\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\r\n\t\tif (this._vnode._children) {\r\n\t\t\tconst detachedParent = document.createElement('div');\r\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\r\n\t\t\tthis._vnode._children[0] = detachedClone(\r\n\t\t\t\tthis._detachOnNextRender,\r\n\t\t\t\tdetachedParent,\r\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis._detachOnNextRender = null;\r\n\t}\r\n\r\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\r\n\t/** @type {import('./internal').VNode} */\r\n\tconst fallback =\r\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\r\n\tif (fallback) fallback._hydrating = null;\r\n\r\n\treturn [\r\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\r\n\t\tfallback\r\n\t];\r\n};\r\n\r\n/**\r\n * Checks and calls the parent component's _suspended method, passing in the\r\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\r\n * that one of its children/descendants suspended.\r\n *\r\n * The parent MAY return a callback. The callback will get called when the\r\n * suspension resolves, notifying the parent of the fact.\r\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\r\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\r\n * This is a way for the parent to delay unsuspending.\r\n *\r\n * If the parent does not return a callback then the resolved vnode\r\n * gets unsuspended immediately when it resolves.\r\n *\r\n * @param {import('./internal').VNode} vnode\r\n * @returns {((unsuspend: () => void) => void)?}\r\n */\r\nexport function suspended(vnode) {\r\n\t/** @type {import('./internal').Component} */\r\n\tlet component = vnode._parent._component;\r\n\treturn component && component._suspended && component._suspended(vnode);\r\n}\r\n\r\nexport function lazy(loader) {\r\n\tlet prom;\r\n\tlet component;\r\n\tlet error;\r\n\r\n\tfunction Lazy(props) {\r\n\t\tif (!prom) {\r\n\t\t\tprom = loader();\r\n\t\t\tprom.then(\r\n\t\t\t\texports => {\r\n\t\t\t\t\tcomponent = exports.default || exports;\r\n\t\t\t\t},\r\n\t\t\t\te => {\r\n\t\t\t\t\terror = e;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (error) {\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\tif (!component) {\r\n\t\t\tthrow prom;\r\n\t\t}\r\n\r\n\t\treturn createElement(component, props);\r\n\t}\r\n\r\n\tLazy.displayName = 'Lazy';\r\n\tLazy._forwarded = true;\r\n\treturn Lazy;\r\n}\r\n","import { Component, toChildArray } from 'preact';\r\nimport { suspended } from './suspense.js';\r\n\r\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\r\nconst SUSPENDED_COUNT = 0;\r\nconst RESOLVED_COUNT = 1;\r\nconst NEXT_NODE = 2;\r\n\r\n// Having custom inheritance instead of a class here saves a lot of bytes.\r\nexport function SuspenseList() {\r\n\tthis._next = null;\r\n\tthis._map = null;\r\n}\r\n\r\n// Mark one of child's earlier suspensions as resolved.\r\n// Some pending callbacks may become callable due to this\r\n// (e.g. the last suspended descendant gets resolved when\r\n// revealOrder === 'together'). Process those callbacks as well.\r\nconst resolve = (list, child, node) => {\r\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\r\n\t\t// The number a child (or any of its descendants) has been suspended\r\n\t\t// matches the number of times it's been resolved. Therefore we\r\n\t\t// mark the child as completely resolved by deleting it from ._map.\r\n\t\t// This is used to figure out when *all* children have been completely\r\n\t\t// resolved when revealOrder is 'together'.\r\n\t\tlist._map.delete(child);\r\n\t}\r\n\r\n\t// If revealOrder is falsy then we can do an early exit, as the\r\n\t// callbacks won't get queued in the node anyway.\r\n\t// If revealOrder is 'together' then also do an early exit\r\n\t// if all suspended descendants have not yet been resolved.\r\n\tif (\r\n\t\t!list.props.revealOrder ||\r\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Walk the currently suspended children in order, calling their\r\n\t// stored callbacks on the way. Stop if we encounter a child that\r\n\t// has not been completely resolved yet.\r\n\tnode = list._next;\r\n\twhile (node) {\r\n\t\twhile (node.length > 3) {\r\n\t\t\tnode.pop()();\r\n\t\t}\r\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tlist._next = node = node[NEXT_NODE];\r\n\t}\r\n};\r\n\r\n// Things we do here to save some bytes but are not proper JS inheritance:\r\n// - call `new Component()` as the prototype\r\n// - do not set `Suspense.prototype.constructor` to `Suspense`\r\nSuspenseList.prototype = new Component();\r\n\r\nSuspenseList.prototype._suspended = function(child) {\r\n\tconst list = this;\r\n\tconst delegated = suspended(list._vnode);\r\n\r\n\tlet node = list._map.get(child);\r\n\tnode[SUSPENDED_COUNT]++;\r\n\r\n\treturn unsuspend => {\r\n\t\tconst wrappedUnsuspend = () => {\r\n\t\t\tif (!list.props.revealOrder) {\r\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\r\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\r\n\t\t\t\tunsuspend();\r\n\t\t\t} else {\r\n\t\t\t\tnode.push(unsuspend);\r\n\t\t\t\tresolve(list, child, node);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (delegated) {\r\n\t\t\tdelegated(wrappedUnsuspend);\r\n\t\t} else {\r\n\t\t\twrappedUnsuspend();\r\n\t\t}\r\n\t};\r\n};\r\n\r\nSuspenseList.prototype.render = function(props) {\r\n\tthis._next = null;\r\n\tthis._map = new Map();\r\n\r\n\tconst children = toChildArray(props.children);\r\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\r\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\r\n\t\t// then flip the child list around so that the last child will be\r\n\t\t// the first in the linked list.\r\n\t\tchildren.reverse();\r\n\t}\r\n\t// Build the linked list. Iterate through the children in reverse order\r\n\t// so that `_next` points to the first linked list node to be resolved.\r\n\tfor (let i = children.length; i--; ) {\r\n\t\t// Create a new linked list node as an array of form:\r\n\t\t// \t[suspended_count, resolved_count, next_node]\r\n\t\t// where suspended_count and resolved_count are numeric counters for\r\n\t\t// keeping track how many times a node has been suspended and resolved.\r\n\t\t//\r\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\r\n\t\t// processing callbacks until componentDidMount has been called. In a sense\r\n\t\t// node is suspended at least until componentDidMount gets called!\r\n\t\t//\r\n\t\t// Pending callbacks are added to the end of the node:\r\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\r\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\r\n\t}\r\n\treturn props.children;\r\n};\r\n\r\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\r\n\t// Iterate through all children after mounting for two reasons:\r\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\r\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\r\n\t// The nodes can now be completely consumed from the linked list.\r\n\t// 2. Handle nodes that might have gotten resolved between render and\r\n\t// componentDidMount.\r\n\tthis._map.forEach((node, child) => {\r\n\t\tresolve(this, child, node);\r\n\t});\r\n};\r\n","import {\r\n\trender as preactRender,\r\n\thydrate as preactHydrate,\r\n\toptions,\r\n\ttoChildArray,\r\n\tComponent\r\n} from 'preact';\r\n\r\nexport const REACT_ELEMENT_TYPE =\r\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\r\n\t0xeac7;\r\n\r\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\r\n\r\nconst IS_DOM = typeof document !== 'undefined';\r\n\r\n// Input types for which onchange should not be converted to oninput.\r\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\r\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\r\nconst onChangeInputType = type =>\r\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\r\n\t\t? /fil|che|rad/i\r\n\t\t: /fil|che|ra/i\r\n\t).test(type);\r\n\r\n// Some libraries like `react-virtualized` explicitly check for this.\r\nComponent.prototype.isReactComponent = {};\r\n\r\n// `UNSAFE_*` lifecycle hooks\r\n// Preact only ever invokes the unprefixed methods.\r\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\r\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\r\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\r\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\r\n// See https://github.com/preactjs/preact/issues/1941\r\n[\r\n\t'componentWillMount',\r\n\t'componentWillReceiveProps',\r\n\t'componentWillUpdate'\r\n].forEach(key => {\r\n\tObject.defineProperty(Component.prototype, key, {\r\n\t\tconfigurable: true,\r\n\t\tget() {\r\n\t\t\treturn this['UNSAFE_' + key];\r\n\t\t},\r\n\t\tset(v) {\r\n\t\t\tObject.defineProperty(this, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\twritable: true,\r\n\t\t\t\tvalue: v\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n});\r\n\r\n/**\r\n * Proxy render() since React returns a Component reference.\r\n * @param {import('./internal').VNode} vnode VNode tree to render\r\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\r\n * @param {() => void} [callback] Optional callback that will be called after rendering\r\n * @returns {import('./internal').Component | null} The root component reference or null\r\n */\r\nexport function render(vnode, parent, callback) {\r\n\t// React destroys any existing DOM nodes, see #1727\r\n\t// ...but only on the first render, see #1828\r\n\tif (parent._children == null) {\r\n\t\tparent.textContent = '';\r\n\t}\r\n\r\n\tpreactRender(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nexport function hydrate(vnode, parent, callback) {\r\n\tpreactHydrate(vnode, parent);\r\n\tif (typeof callback == 'function') callback();\r\n\r\n\treturn vnode ? vnode._component : null;\r\n}\r\n\r\nlet oldEventHook = options.event;\r\noptions.event = e => {\r\n\tif (oldEventHook) e = oldEventHook(e);\r\n\te.persist = empty;\r\n\te.isPropagationStopped = isPropagationStopped;\r\n\te.isDefaultPrevented = isDefaultPrevented;\r\n\treturn (e.nativeEvent = e);\r\n};\r\n\r\nfunction empty() {}\r\n\r\nfunction isPropagationStopped() {\r\n\treturn this.cancelBubble;\r\n}\r\n\r\nfunction isDefaultPrevented() {\r\n\treturn this.defaultPrevented;\r\n}\r\n\r\nlet classNameDescriptor = {\r\n\tconfigurable: true,\r\n\tget() {\r\n\t\treturn this.class;\r\n\t}\r\n};\r\n\r\nlet oldVNodeHook = options.vnode;\r\noptions.vnode = vnode => {\r\n\tlet type = vnode.type;\r\n\tlet props = vnode.props;\r\n\tlet normalizedProps = props;\r\n\r\n\t// only normalize props on Element nodes\r\n\tif (typeof type === 'string') {\r\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\r\n\t\tnormalizedProps = {};\r\n\r\n\t\tfor (let i in props) {\r\n\t\t\tlet value = props[i];\r\n\r\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\r\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\telse if (i === 'value' && 'defaultValue' in props && value == null) {\r\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\r\n\t\t\t\t// a default value\r\n\t\t\t\tcontinue;\r\n\t\t\t} else if (\r\n\t\t\t\ti === 'defaultValue' &&\r\n\t\t\t\t'value' in props &&\r\n\t\t\t\tprops.value == null\r\n\t\t\t) {\r\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\r\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\r\n\t\t\t\ti = 'value';\r\n\t\t\t} else if (i === 'download' && value === true) {\r\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\r\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\r\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\r\n\t\t\t\t// value will be used as the file name and the file will be called\r\n\t\t\t\t// \"true\" upon downloading it.\r\n\t\t\t\tvalue = '';\r\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\r\n\t\t\t\ti = 'ondblclick';\r\n\t\t\t} else if (\r\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\r\n\t\t\t\t!onChangeInputType(props.type)\r\n\t\t\t) {\r\n\t\t\t\ti = 'oninput';\r\n\t\t\t} else if (/^onfocus$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusin';\r\n\t\t\t} else if (/^onblur$/i.test(i)) {\r\n\t\t\t\ti = 'onfocusout';\r\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp)/.test(i)) {\r\n\t\t\t\ti = i.toLowerCase();\r\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\r\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\r\n\t\t\t} else if (value === null) {\r\n\t\t\t\tvalue = undefined;\r\n\t\t\t}\r\n\r\n\t\t\tnormalizedProps[i] = value;\r\n\t\t}\r\n\r\n\t\t// Add support for array select values: