{"version":3,"file":"index-d29bd01f.js","sources":["../../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","../../../../node_modules/.pnpm/react@17.0.2/node_modules/react/cjs/react.production.min.js","../../../../node_modules/.pnpm/react@17.0.2/node_modules/react/index.js","../../../../node_modules/.pnpm/react@17.0.2/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/.pnpm/react@17.0.2/node_modules/react/jsx-runtime.js","../../../../node_modules/.pnpm/scheduler@0.20.2/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/.pnpm/scheduler@0.20.2/node_modules/scheduler/index.js","../../../../node_modules/.pnpm/react-dom@17.0.2_react@17.0.2/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/.pnpm/react-dom@17.0.2_react@17.0.2/node_modules/react-dom/index.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/bind.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/utils.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/AxiosError.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/null.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/toFormData.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/buildURL.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/InterceptorManager.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/defaults/transitional.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/platform/browser/classes/FormData.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/platform/browser/classes/Blob.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/platform/browser/index.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/defaults/index.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/parseHeaders.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/AxiosHeaders.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/transformData.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/cancel/isCancel.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/cancel/CanceledError.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/settle.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/cookies.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/combineURLs.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/buildFullPath.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/parseProtocol.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/speedometer.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/adapters/xhr.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/adapters/adapters.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/dispatchRequest.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/mergeConfig.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/env/data.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/validator.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/core/Axios.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/cancel/CancelToken.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/spread.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/isAxiosError.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../node_modules/.pnpm/axios@1.3.4/node_modules/axios/lib/axios.js","../../../../node_modules/.pnpm/map-obj@4.3.0/node_modules/map-obj/index.js","../../../../node_modules/.pnpm/camelcase@7.0.1/node_modules/camelcase/index.js","../../../../node_modules/.pnpm/quick-lru@6.1.1/node_modules/quick-lru/index.js","../../../../node_modules/.pnpm/camelcase-keys@8.0.2/node_modules/camelcase-keys/index.js","../../../../node_modules/.pnpm/tslib@2.5.0/node_modules/tslib/tslib.es6.js","../../../../node_modules/.pnpm/lower-case@2.0.2/node_modules/lower-case/dist.es2015/index.js","../../../../node_modules/.pnpm/no-case@3.0.4/node_modules/no-case/dist.es2015/index.js","../../../../node_modules/.pnpm/dot-case@3.0.4/node_modules/dot-case/dist.es2015/index.js","../../../../node_modules/.pnpm/snake-case@3.0.4/node_modules/snake-case/dist.es2015/index.js","../../../../node_modules/.pnpm/snakecase-keys@5.4.5/node_modules/snakecase-keys/index.js","../../../api/src/enums.ts","../../../api/src/config.ts","../../../api/src/axios.ts","../../../api/src/headers.ts","../../../../node_modules/.pnpm/cookie@0.4.2/node_modules/cookie/index.js","../../../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/utils.js","../../../../node_modules/.pnpm/universal-cookie@4.0.4/node_modules/universal-cookie/es6/Cookies.js","../../../../node_modules/.pnpm/react-cookie@4.1.1_react@17.0.2/node_modules/react-cookie/es6/CookiesContext.js","../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../../node_modules/.pnpm/react-cookie@4.1.1_react@17.0.2/node_modules/react-cookie/es6/utils.js","../../../../node_modules/.pnpm/react-cookie@4.1.1_react@17.0.2/node_modules/react-cookie/es6/useCookies.js","../../../api/src/hooks/useAuthenticatedUser.ts","../../../api/src/verifyAuth.ts","../../../../node_modules/.pnpm/long@5.2.1/node_modules/long/index.js","../../../../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../../../../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../../../../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../../../../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../../../../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../../../../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../../../../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/util/longbits.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/util/minimal.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/writer.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/writer_buffer.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/reader.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/reader_buffer.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/rpc/service.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/rpc.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/roots.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/src/index-minimal.js","../../../../node_modules/.pnpm/protobufjs@7.2.2/node_modules/protobufjs/minimal.js","../../../api/src/apiProtos.ts","../../../api/src/connectProtos.ts","../../../api/src/protos.ts","../../../api/src/requests.ts","../../../api/src/hooks/useApiResource.ts","../../../api/src/hooks/useApiResources.ts","../../../../node_modules/.pnpm/@meterup+metric@0.1.28_@stitches+react@1.2.8_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@meterup/metric/dist/chunk-2ER2SZAY.mjs","../../../../node_modules/.pnpm/@stitches+react@1.2.8_react@17.0.2/node_modules/@stitches/react/dist/index.mjs","../../../../node_modules/.pnpm/@react-stately+utils@3.5.2_react@17.0.2/node_modules/@react-stately/utils/dist/module.js","../../../../node_modules/.pnpm/@react-aria+ssr@3.4.1_react@17.0.2/node_modules/@react-aria/ssr/dist/module.js","../../../../node_modules/.pnpm/clsx@1.2.1/node_modules/clsx/dist/clsx.m.js","../../../../node_modules/.pnpm/@react-aria+utils@3.14.2_react@17.0.2/node_modules/@react-aria/utils/dist/module.js","../../../../node_modules/.pnpm/@swc+helpers@0.4.14/node_modules/@swc/helpers/src/_define_property.mjs","../../../../node_modules/.pnpm/@react-aria+interactions@3.13.1_react@17.0.2/node_modules/@react-aria/interactions/dist/module.js","../../../../node_modules/.pnpm/@react-aria+focus@3.10.1_react@17.0.2/node_modules/@react-aria/focus/dist/module.js","../../../../node_modules/.pnpm/@internationalized+string@3.0.1/node_modules/@internationalized/string/dist/module.js","../../../../node_modules/.pnpm/@react-aria+i18n@3.6.3_react@17.0.2/node_modules/@react-aria/i18n/dist/real-module.js","../../../../node_modules/.pnpm/@react-aria+live-announcer@3.1.2/node_modules/@react-aria/live-announcer/dist/module.js","../../../../node_modules/.pnpm/@react-aria+toggle@3.4.2_react@17.0.2/node_modules/@react-aria/toggle/dist/module.js","../../../../node_modules/.pnpm/@react-aria+label@3.4.4_react@17.0.2/node_modules/@react-aria/label/dist/module.js","../../../../node_modules/.pnpm/@react-stately+toggle@3.4.4_react@17.0.2/node_modules/@react-stately/toggle/dist/module.js","../../../../node_modules/.pnpm/@react-aria+checkbox@3.7.1_react@17.0.2/node_modules/@react-aria/checkbox/dist/module.js","../../../../node_modules/.pnpm/@react-aria+visually-hidden@3.6.1_react@17.0.2/node_modules/@react-aria/visually-hidden/dist/module.js","../../../../node_modules/.pnpm/@react-aria+overlays@3.12.1_react-dom@17.0.2_react@17.0.2/node_modules/@react-aria/overlays/dist/module.js","../../../../node_modules/.pnpm/@react-aria+selection@3.12.1_react@17.0.2/node_modules/@react-aria/selection/dist/module.js","../../../../node_modules/.pnpm/@react-stately+collections@3.5.1_react@17.0.2/node_modules/@react-stately/collections/dist/module.js","../../../../node_modules/.pnpm/@react-aria+listbox@3.7.2_react@17.0.2/node_modules/@react-aria/listbox/dist/module.js","../../../../node_modules/.pnpm/@react-aria+menu@3.7.1_react-dom@17.0.2_react@17.0.2/node_modules/@react-aria/menu/dist/module.js","../../../../node_modules/.pnpm/@react-aria+textfield@3.8.1_react@17.0.2/node_modules/@react-aria/textfield/dist/module.js","../../../../node_modules/.pnpm/@react-aria+combobox@3.4.4_react-dom@17.0.2_react@17.0.2/node_modules/@react-aria/combobox/dist/module.js","../../../../node_modules/.pnpm/@react-aria+switch@3.3.1_react@17.0.2/node_modules/@react-aria/switch/dist/module.js","../../../../node_modules/.pnpm/@babel+runtime@7.21.0/node_modules/@babel/runtime/helpers/esm/extends.js","../../../../node_modules/.pnpm/@radix-ui+react-context@1.0.0_react@17.0.2/node_modules/@radix-ui/react-context/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-compose-refs@1.0.0_react@17.0.2/node_modules/@radix-ui/react-compose-refs/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-slot@1.0.1_react@17.0.2/node_modules/@radix-ui/react-slot/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-collection@1.0.2_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-collection/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+primitive@1.0.0/node_modules/@radix-ui/primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@1.0.0_react@17.0.2/node_modules/@radix-ui/react-use-callback-ref/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@1.0.0_react@17.0.2/node_modules/@radix-ui/react-use-controllable-state/dist/index.module.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/extends.js","../../../../node_modules/.pnpm/@radix-ui+react-primitive@1.0.2_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@1.0.0_react@17.0.2/node_modules/@radix-ui/react-use-layout-effect/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-presence@1.0.0_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-presence/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-id@1.0.0_react@17.0.2/node_modules/@radix-ui/react-id/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-collapsible@1.0.2_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-collapsible/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-direction@1.0.0_react@17.0.2/node_modules/@radix-ui/react-direction/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-accordion@1.1.1_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-accordion/dist/index.module.js","../../../../node_modules/.pnpm/@react-stately+selection@3.11.2_react@17.0.2/node_modules/@react-stately/selection/dist/module.js","../../../../node_modules/.pnpm/@react-stately+list@3.6.1_react@17.0.2/node_modules/@react-stately/list/dist/module.js","../../../../node_modules/.pnpm/@react-stately+overlays@3.4.4_react@17.0.2/node_modules/@react-stately/overlays/dist/module.js","../../../../node_modules/.pnpm/@react-stately+menu@3.4.4_react@17.0.2/node_modules/@react-stately/menu/dist/module.js","../../../../node_modules/.pnpm/@react-stately+combobox@3.3.1_react@17.0.2/node_modules/@react-stately/combobox/dist/module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-layout-effect@0.1.0_react@17.0.2/node_modules/@radix-ui/react-use-layout-effect/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-id@0.1.5_react@17.0.2/node_modules/@radix-ui/react-id/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-focus-guards@0.1.0_react@17.0.2/node_modules/@radix-ui/react-focus-guards/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-callback-ref@0.1.0_react@17.0.2/node_modules/@radix-ui/react-use-callback-ref/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-direction@0.1.0_react@17.0.2/node_modules/@radix-ui/react-use-direction/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-controllable-state@0.1.0_react@17.0.2/node_modules/@radix-ui/react-use-controllable-state/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-compose-refs@0.1.0_react@17.0.2/node_modules/@radix-ui/react-compose-refs/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-slot@0.1.2_react@17.0.2/node_modules/@radix-ui/react-slot/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-primitive@0.1.4_react@17.0.2/node_modules/@radix-ui/react-primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-context@0.1.1_react@17.0.2/node_modules/@radix-ui/react-context/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-collection@0.1.4_react@17.0.2/node_modules/@radix-ui/react-collection/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+primitive@0.1.0/node_modules/@radix-ui/primitive/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-roving-focus@0.1.5_react@17.0.2/node_modules/@radix-ui/react-roving-focus/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-portal@0.1.4_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-portal/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-size@0.1.1_react@17.0.2/node_modules/@radix-ui/react-use-size/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+rect@0.1.1/node_modules/@radix-ui/rect/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-rect@0.1.1_react@17.0.2/node_modules/@radix-ui/react-use-rect/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+popper@0.1.0/node_modules/@radix-ui/popper/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-popper@0.1.4_react@17.0.2/node_modules/@radix-ui/react-popper/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-presence@0.1.2_react@17.0.2/node_modules/@radix-ui/react-presence/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-focus-scope@0.1.4_react@17.0.2/node_modules/@radix-ui/react-focus-scope/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-escape-keydown@0.1.0_react@17.0.2/node_modules/@radix-ui/react-use-escape-keydown/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-body-pointer-events@0.1.1_react@17.0.2/node_modules/@radix-ui/react-use-body-pointer-events/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@0.1.5_react@17.0.2/node_modules/@radix-ui/react-dismissable-layer/dist/index.module.js","../../../../node_modules/.pnpm/aria-hidden@1.2.2_@types+react@17.0.53_react@17.0.2/node_modules/aria-hidden/dist/es2015/index.js","../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.4_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../../../node_modules/.pnpm/use-callback-ref@1.3.0_@types+react@17.0.53_react@17.0.2/node_modules/use-callback-ref/dist/es2015/assignRef.js","../../../../node_modules/.pnpm/use-callback-ref@1.3.0_@types+react@17.0.53_react@17.0.2/node_modules/use-callback-ref/dist/es2015/useRef.js","../../../../node_modules/.pnpm/use-callback-ref@1.3.0_@types+react@17.0.53_react@17.0.2/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../../../node_modules/.pnpm/use-sidecar@1.1.2_@types+react@17.0.53_react@17.0.2/node_modules/use-sidecar/dist/es2015/medium.js","../../../../node_modules/.pnpm/use-sidecar@1.1.2_@types+react@17.0.53_react@17.0.2/node_modules/use-sidecar/dist/es2015/exports.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/medium.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/UI.js","../../../../node_modules/.pnpm/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","../../../../node_modules/.pnpm/react-style-singleton@2.2.1_@types+react@17.0.53_react@17.0.2/node_modules/react-style-singleton/dist/es2015/singleton.js","../../../../node_modules/.pnpm/react-style-singleton@2.2.1_@types+react@17.0.53_react@17.0.2/node_modules/react-style-singleton/dist/es2015/hook.js","../../../../node_modules/.pnpm/react-style-singleton@2.2.1_@types+react@17.0.53_react@17.0.2/node_modules/react-style-singleton/dist/es2015/component.js","../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.4_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../../../node_modules/.pnpm/react-remove-scroll-bar@2.3.4_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../../../node_modules/.pnpm/react-remove-scroll@2.5.5_@types+react@17.0.53_react@17.0.2/node_modules/react-remove-scroll/dist/es2015/Combination.js","../../../../node_modules/.pnpm/@radix-ui+react-menu@0.1.6_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-menu/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-dropdown-menu@0.1.6_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-dropdown-menu/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-collapsible@0.1.6_react@17.0.2/node_modules/@radix-ui/react-collapsible/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-visually-hidden@0.1.4_react@17.0.2/node_modules/@radix-ui/react-visually-hidden/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-previous@0.1.1_react@17.0.2/node_modules/@radix-ui/react-use-previous/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-label@0.1.5_react@17.0.2/node_modules/@radix-ui/react-label/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+number@0.1.0/node_modules/@radix-ui/number/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-select@0.1.1_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-select/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+number@1.0.0/node_modules/@radix-ui/number/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-previous@1.0.0_react@17.0.2/node_modules/@radix-ui/react-use-previous/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-size@1.0.0_react@17.0.2/node_modules/@radix-ui/react-use-size/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-slider@1.1.1_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-slider/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-tooltip@0.1.7_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-tooltip/dist/index.module.js","../../../../node_modules/.pnpm/@meterup+metric@0.1.28_@stitches+react@1.2.8_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@meterup/metric/dist/index.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/subscribable.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/utils.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/focusManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/retryer.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/logger.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/removable.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/query.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/queryCache.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/mutation.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/queryClient.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","../../../../node_modules/.pnpm/@tanstack+query-core@4.27.0/node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@17.0.2/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@17.0.2/node_modules/use-sync-external-store/shim/index.js","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/useSyncExternalStore.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/utils.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/errorBoundaryUtils.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/suspense.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/useBaseQuery.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/useQuery.mjs","../../../../node_modules/.pnpm/@tanstack+react-query@4.28.0_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-query/build/lib/useMutation.mjs","../../../../node_modules/.pnpm/@remix-run+router@1.5.0/node_modules/@remix-run/router/dist/router.js","../../../../node_modules/.pnpm/react-router@6.10.0_react@17.0.2/node_modules/react-router/dist/index.js","../../../../node_modules/.pnpm/react-router-dom@6.10.0_react-dom@17.0.2_react@17.0.2/node_modules/react-router-dom/dist/index.js","../../../ui/src/contexts/IdentifiedContext.tsx","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/is.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/worldwide.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/logger.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/object.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/misc.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/env.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/node.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/syncpromise.js","../../../../node_modules/.pnpm/@sentry+utils@7.46.0/node_modules/@sentry/utils/esm/time.js","../../../../node_modules/.pnpm/@sentry+core@7.46.0/node_modules/@sentry/core/esm/constants.js","../../../../node_modules/.pnpm/@sentry+core@7.46.0/node_modules/@sentry/core/esm/session.js","../../../../node_modules/.pnpm/@sentry+core@7.46.0/node_modules/@sentry/core/esm/scope.js","../../../../node_modules/.pnpm/@sentry+core@7.46.0/node_modules/@sentry/core/esm/hub.js","../../../../node_modules/.pnpm/@sentry+core@7.46.0/node_modules/@sentry/core/esm/exports.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castSlice.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFindIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNaN.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_strictIndexOf.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIndexOf.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_charsEndIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_charsStartIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiToArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/trim.js","../../../ui/src/Log.utils.ts","../../../ui/src/styled.ts","../../../ui/src/styles/LoadingWrapper.tsx","../../../ui/src/Layouts/AuthenticatedLayout.tsx","../../../ui/src/utils/debugging.ts","../../../ui/src/components/Drawer/drawerContext.ts","../../../ui/src/components/Drawer/Drawer.tsx","../../../ui/src/hooks/useRouter.ts","../../../ui/src/hooks/useDrawerRouter.ts","../../../ui/src/components/Drawer/DrawerLinks.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseDelay.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/delay.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","../../../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hasClass.js","../../../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/addClass.js","../../../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/removeClass.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.2_react@17.0.2/node_modules/react-transition-group/esm/config.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.2_react@17.0.2/node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.2_react@17.0.2/node_modules/react-transition-group/esm/utils/reflow.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.2_react@17.0.2/node_modules/react-transition-group/esm/Transition.js","../../../../node_modules/.pnpm/react-transition-group@4.4.5_react-dom@17.0.2_react@17.0.2/node_modules/react-transition-group/esm/CSSTransition.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../ui/src/components/Drawer/DrawerProvider.tsx","../../../../node_modules/.pnpm/dayjs@1.11.7/node_modules/dayjs/dayjs.min.js","../../../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@1.2.36/node_modules/@fortawesome/fontawesome-svg-core/index.es.js","../../../../node_modules/.pnpm/@fortawesome+react-fontawesome@0.1.19_@fortawesome+fontawesome-svg-core@1.2.36_react@17.0.2/node_modules/@fortawesome/react-fontawesome/index.es.js","../../../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js","../../../ui/src/FormattedDate.tsx","../../../frontend/src/hooks/useLocalStorage.ts","../../../ui/src/FlashMessages.tsx","../../../ui/src/FormattedAddress.tsx","../../../ui/src/FormattedMonthlyAmount/FormattedMonthlyAmount.tsx","../../../ui/src/FormattedSpeed.tsx","../../../ui/src/hooks/useFlashMessage.ts","../../../ui/src/ModalProvider/ModalBackground.tsx","../../../ui/src/ModalProvider/SuccessModal.tsx","../../../ui/src/ModalProvider/ModalWrapper.tsx","../../../ui/src/ModalProvider/WarningModal.tsx","../../../ui/src/ModalProvider/ActionModal.tsx","../../../ui/src/ModalProvider.tsx","../../../ui/src/hooks/useModal.ts","../../../ui/src/ProviderLogo/ProviderLogo.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/head.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/first.js","../../../ui/src/SelectField/SelectField.tsx","../../../../node_modules/.pnpm/@tanstack+table-core@8.8.4/node_modules/@tanstack/table-core/build/lib/index.mjs","../../../../node_modules/.pnpm/@tanstack+react-table@8.8.4_react-dom@17.0.2_react@17.0.2/node_modules/@tanstack/react-table/build/lib/index.mjs","../../../../node_modules/.pnpm/regenerator-runtime@0.13.11/node_modules/regenerator-runtime/runtime.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../../ui/src/Table/SearchInput.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiSize.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeSize.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringSize.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/size.js","../../../ui/src/Table/Row.tsx","../../../ui/src/Table/TableBody.tsx","../../../ui/src/Table/Table.tsx","../../../ui/src/TextareaField/TextareaField.tsx","../../../ui/src/TextInputField/TextInputField.tsx","../../../ui/src/validation.ts","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","../../../ui/src/styles/SearchForm.ts","../../../ui/src/components/ClearInputButton.tsx","../../../ui/src/components/SearchButtonInput.tsx","../../../ui/src/styles/Table/TdContentWrapper.tsx","../../../ui/src/styles/Table/InnerTd.tsx","../../../ui/src/styles/Table/table-styles.ts","../../../ui/src/components/Table/FirstCell.tsx","../../../ui/src/styles/AlertWrapper.ts","../../../ui/src/Table/components/SortIcon.tsx","../../../ui/src/Table/components/SortableHeader.tsx","../../../ui/src/utils.ts","../../../../node_modules/.pnpm/fuzzy@0.1.3/node_modules/fuzzy/lib/fuzzy.js","../../../ui/src/utils/filters.ts","../../../ui/src/components/ExpandFlex.tsx","../../../ui/src/components/Tabs/TabsBarContainer.tsx","../../../ui/src/DataView/components/Header.tsx","../../../ui/src/DataView/components/BaseDataViewWrapper.tsx","../../../ui/src/DataView/BaseDataView.tsx","../../../ui/src/DataView/DataViewContent.tsx","../../../ui/src/styles/DetailsArrow.ts","../../../ui/src/utils/eventHandlers.ts","../../../ui/src/DataView/components/CellWrapper.tsx","../../../ui/src/DataView/DataViewRow.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSum.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sum.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sumBy.js","../../../ui/src/DataView/hooks/useRecalculateDimensions.ts","../../../ui/src/DataView/utils.ts","../../../ui/src/DataView/DataView.tsx","../../../ui/src/Layouts/NavItem.tsx","../../../ui/src/styles/Layout/styles.ts","../../../../node_modules/.pnpm/tslib@2.4.1/node_modules/tslib/tslib.es6.js","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/process.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../../../../node_modules/.pnpm/hey-listen@1.0.8/node_modules/hey-listen/dist/hey-listen.es.js","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/LazyContext.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/use-features.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/is-browser.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/variants.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-constant.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/node/state.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/node/id.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/index.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/utils.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/numbers/index.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/numbers/units.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/color/utils.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/color/hsla.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/color/rgba.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/color/hex.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/color/index.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/complex/index.mjs","../../../../node_modules/.pnpm/style-value-types@5.0.0/node_modules/style-value-types/dist/es/complex/filter.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/use-props.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/types.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/events/use-dom-event.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/events/event-info.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/events/utils.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/clamp.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/generators/spring.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/progress.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/mix.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/mix-color.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/inc.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/pipe.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/mix-complex.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/interpolate.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/easing/utils.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/easing/index.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/generators/decay.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","../../../../node_modules/.pnpm/framesync@6.0.1/node_modules/framesync/dist/es/on-next-frame.mjs","../../../../node_modules/.pnpm/framesync@6.0.1/node_modules/framesync/dist/es/create-render-step.mjs","../../../../node_modules/.pnpm/framesync@6.0.1/node_modules/framesync/dist/es/index.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/index.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/animations/inertia.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/is-point.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/is-point-3d.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/utils/distance.mjs","../../../../node_modules/.pnpm/popmotion@11.0.3/node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/warn-once.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-id.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/easing.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/array.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/value/index.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/setters.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/animation.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/animations.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/PanSession.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/drag.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/index.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/html/visual-element.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/animation/animate.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/render/dom/motion.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../../../node_modules/.pnpm/framer-motion@6.5.1_react-dom@17.0.2_react@17.0.2/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../../../../node_modules/.pnpm/goober@2.1.12_csstype@3.1.1/node_modules/goober/dist/goober.modern.js","../../../../node_modules/.pnpm/react-hot-toast@2.4.0_csstype@3.1.1_react-dom@17.0.2_react@17.0.2/node_modules/react-hot-toast/dist/index.mjs","../../../ui/src/components/stolenFromFrontends/Notifications.tsx","../../src/components/AdminLayout.tsx","../../../ui/src/constants.tsx","../../../ui/src/hooks/useFormatters.tsx","../../../ui/src/components/ViewContractButton.tsx","../../../ui/src/components/Table/formatters.ts","../../../ui/src/components/Table/styles.ts","../../../ui/src/components/Table/CommonCells.tsx","../../../ui/src/DataView/hooks/useCellSizings.ts","../../../ui/src/Layouts/LoadingLayout.tsx","../../src/styles/dashboard.ts","../../src/pages/Dashboard/Companies.tsx","../../../api/src/billing/queryKeys.ts","../../../api/src/billing/useISPContracts.ts","../../../api/src/hooks/useCompany.ts","../../../api/src/hooks/useConnectionsQueryKey.ts","../../../api/src/hooks/useGetCompanyConnections.ts","../../../ui/src/components/LabelRow.tsx","../../../ui/src/components/Tabs/ActiveTabMarker.tsx","../../../ui/src/components/Tabs/TabLabel.tsx","../../../ui/src/components/Tabs/Tabs.tsx","../../../ui/src/components/Tabs/TabsBar.tsx","../../../ui/src/DataView/components/CompositeHeader.tsx","../../src/pages/Dashboard/Company.tsx","../../../ui/src/utils/dates.ts","../../../api/src/common.ts","../../../ui/src/utils/formatCurrency.ts","../../src/pages/Dashboard/Company/Contracts.tsx","../../../api/src/billing/useCreateContract.ts","../../../ui/src/files/readDocument.ts","../../../../node_modules/.pnpm/react-hook-form@7.43.4_react@17.0.2/node_modules/react-hook-form/dist/index.esm.mjs","../../../../node_modules/.pnpm/@hookform+resolvers@2.9.11_react-hook-form@7.43.4/node_modules/@hookform/resolvers/dist/resolvers.mjs","../../../../node_modules/.pnpm/@hookform+resolvers@2.9.11_react-hook-form@7.43.4/node_modules/@hookform/resolvers/zod/dist/zod.mjs","../../../ui/src/components/forms/TextInputWrapper.tsx","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../node_modules/.pnpm/react-select@5.7.2_@babel+core@7.21.3_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/inherits.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/createSuper.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../../node_modules/.pnpm/@emotion+sheet@1.2.1/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Enum.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Utility.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Tokenizer.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Parser.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Serializer.js","../../../../node_modules/.pnpm/stylis@4.1.3/node_modules/stylis/src/Middleware.js","../../../../node_modules/.pnpm/@emotion+memoize@0.8.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/.pnpm/@emotion+cache@11.10.5/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../../node_modules/.pnpm/@emotion+utils@1.2.0/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../../node_modules/.pnpm/@emotion+hash@0.9.0/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/.pnpm/@emotion+unitless@0.8.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/.pnpm/@emotion+serialize@1.1.1/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.0_react@17.0.2/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../../node_modules/.pnpm/@emotion+react@11.10.5_@babel+core@7.21.3_@types+react@17.0.53_react@17.0.2/node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../../../../node_modules/.pnpm/@emotion+react@11.10.5_@babel+core@7.21.3_@types+react@17.0.53_react@17.0.2/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../../../node_modules/.pnpm/@babel+runtime@7.20.7/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../../../node_modules/.pnpm/@floating-ui+dom@1.1.0/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../../../node_modules/.pnpm/use-isomorphic-layout-effect@1.1.2_@types+react@17.0.53_react@17.0.2/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../../../../node_modules/.pnpm/react-select@5.7.2_@babel+core@7.21.3_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/react-select/dist/index-a86253bb.esm.js","../../../../node_modules/.pnpm/memoize-one@6.0.0/node_modules/memoize-one/dist/memoize-one.esm.js","../../../../node_modules/.pnpm/react-select@5.7.2_@babel+core@7.21.3_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/react-select/dist/Select-457c486b.esm.js","../../../../node_modules/.pnpm/react-select@5.7.2_@babel+core@7.21.3_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/react-select/dist/react-select.esm.js","../../../ui/src/components/Select/ClearIndicator.tsx","../../../ui/src/components/Select/DropdownIndicator.tsx","../../../ui/src/components/Select/hooks/Options.ts","../../../ui/src/colors.ts","../../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../../ui/src/utils/stolen-from-frontends/fade.ts","../../../ui/src/components/Select/hooks/useCustomStyles.ts","../../../../node_modules/.pnpm/react-number-format@5.1.4_react-dom@17.0.2_react@17.0.2/node_modules/react-number-format/dist/react-number-format.es.js","../../../api/src/connectadminProtos.ts","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHas.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/has.js","../../src/components/errors/OverlappingDatesErrorCopy.tsx","../../src/components/files/UploadDocument.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js","../../../../node_modules/.pnpm/zod@3.20.6/node_modules/zod/lib/index.mjs","../../../ui/src/zod/helpers.ts","../../src/components/contracts/ContractSchema.ts","../../src/components/contracts/utils.ts","../../src/components/contracts/ContractFormDrawer.tsx","../../src/pages/Dashboard/Company/CreateContract.tsx","../../../api/src/billing/useCreateInvoice.ts","../../../ui/src/utils/snakeToTitleCase.ts","../../src/components/invoices/invoiceSchema.ts","../../src/components/invoices/InvoiceFormDrawer.tsx","../../src/pages/Dashboard/Company/CreateInvoice.tsx","../../../ui/src/styles/SimpleList.ts","../../../ui/src/components/UserListItem.tsx","../../../ui/src/hooks/useMetaSubmit.ts","../../../../node_modules/.pnpm/react-fast-compare@2.0.4/node_modules/react-fast-compare/index.js","../../../../node_modules/.pnpm/deepmerge@2.2.1/node_modules/deepmerge/dist/es.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayEach.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssign.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbols.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbolsIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copySymbolsIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeysIn.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneDataView.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneRegExp.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneSymbol.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneByTag.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSet.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseClone.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/clone.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPath.js","../../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","../../../../node_modules/.pnpm/formik@2.2.9_react@17.0.2/node_modules/formik/dist/formik.esm.js","../../../ui/src/utils/stolen-from-frontends/createTypedField.tsx","../../../ui/src/utils/string.ts/String.utils.ts","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toFinite.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toInteger.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/take.js","../../../../node_modules/.pnpm/zod-formik-adapter@1.2.0_formik@2.2.9_zod@3.20.6/node_modules/zod-formik-adapter/dist/index.js","../../src/contexts/CompanyContext.ts","../../../ui/src/utils/parseEmails.ts","../../src/zod/partialInviteUsers.ts","../../src/pages/Dashboard/Company/CreateUser.tsx","../../../api/src/billing/useEditContract.ts","../../src/pages/Dashboard/Company/EditContract.tsx","../../../api/src/billing/useEditInvoice.ts","../../../ui/src/components/Loading/StackedSkeleton.tsx","../../src/pages/Dashboard/Company/EditInvoice.tsx","../../../api/src/billing/useInvoices.ts","../../../api/src/billing/useISPContract.ts","../../../ui/src/useDownloadFile.ts","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js","../../src/components/Dashboard/Search/AddressHeading.tsx","../../src/components/DownloadInvoiceCell.tsx","../../src/components/show/Show.tsx","../../src/components/show/containers.ts","../../src/components/show/ShowContent.tsx","../../src/components/show/ShowHeader.tsx","../../src/components/show/ShowHeaderDetail.tsx","../../src/components/show/ShowHeaderLarge.tsx","../../src/pages/Dashboard/Company/Invoices.tsx","../../../ui/src/styles/Modal/index.ts","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_metaMap.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCtor.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBind.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_composeArgs.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_composeArgsRight.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_countHolders.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLodash.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_LazyWrapper.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/noop.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_realNames.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getFuncName.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_LodashWrapper.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_wrapperClone.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/wrapperLodash.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isLaziable.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getWrapDetails.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_insertWrapDetails.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludes.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_updateWrapDetails.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setWrapToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRecurry.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getHolder.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_reorder.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_replaceHolders.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createHybrid.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCurry.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createPartial.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mergeData.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createWrap.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/partial.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/wrap.js","../../../../node_modules/.pnpm/@react-stately+data@3.9.0_react@17.0.2/node_modules/@react-stately/data/dist/import.mjs","../../../../node_modules/.pnpm/jotai@1.13.1_@babel+core@7.21.3_jotai-devtools@0.2.0_react@17.0.2/node_modules/jotai/esm/vanilla.mjs","../../../../node_modules/.pnpm/jotai@1.13.1_@babel+core@7.21.3_jotai-devtools@0.2.0_react@17.0.2/node_modules/jotai/esm/index.mjs","../../../../node_modules/.pnpm/jotai@1.13.1_@babel+core@7.21.3_jotai-devtools@0.2.0_react@17.0.2/node_modules/jotai/esm/react.mjs","../../../../node_modules/.pnpm/jotai@1.13.1_@babel+core@7.21.3_jotai-devtools@0.2.0_react@17.0.2/node_modules/jotai/esm/utils.mjs","../../../ui/src/components/hooks/usePlacesServices.ts","../../../ui/src/hooks/useFetchLocationPredictions.ts","../../../ui/src/hooks/useIdentity.ts","../../../ui/src/hooks/usePredictionFormatter.ts","../../../ui/src/styles/Form/index.ts","../../../ui/src/utils/formatLocationParts.ts","../../../ui/src/components/Select/IconValueContainer.tsx","../../../ui/src/components/Select/withIconValueContainer.tsx","../../../ui/src/components/AddLocation.tsx","../../../ui/src/components/AddLocationModal.tsx","../../../ui/src/components/Portal.tsx","../../../ui/src/components/Modal.tsx","../../../ui/src/hooks/useActiveStatusTab.tsx","../../../ui/src/components/Tabs/StatusTabBar.tsx","../../../ui/src/hooks/useFormatContractsForTable.ts","../../../ui/src/utils/ContractValue.ts","../../../ui/src/hooks/useProcessedContracts.tsx","../../src/pages/Dashboard/Company/Searches.tsx","../../../ui/src/hooks/useActiveUserTypeTab.ts","../../../ui/src/components/Tabs/UserTabBar.tsx","../../src/pages/Dashboard/Company/Users.tsx","../../src/components/ErrorBoundary.tsx","../../src/pages/Dashboard/Root.tsx","../../../ui/src/hooks/useAllStatuses.ts","../../../ui/src/components/Dashboard/Search/EditStatus.tsx","../../../ui/src/styles/Panels.tsx","../../src/components/ConfirmDeletionModal.tsx","../../src/components/Dashboard/Search/ContactForm.tsx","../../src/hooks/useIdCarousel.ts","../../../../node_modules/.pnpm/@floating-ui+core@0.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","../../../../node_modules/.pnpm/@floating-ui+dom@0.5.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../../../node_modules/.pnpm/@floating-ui+react-dom@0.7.2_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js","../../../../node_modules/.pnpm/@radix-ui+react-arrow@1.0.2_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-arrow/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-popper@1.1.1_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-popper/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-use-escape-keydown@1.0.2_react@17.0.2/node_modules/@radix-ui/react-use-escape-keydown/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-dismissable-layer@1.0.3_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-dismissable-layer/dist/index.module.js","../../../../node_modules/.pnpm/@radix-ui+react-hover-card@1.0.5_@types+react@17.0.53_react-dom@17.0.2_react@17.0.2/node_modules/@radix-ui/react-hover-card/dist/index.module.js","../../src/src/components/Dashboard/Search/RowActions.tsx","../../src/pages/Dashboard/Search.tsx","../../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","../../src/pages/Dashboard/Search/Company/CreateCompany.tsx","../../src/pages/Dashboard/Search/EditQuoteRequestPage.tsx","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSet.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/set.js","../../../ui/src/components/stolenFromFrontends/notify.ts","../../src/components/Dashboard/Companies/quoteFormSchema.ts","../../src/components/Dashboard/Search/QuoteForm.tsx","../../src/pages/Dashboard/Search/QuoteFormPage.tsx","../../src/routing.ts","../../src/pages/Login.tsx","../../../../node_modules/.pnpm/crypt@0.0.2/node_modules/crypt/crypt.js","../../../../node_modules/.pnpm/charenc@0.0.2/node_modules/charenc/charenc.js","../../../../node_modules/.pnpm/is-buffer@1.1.6/node_modules/is-buffer/index.js","../../../../node_modules/.pnpm/md5@2.3.0/node_modules/md5/md5.js","../../src/components/Sidebar.tsx","../../src/components/Layout.tsx","../../../../node_modules/.pnpm/@babel+runtime@7.21.0/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/final-form@4.20.9/node_modules/final-form/dist/final-form.es.js","../../../../node_modules/.pnpm/react-final-form@6.5.9_final-form@4.20.9_react@17.0.2/node_modules/react-final-form/dist/react-final-form.es.js","../../src/components/QuoteForm.tsx","../../src/pages/NewQuote.tsx","../../../../node_modules/.pnpm/react-loading-skeleton@3.1.1_react@17.0.2/node_modules/react-loading-skeleton/dist/index.mjs","../../src/pages/EditQuote.tsx","../../src/components/Providers/ProvidersTable/ProvidersTable.tsx","../../src/pages/Providers.tsx","../../src/components/Providers/ProviderForm/ProviderForm.tsx","../../src/pages/Providers/NewProvider.tsx","../../src/pages/Providers/EditProvider.tsx","../../src/components/QuoteRequest/ProvidersAvailabilitySection.tsx","../../src/components/QuoteRequest/ProvidersAvailability.tsx","../../src/components/QuoteRequests/statusToFields.ts","../../src/components/QuoteRequests/StatusChip.tsx","../../src/components/QuoteRequest/QuoteRequestInfo.tsx","../../src/components/QuoteRequest/CopyQuoteButton.tsx","../../../ui/src/components/Select/SingleValue.tsx","../../src/components/QuoteRequest/CopyQuoteToOtherQuoteRequest.tsx","../../src/components/QuoteRequest/QuoteOptions.tsx","../../src/components/QuoteRequest/QuotesTable.tsx","../../src/pages/NotFound.tsx","../../src/pages/QuoteRequest.tsx","../../src/components/QuoteRequests/QuoteRequestsTable.tsx","../../src/pages/QuoteRequests.tsx","../../src/pages/Settings.tsx","../../src/Redirect.tsx","../../src/routes.tsx","../../src/App.tsx","../../src/index.tsx"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.4\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nconst isObject = value => typeof value === 'object' && value !== null;\nconst mapObjectSkip = Symbol('skip');\n\n// Customized for this use-case\nconst isObjectCustom = value =>\n\tisObject(value) &&\n\t!(value instanceof RegExp) &&\n\t!(value instanceof Error) &&\n\t!(value instanceof Date);\n\nconst mapObject = (object, mapper, options, isSeen = new WeakMap()) => {\n\toptions = {\n\t\tdeep: false,\n\t\ttarget: {},\n\t\t...options\n\t};\n\n\tif (isSeen.has(object)) {\n\t\treturn isSeen.get(object);\n\t}\n\n\tisSeen.set(object, options.target);\n\n\tconst {target} = options;\n\tdelete options.target;\n\n\tconst mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);\n\tif (Array.isArray(object)) {\n\t\treturn mapArray(object);\n\t}\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst mapResult = mapper(key, value, object);\n\n\t\tif (mapResult === mapObjectSkip) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;\n\n\t\t// Drop `__proto__` keys.\n\t\tif (newKey === '__proto__') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (options.deep && shouldRecurse && isObjectCustom(newValue)) {\n\t\t\tnewValue = Array.isArray(newValue) ?\n\t\t\t\tmapArray(newValue) :\n\t\t\t\tmapObject(newValue, mapper, options, isSeen);\n\t\t}\n\n\t\ttarget[newKey] = newValue;\n\t}\n\n\treturn target;\n};\n\nmodule.exports = (object, mapper, options) => {\n\tif (!isObject(object)) {\n\t\tthrow new TypeError(`Expected an object, got \\`${object}\\` (${typeof object})`);\n\t}\n\n\treturn mapObject(object, mapper, options);\n};\n\nmodule.exports.mapObjectSkip = mapObjectSkip;\n","const UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\tlet isLastLastCharPreserved = false;\n\n\tfor (let index = 0; index < string.length; index++) {\n\t\tconst character = string[index];\n\t\tisLastLastCharPreserved = index > 2 ? string[index - 3] === '-' : true;\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, index) + '-' + string.slice(index);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\tindex++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase)) {\n\t\t\tstring = string.slice(0, index - 1) + '-' + string.slice(index - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nexport default function camelCase(input, options) {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options,\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false\n\t\t? string => string.toLowerCase()\n\t\t: string => string.toLocaleLowerCase(options.locale);\n\n\tconst toUpperCase = options.locale === false\n\t\t? string => string.toUpperCase()\n\t\t: string => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\tif (SEPARATORS.test(input)) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\tinput = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n}\n","export default class QuickLRU extends Map {\n\tconstructor(options = {}) {\n\t\tsuper();\n\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tif (typeof options.maxAge === 'number' && options.maxAge === 0) {\n\t\t\tthrow new TypeError('`maxAge` must be a number greater than 0');\n\t\t}\n\n\t\t// TODO: Use private class fields when ESLint supports them.\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.maxAge = options.maxAge || Number.POSITIVE_INFINITY;\n\t\tthis.onEviction = options.onEviction;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t// TODO: Use private class methods when targeting Node.js 16.\n\t_emitEvictions(cache) {\n\t\tif (typeof this.onEviction !== 'function') {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [key, item] of cache) {\n\t\t\tthis.onEviction(key, item.value);\n\t\t}\n\t}\n\n\t_deleteIfExpired(key, item) {\n\t\tif (typeof item.expiry === 'number' && item.expiry <= Date.now()) {\n\t\t\tif (typeof this.onEviction === 'function') {\n\t\t\t\tthis.onEviction(key, item.value);\n\t\t\t}\n\n\t\t\treturn this.delete(key);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t_getOrDeleteIfExpired(key, item) {\n\t\tconst deleted = this._deleteIfExpired(key, item);\n\t\tif (deleted === false) {\n\t\t\treturn item.value;\n\t\t}\n\t}\n\n\t_getItemValue(key, item) {\n\t\treturn item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;\n\t}\n\n\t_peek(key, cache) {\n\t\tconst item = cache.get(key);\n\n\t\treturn this._getItemValue(key, item);\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\t\t\tthis._emitEvictions(this.oldCache);\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\t_moveToRecent(key, item) {\n\t\tthis.oldCache.delete(key);\n\t\tthis._set(key, item);\n\t}\n\n\t* _entriesAscending() {\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key, value] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\t\tif (deleted === false) {\n\t\t\t\t\tyield item;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const item of this.cache) {\n\t\t\tconst [key, value] = item;\n\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\tif (deleted === false) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\tconst item = this.cache.get(key);\n\n\t\t\treturn this._getItemValue(key, item);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst item = this.oldCache.get(key);\n\t\t\tif (this._deleteIfExpired(key, item) === false) {\n\t\t\t\tthis._moveToRecent(key, item);\n\t\t\t\treturn item.value;\n\t\t\t}\n\t\t}\n\t}\n\n\tset(key, value, {maxAge = this.maxAge} = {}) {\n\t\tconst expiry =\n\t\t\ttypeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY ?\n\t\t\t\tDate.now() + maxAge :\n\t\t\t\tundefined;\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, {\n\t\t\t\tvalue,\n\t\t\t\texpiry\n\t\t\t});\n\t\t} else {\n\t\t\tthis._set(key, {value, expiry});\n\t\t}\n\t}\n\n\thas(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn !this._deleteIfExpired(key, this.cache.get(key));\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn !this._deleteIfExpired(key, this.oldCache.get(key));\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this._peek(key, this.cache);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this._peek(key, this.oldCache);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\tresize(newSize) {\n\t\tif (!(newSize && newSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tconst items = [...this._entriesAscending()];\n\t\tconst removeCount = items.length - newSize;\n\t\tif (removeCount < 0) {\n\t\t\tthis.cache = new Map(items);\n\t\t\tthis.oldCache = new Map();\n\t\t\tthis._size = items.length;\n\t\t} else {\n\t\t\tif (removeCount > 0) {\n\t\t\t\tthis._emitEvictions(items.slice(0, removeCount));\n\t\t\t}\n\n\t\t\tthis.oldCache = new Map(items.slice(removeCount));\n\t\t\tthis.cache = new Map();\n\t\t\tthis._size = 0;\n\t\t}\n\n\t\tthis.maxSize = newSize;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tconst [key, value] = item;\n\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\tif (deleted === false) {\n\t\t\t\tyield [key, value.value];\n\t\t\t}\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key, value] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\t\tif (deleted === false) {\n\t\t\t\t\tyield [key, value.value];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t* entriesDescending() {\n\t\tlet items = [...this.cache];\n\t\tfor (let i = items.length - 1; i >= 0; --i) {\n\t\t\tconst item = items[i];\n\t\t\tconst [key, value] = item;\n\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\tif (deleted === false) {\n\t\t\t\tyield [key, value.value];\n\t\t\t}\n\t\t}\n\n\t\titems = [...this.oldCache];\n\t\tfor (let i = items.length - 1; i >= 0; --i) {\n\t\t\tconst item = items[i];\n\t\t\tconst [key, value] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tconst deleted = this._deleteIfExpired(key, value);\n\t\t\t\tif (deleted === false) {\n\t\t\t\t\tyield [key, value.value];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t* entriesAscending() {\n\t\tfor (const [key, value] of this._entriesAscending()) {\n\t\t\tyield [key, value.value];\n\t\t}\n\t}\n\n\tget size() {\n\t\tif (!this._size) {\n\t\t\treturn this.oldCache.size;\n\t\t}\n\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this._size + oldCacheSize, this.maxSize);\n\t}\n\n\tentries() {\n\t\treturn this.entriesAscending();\n\t}\n\n\tforEach(callbackFunction, thisArgument = this) {\n\t\tfor (const [key, value] of this.entriesAscending()) {\n\t\t\tcallbackFunction.call(thisArgument, value, key, this);\n\t\t}\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn JSON.stringify([...this.entriesAscending()]);\n\t}\n}\n","import mapObject from 'map-obj';\nimport camelCase from 'camelcase';\nimport QuickLru from 'quick-lru';\n\nconst has = (array, key) => array.some(element => {\n\tif (typeof element === 'string') {\n\t\treturn element === key;\n\t}\n\n\telement.lastIndex = 0;\n\n\treturn element.test(key);\n});\n\nconst cache = new QuickLru({maxSize: 100_000});\n\n// Reproduces behavior from `map-obj`.\nconst isObject = value =>\n\ttypeof value === 'object'\n\t\t&& value !== null\n\t\t&& !(value instanceof RegExp)\n\t\t&& !(value instanceof Error)\n\t\t&& !(value instanceof Date);\n\nconst camelCaseConvert = (input, options) => {\n\tif (!isObject(input)) {\n\t\treturn input;\n\t}\n\n\toptions = {\n\t\tdeep: false,\n\t\tpascalCase: false,\n\t\t...options,\n\t};\n\n\tconst {exclude, pascalCase, stopPaths, deep} = options;\n\n\tconst stopPathsSet = new Set(stopPaths);\n\n\tconst makeMapper = parentPath => (key, value) => {\n\t\tif (deep && isObject(value)) {\n\t\t\tconst path = parentPath === undefined ? key : `${parentPath}.${key}`;\n\n\t\t\tif (!stopPathsSet.has(path)) {\n\t\t\t\tvalue = mapObject(value, makeMapper(path));\n\t\t\t}\n\t\t}\n\n\t\tif (!(exclude && has(exclude, key))) {\n\t\t\tconst cacheKey = pascalCase ? `${key}_` : key;\n\n\t\t\tif (cache.has(cacheKey)) {\n\t\t\t\tkey = cache.get(cacheKey);\n\t\t\t} else {\n\t\t\t\tconst returnValue = camelCase(key, {pascalCase, locale: false});\n\n\t\t\t\tif (key.length < 100) { // Prevent abuse\n\t\t\t\t\tcache.set(cacheKey, returnValue);\n\t\t\t\t}\n\n\t\t\t\tkey = returnValue;\n\t\t\t}\n\t\t}\n\n\t\treturn [key, value];\n\t};\n\n\treturn mapObject(input, makeMapper(undefined));\n};\n\nexport default function camelcaseKeys(input, options) {\n\tif (Array.isArray(input)) {\n\t\treturn Object.keys(input).map(key => camelCaseConvert(input[key], options));\n\t}\n\n\treturn camelCaseConvert(input, options);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function snakeCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"_\" }, options));\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\nconst map = require('map-obj')\nconst { snakeCase } = require('snake-case')\n\nmodule.exports = function (obj, options) {\n options = Object.assign({ deep: true, exclude: [], parsingOptions: {} }, options)\n\n return map(obj, function (key, val) {\n return [\n matches(options.exclude, key) ? key : snakeCase(key, options.parsingOptions),\n val\n ]\n }, options)\n}\n\nfunction matches (patterns, value) {\n return patterns.some(function (pattern) {\n return typeof pattern === 'string'\n ? pattern === value\n : pattern.test(value)\n })\n}\n","export enum PortalOrigin {\n Connect = \"connect\",\n ConnectAdmin = \"connect-admin\",\n}\n\nexport enum PortalCookie {\n Connect = \"connect.frontend.v2\",\n ConnectAdmin = \"connect-admin.frontend.v2\",\n}\n","import { PortalOrigin } from \"./enums\";\n\nexport enum Ports {\n ConnectBackend = 9913,\n ConnectFrontend = 9912,\n Portal = 6894,\n}\n\nexport const getPortalTld = (location: Location) =>\n location.hostname.split(\".\")[location.hostname.split(\".\").length - 1];\n\nexport function getTldWithPort(location: Location, port: Ports) {\n const tld = getPortalTld(location);\n if (tld === \"website\") {\n return `${tld}:${port}`;\n }\n\n return tld;\n}\n\nexport const getPortalUrl = (location: Location): string =>\n `https://portal.meter.${getTldWithPort(location, Ports.Portal)}`;\n\nfunction safeURL(url: string, path?: string) {\n return `${url}/${path?.startsWith(\"/\") ? path.slice(1) : path}`;\n}\n\nexport const getProxyUrl = () => `${getPortalUrl(window.location)}/api-proxy`;\nexport const getProxyUrlWith = (path?: string) => safeURL(getProxyUrl(), path);\n\nexport const getAPIBaseUrl = (location: Location) =>\n `${getPortalUrl(location)}/api-proxy/v1/connect`;\n\nexport function getConnectUrl(location: Location, origin: PortalOrigin, path?: string) {\n let url = \"\";\n if (origin === PortalOrigin.Connect) {\n url = `https://connect.meter.${getTldWithPort(location, Ports.ConnectFrontend)}`;\n } else {\n url = `https://connect-admin.meter.${getTldWithPort(location, Ports.ConnectBackend)}`;\n }\n\n return `${url}/${path?.startsWith(\"/\") ? path.slice(1) : path}`;\n}\n","import axios, { AxiosError, AxiosResponse, RawAxiosRequestConfig } from \"axios\";\nimport camelCaseKeys from \"camelcase-keys\";\nimport snakecaseKeys from \"snakecase-keys\";\n\nimport { getPortalUrl } from \"./config\";\n\nconst axiosInstance = axios.create({\n withCredentials: true,\n baseURL: getPortalUrl(window.location),\n});\n\nexport default axiosInstance;\n\nfunction marshallData>(resp: AxiosResponse) {\n const { data } = resp;\n return camelCaseKeys(data, { deep: true });\n}\n\nfunction marshallVars>(vars: S) {\n return snakecaseKeys(vars, { deep: true });\n}\n\nfunction marshallError(error: Error | AxiosError) {\n if (axios.isAxiosError(error) && error.response) {\n return error.response.data;\n }\n\n return error;\n}\n\nfunction apiProxyUrl(path: string) {\n return `/api-proxy/${path.replace(/^\\//, \"\")}`;\n}\n\nexport function marshallSuccessToBoolean(resp: AxiosResponse) {\n const { status } = resp;\n return status >= 200 && status < 300;\n}\n\nexport function plainGet<\n T extends unknown,\n R extends AxiosResponse = AxiosResponse,\n D = unknown,\n P = unknown\n>(path: string, params?: RawAxiosRequestConfig

): Promise {\n return axiosInstance.get(apiProxyUrl(path), params || {});\n}\n\nexport function get<\n T extends Record,\n R extends AxiosResponse = AxiosResponse,\n D = Record,\n P = unknown\n>(path: string, params?: P): Promise {\n return plainGet(path, { params }).then(marshallData);\n}\n\nexport function plainPut<\n T extends unknown,\n R extends AxiosResponse = AxiosResponse,\n D = unknown\n>(path: string, data: D, config?: RawAxiosRequestConfig): Promise {\n return axiosInstance.put(apiProxyUrl(path), data, config || {});\n}\n\ntype PutRestParams = {\n config?: RawAxiosRequestConfig;\n marshall?: (data: D) => T;\n};\n\nexport function put<\n // T extends Record,\n // R extends AxiosResponse = AxiosResponse,\n // D extends Record = {}\n T extends unknown,\n R extends AxiosResponse = AxiosResponse,\n D extends Record = {}\n>(path: string, vars: D, rest?: PutRestParams): Promise {\n const config = rest?.config || {};\n const marshall = rest?.marshall || marshallData;\n return plainPut(path, marshallVars(vars), config).then(marshall);\n}\n\nexport function plainPost<\n T extends unknown,\n R extends AxiosResponse = AxiosResponse,\n D = unknown\n>(path: string, data: D, config?: RawAxiosRequestConfig): Promise {\n return axiosInstance.post(apiProxyUrl(path), data, config || {});\n}\n\nexport function post<\n T extends Record,\n R extends AxiosResponse = AxiosResponse,\n D extends Record = {}\n>(path: string, vars: D): Promise {\n return plainPost(path, marshallVars(vars)).then(marshallData);\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle\nexport function delete_<\n T extends Record,\n R extends AxiosResponse = AxiosResponse,\n D = any\n>(path: string): Promise {\n return axiosInstance.delete(apiProxyUrl(path)).then(marshallData);\n}\n","export const headers = {\n \"Content-Type\": \"application/json\",\n};\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + 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=' + 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=' + 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=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import * as React from 'react';\r\nimport Cookies from './Cookies';\r\nvar CookiesContext = React.createContext(new Cookies());\r\nexport var Provider = CookiesContext.Provider, Consumer = CookiesContext.Consumer;\r\nexport default CookiesContext;\r\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","export function isInBrowser() {\r\n return (typeof window !== 'undefined' &&\r\n typeof window.document !== 'undefined' &&\r\n typeof window.document.createElement !== 'undefined');\r\n}\r\n","import { useContext, useLayoutEffect, useState, useRef, useMemo } from 'react';\r\nimport CookiesContext from './CookiesContext';\r\nimport { isInBrowser } from './utils';\r\nexport default function useCookies(dependencies) {\r\n var cookies = useContext(CookiesContext);\r\n if (!cookies) {\r\n throw new Error('Missing ');\r\n }\r\n var initialCookies = cookies.getAll();\r\n var _a = useState(initialCookies), allCookies = _a[0], setCookies = _a[1];\r\n var previousCookiesRef = useRef(allCookies);\r\n if (isInBrowser()) {\r\n useLayoutEffect(function () {\r\n function onChange() {\r\n var newCookies = cookies.getAll();\r\n if (shouldUpdate(dependencies || null, newCookies, previousCookiesRef.current)) {\r\n setCookies(newCookies);\r\n }\r\n previousCookiesRef.current = newCookies;\r\n }\r\n cookies.addChangeListener(onChange);\r\n return function () {\r\n cookies.removeChangeListener(onChange);\r\n };\r\n }, [cookies]);\r\n }\r\n var setCookie = useMemo(function () { return cookies.set.bind(cookies); }, [cookies]);\r\n var removeCookie = useMemo(function () { return cookies.remove.bind(cookies); }, [cookies]);\r\n return [allCookies, setCookie, removeCookie];\r\n}\r\nfunction shouldUpdate(dependencies, newCookies, oldCookies) {\r\n if (!dependencies) {\r\n return true;\r\n }\r\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\r\n var dependency = dependencies_1[_i];\r\n if (newCookies[dependency] !== oldCookies[dependency]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n","import { useCallback, useEffect, useMemo } from \"react\";\n\nimport { useCookies } from \"react-cookie\";\n\nimport { getPortalTld, getPortalUrl } from \"../config\";\nimport { PortalCookie, PortalOrigin } from \"../enums\";\n\ninterface Cookie {\n version: number;\n username: string;\n expires: string;\n companies?: string[];\n}\n\nexport const getCookieName = (via: PortalOrigin) =>\n via === PortalOrigin.ConnectAdmin ? PortalCookie.ConnectAdmin : PortalCookie.Connect;\n\nconst cookieHasExpired = (cookie: Cookie) => Date.parse(cookie.expires) < Date.now();\n\nexport function redirectToPortal(via: PortalOrigin, path?: string) {\n const search = new URLSearchParams();\n search.set(\"via\", via);\n if (path) {\n search.set(\"path\", path);\n }\n window.location.href = `${getPortalUrl(window.location)}?${search.toString()}`;\n}\n\nexport default function useAuthenticatedUser(\n via: PortalOrigin = PortalOrigin.ConnectAdmin,\n path?: string,\n): [boolean, Cookie, () => void] {\n const [cookies] = useCookies([getCookieName(via)]);\n const cookie = useMemo(() => {\n const cookieInt = cookies[getCookieName(via)];\n if (cookieInt) {\n return JSON.parse(atob(cookieInt));\n }\n\n return undefined;\n }, [via, cookies]);\n\n const needsRedirect = useMemo(() => !cookie || cookieHasExpired(cookie), [cookie]);\n\n const onLogout = useCallback(() => {\n document.cookie = `${getCookieName(\n via,\n )}=; path=/; domain=.meter.${getPortalTld()}; expires=${new Date(0).toUTCString()};`;\n }, [via]);\n\n useEffect(() => {\n if (needsRedirect) {\n redirectToPortal(via, path);\n }\n }, [via, needsRedirect, path]);\n\n return [!needsRedirect, cookie, onLogout];\n}\n","import { getPortalUrl } from \"./config\";\nimport { headers } from \"./headers\";\nimport { redirectToPortal } from \"./hooks/useAuthenticatedUser\";\nimport { PortalOrigin } from \"./enums\";\n\nexport default async function verifyAuth(via: string): Promise {\n const { status } = await fetch(`${getPortalUrl(window.location)}/api-proxy/v1/identity`, {\n headers,\n credentials: \"include\",\n });\n\n if (status !== 200) {\n redirectToPortal(via as PortalOrigin);\n }\n}\n","/**\n * @license\n * Copyright 2009 The Closure Library Authors\n * Copyright 2020 Daniel Wirtz / The long.js Authors.\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 * SPDX-License-Identifier: Apache-2.0\n */\n\n// WebAssembly optimizations to do native i64 multiplication and divide\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\n ])), {}).exports;\n} catch (e) {\n // no wasm support :(\n}\n\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nfunction Long(low, high, unsigned) {\n\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\n\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\n\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nfunction isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n\n/**\n * @function\n * @param {*} value number\n * @returns {number}\n * @inner\n */\nfunction ctz32(value) {\n var c = Math.clz32(value & -value);\n return value ? 31 - c : c;\n}\n\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\nLong.isLong = isLong;\n\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if (cache = (0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, 0, true);\n if (cache)\n UINT_CACHE[value] = obj;\n return obj;\n } else {\n value |= 0;\n if (cache = (-128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache)\n INT_CACHE[value] = obj;\n return obj;\n }\n}\n\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromInt = fromInt;\n\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromNumber(value, unsigned) {\n if (isNaN(value))\n return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0)\n return UZERO;\n if (value >= TWO_PWR_64_DBL)\n return MAX_UNSIGNED_VALUE;\n } else {\n if (value <= -TWO_PWR_63_DBL)\n return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL)\n return MAX_VALUE;\n }\n if (value < 0)\n return fromNumber(-value, unsigned).neg();\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\n}\n\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromNumber = fromNumber;\n\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\nLong.fromBits = fromBits;\n\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nfunction fromString(str, unsigned, radix) {\n if (str.length === 0)\n throw Error('empty string');\n if (typeof unsigned === 'number') {\n // For goog.math.long compatibility\n radix = unsigned;\n unsigned = false;\n } else {\n unsigned = !!unsigned;\n }\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\n return unsigned ? UZERO : ZERO;\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n\n var p;\n if ((p = str.indexOf('-')) > 0)\n throw Error('interior hyphen');\n else if (p === 0) {\n return fromString(str.substring(1), unsigned, radix).neg();\n }\n\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i),\n value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = result.mul(power).add(fromNumber(value));\n } else {\n result = result.mul(radixToPower);\n result = result.add(fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\nLong.fromString = fromString;\n\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nfunction fromValue(val, unsigned) {\n if (typeof val === 'number')\n return fromNumber(val, unsigned);\n if (typeof val === 'string')\n return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\n}\n\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\nLong.fromValue = fromValue;\n\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ZERO = fromInt(0);\n\n/**\n * Signed zero.\n * @type {!Long}\n */\nLong.ZERO = ZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UZERO = fromInt(0, true);\n\n/**\n * Unsigned zero.\n * @type {!Long}\n */\nLong.UZERO = UZERO;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar ONE = fromInt(1);\n\n/**\n * Signed one.\n * @type {!Long}\n */\nLong.ONE = ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar UONE = fromInt(1, true);\n\n/**\n * Unsigned one.\n * @type {!Long}\n */\nLong.UONE = UONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar NEG_ONE = fromInt(-1);\n\n/**\n * Signed negative one.\n * @type {!Long}\n */\nLong.NEG_ONE = NEG_ONE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);\n\n/**\n * Maximum signed value.\n * @type {!Long}\n */\nLong.MAX_VALUE = MAX_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);\n\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n\n/**\n * @type {!Long}\n * @inner\n */\nvar MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n\n/**\n * Minimum signed value.\n * @type {!Long}\n */\nLong.MIN_VALUE = MIN_VALUE;\n\n/**\n * @alias Long.prototype\n * @inner\n */\nvar LongPrototype = Long.prototype;\n\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toInt = function toInt() {\n return this.unsigned ? this.low >>> 0 : this.low;\n};\n\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.toNumber = function toNumber() {\n if (this.unsigned)\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\n};\n\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nLongPrototype.toString = function toString(radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n if (this.isZero())\n return '0';\n if (this.isNegative()) { // Unsigned Longs are never negative\n if (this.eq(MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix),\n div = this.div(radixLong),\n rem1 = div.mul(radixLong).sub(this);\n return div.toString(radix) + rem1.toInt().toString(radix);\n } else\n return '-' + this.neg().toString(radix);\n }\n\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\n rem = this;\n var result = '';\n while (true) {\n var remDiv = rem.div(radixToPower),\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\n digits = intval.toString(radix);\n rem = remDiv;\n if (rem.isZero())\n return digits + result;\n else {\n while (digits.length < 6)\n digits = '0' + digits;\n result = '' + digits + result;\n }\n }\n};\n\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nLongPrototype.getHighBits = function getHighBits() {\n return this.high;\n};\n\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\n return this.high >>> 0;\n};\n\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nLongPrototype.getLowBits = function getLowBits() {\n return this.low;\n};\n\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\n return this.low >>> 0;\n};\n\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\n if (this.isNegative()) // Unsigned Longs are never negative\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\n var val = this.high != 0 ? this.high : this.low;\n for (var bit = 31; bit > 0; bit--)\n if ((val & (1 << bit)) != 0)\n break;\n return this.high != 0 ? bit + 33 : bit + 1;\n};\n\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isZero = function isZero() {\n return this.high === 0 && this.low === 0;\n};\n\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\nLongPrototype.eqz = LongPrototype.isZero;\n\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isNegative = function isNegative() {\n return !this.unsigned && this.high < 0;\n};\n\n/**\n * Tests if this Long's value is positive or zero.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isPositive = function isPositive() {\n return this.unsigned || this.high >= 0;\n};\n\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isOdd = function isOdd() {\n return (this.low & 1) === 1;\n};\n\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nLongPrototype.isEven = function isEven() {\n return (this.low & 1) === 0;\n};\n\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.equals = function equals(other) {\n if (!isLong(other))\n other = fromValue(other);\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\n return false;\n return this.high === other.high && this.low === other.low;\n};\n\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.eq = LongPrototype.equals;\n\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.notEquals = function notEquals(other) {\n return !this.eq(/* validates */ other);\n};\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.neq = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ne = LongPrototype.notEquals;\n\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThan = function lessThan(other) {\n return this.comp(/* validates */ other) < 0;\n};\n\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lt = LongPrototype.lessThan;\n\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\n return this.comp(/* validates */ other) <= 0;\n};\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.le = LongPrototype.lessThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThan = function greaterThan(other) {\n return this.comp(/* validates */ other) > 0;\n};\n\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gt = LongPrototype.greaterThan;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\n return this.comp(/* validates */ other) >= 0;\n};\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\n\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\n\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.compare = function compare(other) {\n if (!isLong(other))\n other = fromValue(other);\n if (this.eq(other))\n return 0;\n var thisNeg = this.isNegative(),\n otherNeg = other.isNegative();\n if (thisNeg && !otherNeg)\n return -1;\n if (!thisNeg && otherNeg)\n return 1;\n // At this point the sign bits are the same\n if (!this.unsigned)\n return this.sub(other).isNegative() ? -1 : 1;\n // Both are positive if at least one is unsigned\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\n};\n\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nLongPrototype.comp = LongPrototype.compare;\n\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nLongPrototype.negate = function negate() {\n if (!this.unsigned && this.eq(MIN_VALUE))\n return MIN_VALUE;\n return this.not().add(ONE);\n};\n\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\nLongPrototype.neg = LongPrototype.negate;\n\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} addend Addend\n * @returns {!Long} Sum\n */\nLongPrototype.add = function add(addend) {\n if (!isLong(addend))\n addend = fromValue(addend);\n\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xFFFF;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xFFFF;\n\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xFFFF;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 + b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.subtract = function subtract(subtrahend) {\n if (!isLong(subtrahend))\n subtrahend = fromValue(subtrahend);\n return this.add(subtrahend.neg());\n};\n\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nLongPrototype.sub = LongPrototype.subtract;\n\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.multiply = function multiply(multiplier) {\n if (this.isZero())\n return this;\n if (!isLong(multiplier))\n multiplier = fromValue(multiplier);\n\n // use wasm support if present\n if (wasm) {\n var low = wasm[\"mul\"](this.low,\n this.high,\n multiplier.low,\n multiplier.high);\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (multiplier.isZero())\n return this.unsigned ? UZERO : ZERO;\n if (this.eq(MIN_VALUE))\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\n if (multiplier.eq(MIN_VALUE))\n return this.isOdd() ? MIN_VALUE : ZERO;\n\n if (this.isNegative()) {\n if (multiplier.isNegative())\n return this.neg().mul(multiplier.neg());\n else\n return this.neg().mul(multiplier).neg();\n } else if (multiplier.isNegative())\n return this.mul(multiplier.neg()).neg();\n\n // If both longs are small, use float multiplication\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\n\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n\n var a48 = this.high >>> 16;\n var a32 = this.high & 0xFFFF;\n var a16 = this.low >>> 16;\n var a00 = this.low & 0xFFFF;\n\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xFFFF;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\n};\n\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nLongPrototype.mul = LongPrototype.multiply;\n\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.divide = function divide(divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n if (divisor.isZero())\n throw Error('division by zero');\n\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (!this.unsigned &&\n this.high === -0x80000000 &&\n divisor.low === -1 && divisor.high === -1) {\n // be consistent with non-wasm code path\n return this;\n }\n var low = (this.unsigned ? wasm[\"div_u\"] : wasm[\"div_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n if (this.isZero())\n return this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (this.eq(MIN_VALUE)) {\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (divisor.eq(MIN_VALUE))\n return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = this.shr(1);\n approx = halfThis.div(divisor).shl(1);\n if (approx.eq(ZERO)) {\n return divisor.isNegative() ? ONE : NEG_ONE;\n } else {\n rem = this.sub(divisor.mul(approx));\n res = approx.add(rem.div(divisor));\n return res;\n }\n }\n } else if (divisor.eq(MIN_VALUE))\n return this.unsigned ? UZERO : ZERO;\n if (this.isNegative()) {\n if (divisor.isNegative())\n return this.neg().div(divisor.neg());\n return this.neg().div(divisor).neg();\n } else if (divisor.isNegative())\n return this.div(divisor.neg()).neg();\n res = ZERO;\n } else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned)\n divisor = divisor.toUnsigned();\n if (divisor.gt(this))\n return UZERO;\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = this;\n while (rem.gte(divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\n\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\n\n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx),\n approxRem = approxRes.mul(divisor);\n while (approxRem.isNegative() || approxRem.gt(rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, this.unsigned);\n approxRem = approxRes.mul(divisor);\n }\n\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (approxRes.isZero())\n approxRes = ONE;\n\n res = res.add(approxRes);\n rem = rem.sub(approxRem);\n }\n return res;\n};\n\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nLongPrototype.div = LongPrototype.divide;\n\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.modulo = function modulo(divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n\n // use wasm support if present\n if (wasm) {\n var low = (this.unsigned ? wasm[\"rem_u\"] : wasm[\"rem_s\"])(\n this.low,\n this.high,\n divisor.low,\n divisor.high\n );\n return fromBits(low, wasm[\"get_high\"](), this.unsigned);\n }\n\n return this.sub(this.div(divisor).mul(divisor));\n};\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.mod = LongPrototype.modulo;\n\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nLongPrototype.rem = LongPrototype.modulo;\n\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nLongPrototype.not = function not() {\n return fromBits(~this.low, ~this.high, this.unsigned);\n};\n\n/**\n * Returns count leading zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countLeadingZeros = function countLeadingZeros() {\n return this.high ? Math.clz32(this.high) : Math.clz32(this.low) + 32;\n};\n\n/**\n * Returns count leading zeros. This is an alias of {@link Long#countLeadingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.clz = LongPrototype.countLeadingZeros;\n\n/**\n * Returns count trailing zeros of this Long.\n * @this {!Long}\n * @returns {!number}\n */\nLongPrototype.countTrailingZeros = function countTrailingZeros() {\n return this.low ? ctz32(this.low) : ctz32(this.high) + 32;\n};\n\n/**\n * Returns count trailing zeros. This is an alias of {@link Long#countTrailingZeros}.\n * @function\n * @param {!Long}\n * @returns {!number}\n */\nLongPrototype.ctz = LongPrototype.countTrailingZeros;\n\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.and = function and(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.or = function or(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\n};\n\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nLongPrototype.xor = function xor(other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\n else\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\n};\n\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shl = LongPrototype.shiftLeft;\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRight = function shiftRight(numBits) {\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n else if (numBits < 32)\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\n else\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\n};\n\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr = LongPrototype.shiftRight;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits < 32) return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >>> numBits, this.unsigned);\n if (numBits === 32) return fromBits(this.high, 0, this.unsigned);\n return fromBits(this.high >>> (numBits - 32), 0, this.unsigned);\n};\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.low << numBits) | (this.high >>> b)), ((this.high << numBits) | (this.low >>> b)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.high << numBits) | (this.low >>> b)), ((this.low << numBits) | (this.high >>> b)), this.unsigned);\n}\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotl = LongPrototype.rotateLeft;\n\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits)) numBits = numBits.toInt();\n if ((numBits &= 63) === 0) return this;\n if (numBits === 32) return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.high << b) | (this.low >>> numBits)), ((this.low << b) | (this.high >>> numBits)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.low << b) | (this.high >>> numBits)), ((this.high << b) | (this.low >>> numBits)), this.unsigned);\n}\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nLongPrototype.rotr = LongPrototype.rotateRight;\n\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nLongPrototype.toSigned = function toSigned() {\n if (!this.unsigned)\n return this;\n return fromBits(this.low, this.high, false);\n};\n\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nLongPrototype.toUnsigned = function toUnsigned() {\n if (this.unsigned)\n return this;\n return fromBits(this.low, this.high, true);\n};\n\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.} Byte representation\n */\nLongPrototype.toBytes = function toBytes(le) {\n return le ? this.toBytesLE() : this.toBytesBE();\n};\n\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Little endian byte representation\n */\nLongPrototype.toBytesLE = function toBytesLE() {\n var hi = this.high,\n lo = this.low;\n return [\n lo & 0xff,\n lo >>> 8 & 0xff,\n lo >>> 16 & 0xff,\n lo >>> 24,\n hi & 0xff,\n hi >>> 8 & 0xff,\n hi >>> 16 & 0xff,\n hi >>> 24\n ];\n};\n\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Big endian byte representation\n */\nLongPrototype.toBytesBE = function toBytesBE() {\n var hi = this.high,\n lo = this.low;\n return [\n hi >>> 24,\n hi >>> 16 & 0xff,\n hi >>> 8 & 0xff,\n hi & 0xff,\n lo >>> 24,\n lo >>> 16 & 0xff,\n lo >>> 8 & 0xff,\n lo & 0xff\n ];\n};\n\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\n};\n\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\n return new Long(\n bytes[0] |\n bytes[1] << 8 |\n bytes[2] << 16 |\n bytes[3] << 24,\n bytes[4] |\n bytes[5] << 8 |\n bytes[6] << 16 |\n bytes[7] << 24,\n unsigned\n );\n};\n\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\n return new Long(\n bytes[4] << 24 |\n bytes[5] << 16 |\n bytes[6] << 8 |\n bytes[7],\n bytes[0] << 24 |\n bytes[1] << 16 |\n bytes[2] << 8 |\n bytes[3],\n unsigned\n );\n};\n\nexport default Long;\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n CustomError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n enumerable: false,\n configurable: true,\n },\n name: {\n get: function get() { return name; },\n set: undefined,\n enumerable: false,\n // configurable: false would accurately preserve the behavior of\n // the original, but I'm guessing that was not intentional.\n // For an actual error subclass, this property would\n // be configurable.\n configurable: true,\n },\n toString: {\n value: function value() { return this.name + \": \" + this.message; },\n writable: true,\n enumerable: false,\n configurable: true,\n },\n });\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available across modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Address, Location, GeoPoint, Point } from \"./common\";\nimport {\n ConnectionStatus,\n Quote,\n QuoteRequest,\n ConnectionType,\n} from \"./connectProtos\";\nimport { AuthMethod } from \"./wimanProtos\";\nimport { GuestPasswordStrategy, PortMapping } from \"./mbootProtos\";\n\nexport const protobufPackage = \"api\";\n\nexport enum CompanyMembershipRole {\n unknown = \"unknown\",\n guest = \"guest\",\n member = \"member\",\n admin = \"admin\",\n}\n\nexport enum SIMAPN {\n APN_EMPTY = \"APN_EMPTY\",\n APN_TWILIO_WIRELESS = \"APN_TWILIO_WIRELESS\",\n /**\n * APN_SUPER - This references the Twilio Super SIM\n * https://www.twilio.com/docs/iot/supersim\n */\n APN_SUPER = \"APN_SUPER\",\n}\n\nexport enum SMSMessageEnum {\n SMS_UNKNOWN = \"SMS_UNKNOWN\",\n SMS_DOWNLOAD_TUNNEL_ANDROID = \"SMS_DOWNLOAD_TUNNEL_ANDROID\",\n SMS_DOWNLOAD_TUNNEL_IOS = \"SMS_DOWNLOAD_TUNNEL_IOS\",\n}\n\nexport enum LifecycleStatus {\n LIFECYCLE_STATUS_UNKNOWN = \"LIFECYCLE_STATUS_UNKNOWN\",\n LIFECYCLE_STATUS_INSTALLED_PRIMARY = \"LIFECYCLE_STATUS_INSTALLED_PRIMARY\",\n LIFECYCLE_STATUS_INSTALLED_BACKUP = \"LIFECYCLE_STATUS_INSTALLED_BACKUP\",\n LIFECYCLE_STATUS_INACTIVE = \"LIFECYCLE_STATUS_INACTIVE\",\n LIFECYCLE_STATUS_PROVISIONED = \"LIFECYCLE_STATUS_PROVISIONED\",\n LIFECYCLE_STATUS_UNINSTALLED = \"LIFECYCLE_STATUS_UNINSTALLED\",\n LIFECYCLE_STATUS_DEMO = \"LIFECYCLE_STATUS_DEMO\",\n}\n\nexport enum ISPProduct {\n IR_UNKNOWN = \"IR_UNKNOWN\",\n IR_DEDICATED_FIBER = \"IR_DEDICATED_FIBER\",\n IR_SHARED_FIBER = \"IR_SHARED_FIBER\",\n IR_POINT_TO_POINT_WIRELESS = \"IR_POINT_TO_POINT_WIRELESS\",\n IR_RESIDENTIAL_FIBER = \"IR_RESIDENTIAL_FIBER\",\n IR_RESIDENTIAL_CABLE = \"IR_RESIDENTIAL_CABLE\",\n IR_BUSINESS_CABLE = \"IR_BUSINESS_CABLE\",\n}\n\nexport enum ISPStatus {\n IS_UNKNOWN = \"IS_UNKNOWN\",\n IS_PRIMARY = \"IS_PRIMARY\",\n IS_BACKUP = \"IS_BACKUP\",\n}\n\nexport enum AccessPointStatus {\n access_point_status_unknown = \"access_point_status_unknown\",\n draft = \"draft\",\n offline = \"offline\",\n online = \"online\",\n}\n\nexport enum InventoryStatus {\n inventory_status_unknown = \"inventory_status_unknown\",\n in_stock = \"in_stock\",\n ready_for_install = \"ready_for_install\",\n}\n\nexport enum RadioBand {\n RB_UNKNOWN = \"RB_UNKNOWN\",\n RB_2G = \"RB_2G\",\n RB_5G = \"RB_5G\",\n}\n\n/**\n * DeploymentStatus represents the status of a Deployment.\n * https://docs.aws.amazon.com/sdk-for-go/api/service/greengrass/#GetDeploymentStatusOutput\n */\nexport enum DeploymentStatus {\n DS_UNKNOWN = \"DS_UNKNOWN\",\n DS_IN_PROGRESS = \"DS_IN_PROGRESS\",\n DS_BUILDING = \"DS_BUILDING\",\n DS_SUCCESS = \"DS_SUCCESS\",\n DS_FAILURE = \"DS_FAILURE\",\n}\n\nexport enum RecordType {\n RT_UNKNOWN = \"RT_UNKNOWN\",\n RT_DNSMASQ_LEASE = \"RT_DNSMASQ_LEASE\",\n RT_DHCP_LOG = \"RT_DHCP_LOG\",\n RT_CORE_DUMP = \"RT_CORE_DUMP\",\n}\n\n/** TODO APPENG-362: Deprecate entire enum */\nexport enum UserRole {\n UR_MEMBER = \"UR_MEMBER\",\n UR_GUEST = \"UR_GUEST\",\n UR_ADMIN = \"UR_ADMIN\",\n}\n\nexport enum ControllerEventType {\n CE_UNKNOWN = \"CE_UNKNOWN\",\n CE_CREATED = \"CE_CREATED\",\n CE_ONLINE = \"CE_ONLINE\",\n CE_OFFLINE = \"CE_OFFLINE\",\n CE_DEGRADED = \"CE_DEGRADED\",\n}\n\nexport enum AccessPointEventType {\n AE_UNKNOWN = \"AE_UNKNOWN\",\n AE_CREATED = \"AE_CREATED\",\n AE_OFFLINE = \"AE_OFFLINE\",\n AE_ONLINE = \"AE_ONLINE\",\n AE_DEGRADED = \"AE_DEGRADED\",\n}\n\nexport enum SSHUser {\n SU_UNKNOWN = \"SU_UNKNOWN\",\n SU_SUPPORT = \"SU_SUPPORT\",\n SU_ADMIN = \"SU_ADMIN\",\n}\n\nexport enum BuildingContactType {\n unknown_building_contact_type = \"unknown_building_contact_type\",\n property_manager = \"property_manager\",\n riser_manager = \"riser_manager\",\n self = \"self\",\n other = \"other\",\n}\n\nexport enum OnboardingStatus {\n unknown_onboarding_status = \"unknown_onboarding_status\",\n information_pending = \"information_pending\",\n information_complete = \"information_complete\",\n network_ready = \"network_ready\",\n}\n\nexport enum ContentFilterAction {\n CONTENTFILTER_ACTION_UNKNOWN = \"CONTENTFILTER_ACTION_UNKNOWN\",\n CONTENTFILTER_ACTION_ALLOW = \"CONTENTFILTER_ACTION_ALLOW\",\n CONTENTFILTER_ACTION_BLOCK = \"CONTENTFILTER_ACTION_BLOCK\",\n}\n\n/**\n * All 400 or 500 error messages will have this format. \"title\" should always be\n * set; \"id\" is usually set; other fields may be set, but not always.\n */\nexport interface Error {\n title: string;\n id: string;\n detail: string;\n instance: string;\n type: string;\n status: number;\n}\n\n/**\n * Returned from any \"DELETE\" request or some POST requests where we were lazy\n * and didn't return a body.\n */\nexport interface Empty {}\n\n/** The compan(ies) that the user belongs to. */\nexport interface CompanyMembership {\n company_slug: string;\n /** TODO APPENG-362: Deprecate this */\n role: CompanyMembership_Role;\n sid: string;\n user_role: CompanyMembershipRole;\n}\n\n/** TODO APPENG-362: Deprecate this */\nexport enum CompanyMembership_Role {\n unknown = \"unknown\",\n guest = \"guest\",\n member = \"member\",\n admin = \"admin\",\n}\n\nexport interface IdentityResponse {\n /** for human users, this is an email address */\n username: string;\n permissions: string[];\n expires_at?: string;\n created_at?: string;\n company_memberships: CompanyMembership[];\n id: number;\n first_name?: string;\n last_name?: string;\n}\n\nexport interface SIM {\n sim_iccid: string;\n modem_iccid: string;\n sim_apn: SIMAPN;\n}\n\nexport interface SMSMessage {\n /** Receiving phone number, who should receive this message (format: https://www.twilio.com/docs/glossary/what-e164) */\n receiver: string;\n /** Corresponding ISO country code for phone number */\n country_code: string;\n /** Specific SMS body enum, mapping to templated message on the backend */\n body: SMSMessageEnum;\n}\n\nexport interface ControllerCreateRequest {\n /** Name is eight bytes of a UUID. */\n name: string;\n dry_run: boolean;\n /**\n * This is how we generate the wifi SSID and each *company* / customer must be\n * unique. Multiple controllers may share a company slug.\n */\n company_slug: string;\n address: string;\n permitted_domains: string[];\n company_admins: string[];\n square_feet: number;\n /**\n * We *could* pull this from the user agent, but it's easier to be explicit.\n * If mboot version is empty (\"\"), then we assume we are provisioning a COS controller.\n * Once we fully rollout COS and remove legacy controllers from production, this field\n * will be deprecated and removed.\n */\n mboot_version: string;\n network_interfaces: NetworkInterfaceCreateRequest[];\n /**\n * Friendly name for the company, if the slug is \"tishman-speyer\" this would\n * be \"Tishman Speyer\". If unspecified we try to generate it from the company\n * slug.\n */\n company_name: string;\n sim?: SIM;\n vpn_server?: VPNServer;\n /**\n * Controller's IPv6 address on the jumphost subnet. Used to send requests to\n * this controller.\n */\n tunnel_addr: string;\n /**\n * 32 byte Curve25519 public key used to add this controller to the\n * jumphost's WireGuard interface.\n */\n tunnel_public_key: Uint8Array;\n structured_address?: Address;\n}\n\nexport interface DeploymentCreateRequest {\n /**\n * Async will wait for any in-progress deployments to complete before\n * attempting to create a new deployment.\n */\n async: boolean;\n}\n\n/**\n * GET /v1/controllers/:name, POST /v1/controllers\n * TODO: Consolidate usage with ControllerDeviceResponse\n */\nexport interface ControllerResponse {\n sid: string;\n created_at?: string;\n name: string;\n hostname: string;\n address: string;\n company_slug: string;\n square_feet: number;\n ngrok_addr: string;\n mboot_version: string;\n updated_at?: string;\n status: string;\n /** Links to related resources */\n links: { [key: string]: string };\n sim?: SIM;\n tunnel_addr: string;\n tunnel_public_key: Uint8Array;\n /** free-form JSON intended for storing information strictly for user display purposes in NOC */\n noc_metadata?: { [key: string]: any };\n location?: Location;\n lifecycle_status: LifecycleStatus;\n}\n\nexport interface ControllerResponse_LinksEntry {\n key: string;\n value: string;\n}\n\nexport interface NetworkInterfaceCreateRequest {\n /** Controller is passed as part of the URL. */\n interface: string;\n description: string;\n}\n\nexport interface NetworkInterfaceUpdateRequest {\n description: string;\n /**\n * Set to true to set ISP field to null, it's an error to set both this and\n * the field below it.\n */\n set_isp_empty: boolean;\n /**\n * SID of the ISP. An error to set this to a non-empty value and also set\n * set_isp_empty to true.\n */\n internet_service_plan: string;\n}\n\nexport interface NetworkInterfaceResponse {\n sid: string;\n created_at?: string;\n updated_at?: string;\n controller: string;\n interface: string;\n description: string;\n /** May be empty if there is no ISP plugged in */\n internet_service_plan: string;\n}\n\nexport interface NetworkInterfaceListResponse {\n interfaces: NetworkInterfaceResponse[];\n}\n\nexport interface BandwidthListResponse {\n controller: string;\n streams: BandwidthDataStream[];\n}\n\nexport interface BandwidthDataStream {\n interface: string;\n down: boolean;\n period: number;\n starting_at?: string;\n value: number[];\n}\n\n/** POST /v1/controllers/:name/internet-service-plans */\nexport interface ISPCreateRequest {\n provider: string;\n product: ISPProduct;\n status: ISPStatus;\n account_number: string;\n notes: string;\n download_kbps: number;\n upload_kbps: number;\n monthly_cost_cents: number;\n /**\n * IP address and mask; IP address does not need to be the lowest in the\n * range. Empty for Dynamic IP\n */\n static_ip_range: string;\n gateway_addr: string;\n /**\n * The controller IP should not be the same as the gateway addr and should not\n * be within the IP range from first to last usable IP.\n */\n controller_ip: string;\n first_usable_ip: string;\n last_usable_ip: string;\n network_interface?: string;\n}\n\n/** POST /v1/controllers/:name/internet-service-plans/:sid (POST for legacy tech debt) */\nexport interface ISPUpdateRequest {\n provider: string;\n product: ISPProduct;\n status: ISPStatus;\n account_number: string;\n notes: string;\n download_kbps: number;\n upload_kbps: number;\n monthly_cost_cents: number;\n /**\n * If true, all of the static IP fields will be cleared. An error to set this\n * to true and set any of fields 10-14 to a non-empty value.\n */\n set_dynamic_ip: boolean;\n static_ip_range: string;\n gateway_addr: string;\n controller_ip: string;\n first_usable_ip: string;\n last_usable_ip: string;\n network_interface?: string;\n}\n\nexport interface Company {\n sid: string;\n created_at?: string;\n default_slug: string;\n name: string;\n billing_enabled: boolean;\n}\n\nexport interface CompanyLocation {\n sid: string;\n company?: Company;\n created_at?: string;\n name?: string;\n location?: Location;\n}\n\n/** GET /v1/companies/:slug/locations */\nexport interface CompanyLocationsResponse {\n company_locations: CompanyLocationResponse[];\n}\n\n/** PUT /v1/companies/:company-slug/locations/:company-location-sid */\nexport interface CompanyLocationResponse {\n sid: string;\n company?: Company;\n name: string;\n location?: Location;\n billing_enabled: boolean;\n}\n\nexport interface ConnectionStatusChange {\n internet_service_plan?: InternetServicePlan;\n created_at?: string;\n connection_status?: ConnectionStatus;\n notes: string;\n related_ts?: string;\n sid: string;\n}\n\n/** GET /v1/controllers/:name/internet-service-plans */\nexport interface InternetServicePlan {\n sid: string;\n created_at?: string;\n updated_at?: string;\n controller: string;\n provider: string;\n product: ISPProduct;\n status: ISPStatus;\n account_number: string;\n notes: string;\n download_kbps: number;\n upload_kbps: number;\n monthly_cost_cents: number;\n /**\n * IP address and mask; IP address does not need to be the lowest in the\n * range. Empty for Dynamic IP\n */\n static_ip_range: string;\n gateway_addr: string;\n controller_ip: string;\n first_usable_ip: string;\n last_usable_ip: string;\n has_static_ip: boolean;\n provider_name: string;\n network_interface?: string;\n quote?: Quote;\n company_location?: CompanyLocation;\n additional_products: { [key: string]: string };\n billing_provider_name: string;\n primary_contact_email: string;\n renewal_date?: string;\n contact_phone_number: string;\n contract_url: string;\n quote_request?: QuoteRequest;\n}\n\nexport interface InternetServicePlan_AdditionalProductsEntry {\n key: string;\n value: string;\n}\n\nexport interface CompanyContractResponse {\n latest_status?: ConnectionStatusChange;\n internet_service_plan?: InternetServicePlan;\n provider?: Provider;\n connection_type?: ConnectionType;\n}\n\nexport interface CompanyContractsResponse {\n company_location?: CompanyLocationResponse;\n company_contracts: CompanyContractResponse[];\n}\n\n/** GET /v1/connect/contracts */\nexport interface AllContractsResponse {\n contracts: CompanyContractsResponse[];\n company?: CompanyResponse;\n}\n\n/** POST /v1/connect/admin/companies/:company-slug/internet-service-plans/:internet-service-plan-sid/statuses */\nexport interface CompanyISPStatusChangeRequest {\n status?: ConnectionStatus;\n}\n\nexport interface CompanyISPStatusChangeResponse {\n status_change?: ConnectionStatusChange;\n}\n\nexport interface ISPListResponse {\n plans: InternetServicePlan[];\n}\n\n/** Payloads marshalled in a ControllerResponse */\nexport interface ControllerGrepPayload {\n result: string;\n}\n\nexport interface ControllerGrepRequest {\n query: string;\n}\n\nexport interface ClientLogsRequest {\n macaddr: string;\n}\n\nexport interface PasswordParams {\n /**\n * this is a types.NetworkType, we don't use the proto enum because other\n * stuff is already hardcoded to \"private\" / \"guest\"\n */\n network: string;\n password: string;\n restart: number;\n}\n\n/**\n * POST /v1/controllers/:name\n *\n * Updates a controller. To update a field, set it to a nonzero value, otherwise\n * the update will not be applied.\n *\n * (This only works for fields that have mandatory nonzero values, an approach\n * that might not scale. But it works for now, so let's roll with it).\n */\nexport interface ControllerUpdateRequest {\n square_feet: number;\n address: string;\n mboot_version: string;\n status: string;\n tunnel_addr: string;\n tunnel_public_key: Uint8Array;\n company_sid: string;\n /** free-form JSON intended for storing information strictly for user display purposes in NOC */\n noc_metadata?: { [key: string]: any };\n structured_address?: Address;\n lifecycle_status: LifecycleStatus;\n}\n\n/** GET /v1/companies/:slug/controllers */\nexport interface CompanyControllersResponse {\n company_slug: string;\n controllers: ControllerResponse[];\n}\n\n/** GET /v1/controllers */\nexport interface ControllersResponse {\n controllers: ControllerResponse[];\n}\n\nexport interface CompanyResponse {\n slug: string;\n sid: string;\n created_at?: string;\n name: string;\n billing_enabled: boolean;\n}\n\n/** POST /v1/companies */\nexport interface CompanyCreateRequest {\n slug: string;\n name: string;\n}\n\nexport interface CompanyUpdateRequest {\n name: string;\n}\n\nexport interface CompanyUpdateBillingRequest {\n billing_enabled: boolean;\n}\n\nexport interface CompaniesListResponse {\n companies: CompanyResponse[];\n}\n\n/**\n * DEPRECATED: POST /v1/controllers/:name/access-points requires a CSV upload.\n *\n * @deprecated\n */\nexport interface AccessPointCreateRequest {}\n\n/** PUT /v1/controllers/:name/access-points/:name */\nexport interface AccessPointPutRequest {\n /** Controller name and AP name are provided in the URL. */\n dry_run: boolean;\n /** Version as \"1.4.8\". Error to pass both this and major, minor, patch */\n version: string;\n version_major: number;\n version_minor: number;\n version_patch: number;\n location: string;\n /**\n * skip_greengrass_registration tells the backend not to try to register the AP in Greengrass\n * Sometimes we want to make simple updates like the `location` without triggering the heavyweight controller-Greengrass-deployment job.\n */\n skip_greengrass_registration: boolean;\n inventory_status: InventoryStatus;\n status: AccessPointStatus;\n /**\n * model_name is not actually editable on the backend, but it helps us uniquely identify an AP\n * because in our inventory tracker, multiple APs of different model names can have the same name.\n */\n model_name: string;\n /** serial_number is the unique identifier of any piece of hardware */\n serial_number: string;\n}\n\n/**\n * DEPRECATED: POST /v1/controllers/:name/access-points/:name\n *\n * @deprecated\n */\nexport interface AccessPointUpdateRequest {}\n\n/** TODO: Consolidate usage with AccessPointDeviceResponse */\nexport interface AccessPointResponse {\n /** DEPRECATED: This is actually the name. Use the name property going forward. */\n id: string;\n /** NB, not all fields may be set. */\n thing_arn: string;\n certificate_arn: string;\n sync_shadow: boolean;\n sid: string;\n version: string;\n location: string;\n created_at?: string;\n updated_at?: string;\n controller: string;\n name: string;\n /**\n * If connected_clients is set to -1, the value was not retrieved as part of\n * the request.\n */\n connected_clients: number;\n status: string;\n inventory_status: InventoryStatus;\n}\n\nexport interface AccessPointRadioCreateRequest {\n index: number;\n channel: number;\n channel_width: number;\n power: number;\n disabled: boolean;\n}\n\nexport interface AccessPointRadioUpdateRequest {\n channel: number;\n channel_width: number;\n power: number;\n disabled: boolean;\n /**\n * True if the disabled field's value represents a genuine change from its\n * previous state (vs. unset)\n */\n disabled_changed: boolean;\n}\n\n/** GET /v1/companies/:slug/devices */\nexport interface NetworkDevicesResponse {\n controllers: ControllerDeviceResponse[];\n}\n\n/** GET /v1/controllers/:name/devices */\nexport interface ControllerDeviceResponse {\n name: string;\n serial_number: string;\n mac_address: string;\n ip_address: string;\n connected_status: string;\n lifecycle_status: string;\n switches: SwitchResponse[];\n access_points: AccessPointDeviceResponse[];\n connected_clients?: number;\n /** free-form JSON intended for storing information strictly for user display purposes, typically in NOC */\n internal_display_metadata?: { [key: string]: any };\n}\n\nexport interface AccessPointDeviceResponse {\n name: string;\n serial_number: string;\n mac_address: string;\n ip_address: string;\n connected_status: string;\n location: string;\n radios: AccessPointRadioConfig[];\n connected_clients?: number;\n}\n\nexport interface AccessPointRadioConfig {\n band: RadioBand;\n channel: number;\n channel_width_MHz: number;\n tx_power_dBm: number;\n enabled: boolean;\n}\n\n/** TODO: Consolidate usage with AccessPointRadioConfig */\nexport interface AccessPointRadioResponse {\n controller: string;\n name: string;\n index: number;\n band: RadioBand;\n sid: string;\n channel: number;\n channel_width: number;\n power: number;\n disabled: boolean;\n created_at?: string;\n updated_at?: string;\n}\n\n/** TODO: Consolidate usage with AccessPointDeviceResponse */\nexport interface AccessPointRadiosResponse {\n access_point?: AccessPointResponse;\n radios: AccessPointRadioResponse[];\n /** IP address of the access point, may not be set in all cases. */\n ip_address: string;\n}\n\nexport interface SwitchResponse {\n serial_number: string;\n location: string;\n controller: string;\n model: string;\n inventory_status: string;\n mac: string;\n}\n\n/**\n * GET /v1/access-points\n * GET /v1/controllers/:name/access-points\n */\nexport interface AccessPointsResponse {\n access_points: AccessPointResponse[];\n}\n\n/** DELETE /v1/controllers/:name request body */\nexport interface ControllerDeleteRequest {\n name: string;\n dry_run: boolean;\n}\n\nexport interface HomepageResponse {\n status: number;\n type: string;\n server_version: string;\n versions: Version[];\n}\n\nexport interface Version {\n name: string;\n path: string;\n}\n\n/**\n * AccessPointsDownRequest is made to notify the API that access points are\n * down.\n *\n * DEPRECATED: Use AccessPointsStatusRequest instead.\n */\nexport interface AccessPointsDownRequest {\n access_point_names: string[];\n num_expected_access_points: number;\n}\n\n/**\n * AccessPointsStatusRequest is made to notify the API about access point\n * statuses.\n *\n * A client may make this request at any time to indicate its status; it may not\n * indicate that a change has occurred.\n */\nexport interface AccessPointsStatusRequest {\n /** [\"meter-ap-12345\", \"meter-ap-4567\"] */\n observed_at?: string;\n down_access_points: string[];\n up_access_points: string[];\n}\n\n/** GET /v1/controllers/:name/deployments/:id response */\nexport interface DeploymentResponse {\n id: string;\n path: string;\n status: DeploymentStatus;\n type: string;\n error_message: string;\n error_details: string;\n updated_at?: string;\n}\n\nexport interface AnalyticsTopVendorsCreateRequest {\n analytics_id: string;\n created_at?: string;\n}\n\nexport interface AnalyticsTopVendorsResponse {\n upload_url: string;\n}\n\n/**\n * RecordsCreateRequest is a request to upload a record to the server. The\n * controller name should be passed as part of the URL.\n */\nexport interface RecordsCreateRequest {\n type: RecordType;\n created_at?: string;\n}\n\nexport interface RemoteFile {\n sid: string;\n type: RecordType;\n filename: string;\n created_at?: string;\n controller: string;\n}\n\nexport interface RemoteFilesResponse {\n files: RemoteFile[];\n}\n\n/**\n * RecordsCreateResponse contains a URL that the client can upload the record\n * to.\n */\nexport interface RecordsCreateResponse {\n upload_url: string;\n}\n\nexport interface ControllerNetworkAccessResponse {\n resp: ControllerNetworkAccessInstanceResponse[];\n company_slug: string;\n}\n\nexport interface ControllerNetworkAccessInstanceResponse {\n permitted: boolean;\n email: string;\n is_admin: boolean;\n}\n\n/**\n * EncryptedFile contains the encrypted contents of a file. The reader can use\n * the attached public key to decrypt the message.\n */\nexport interface EncryptedFile {\n contents: Uint8Array;\n path: string;\n public_key: string;\n controller_id: string;\n}\n\nexport interface CertificatesResponse {\n full_chain?: EncryptedFile;\n private_key?: EncryptedFile;\n}\n\nexport interface UserResponse {\n sid: string;\n created_at?: string;\n email: string;\n company_slug: string;\n /** TODO APPENG-362: Deprecate this */\n role: UserRole;\n active_user_token_limit?: number;\n first_name?: string;\n last_name?: string;\n profile_picture_url?: string;\n company_role: CompanyMembershipRole;\n stytch_user_id?: string;\n}\n\nexport interface UsersResponse {\n company_slug: string;\n users: UserResponse[];\n}\n\n/** POST /v1/companies/:slug/users */\nexport interface UserCreateRequest {\n email: string;\n /** TODO APPENG-362: Deprecate this */\n role: UserRole;\n first_name?: string;\n last_name?: string;\n profile_picture_url?: string;\n company_role: CompanyMembershipRole;\n stytch_user_id?: string;\n}\n\n/** PUT /v1/companies/:slug/users/:sid */\nexport interface UserUpdateRequest {\n /** TODO APPENG-362: Deprecate this */\n role: UserRole;\n /**\n * The maximum number of company_user_tokens this company_user can have.\n * If set to null, implies unlimited.\n */\n active_user_token_limit?: number;\n active_user_token_limit_changed: boolean;\n first_name?: string;\n last_name?: string;\n profile_picture_url?: string;\n company_role: CompanyMembershipRole;\n}\n\n/** DELETE /v1/companies/:slug/users/:sid */\nexport interface UserDeleteRequest {\n sid: string;\n}\n\n/** POST /v1/companies/:slug/users/invite */\nexport interface InviteUsersRequest {\n users: UserCreateRequest[];\n}\n\nexport interface InviteUserResponse {\n email: string;\n is_error: boolean;\n is_success: boolean;\n}\n\nexport interface InviteUsersResponse {\n results: InviteUserResponse[];\n}\n\n/**\n * Struct holding data that gets sent to the API to complete a request/response\n * loop.\n */\nexport interface MQTTControllerResponse {\n version: number;\n status: string;\n error_id: string;\n error_text: string;\n data_id: string;\n /**\n * This might be better as a \"bytes\", but protobuf serializes that to base64.\n * since this is JSON data, all of the characters are printable, plus using\n * a string representation makes this more readable.\n */\n data: string;\n}\n\nexport interface ControllerMessageUpdateRequest {\n controller_name: string;\n message_sid: string;\n payload?: MQTTControllerResponse;\n}\n\n/**\n * ControllerMessageResponse is returned from any API endpoint that writes\n * a message to controller_messages and then sends an MQTT message to the\n * controller.\n */\nexport interface ControllerMessageResponse {\n controller_name: string;\n created_at?: string;\n message_sid: string;\n request: string;\n response?: MQTTControllerResponse;\n finished_at?: string;\n /** Links to related resources */\n links: { [key: string]: string };\n}\n\nexport interface ControllerMessageResponse_LinksEntry {\n key: string;\n value: string;\n}\n\n/**\n * GET /v1/noc/:name/events\n * Maps to a controller_event in the database.\n * Not the same thing as `ControllerEventListResponse`; that maps to a controller_status_event in the database.\n */\nexport interface AdhocControllerEventListResponse {\n events: AdhocControllerEvent[];\n}\n\nexport interface AdhocControllerEvent {\n controller: string;\n event_type: string;\n created_at?: string;\n message: string;\n subtype?: string;\n}\n\nexport interface ControllerEvent {\n sid: string;\n controller: string;\n created_at?: string;\n updated_at?: string;\n event_type: ControllerEventType;\n event_group: string;\n}\n\n/**\n * GET /v1/controllers/:name/events\n * Maps to a controller_status_event in the database.\n */\nexport interface ControllerEventListResponse {\n controller: string;\n events: ControllerEvent[];\n}\n\nexport interface AccessPointEvent {\n sid: string;\n controller: string;\n /** Access point name */\n name: string;\n event_type: AccessPointEventType;\n event_group: string;\n created_at?: string;\n updated_at?: string;\n}\n\nexport interface AccessPointEventListResponse {\n events: AccessPointEvent[];\n}\n\n/**\n * Protobuf to embed with objects in the Ngrok API. Better to do this than put\n * an arbitrary list of crap in there and then have to figure out later what we\n * put in.\n */\nexport interface NgrokMetadata {\n version: number;\n controller_name: string;\n}\n\nexport interface Timestamp {\n time?: string;\n}\n\nexport interface NetworkInfoUpdateRequest {\n private_ssid: string;\n private_2g_ssid: string;\n private_auth_method: AuthMethod;\n /** only applicable when private_auth_method is psk2 */\n private_password: string;\n guest_ssid: string;\n guest_password: string;\n guest_strategy: GuestPasswordStrategy;\n}\n\n/**\n * DHCPLease represents a single line of a list of dnsmasq leases. The fields\n * are here in the same order they appear in the lease file.\n */\nexport interface DHCPLease {\n expiry?: string;\n mac_address: string;\n ip_address: string;\n /** \"Computer name, if known. This is always unqualified (no domain part)\" */\n name: string;\n /**\n * Client-ID, if known. The client-ID is used as the computer's unique-ID\n * in preference to the MAC address, if it's available. Some DHCP clients\n * provide it, and some don't. The ones that do normally derive it from the\n * MAC address unless explicitly configured, but it could be something like a\n * serial number, which would protect a computer from losing its identity if\n * the network interface were replaced.\n */\n client_id: string;\n}\n\nexport interface NetworkClientsResponse {\n last_modified?: string;\n leases: DHCPLease[];\n}\n\nexport interface RadiusUser {\n username: string;\n devices_remaining: number;\n enabled: boolean;\n available_at?: string;\n macs: string[];\n /** may be empty if omitted / not returned */\n password: string;\n}\n\nexport interface RadiusUsersCreateRequest {\n username: string;\n password: string;\n devices_remaining: number;\n enabled: boolean;\n}\n\nexport interface RadiusUsersCreateResponse {\n user: string;\n}\n\nexport interface RadiusUsersEnableRequest {\n username: string;\n}\n\nexport interface RadiusUsersEnableResponse {\n user?: RadiusUser;\n}\n\nexport interface RadiusUsersDisableRequest {\n username: string;\n}\n\nexport interface RadiusUsersDisableResponse {\n user?: RadiusUser;\n}\n\nexport interface RadiusUsersUpdateRequest {\n /** maybe password later, if we need it, must be careful though */\n devices_remaining: number;\n}\n\nexport interface RadiusUsersUpdateResponse {\n user?: RadiusUser;\n}\n\nexport interface RadiusUsersListRequest {\n usernames: string[];\n show_password: boolean;\n}\n\nexport interface RadiusUsersListResponse {\n users: RadiusUser[];\n}\n\nexport interface RadiusDevice {\n mac: string;\n username: string;\n enabled: boolean;\n}\n\nexport interface RadiusDevicesListRequest {\n usernames: string[];\n macs: string[];\n}\n\nexport interface RadiusDevicesListResponse {\n devices: RadiusDevice[];\n}\n\nexport interface RadiusDevicesBindRequest {\n mac: string;\n username: string;\n}\n\nexport interface RadiusDevicesBindResponse {\n device?: RadiusDevice;\n}\n\nexport interface RadiusDevicesUnbindRequest {\n macs: string[];\n}\n\nexport interface RadiusDevicesUnbindResponse {\n unbound: number;\n}\n\nexport interface VpnPeer {\n public_key: string;\n preshared_key: string;\n endpoint: string;\n persistent_keepalive_interval: number;\n last_handshake_time?: string;\n rx_bytes: number;\n tx_bytes: number;\n allowedips: string[];\n protocol_version: number;\n}\n\nexport interface VpnInterface {\n tunnel_addrs: string[];\n public_key: string;\n /** actually only 16-bits */\n listen_port: number;\n fwmark: number;\n peers: VpnPeer[];\n link_local: string;\n}\n\nexport interface VpnInterfaceListRequest {\n show_peers: boolean;\n}\n\nexport interface VpnInterfaceListResponse {\n interface?: VpnInterface;\n}\n\nexport interface VpnInterfaceUpdateRequest {\n listen_port: number;\n tunnel_addrs: string[];\n}\n\nexport interface VpnInterfaceUpdateResponse {\n interface?: VpnInterface;\n}\n\nexport interface VpnInterfaceRekeyRequest {}\n\nexport interface VpnInterfaceRekeyResponse {\n interface?: VpnInterface;\n}\n\nexport interface VpnPeersListRequest {}\n\nexport interface VpnPeersListResponse {\n peers: VpnPeer[];\n}\n\nexport interface VpnPeersCreateRequest {\n public_key: string;\n preshared_key: string;\n endpoint: string;\n persistent_keepalive_interval: number;\n allowedips: string[];\n}\n\nexport interface VpnPeersCreateResponse {\n peer?: VpnPeer;\n}\n\nexport interface VpnPeersUpdateRequest {\n public_key: string;\n preshared_key: string;\n endpoint: string;\n persistent_keepalive_interval: number;\n allowedips: string[];\n}\n\nexport interface VpnPeersUpdateResponse {\n peer?: VpnPeer;\n}\n\nexport interface VpnPeersDestroyRequest {\n public_keys: string[];\n}\n\nexport interface VpnPeersDestroyResponse {}\n\nexport interface VPNClient {\n sid: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** company user sid of the end user of this VPN client */\n user_sid: string;\n name: string;\n ip_address: string;\n created_at?: string;\n /** email of the user that created this VPN client (may be different than the intended end user) */\n created_by: string;\n}\n\n/**\n * VPNServer stores data needed to create a WireGuard config file used\n * to connect to the VPN.\n */\nexport interface VPNServer {\n /** endpoint of the server, e.g. meter.meterddns.com */\n endpoint: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** listen port of the VPNServer */\n port?: number;\n}\n\nexport interface VPNClientsListRequest {}\n\nexport interface VPNClientsListResponse {\n clients: VPNClient[];\n}\n\nexport interface VPNClientCreateRequest {\n /** a Curve25519 public key - the end user should generate via wireguard and provide */\n public_key: Uint8Array;\n /** end user device name, e.g. paulmbp */\n name: string;\n /** end user's company email, associated with the VPN server's controller, e.g. angie@meter.com */\n email: string;\n}\n\n/**\n * VPNClientImportRequest specifies individual VPN client data to be imported from a legacy controller.\n * To be deprecated after the legacy to COS migration is complete (track via BE-1535)\n */\nexport interface VPNClientImportRequest {\n /** a Curve25519 public key - the end user should generate via wireguard and provide */\n public_key: Uint8Array;\n /** end user device name, e.g. paulmbp */\n name: string;\n /** end user's company email, associated with the VPN server's controller, e.g. angie@meter.com */\n email: string;\n /** client IP address to be imported, assigned during legacy VPN setup */\n ip_address: string;\n}\n\n/**\n * VPNClientsImportRequest handles a mass import of existing VPN client data from a legacy controller VPN to its\n * corresponding COS controller VPN during an upgrade event.\n * To be deprecated after the legacy to COS migration is complete (track via BE-1535)\n */\nexport interface VPNClientsImportRequest {\n clients: VPNClientImportRequest[];\n}\n\nexport interface VPNClientResponse {\n client?: VPNClient;\n server?: VPNServer;\n}\n\nexport interface VPNClientsDeleteRequest {\n requests: VPNClientDeleteRequest[];\n}\n\nexport interface VPNClientDeleteRequest {\n sid: string;\n}\n\nexport interface VPNServerUpdateRequest {\n server?: VPNServer;\n}\n\nexport interface VPNServerUpsertRequest {\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n}\n\nexport interface InternalVPNClient {\n sid: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n user_sid: string;\n name: string;\n ip_address: string;\n created_by: string;\n created_at?: string;\n}\n\n/**\n * VPNServer stores data needed to create a WireGuard config file used\n * to connect to the VPN.\n */\nexport interface InternalVPNServer {\n /** unique ID for this VPN Server, only used on read requests */\n sid: string;\n /** friendly name for this VPN server */\n name: string;\n /** The CIDR of the WireGuard network, least significant bit should be a 1. */\n network: string;\n /** endpoint of the server, a FQDN or IP address plus a port */\n endpoint: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** listen port of the VPNServer */\n port: number;\n}\n\nexport interface InternalVPNClientsListResponse {\n clients: InternalVPNClient[];\n}\n\nexport interface InternalVPNClientCreateRequest {\n /** a Curve25519 public key - the end user should generate via wireguard and provide */\n public_key: Uint8Array;\n /** user's device name, e.g. paulmbp */\n name: string;\n /**\n * when creating, if null a unique IP address will be generated if the associated\n * VPN server is IPv4. If the VPN server is IPv6, an address must be provided.\n */\n ip_address?: string;\n}\n\nexport interface InternalVPNClientCreateResponse {\n client?: InternalVPNClient;\n server?: InternalVPNServer;\n}\n\nexport interface InternalVPNServerCreateRequest {\n server?: InternalVPNServer;\n}\n\nexport interface InternalVPNServerListResponse {\n servers: InternalVPNServer[];\n}\n\nexport interface JobParams {\n attempt: number;\n data: Uint8Array;\n}\n\nexport interface QueuedJob {\n id: string;\n name: string;\n attempts: number;\n run_after?: string;\n expires_at?: string;\n created_at?: string;\n updated_at?: string;\n status: string;\n data?: { [key: string]: any };\n}\n\n/**\n * QueuedJobData stores the data that we need to send back to the scheduler to\n * record the status of a job at a later point.\n */\nexport interface QueuedJobData {\n id: string;\n name: string;\n attempts: number;\n}\n\nexport interface ArchivedJob {\n id: string;\n name: string;\n attempts: number;\n created_at?: string;\n expires_at?: string;\n status: string;\n data?: { [key: string]: any };\n}\n\n/**\n * A Job can be retrieved from either the queued_jobs or archived_jobs table\n * depending on its status.\n */\nexport interface Job {\n id: string;\n name: string;\n attempts: number;\n created_at?: string;\n expires_at?: string;\n status: string;\n data?: { [key: string]: any };\n}\n\n/**\n * APDevice is a device connected to an AP.\n * Deprecated; use ControllerClient instead.\n */\nexport interface APDevice {\n apname: string;\n signal: number;\n last_seen?: string;\n lease?: Lease;\n tx_rate: number;\n rx_rate: number;\n noise: number;\n}\n\n/**\n * Client is anything connected to the controller. This is used in both the\n * request and response.\n */\nexport interface ControllerClient {\n /** May be empty. */\n apname: string;\n signal: number;\n last_seen?: string;\n lease?: Lease;\n tx_rate: number;\n rx_rate: number;\n noise: number;\n channel: number;\n connected: boolean;\n /** To-be-deprecated in favor of `ssids` */\n ssid: string;\n /** Not set when used in the request; set on the response. */\n sid: string;\n /** freeform strings to characterize the client like 'guest', 'wired', 'wireless' */\n tags: string[];\n /** The Meter Auth token used to connect the client to a network */\n user_token_sid?: string;\n /** The Meter Auth company user who connected this client */\n user_sid?: string;\n /** A freeform text string describing where the AP is situated in a space */\n access_point_location: string;\n ssids: string[];\n /** A user defined alias used to identify a client */\n alias: string;\n vlan: string;\n}\n\n/**\n * GET /v1/controllers/:name/stats\n * GET /v1/noc/controller-stats\n */\nexport interface ControllerStat {\n controller: string;\n download_bytes: number;\n upload_bytes: number;\n created_at?: string;\n bandwidth_updated_at?: string;\n last_rebooted_at?: string;\n connected_guests: number;\n /**\n * Connected Meter devices (AP's, switches.) As of June 2020 this may not\n * include switches in the count.\n */\n connected_devices: number;\n /** Connected clients (does not include Meter devices with DHCP leases). */\n connected_clients: number;\n latest_controller_event_at?: string;\n latest_controller_event_type?: string;\n latest_controller_event_subtype?: string;\n}\n\n/** Lease is a dnsmasq Lease entry. */\nexport interface Lease {\n expiry?: string;\n mac: string;\n ip: string;\n name: string;\n client_id: string;\n}\n\n/** Deprecated, use ConnectedClientsRequest. */\nexport interface ConnectedDevicesRequest {\n created_at?: string;\n devices: APDevice[];\n}\n\nexport interface ConnectedClientsRequest {\n created_at?: string;\n clients: ControllerClient[];\n}\n\n/** Deprecated, use ConnectedClientsResponse. */\nexport interface ConnectedDevicesResponse {\n controller: string;\n devices: APDevice[];\n}\n\nexport interface ConnectedClientsResponse {\n controller: string;\n clients: ControllerClient[];\n}\n\nexport interface PortMappingResponse {\n mapping?: PortMapping;\n created_at?: string;\n updated_at?: string;\n}\n\n/**\n * Create credentials to access the API.\n * POST /v1/sessions\n */\nexport interface SessionCreateRequest {\n /** Often, but not always, an email address provided by an SSO provider */\n username: string;\n permission: string[];\n /** as of November 2020 this is advisory and ignored by the server */\n expires_at?: string;\n /** This is the name of the API key to be generated. If a name is not provided, one will be generated server-side */\n name: string;\n /** A person's first name */\n user_first_name: string;\n /** A person's last name */\n user_last_name: string;\n /** A link to a person's profile picture as provided by SSO provider */\n user_profile_picture_url: string;\n}\n\nexport interface SessionCreateResponse {\n username: string;\n permission: string[];\n /** as of November 2020 this is advisory */\n expires_at?: string;\n /** 64 bytes sign.PrivateKey */\n key: Uint8Array;\n name: string;\n}\n\nexport interface ControllerUpdateSoftwareRequest {\n name: string;\n /**\n * We generate the message sid before sending to the job queue, so that\n * a caller can track the request all the way through the job queue and the\n * controller message database.\n */\n message_sid: string;\n}\n\nexport interface ControllerDownReminderRequest {\n name: string;\n event_group: string;\n duration_seconds: number;\n company_slug: string;\n}\n\n/** NOC API Protobufs */\nexport interface NOCControllerStatsResponse {\n /** map of controller name => stat resources */\n stats: { [key: string]: ControllerStat };\n}\n\nexport interface NOCControllerStatsResponse_StatsEntry {\n key: string;\n value?: ControllerStat;\n}\n\nexport interface NOCControllerDevicesResponse {\n /** Map of access point names => AP and radio info */\n access_points: { [key: string]: AccessPointRadiosResponse };\n switches: SwitchResponse[];\n}\n\nexport interface NOCControllerDevicesResponse_AccessPointsEntry {\n key: string;\n value?: AccessPointRadiosResponse;\n}\n\n/** GET /v1/noc/companies/:slug/permitted-domains */\nexport interface PermittedEmailDomainsResponse {\n company_slug: string;\n domains: PermittedEmailDomainResponse[];\n}\n\nexport interface PermittedEmailDomainResponse {\n sid: string;\n created_at?: string;\n domain: string;\n}\n\n/** POST /v1/noc/companies/:slug/permitted-domains */\nexport interface PermittedEmailDomainCreateRequest {\n domain: string;\n}\n\nexport interface PermittedEmailDomainCreateResponse {\n company_slug: string;\n domain?: PermittedEmailDomainResponse;\n}\n\n/**\n * POST /v1/dashboard/companies/:slug/user-tokens\n * POST /v1/noc/companies/:slug/user-tokens\n */\nexport interface UserTokenCreateRequest {\n user_sid: string;\n /** human-readable name */\n alias: string;\n /** The maximum number of clients that can be authenticated with this token */\n max_clients_limit?: number;\n available_at?: string;\n expires_at?: string;\n}\n\n/**\n * PUT /v1/dashboard/companies/:slug/user-tokens/:sid\n * PUT /v1/noc/companies/:slug/user-tokens/:sid\n */\nexport interface UserTokenUpdateRequest {\n alias: string;\n /** The maximum number of clients that can be authenticated with this token */\n max_clients_limit?: number;\n available_at?: string;\n expires_at?: string;\n}\n\n/**\n * POST /v1/dashboard/companies/:slug/user-tokens\n * POST /v1/noc/companies/:slug/user-tokens\n * PUT /v1/dashboard/companies/:slug/user-tokens/:sid\n * PUT /v1/noc/companies/:slug/user-tokens/:sid\n */\nexport interface UserTokenResponse {\n sid: string;\n user_token: string;\n user_sid: string;\n available_at?: string;\n /** human-readable name */\n alias: string;\n max_clients_limit: number;\n expires_at?: string;\n}\n\n/**\n * GET /v1/dashboard/company-users/:company-user-sid/tokens\n * GET /v1/noc/company-users/:company-user-sid/tokens\n */\nexport interface UsersTokensResponse {\n company_slug: string;\n user_sid: string;\n tokens: UserTokenResponse[];\n}\n\n/** GET /v1/dashboard/companies//controllers */\nexport interface ControllerListDashboardResponse {\n company_slug: string;\n /** human-readable name */\n company_name: string;\n /** controller_id, display name */\n controllers: { [key: string]: string };\n}\n\nexport interface ControllerListDashboardResponse_ControllersEntry {\n key: string;\n value: string;\n}\n\n/** GET /v1/dashboard/controller//status */\nexport interface ControllerStatusDashboardResponse {\n name: string;\n company_slug: string;\n created_at?: string;\n updated_at?: string;\n status: string;\n /** FQDN */\n hostname: string;\n address: string;\n square_feet: number;\n /** AP List */\n access_points: AccessPointStats[];\n /**\n * SSID List\n * ssid, status\n */\n radio_status: { [key: string]: string };\n /**\n * Controller Statistics\n * name, value\n */\n stats: { [key: string]: string };\n connected_guests: number;\n connected_clients: number;\n connected_devices: number;\n upload_bytes_per_second: number;\n download_bytes_per_second: number;\n bandwidth_updated_at?: string;\n last_rebooted_at?: string;\n}\n\nexport interface ControllerStatusDashboardResponse_RadioStatusEntry {\n key: string;\n value: string;\n}\n\nexport interface ControllerStatusDashboardResponse_StatsEntry {\n key: string;\n value: string;\n}\n\nexport interface AccessPointStats {\n name: string;\n clients: number;\n physical_location: string;\n}\n\n/** GET /v1/dashboard/controller//clients */\nexport interface ClientListDashboardResponse {\n company_slug: string;\n controller_id: string;\n /** TODO APPENG-468 Delete this */\n clients: UserClient[];\n controller_clients: ControllerClient[];\n}\n\n/** GET /v1/dashboard/controllers/:name/internet-service-plans */\nexport interface DashboardISP {\n sid: string;\n created_at?: string;\n controller: string;\n provider: string;\n provider_name: string;\n product: ISPProduct;\n status: ISPStatus;\n download_kbps: number;\n upload_kbps: number;\n monthly_cost_cents: number;\n /**\n * IP address and mask; IP address does not need to be the lowest in the\n * range. Empty for Dynamic IP\n */\n has_static_ip: boolean;\n static_ip_range: string;\n gateway_addr: string;\n controller_ip: string;\n first_usable_ip: string;\n last_usable_ip: string;\n}\n\nexport interface ISPListDashboardResponse {\n plans: DashboardISP[];\n}\n\n/** TODO APPENG-468 Deprecate this after Dashboard uses ControllerClient */\nexport interface UserClient {\n mac_address: string;\n ip_address: string;\n expiry?: string;\n name: string;\n network: string;\n tx_rate: number;\n rx_rate: number;\n noise: number;\n signal: number;\n channel: number;\n /** Deprecated in favor of `ssids` */\n ssid: string;\n sid: string;\n last_seen?: string;\n apname: string;\n ap_location: string;\n /** freeform strings to characterize the client like 'guest', 'wired', 'wireless' */\n tags: string[];\n /** Temporary field to bridge between this and ControllerClient */\n lease?: Lease;\n /** The Meter Auth token used to connect the client to a network */\n user_token_sid?: string;\n /** The Meter Auth company user who connected this client */\n user_sid?: string;\n ssids: string[];\n alias: string;\n vlan: string;\n}\n\n/** GET /v1/dashboard/controller//devices */\nexport interface DeviceListDashboardResponse {\n company_slug: string;\n controller_id: string;\n /** To be deprecated (APPENG-302) */\n devices: MeterDevice[];\n access_points_radios: AccessPointRadiosResponse[];\n}\n\n/** To be deprecated (APPENG-302) */\nexport interface MeterDevice {\n name: string;\n mac_address: string;\n ip_address: string;\n status: string;\n physical_location: string;\n clients: number;\n /** ssid, status */\n radio_status: { [key: string]: string };\n}\n\nexport interface MeterDevice_RadioStatusEntry {\n key: string;\n value: string;\n}\n\nexport interface ControllerSettingDashboardRequest {\n company_slug: string;\n controller_id: string;\n settings: { [key: string]: string };\n}\n\nexport interface ControllerSettingDashboardRequest_SettingsEntry {\n key: string;\n value: string;\n}\n\nexport interface ControllerSettingDashboardResponse {\n company_slug: string;\n controller_id: string;\n settings: { [key: string]: string };\n}\n\nexport interface ControllerSettingDashboardResponse_SettingsEntry {\n key: string;\n value: string;\n}\n\n/** GET /v1/dashboard/password-suggestions */\nexport interface PasswordSuggestionResponse {\n suggested_password: string;\n}\n\nexport interface CompanyRolePortalResponse {\n email: string;\n company_roles: UserResponse[];\n}\n\n/** POST /v1/locations */\nexport interface LocationCreateRequest {\n point?: GeoPoint;\n address?: Address;\n company_slug: string;\n create_onboarding: boolean;\n}\n\n/** PUT /v1/locations/:sublocationSID */\nexport interface LocationUpdateRequest {\n point?: GeoPoint;\n address?: Address;\n company_slug: string;\n}\n\n/** GET /v1/locations/:sublocationSID */\nexport interface LocationResponse {\n location?: Location;\n}\n\n/** GET /v1/locations */\nexport interface LocationListResponse {\n locations: LocationResponse[];\n}\n\nexport interface Level {\n level: number;\n valid: boolean;\n}\n\n/**\n * If level is not present, set level_valid should be false.\n * Otherwise, the 0 value for level will be interpreted as a valid level value.\n */\nexport interface Layout {\n sid: string;\n floor_plan: string;\n level?: Level;\n notes: string;\n status: string;\n created_at?: string;\n updated_at?: string;\n friendly_name: string;\n sublocation_sid: string;\n}\n\nexport interface AccessPointConfig {\n sid: string;\n config: Uint8Array;\n notes: string;\n friendly_name: string;\n}\n\n/**\n * POST /v1/configurations/access-point\n * PUT /v1/configurations/access-point/:sid\n */\nexport interface AccessPointConfigRequest {\n config: Uint8Array;\n notes: string;\n friendly_name: string;\n}\n\n/** LIST /v1/configurations/access-point */\nexport interface AccessPointConfigListResponse {\n access_point_configs: AccessPointConfig[];\n}\n\nexport interface AccessPointLayout {\n sid: string;\n layout_sid: string;\n point?: Point;\n config_sid: string;\n access_point_sid: string;\n notes: string;\n friendly_name: string;\n created_at?: string;\n updated_at?: string;\n}\n\nexport interface AccessPointLayoutRequest {\n sid: string;\n point?: Point;\n config_sid: string;\n access_point_sid: string;\n notes: string;\n friendly_name: string;\n}\n\n/**\n * POST /v1/locations/:sublocationSID/layouts\n * POST /v1/locations/:sublocationSID/layouts/:sid\n */\nexport interface LayoutResponse {\n layout?: Layout;\n presigned_floor_plan: string;\n access_point_layouts: AccessPointLayout[];\n}\n\n/** GET /v1/locations/:sublocationSID/layouts */\nexport interface LayoutListResponse {\n layouts: LayoutResponse[];\n}\n\nexport interface LayoutRequest {\n level?: Level;\n notes: string;\n status: string;\n access_point_layouts: AccessPointLayoutRequest[];\n friendly_name: string;\n}\n\nexport interface Provider {\n sid: string;\n name: string;\n /** E.g. \"/providers/sonic.png\" */\n path: string;\n /** portal_url is the URL for the provider's customer support portal */\n portal_url: string;\n}\n\n/** POST /v1/providers body */\nexport interface ProviderCreateRequest {\n name: string;\n path: string;\n}\n\nexport interface ProviderUpdateRequest {\n name: string;\n path: string;\n}\n\n/** GET /v1/providers */\nexport interface ProvidersResponse {\n providers: Provider[];\n}\n\nexport interface CompanySlugList {\n default_slug: string;\n company_slugs: string[];\n}\n\nexport interface CreateCompanySlugRequest {\n new_company_slug: string;\n set_default: boolean;\n}\n\nexport interface CreateCompanySlugResponse {\n default_slug: string;\n company_slug: string;\n}\n\n/** GET /v1/controllers/:name/cellular/activate */\nexport interface CellularActivateRequest {\n sim_iccid: string;\n}\n\n/**\n * GET /v1/controllers/:name/cellular/\n * POST,PUT /v1/controllers/:name/cellular/[de|re]activate\n */\nexport interface CellularResponse {\n /** right now, all fields are retrieved from Twilio */\n twilio_sid: string;\n status: string;\n created_at?: string;\n updated_at?: string;\n twilio_account_sid: string;\n unique_name: string;\n iccid: string;\n fleet_name: string;\n fleet_url: string;\n url: string;\n}\n\n/** POST /v1/users/ssh-keys */\nexport interface UserSSHKeysCreateRequest {\n /** SSH key is in the OpenSSH authorized key format. */\n ssh_key: Uint8Array;\n}\n\nexport interface SSHKey {\n sid: string;\n /** value is in the OpenSSH authorized key format. */\n value: string;\n created_at?: string;\n}\n\n/** GET /v1/users/ssh-keys */\nexport interface UserSSHKeysListResponse {\n ssh_keys: SSHKey[];\n}\n\n/** GET /v1/identity/controller-access */\nexport interface UserControllerSSHAccessListResponse {\n user_controller_ssh_accesses: UserControllerSSHAccessListResponse_UserControllerSSHAccess[];\n}\n\nexport interface UserControllerSSHAccessListResponse_UserControllerSSHAccess {\n controller_name: string;\n ssh_user: SSHUser;\n expires_at?: string;\n}\n\n/** POST /v1/controllers/:name/user-access */\nexport interface ControllerUserAccessCreateRequest {\n expires_at?: string;\n ssh_user: SSHUser;\n}\n\n/** GET /v1/controllers/:name/authorized-keys/:user */\nexport interface ControllerAuthorizedKeysResponse {\n /** Each authorized key should be in the OpenSSH authorized key format. */\n authorized_keys: string[];\n}\n\n/** POST /v1/jumphost-accesses */\nexport interface UserJumphostAccessKeyCreateRequest {\n /** The name of the device this key is created for */\n name: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n}\n\n/** POST /v1/jumphost-accesses */\nexport interface UserJumphostAccessKeyCreateResponse {\n sid: string;\n /** The IPv6 address assigned to requested key */\n ip_address: string;\n}\n\n/** GET /v1/jumphost-accesses */\nexport interface UserJumphostAccessKeyListResponse {\n jumphost_access_keys: UserJumphostAccessKey[];\n}\n\nexport interface UserJumphostAccessKey {\n sid: string;\n username: string;\n name: string;\n /** The IPv6 address assigned to requested key */\n ip_address: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n created_at?: string;\n}\n\n/**\n * POST /v1/onboardings\n * PUT /v1/onboardings\n */\nexport interface UpsertOnboardingRequest {\n sublocation_sid: string;\n company_slug: string;\n provider_sid: string;\n network_ssid: string;\n network_password: string;\n guest_network_ssid: string;\n guest_network_password: string;\n guest_network_rotate_every_hours?: number;\n building_contact_type: BuildingContactType;\n building_contact_email: string;\n building_contact_phone: string;\n billing_contact_email: string;\n status: OnboardingStatus;\n}\n\n/** DELETE /v1/onboardings */\nexport interface DeleteOnboardingRequest {\n sublocation_sid: string;\n company_slug: string;\n}\n\n/**\n * POST /v1/onboardings (response)\n * PUT /v1/onboardings (response)\n * GET /v1/onboardings\n */\nexport interface Onboarding {\n sid: string;\n sublocation_sid: string;\n company_slug: string;\n provider_sid: string;\n network_ssid: string;\n network_password: string;\n guest_network_ssid: string;\n guest_network_password: string;\n guest_network_rotate_every_hours: number;\n building_contact_type: BuildingContactType;\n building_contact_email: string;\n building_contact_phone: string;\n billing_contact_email: string;\n status: OnboardingStatus;\n}\n\n/**\n * GET /v1/devices/ (response)\n * Base representation for all meter devices\n */\nexport interface Device {\n /**\n * Unique, device-aware identifier\n * Currently, not all devices have serial number populated, so it is not required.\n */\n serial_number?: string;\n /** Device UUID */\n id: string;\n /** Board type */\n board: string;\n /** Current build name */\n build: string;\n boot_count: number;\n created_at?: string;\n updated_at?: string;\n /** Friendly reason that the device rebooted most recently (ex: \"upgrade\") */\n reboot_reason: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** IPv6 address */\n ip_address: string;\n}\n\n/** POST /v1/devices/ */\nexport interface DeviceUpdateRequest {\n /** Unique, device-aware identifier */\n serial_number?: string;\n /** Current build name */\n build: string;\n boot_count: number;\n reboot_reason: string;\n}\n\nexport interface DeviceRegisterRequest {\n serial_number: string;\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** EUI-48 mac address used to create an IPv6 address */\n mac_address: string;\n /** 32 byte HMAC-SHA256 */\n signature: Uint8Array;\n}\n\nexport interface DeviceRegisterResponse {\n vpn_server?: DeviceRegisterResponse_VPNServer;\n /** IPv6 address generated from sent MAC address */\n ip_address: string;\n allowed_ips: string[];\n}\n\nexport interface DeviceRegisterResponse_VPNServer {\n /** 32 byte Curve25519 public key */\n public_key: Uint8Array;\n /** endpoint of the server, a FQDN or IP address */\n endpoint: string;\n /** listen port */\n port: number;\n}\n\nexport interface DeviceListResponse {\n devices: Device[];\n}\n\n/** GET /v1/device-images/cos */\nexport interface COSVersions {\n versions: string[];\n}\n\nexport interface COSImageFileMetadata {\n url: string;\n hash: string;\n created_at?: string;\n board: string;\n}\n\n/** GET /v1/device-images/cos/ */\nexport interface COSImageFileMetadatas {\n version: string;\n files: { [key: string]: COSImageFileMetadata };\n}\n\nexport interface COSImageFileMetadatas_FilesEntry {\n key: string;\n value?: COSImageFileMetadata;\n}\n\n/** POST /v1/device-images/cos// */\nexport interface COSImageFileUploadRequest {\n hash: string;\n board: string;\n}\n\n/** POST /v1/device-images/cos// (response) */\nexport interface COSImageFileUploadResponse {\n url: string;\n}\n\n/** GET /v1/device-images/ */\nexport interface DeviceImageBuilds {\n builds: string[];\n}\n\nexport interface DeviceImageFileMetadata {\n sha256hash: string;\n url: string;\n}\n\n/** GET /v1/device-images// */\nexport interface DeviceImageBuild {\n build: string;\n board: string;\n created_at?: string;\n /** maps file name to file metadata */\n files: { [key: string]: DeviceImageFileMetadata };\n}\n\nexport interface DeviceImageBuild_FilesEntry {\n key: string;\n value?: DeviceImageFileMetadata;\n}\n\nexport interface DeviceImageFileRequest {\n name: string;\n sha256hash: string;\n}\n\n/** POST /v1/device-images// */\nexport interface DeviceImageBuildUploadRequest {\n files: DeviceImageFileRequest[];\n}\n\n/** POST /v1/device-images// (response) */\nexport interface DeviceImageBuildUploadResponse {\n /** maps file name to S3 presigned url to upload the file */\n urls: { [key: string]: string };\n}\n\nexport interface DeviceImageBuildUploadResponse_UrlsEntry {\n key: string;\n value: string;\n}\n\n/**\n * POST /v1/controllers/:name/incidents\n * PUT /v1/controllers/:name/incidents/:sid\n */\nexport interface UpsertControllerIncidentRequest {\n start_time?: string;\n end_time?: string;\n notes?: string;\n category?: string;\n}\n\n/**\n * Response for:\n * GET /v1/controllers/:name/incidents\n */\nexport interface ControllerIncidents {\n incidents: ControllerIncident[];\n}\n\n/**\n * Response for:\n * POST /v1/controllers/:name/incidents\n * PUT /v1/controllers/:name/incidents/:sid\n * GET /v1/controllers/:name/incidents/:sid\n */\nexport interface ControllerIncident {\n sid: string;\n controller: string;\n start_time?: string;\n end_time?: string;\n notes?: string;\n category?: string;\n created_by_email?: string;\n created_at?: string;\n updated_at?: string;\n}\n\n/** GET /v1/rpc/connections */\nexport interface RPCConnectionsResponse {\n connections: RPCConnection[];\n}\n\nexport interface RPCConnection {\n controller: string;\n broker_addr: string;\n}\n\n/**\n * Response for:\n * GET /v1/noc/controllers/:name/config-history\n */\nexport interface ControllerConfigHistory {\n history: ControllerConfigHistoryRow[];\n}\n\nexport interface ControllerConfigHistoryRow {\n controller: string;\n updated_at?: string;\n updated_by?: string;\n update_comment?: string;\n key: string;\n value?: { [key: string]: any };\n}\n\n/**\n * Response for:\n * POST /v1/companies/:slug/content-filters\n */\nexport interface EnableContentFilterForCompanyResponse {\n enabled: ContentFilterLocation[];\n errors: EnableContentFilterForCompanyResponse_Error[];\n}\n\nexport interface EnableContentFilterForCompanyResponse_Error {\n controller_name: string;\n reason: string;\n}\n\n/**\n * Response for:\n * GET /v1/companies/:slug/content-filters\n */\nexport interface CompanyContentFiltersResponse {\n /**\n * If a location (controller) is already enabled, then it shows up in `enabled`.\n * Else, if an underlying controller is eligible to be enabled but not yet enabled, it shows up in `eligible_controllers`.\n */\n enabled: ContentFilterLocation[];\n eligible_controllers: string[];\n}\n\n/**\n * Response for:\n * GET /v1/companies/:slug/content-filters\n * POST /v1/companies/:slug/content-filters\n */\nexport interface ContentFilterLocation {\n cloudflare_account_id: string;\n controller_name: string;\n cloudflare_location_id: string;\n created_at?: string;\n ip_addresses: string[];\n}\n\n/**\n * Request for:\n * POST /v1/companies/:slug/content-filters/rules\n * PUT /v1/companies/:slug/content-filters/rules/:id\n */\nexport interface UpsertContentFilterRuleRequest {\n description: string;\n action: ContentFilterAction;\n domain?: string;\n category_id?: number;\n precedence?: number;\n}\n\n/**\n * Response for:\n * GET /v1/companies/:slug/content-filters/rules\n */\nexport interface ContentFilterRules {\n rules: ContentFilterRule[];\n}\n\n/**\n * Response for:\n * GET /v1/companies/:slug/content-filters/rules/:id\n */\nexport interface ContentFilterRule {\n id: string;\n description: string;\n action: ContentFilterAction;\n domain?: string;\n created_at?: string;\n category?: ContentFilterRuleCategory;\n precedence: number;\n}\n\n/**\n * Response for:\n * GET /v1/companies/:slug/content-filters/rule-categories\n */\nexport interface ContentFilterRuleCategories {\n categories: ContentFilterRuleCategory[];\n}\n\nexport interface ContentFilterRuleCategory {\n name: string;\n id: number;\n description: string;\n subcategories: ContentFilterRuleCategory[];\n}\n\n/** POST /v1/users/authentications/otp */\nexport interface CreateUserOTPAuthenticationRequest {\n email: string;\n phone_number: string;\n callback_url: string;\n}\n\nexport interface CreateUserOTPAuthenticationResponse {\n email: string;\n phone_number: string;\n callback_url: string;\n}\n\n/** POST /v1/users/authentications/otp/validate */\nexport interface CreateUserOTPAuthenticationValidationRequest {\n email: string;\n phone_number?: string;\n code: string;\n via?: string;\n path?: string;\n}\n\n/** POST /v1/mac_address_aliases */\nexport interface UpsertMACAddressAliasRequest {\n mac: string;\n alias: string;\n}\n\n/** POST /v1/user_feedback */\nexport interface CreateUserFeedbackRequest {\n feedback: string;\n company_user_sid: string;\n url?: string;\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport { Location, Currency, FileAttachmentInfo } from \"./common\";\n\nexport const protobufPackage = \"connect\";\n\n/** LocationProviderAvailability */\nexport enum Availability {\n location_on_net = \"location_on_net\",\n location_near_net = \"location_near_net\",\n location_off_net = \"location_off_net\",\n}\n\nexport enum ConnectionChangeStatus_StatusType {\n QUOTES = \"QUOTES\",\n CONFIRM_QUOTES = \"CONFIRM_QUOTES\",\n CONTRACT_REQUESTED = \"CONTRACT_REQUESTED\",\n}\n\nexport enum ConnectionChangeStatus_StatusCategory {\n QUOTES_CATEGORY = \"QUOTES_CATEGORY\",\n}\n\nexport enum InvoiceStatus {\n unpaid = \"unpaid\",\n paid = \"paid\",\n past_due = \"past_due\",\n cancelled = \"cancelled\",\n upcoming = \"upcoming\",\n refunded = \"refunded\",\n}\n\nexport interface QuoteRequest {\n sid: string;\n status: QuoteRequest_Status;\n company_name: string;\n contact_name: string;\n contact_email: string;\n contact_telephone: string;\n requested_download_kbps: number;\n contract_minimum_months: number;\n contract_maximum_install_date?: string;\n notes: string;\n expired_at?: string;\n created_at?: string;\n selected_quotes: string[];\n exports: QuoteRequestExport[];\n requested_upload_kbps: number;\n is_manual_response_pending: boolean;\n is_interested_in_network: boolean;\n location?: Location;\n existing_provider?: Provider;\n existing_contract_end_date?: string;\n existing_monthly_fee_cents: number;\n}\n\nexport enum QuoteRequest_Status {\n unknown = \"unknown\",\n created = \"created\",\n ready_for_review = \"ready_for_review\",\n contract_requested = \"contract_requested\",\n}\n\n/** POST /connect/quote-requests */\nexport interface QuoteRequestCreateRequest {\n company_name: string;\n contact_name: string;\n contact_email: string;\n contact_telephone: string;\n requested_download_kbps: number;\n contract_minimum_months: number;\n contract_maximum_install_date?: string;\n notes: string;\n requested_upload_kbps: number;\n location?: LocationsCreateRequest;\n existing_provider_sid: string;\n existing_contract_end_date?: string;\n existing_monthly_fee_cents: number;\n}\n\n/** PUT /connect/quote-requests/{id} */\nexport interface QuoteRequestUpdateRequest {\n status: QuoteRequestUpdateRequest_Status;\n contact_name: string;\n contact_email: string;\n contact_telephone: string;\n requested_download_kbps: number;\n contract_minimum_months: number;\n contract_maximum_install_date?: string;\n notes: string;\n selected_quotes: string[];\n /**\n * True if the selected_quote field's value represents a genuine change from\n * its previous state (vs. an empty array).\n */\n selected_quotes_changed: boolean;\n expired_at?: string;\n requested_upload_kbps: number;\n is_manual_response_pending: boolean;\n is_manual_response_pending_changed: boolean;\n is_interested_in_network: boolean;\n is_interested_in_network_changed: boolean;\n company_name: string;\n location?: LocationsUpdateRequest;\n existing_provider_sid: string;\n existing_contract_end_date?: string;\n existing_monthly_fee_cents: number;\n}\n\nexport enum QuoteRequestUpdateRequest_Status {\n unknown = \"unknown\",\n archived = \"archived\",\n contract_requested = \"contract_requested\",\n}\n\n/** GET /api/connect/quote-requests */\nexport interface QuoteRequestsRequest {\n quote_requests: QuoteRequest[];\n}\n\n/** POST /api/connect/quote-requests/{quote_request_id}/locations */\nexport interface LocationsCreateRequest {\n address1: string;\n address2: string;\n city: string;\n state: string;\n postal_code: string;\n latitude: number;\n longitude: number;\n}\n\n/** PATCH /api/connect/quote-requests/{quote_request_id}/locations/{sublocationSid} */\nexport interface LocationsUpdateRequest {\n address1: string;\n address2: string;\n city: string;\n state: string;\n postal_code: string;\n latitude: number;\n longitude: number;\n}\n\nexport interface Quote {\n sid: string;\n provider?: Provider;\n connection_type?: ConnectionType;\n recommended: boolean;\n status: Quote_Status;\n monthly_fee_cents: number;\n install_fee_cents: number;\n contract_length_months: number;\n download_kbps: number;\n upload_kbps: number;\n installation_estimate_days: number;\n riser_responsibility: Quote_RiserResponsibility;\n notes: string;\n router_included: boolean;\n is_manual: boolean;\n availability: Quote_Availability;\n quote_request_sid: string;\n}\n\nexport enum Quote_Status {\n disabled = \"disabled\",\n enabled = \"enabled\",\n proposed = \"proposed\",\n requested = \"requested\",\n}\n\nexport enum Quote_RiserResponsibility {\n provider_responsibility = \"provider_responsibility\",\n customer_responsibility = \"customer_responsibility\",\n unknown_responsibility = \"unknown_responsibility\",\n}\n\nexport enum Quote_Availability {\n unknown = \"unknown\",\n location_on_net = \"location_on_net\",\n location_near_net = \"location_near_net\",\n location_off_net = \"location_off_net\",\n}\n\n/** POST /api/connect/quote-requests/{quote_request_id}/quotes */\nexport interface QuotesCreateRequest {\n provider: string;\n connection_type: string;\n recommended: boolean;\n status: QuotesCreateRequest_Status;\n monthly_fee_cents: number;\n install_fee_cents: number;\n contract_length_months: number;\n download_kbps: number;\n upload_kbps: number;\n installation_estimate_days: number;\n riser_responsibility: QuotesCreateRequest_RiserResponsibility;\n notes: string;\n router_included: boolean;\n}\n\nexport enum QuotesCreateRequest_Status {\n unknown = \"unknown\",\n disabled = \"disabled\",\n enabled = \"enabled\",\n proposed = \"proposed\",\n requested = \"requested\",\n}\n\nexport enum QuotesCreateRequest_RiserResponsibility {\n unknown_responsibility = \"unknown_responsibility\",\n provider_responsibility = \"provider_responsibility\",\n customer_responsibility = \"customer_responsibility\",\n}\n\n/** PUT /api/connect/quote-requests/{quote_request_id}/quotes/{id} */\nexport interface QuotesUpdateRequest {\n provider: string;\n connection_type: string;\n recommended: boolean;\n status: QuotesUpdateRequest_Status;\n monthly_fee_cents: number;\n install_fee_cents?: number;\n contract_length_months: number;\n download_kbps: number;\n upload_kbps: number;\n installation_estimate_days: number;\n riser_responsibility: QuotesUpdateRequest_RiserResponsibility;\n notes: string;\n router_included: boolean;\n /**\n * True if the respective field's value represents a genuine change from its\n * previous state (vs. unset)\n */\n recommended_changed: boolean;\n router_included_changed: boolean;\n}\n\nexport enum QuotesUpdateRequest_Status {\n unknown = \"unknown\",\n disabled = \"disabled\",\n enabled = \"enabled\",\n proposed = \"proposed\",\n requested = \"requested\",\n}\n\nexport enum QuotesUpdateRequest_RiserResponsibility {\n unknown_responsibility = \"unknown_responsibility\",\n provider_responsibility = \"provider_responsibility\",\n customer_responsibility = \"customer_responsibility\",\n}\n\n/** GET /api/connect/quote-requests/{quote_request_id}/quotes */\nexport interface QuotesRequest {\n quotes: Quote[];\n}\n\nexport interface Sender {\n sid: string;\n name: string;\n avatar_url: string;\n}\n\nexport interface Message {\n sid: string;\n sender?: Sender;\n message: string;\n system: boolean;\n created_at?: string;\n updated_at?: string;\n}\n\n/** POST /api/connect/quote-requests/{quote_request_id}/messages */\nexport interface MessagesCreateRequest {\n /** Sender.sid */\n sender: string;\n message: string;\n system: boolean;\n}\n\n/** PATCH /api/connect/quote-requests/{quote_request_id}/messages/{id} */\nexport interface MessagesUpdateRequest {\n /** Sender.sid */\n sender: string;\n message: string;\n system: boolean;\n}\n\n/** GET /api/connect/quote-requests/{quote_request_id}/messages */\nexport interface MessagesRequest {\n messages: Message[];\n}\n\n/**\n * Deprecated, use the Provider in api.proto instead. However, because there are\n * some other objects that reference this - for example it's present on a Quote\n * - we might add new properties here as they get added to the api.proto\n * property.\n *\n * We still need to work out the best way to lay out the protobuf dependencies\n * and which packages make sense.\n */\nexport interface Provider {\n sid: string;\n name: string;\n /** E.g. \"/providers/sonic.png\" */\n path: string;\n}\n\nexport interface ConnectionType {\n sid: string;\n name: string;\n}\n\n/** POST /v1/connect/providers body */\nexport interface ProviderCreateRequest {\n name: string;\n}\n\n/**\n * GET /v1/connect/providers\n * Deprecated: Use ProvidersResponse instead\n */\nexport interface ProvidersRequest {\n providers: Provider[];\n}\n\n/** GET /v1/connect/providers */\nexport interface ProvidersResponse {\n providers: Provider[];\n}\n\n/** GET /api/connect/connectionTypes */\nexport interface ConnectionTypesRequest {\n connection_types: ConnectionType[];\n}\n\nexport interface QuoteRequestExport {\n vendor: QuoteRequestExport_Vendor;\n status: QuoteRequestExport_Status;\n job_id: string;\n foreign_id: string;\n completed_at?: string;\n error_message: string;\n sid: string;\n}\n\nexport enum QuoteRequestExport_Status {\n unknown_status = \"unknown_status\",\n running = \"running\",\n success = \"success\",\n error = \"error\",\n}\n\nexport enum QuoteRequestExport_Vendor {\n unknown_vendor = \"unknown_vendor\",\n telarus = \"telarus\",\n zayo = \"zayo\",\n bandwidth_finder = \"bandwidth_finder\",\n easyquote = \"easyquote\",\n}\n\nexport interface QuoteRequestExports {\n quote_request_exports: QuoteRequestExport[];\n}\n\n/** POST /api/connect/quote-requests/{sid}/exports/zayo */\nexport interface QuoteRequestExportZayoRequest {\n /** Zayo's location ID, not ours */\n location_id: string;\n}\n\n/** GET /v1/connect/quote-requests/{id}/integrations/zayo/buildings */\nexport interface ZayoBuilding {\n matched_address: string;\n building_id: string;\n zayo_network_status: string;\n}\n\nexport interface ZayoGetBuildings {\n buildings: ZayoBuilding[];\n}\n\n/** GET /v1/connect/quote-requests/{id}/integrations/zayo/buildings/{id}/locations */\nexport interface ZayoLocation {\n location_id: string;\n name: string;\n zayo_network_status: string;\n}\n\nexport interface ZayoGetLocations {\n locations: ZayoLocation[];\n}\n\n/** POST /v1/connect/admin/location-provider-availabilities */\nexport interface LocationProviderAvailabilityUpsertRequest {\n location_sid: string;\n provider_sid: string;\n availability: Availability;\n}\n\n/** DELETE /v1/connect/admin/location-provider-availabilities */\nexport interface LocationProviderAvailabilityDeleteRequest {\n location_sid: string;\n provider_sid: string;\n}\n\nexport interface ProviderAvailability {\n provider_name: string;\n availability: Availability;\n provider_sid: string;\n}\n\n/** GET /v1/connect/admin/location-provider-availabilities/locations/:locationSID */\nexport interface ProviderAvailabilitiesResponse {\n providerAvailabilities: ProviderAvailability[];\n}\n\n/** PUT /v1/companies/:company-slug/locations/:company-location-sid */\nexport interface CompanyLocationPutRequest {\n name?: string;\n}\n\nexport interface ConnectionStatus {\n sid: string;\n status: string;\n display: string;\n category: string;\n priority: number;\n status_category: ConnectionChangeStatus_StatusCategory;\n status_type: ConnectionChangeStatus_StatusType;\n}\n\n/** GET /v1/connect/admin/statuses */\nexport interface ConnectionStatusesResponse {\n statuses: ConnectionStatus[];\n}\n\n/** PUT /v1/companies/:slug/internet-service-plans/:sid */\nexport interface UpdateInternetServicePlanNotesRequest {\n notes?: string;\n}\n\nexport interface ISPContract {\n sid: string;\n internet_service_plan_sid: string;\n contract_start_date?: string;\n contract_end_date?: string;\n amount_due_currency: Currency;\n amount_due: number;\n document?: FileAttachmentInfo | undefined;\n first_invoice_due_date?: string;\n}\n\nexport interface Invoice {\n sid: string;\n isp_contracts_sid: string;\n due_date?: string;\n amount_actual_currency: Currency;\n amount_actual: number;\n status: InvoiceStatus;\n billing_cycle_start_date?: string;\n billing_cycle_end_date?: string;\n document?: FileAttachmentInfo | undefined;\n amount_currency?: Currency | undefined;\n amount?: number | undefined;\n invoiced_at?: string;\n paid_at?: string;\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n","// There are a number of important differences between the typings built by the\n// TS plugin we're using, and the underlying JSON:\n//\n// 1. The JSON representation is in snake_case, the typings are in camelCase\n//\n// 2. In the TS protos, repeated fields (i.e. array fields) get appended with\n// 'List'. Hence:\n//\n// 'repeated Location locations' becomes 'locationsList: Location[]'\n//\n// 3. The values of the enums in the TS protos are the underlying integer,\n// whereas they get sent in JSON as *lowercased* strings of the keys.\n//\n// 4. The typings require most fields. PUT /entities/{id} requests over don't,\n// since we've enabled omitempty.\n//\n// We want the typings to remain in camelCase, since this is more idiomatic. We\n// can do so by converting to camelCase when reading, in the relevant resource\n// hooks (useApiResource/s), and to snake_case when writing, in the post/put\n// helper methods in ./index.ts.\n//\n// The other three require changes to the typings. So this file modifies and\n// re-exports the typings with the differences in 2/3/4 reversed.\n//\n// Some we can do automatically, some we have to do manually. In the case of the\n// GET /entities request types (e.g. 'QuoteRequestsRequest'), we need to rewrite\n// manually so our overridden entity type is used.\n//\n// Bless this mess.\n\nimport type { AxiosError } from \"axios\";\n\nimport type {\n CompanyContractResponse as CompanyContractResponseProto,\n // CompanyContractsResponse as CompanyContractsResponseProto,\n CompanyISPStatusChangeRequest as CompanyISPStatusChangeRequestProto,\n CompanyISPStatusChangeResponse as CompanyISPStatusChangeResponseProto,\n CompanyLocationResponse as CompanyLocationResponseProto,\n CompanyLocationsResponse as CompanyLocationsResponseProto,\n CompanyResponse as CompanyResponseProto,\n CompanyUpdateBillingRequest as CompanyUpdateBillingRequestProto,\n ConnectionStatusChange as ConnectionStatusChangeProto,\n Error as ErrorProto,\n IdentityResponse as IdentityResponseProto,\n InternetServicePlan as InternetServicePlanProto,\n InviteUserResponse as InviteUserResponseProto,\n InviteUsersRequest as InviteUsersRequestProto,\n InviteUsersResponse as InviteUsersResponseProto,\n Provider as ProviderProto,\n ProviderCreateRequest as ProviderCreateRequestProto,\n ProvidersResponse as ProvidersResponseProto,\n UsersResponse as UsersResponseProto,\n} from \"./apiProtos\";\nimport {\n CompanyMembershipRole as CompanyMembershipRoleProto,\n ISPProduct as ISPProductProto,\n ISPStatus as ISPStatusProto,\n} from \"./apiProtos\";\nimport type {\n Address as AddressProto,\n GeoPoint as GeoPointProto,\n Location as LocationProto,\n Point as PointProto,\n} from \"./common\";\nimport type {\n ConnectAdminCompaniesResponse as ConnectAdminCompaniesResponseProto,\n ConnectAdminCompanyResponse as ConnectAdminCompanyResponseProto,\n ConnectAdminCreateCompanyWithUsersRequest as ConnectAdminCreateCompanyWithUsersRequestProto,\n ConnectAdminCreateCompanyWithUsersResponse as ConnectAdminCreateCompanyWithUsersResponseProto,\n ConnectAdminCreateQuoteForDashboard as ConnectAdminCreateQuoteForDashboardProto,\n ConnectAdminUpdateQuoteForDashboard as ConnectAdminUpdateQuoteForDashboardProto,\n ContractResponse as ContractResponseProto,\n InvoiceCreateRequest as InvoiceCreateRequestProto,\n InvoiceCreateRequest_Error as InvoiceCreateRequest_ErrorProto,\n InvoiceResponse as InvoiceResponseProto,\n ISPContractCreateRequest as ISPContractCreateRequestProto,\n ISPContractCreateRequest_Error as ISPContractCreateRequest_ErrorProto,\n} from \"./connectadminProtos\";\n// import { ConnectAdminErrors as ConnectAdminErrorsProto } from \"./connectadminProtos\";\nimport type {\n CompanyLocationPutRequest as CompanyLocationPutRequestProto,\n ConnectionStatus as ConnectionStatusProto,\n ConnectionType as ConnectionTypeProto,\n Invoice as InvoiceProto,\n InvoiceStatus as InvoiceStatusProto,\n ISPContract as ISPContractProto,\n LocationProviderAvailabilityDeleteRequest as LocationProviderAvailabilityDeleteRequestProto,\n LocationProviderAvailabilityUpsertRequest as LocationProviderAvailabilityUpsertRequestProto,\n LocationsCreateRequest as LocationsCreateRequestProto,\n Message as MessageProto,\n MessagesCreateRequest as MessagesCreateRequestProto,\n ProviderAvailabilitiesResponse as ProviderAvailabilitiesResponseProto,\n ProviderAvailability as ProviderAvailabilityProto,\n Quote as QuoteProto,\n QuoteRequest as QuoteRequestProto,\n QuoteRequestCreateRequest as QuoteRequestCreateRequestProto,\n QuoteRequestExport as QuoteRequestExportProto,\n QuoteRequestUpdateRequest as QuoteRequestUpdateRequestProto,\n QuotesCreateRequest as QuotesCreateRequestProto,\n QuotesUpdateRequest as QuotesUpdateRequestProto,\n UpdateInternetServicePlanNotesRequest as UpdateInternetServicePlanNotesRequestProto,\n ZayoBuilding as ZayoBuildingProto,\n ZayoLocation as ZayoLocationProto,\n} from \"./connectProtos\";\nimport {\n Availability as AvailabilityProto,\n Quote_Status as QuoteStatusProto,\n QuoteRequest_Status,\n} from \"./connectProtos\";\n\n// Entity Types\n// -----------------------------------------------------------------------------\n// with the following typescript types I get an error that `TS2344: Type 'ISPContractCreateRequest' does not satisfy the constraint 'Record'.\n// Index signature for type 'string' is missing in type 'ISPContractCreateRequest'.`. how do I fix it?\n// export interface ISPContractCreateRequest {\n// isp_contract?: ISPContract;\n// contract_document?: FileAttachment | undefined;\n// contract_document_s3_key?: string;\n// delete_document?: boolean | undefined;\n// }\n// export type ISPContractCreateRequest = KeysToCamelCase;\n\n// type Prev = [\n// never,\n// 0,\n// 1,\n// 2,\n// 3,\n// 4,\n// 5,\n// 6,\n// 7,\n// 8,\n// 9,\n// 10,\n// 11,\n// 12,\n// 13,\n// 14,\n// 15,\n// 16,\n// 17,\n// 18,\n// 19,\n// 20,\n// ...0[],\n// ];\n\n// export type CamelCase = S extends `${infer P1}_${infer P2}${infer P3}`\n// ? `${Lowercase}${Uppercase}${CamelCase}`\n// : Lowercase;\n//\n// export type IFaceWrapper = { [K in keyof T]: T[K] };\n//\n// export type KeysToCamelCase | undefined, D extends number = 3> = D extends 0\n// ? never\n// : {\n// [K in keyof T as CamelCase]: T[K] extends Array\n// ? IFaceWrapper extends Record ? KeysToCamelCase, Prev[D]>[] : Q\n// : IFaceWrapper extends Record\n// ? KeysToCamelCase, Prev[D]>\n// : IFaceWrapper extends Optional>\n// ? KeysToCamelCase, Prev[D]> | undefined\n// : T[K];\n// };\nexport type CamelCase = S extends `${infer P1}_${infer P2}${infer P3}`\n ? `${Lowercase}${Uppercase}${CamelCase}`\n : Lowercase;\n\nexport type IsPrimitive = T extends string | number | boolean | Date | undefined | null\n ? T\n : never;\n\nexport type KeysToCamelCase = {\n [K in keyof T as CamelCase]: T[K] extends IsPrimitive\n ? T[K]\n : T[K] extends Array\n ? Array>\n : T[K] extends {}\n ? KeysToCamelCase\n : T[K] extends Optional<{}>\n ? KeysToCamelCase\n : T[K] extends Optional>\n ? Optional>>\n : T[K];\n};\n\nexport type Prettify = T extends infer U ? { [K in keyof U]: U[K] } : never;\nexport type Address = Prettify>;\nexport type AllContractsResponse = {\n contracts: CompanyContractsResponse[];\n};\nexport type CompanyContractResponse = KeysToCamelCase;\n// export type CompanyContractResponse = Omit<\n// StripListSuffix,\n// \"latestStatus\" | \"internetServicePlan\"\n// > & {\n// latestStatus?: ConnectionStatusChange;\n// internetServicePlan?: InternetServicePlan;\n// };\n\nexport type Invoice = KeysToCamelCase;\nexport type InvoiceStatus = InvoiceStatusProto;\n\n// export type CompanyContractsResponse = KeysToCamelCase;\nexport type CompanyContractsResponse = {\n companyLocation?: CompanyLocationResponse;\n companyContracts: CompanyContractResponse[];\n};\n// export type CompanyContractsResponse = Omit<\n// StripListSuffix,\n// \"companyContracts\" | \"companyLocation\"\n// > & {\n// companyContracts: CompanyContractResponse[];\n// companyLocation: CompanyLocationResponse;\n// };\nexport type CompanyLocationResponse = KeysToCamelCase;\nexport type CompanyLocationsResponse = KeysToCamelCase;\nexport type CompanyResponse = KeysToCamelCase;\nexport type CompanyUpdateBillingRequest = KeysToCamelCase;\nexport type ConnectAdminCompaniesResponse = KeysToCamelCase;\nexport type ConnectAdminCompanyResponse = KeysToCamelCase;\n\nexport type ConnectAdminCreateCompanyWithUsersRequest =\n KeysToCamelCase;\nexport type ConnectAdminCreateCompanyWithUsersResponse =\n KeysToCamelCase;\n\nexport type Optional = T | undefined;\n// export type OptionalKeys = {\n// [K in keyof T]?: T[K];\n// };\nexport type OptionalFields = Omit & {\n [K in Fields]?: T[K];\n};\n\nexport type IdentityResponse = KeysToCamelCase;\n\n// type CleanupPb = {\n// [K in keyof T]: T[K] extends google_protobuf_timestamp_pb.Timestamp.AsObject\n// ? string\n// : T[K] extends Optional\n// ? Optional\n// : T[K] extends google_protobuf_wrappers_pb.StringValue.AsObject\n// ? string\n// : T[K] extends Optional\n// ? Optional\n// : T[K];\n// };\n\nexport type CompanyLocationPutRequest = Prettify>;\nexport type UpdateInternetServicePlanNotesRequest = Prettify<\n KeysToCamelCase\n>;\n\nexport type InternetServicePlan = KeysToCamelCase;\n// export type InternetServicePlan = Omit<\n// NamedTypeToString<\n// InternetServicePlanProto.AsObject,\n// google_protobuf_timestamp_pb.Timestamp.AsObject\n// >,\n// \"product\" | \"status\"\n// > & {\n// product?: ISPProductProto;\n// status: ISPStatus;\n// };\n\nexport type Location = Prettify>;\nexport type Point = Prettify>;\nexport type GeoPoint = Prettify>;\n\nexport type Provider = KeysToCamelCase;\nexport type ISPContract = KeysToCamelCase;\nexport type ProvidersResponse = KeysToCamelCase;\n\nexport type ConnectionType = KeysToCamelCase;\n\nexport type Message = KeysToCamelCase;\n\nexport type ZayoBuilding = KeysToCamelCase;\n\nexport type ZayoLocation = KeysToCamelCase;\n\nexport type QuoteRequestExport = KeysToCamelCase;\n\nexport type QuoteRequest = KeysToCamelCase;\n\n// export interface QuoteRequest\n// extends Omit, \"status\" | \"exports\"> {\n// status: LowercasedKeys;\n// exports: QuoteRequestExport[];\n// }\n\n// export type Quote = Omit & {\n// status: QuoteStatus;\n// riserResponsibility: LowercasedKeys;\n// availability: Availability;\n// };\n\nexport type Quote = KeysToCamelCase;\n\nexport type QuoteWithRequestAndISP = Quote & {\n companyLocationSID?: string;\n internetServicePlan?: InternetServicePlan;\n quoteRequest?: QuoteRequest;\n latestStatus?: ConnectionStatusChange;\n companySID?: string;\n};\n\nconst Availability = AvailabilityProto;\nconst CompanyMembershipRole = CompanyMembershipRoleProto;\nconst ISPProduct = ISPProductProto;\nconst ISPStatus = ISPStatusProto;\nconst QuoteStatus = QuoteStatusProto;\nexport { Availability, CompanyMembershipRole, ISPStatus, ISPProduct, QuoteStatus };\n\nexport type ConnectionChangeStatusCategory =\n | \"active\"\n | \"in-progress\"\n | \"needs-attention\"\n | \"quotes\";\n\nexport type ConnectionStatus = Omit, \"category\"> & {\n category: ConnectionChangeStatusCategory;\n};\n\nexport type CompanyISPStatusChangeRequest = KeysToCamelCase;\n\nexport type CompanyISPStatusChangeResponse = KeysToCamelCase;\n\nexport type ConnectionStatusesResponse = {\n statuses: ConnectionStatus[];\n};\n\nexport type ConnectionStatusChange = KeysToCamelCase;\n\nexport type InviteUsersRequest = Prettify>;\nexport type InviteUserResponse = Prettify>;\nexport type InviteUsersResponse = Prettify>;\nexport type UsersResponse = Prettify>;\n\nexport type ArrayType = T extends Array ? Q : never;\nexport type UserResponse = ArrayType;\n\nexport type Entity =\n | Address\n | AllContractsResponse\n | CompanyContractResponse\n | CompanyContractsResponse\n | CompanyLocationResponse\n | ConnectionStatus\n | ConnectionStatusChange\n | InternetServicePlan\n | Location\n | QuoteRequest\n | QuoteRequestExport\n | Provider\n | ConnectionType\n | Quote\n | Message\n | ZayoBuilding\n | ZayoLocation;\n\n// GET /entities Request Types\n// -----------------------------------------------------------------------------\n\nexport type QuoteRequestsRequest = {\n quoteRequests: QuoteRequest[];\n};\n\nexport type QuotesRequest = {\n quotes: Quote[];\n};\n\nexport type MessagesRequest = {\n messages: Message[];\n};\n\nexport type ProvidersRequest = {\n providers: Provider[];\n};\n\nexport type ConnectionTypesRequest = {\n connectionTypes: ConnectionType[];\n};\n\nexport type ZayoGetBuildingsRequest = {\n buildings: ZayoBuilding[];\n};\n\nexport type ZayoGetLocationsRequest = {\n locations: ZayoLocation[];\n};\n\n// These are both necessary to power the typing in useApiResources.\n//\n// The former is a map from entity plural name to request type.\n//\n// The latter, which should be coextensive, is the set of keys of each request type.\n\nexport type EntityToGetRequestMap = {\n quoteRequests: QuoteRequestsRequest;\n quotes: QuotesRequest;\n providers: ProvidersRequest;\n connectionTypes: ConnectionTypesRequest;\n messages: MessagesRequest;\n buildings: ZayoGetBuildingsRequest;\n locations: ZayoGetLocationsRequest;\n};\n\nexport type GetRequestKey =\n | keyof QuoteRequestsRequest\n | keyof QuotesRequest\n | keyof MessagesRequest\n | keyof ProvidersRequest\n | keyof ConnectionTypesRequest\n | keyof ZayoGetBuildingsRequest\n | keyof ZayoGetLocationsRequest;\n\n// POST /entities Request Types\n// -----------------------------------------------------------------------------\n\nexport type QuoteRequestCreateRequest = KeysToCamelCase;\n// export type QuoteRequestCreateRequest = CleanupPb<\n// StripListSuffix>\n// >;\n\nexport type LocationsCreateRequest = KeysToCamelCase;\n\nexport type MessagesCreateRequest = KeysToCamelCase;\n\nexport type ProviderCreateRequest = KeysToCamelCase;\n\n// export type LocationProviderAvailabilityUpsertRequest = LocationProviderAvailabilityUpsertRequestProto.AsObject;\nexport type LocationProviderAvailabilityUpsertRequest =\n KeysToCamelCase;\n// export type LocationProviderAvailabilityDeleteRequest =\n// LocationProviderAvailabilityDeleteRequestProto.AsObject;\nexport type LocationProviderAvailabilityDeleteRequest =\n KeysToCamelCase;\n\n// export type ProviderAvailabilitiesResponse = ProviderAvailabilitiesResponseProto.AsObject;\nexport type ProviderAvailabilitiesResponse = KeysToCamelCase;\n\nexport type ProviderAvailability = KeysToCamelCase;\n\nexport type QuotesCreateRequest = KeysToCamelCase;\n\n// PUT /entities/{id} Request Types\n// -----------------------------------------------------------------------------\n\nexport type QuoteRequestUpdateRequest = KeysToCamelCase;\n// export type QuoteRequestUpdateRequest = Omit<\n// Partial>,\n// \"status\"\n// > & {\n// status: QuoteRequest[\"status\"];\n// };\n\nexport type QuotesUpdateRequest = KeysToCamelCase;\nexport type ConnectAdminCreateQuoteForDashboard =\n KeysToCamelCase;\nexport type InvoiceResponse = KeysToCamelCase;\nexport type InvoicesResponse = {\n invoices: InvoiceResponse[];\n};\n// export type InvoicesResponse = Omit, \"invoices\"> & {\n// invoices: InvoiceResponse[];\n// };\nexport type ContractResponse = KeysToCamelCase;\nexport type ContractsResponse = {\n contracts: ContractResponse[];\n};\n\nexport type ISPContractCreateRequest = KeysToCamelCase;\nexport type ISPContractCreateRequestError = ISPContractCreateRequest_ErrorProto;\n\nexport type InvoiceCreateRequest = KeysToCamelCase;\nexport type InvoiceCreateRequestError = InvoiceCreateRequest_ErrorProto;\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport type ConnectAdminCreateQuoteForDashboard_Req = Omit<\n ConnectAdminCreateQuoteForDashboardProto,\n \"connection_status\" | \"quotes_create_req\"\n> & {\n connection_status?: ConnectionStatusProto;\n quotes_create_req: QuotesCreateRequestProto;\n};\n\nexport type ConnectAdminUpdateQuoteForDashboard_Req = Omit<\n ConnectAdminUpdateQuoteForDashboardProto,\n \"connection_status\" | \"quotes_update_req\"\n> & {\n connection_status?: OptionalFields<\n ConnectionStatusProto,\n \"sid\" | \"status_category\" | \"status_type\" | \"priority\"\n >;\n quotes_update_req: QuotesUpdateRequestProto;\n};\n// Maps\n// -----------------------------------------------------------------------------\n\n// export const QuoteRequestStatusMap = QuoteRequestProto.Status;\nexport const QuoteRequestStatusMap = QuoteRequest_Status;\n// Utility Types\n// -----------------------------------------------------------------------------\n\nexport type EntityKey = keyof EntityToGetRequestMap & keyof EntityMap & GetRequestKey;\n\nexport type EntityMap = {\n addresses: Address;\n quoteRequests: QuoteRequest;\n quotes: Quote;\n messages: Message;\n connectionTypes: ConnectionType;\n providers: Provider;\n buildings: ZayoBuilding;\n locations: ZayoLocation;\n};\n\ntype WithoutListSuffix = S extends `${infer P1}List` ? `${P1}` : S;\n\ntype MaybeWithoutListSuffix = S extends string\n ? WithoutListSuffix\n : S;\n\nexport type StripListSuffix> = {\n [K in keyof T as MaybeWithoutListSuffix]: T[K];\n};\n\nexport type APIError = ErrorProto;\nexport type AxiosAPIError = AxiosError;\n","import snakeCaseKeys from \"snakecase-keys\";\nimport { getAPIBaseUrl } from \"./config\";\nimport { PortalOrigin } from \"./enums\";\nimport verifyAuth from \"./verifyAuth\";\nimport { headers } from \"./headers\";\n\nexport const BASE_URL = getAPIBaseUrl(window.location);\n\nexport class NotFoundError extends Error {\n public code;\n\n constructor() {\n super();\n this.code = 404;\n }\n}\n\nexport class ErrorWithMessage extends Error {\n public message;\n\n public id;\n\n constructor(message: string, id: string) {\n super();\n this.message = message;\n this.id = id;\n }\n}\n\n/*\ntype CommonRequestProps = {\n path: string;\n setLoading?: (loading: boolean) => void;\n options?: any;\n via?: PortalOrigin;\n}\n\ntype RequestProps = {\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\";\n} & CommonRequestProps;\n\ntype DataRequestProps = {\n data: R;\n} & CommonRequestProps;\n\nexport const request = async (\n props: RequestProps,\n): Promise => {\n const { method, options, path, setLoading } = props;\n let { via } = props;\n if (!via) {\n via = PortalOrigin.ConnectAdmin;\n }\n */\n\nexport const request = async (\n path: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\",\n setLoading?: (loading: boolean) => void,\n options?: any,\n via: PortalOrigin = PortalOrigin.ConnectAdmin,\n): Promise => {\n if (setLoading) {\n setLoading(true);\n }\n\n const response = await fetch(`${BASE_URL}/${path}`, {\n method,\n headers,\n ...options,\n credentials: \"include\",\n });\n\n if (setLoading) {\n setLoading(false);\n }\n\n if (response.status === 204) {\n return;\n }\n\n if (response.status === 403) {\n await verifyAuth(via);\n }\n\n const json = await response.json();\n\n if (!response.ok && json.id && json.title) {\n throw new ErrorWithMessage(json.title, json.id);\n } else if (method === \"GET\" && response.status === 404) {\n throw new NotFoundError();\n } else if (!response.ok && !response.bodyUsed) {\n throw new Error(await response.text());\n } else if (!response.ok) {\n throw new Error(JSON.stringify(response));\n }\n\n return json;\n};\n\nexport const get = async (\n path: string,\n setLoading?: (loading: boolean) => void,\n): Promise => request(path, \"GET\", setLoading);\n\nexport const post = async (\n path: string,\n data: R,\n setLoading?: (loading: boolean) => void,\n via?: PortalOrigin,\n): Promise => {\n let jsonData: string;\n try {\n jsonData = JSON.stringify(snakeCaseKeys(data));\n } catch (e) {\n return Promise.reject(e);\n }\n return request(path, \"POST\", setLoading, {\n body: jsonData,\n }, via);\n};\n\nexport const put = async (\n path: string,\n data: Partial,\n setLoading?: (loading: boolean) => void,\n): Promise => {\n let jsonData: string;\n try {\n jsonData = JSON.stringify(snakeCaseKeys(data));\n } catch (e) {\n return Promise.reject(e);\n }\n return request(path, \"PUT\", setLoading, {\n body: jsonData,\n });\n};\n\nexport const httpDelete = async (\n path: string,\n setLoading?: (loading: boolean) => void,\n): Promise => request(path, \"DELETE\", setLoading);\n\nexport const httpDeleteWithData = async (\n path: string,\n data: R,\n setLoading?: (loading: boolean) => void,\n): Promise => {\n let jsonData: string;\n try {\n jsonData = JSON.stringify(snakeCaseKeys(data));\n } catch (e) {\n return Promise.reject(e);\n }\n return request(path, \"DELETE\", setLoading, {\n body: jsonData,\n });\n};\n","import camelCaseKeys from \"camelcase-keys\";\nimport { useState, useCallback, useEffect } from \"react\";\nimport { Entity } from \"../protos\";\nimport { get } from \"../requests\";\n\nexport default function useApiResource(\n path: string,\n setLoadingOnReload?: boolean,\n findOrFail?: boolean,\n): [boolean, T?, (() => Promise)?, boolean?] {\n const [loading, setLoading] = useState(true);\n const [failed, setFailed] = useState(false);\n const [entity, setEntity] = useState();\n\n const reload = useCallback(async () => {\n try {\n const response = (await get(path, setLoadingOnReload ? setLoading : undefined)) as T;\n\n if (response) {\n setEntity(camelCaseKeys(response, { deep: true }));\n }\n } catch (e) {\n if (e.code === 404 && findOrFail) {\n setFailed(true);\n return;\n }\n\n throw e;\n }\n }, [path]);\n\n useEffect(() => {\n (async () => {\n !setLoadingOnReload && setLoading(true);\n await reload();\n !setLoadingOnReload && setLoading(false);\n })();\n }, []);\n\n return [loading, entity, reload, failed];\n}\n","import camelCaseKeys from \"camelcase-keys\";\nimport { useState, useCallback, useEffect } from \"react\";\nimport { EntityKey, EntityMap, EntityToGetRequestMap } from \"../protos\";\nimport { get } from \"../requests\";\n\nexport default function useApiResources(\n namespace: E,\n path: string,\n ready = true,\n): [boolean, EntityMap[E][] | [], (skipSetLoading?: boolean) => Promise] {\n const [loading, setLoading] = useState(true);\n const [entity, setEntity] = useState();\n\n const reload = useCallback(\n async (skipSetLoading = false) => {\n const response = await get(\n path,\n skipSetLoading ? undefined : setLoading,\n );\n\n if (response) {\n setEntity((camelCaseKeys(response, { deep: true }) as any)[namespace]);\n }\n },\n [namespace, path],\n );\n\n useEffect(() => {\n if (ready) {\n reload();\n }\n }, [ready, path]);\n\n return [loading, entity || [], reload];\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// ../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\nvar require_lodash = __commonJS({\n \"../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js\"(exports, module) {\n (function() {\n var undefined2;\n var VERSION = \"4.17.21\";\n var LARGE_ARRAY_SIZE = 200;\n var CORE_ERROR_TEXT = \"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\", FUNC_ERROR_TEXT = \"Expected a function\", INVALID_TEMPL_VAR_ERROR_TEXT = \"Invalid `variable` option passed into `_.template`\";\n var HASH_UNDEFINED = \"__lodash_hash_undefined__\";\n var MAX_MEMOIZE_SIZE = 500;\n var PLACEHOLDER = \"__lodash_placeholder__\";\n var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;\n var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\n var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512;\n var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = \"...\";\n var HOT_COUNT = 800, HOT_SPAN = 16;\n var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3;\n var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 17976931348623157e292, NAN = 0 / 0;\n var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n var wrapFlags = [\n [\"ary\", WRAP_ARY_FLAG],\n [\"bind\", WRAP_BIND_FLAG],\n [\"bindKey\", WRAP_BIND_KEY_FLAG],\n [\"curry\", WRAP_CURRY_FLAG],\n [\"curryRight\", WRAP_CURRY_RIGHT_FLAG],\n [\"flip\", WRAP_FLIP_FLAG],\n [\"partial\", WRAP_PARTIAL_FLAG],\n [\"partialRight\", WRAP_PARTIAL_RIGHT_FLAG],\n [\"rearg\", WRAP_REARG_FLAG]\n ];\n var argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", asyncTag = \"[object AsyncFunction]\", boolTag = \"[object Boolean]\", dateTag = \"[object Date]\", domExcTag = \"[object DOMException]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", genTag = \"[object GeneratorFunction]\", mapTag = \"[object Map]\", numberTag = \"[object Number]\", nullTag = \"[object Null]\", objectTag = \"[object Object]\", promiseTag = \"[object Promise]\", proxyTag = \"[object Proxy]\", regexpTag = \"[object RegExp]\", setTag = \"[object Set]\", stringTag = \"[object String]\", symbolTag = \"[object Symbol]\", undefinedTag = \"[object Undefined]\", weakMapTag = \"[object WeakMap]\", weakSetTag = \"[object WeakSet]\";\n var arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\n var reEmptyStringLeading = /\\b__p \\+= '';/g, reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g, reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>\"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n var reEscape = /<%-([\\s\\S]+?)%>/g, reEvaluate = /<%([\\s\\S]+?)%>/g, reInterpolate = /<%=([\\s\\S]+?)%>/g;\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/, rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source);\n var reTrimStart = /^\\s+/;\n var reWhitespace = /\\s/;\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/, reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/, reSplitDetails = /,? & /;\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n var reEscapeChar = /\\\\(\\\\)?/g;\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n var reFlags = /\\w*$/;\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n var reIsBinary = /^0b[01]+$/i;\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n var reIsOctal = /^0o[0-7]+$/i;\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n var reNoMatch = /($^)/;\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n var rsAstralRange = \"\\\\ud800-\\\\udfff\", rsComboMarksRange = \"\\\\u0300-\\\\u036f\", reComboHalfMarksRange = \"\\\\ufe20-\\\\ufe2f\", rsComboSymbolsRange = \"\\\\u20d0-\\\\u20ff\", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = \"\\\\u2700-\\\\u27bf\", rsLowerRange = \"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\", rsMathOpRange = \"\\\\xac\\\\xb1\\\\xd7\\\\xf7\", rsNonCharRange = \"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\", rsPunctuationRange = \"\\\\u2000-\\\\u206f\", rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\", rsUpperRange = \"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\", rsVarRange = \"\\\\ufe0e\\\\ufe0f\", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n var rsApos = \"['\\u2019]\", rsAstral = \"[\" + rsAstralRange + \"]\", rsBreak = \"[\" + rsBreakRange + \"]\", rsCombo = \"[\" + rsComboRange + \"]\", rsDigits = \"\\\\d+\", rsDingbat = \"[\" + rsDingbatRange + \"]\", rsLower = \"[\" + rsLowerRange + \"]\", rsMisc = \"[^\" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + \"]\", rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\", rsModifier = \"(?:\" + rsCombo + \"|\" + rsFitz + \")\", rsNonAstral = \"[^\" + rsAstralRange + \"]\", rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\", rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\", rsUpper = \"[\" + rsUpperRange + \"]\", rsZWJ = \"\\\\u200d\";\n var rsMiscLower = \"(?:\" + rsLower + \"|\" + rsMisc + \")\", rsMiscUpper = \"(?:\" + rsUpper + \"|\" + rsMisc + \")\", rsOptContrLower = \"(?:\" + rsApos + \"(?:d|ll|m|re|s|t|ve))?\", rsOptContrUpper = \"(?:\" + rsApos + \"(?:D|LL|M|RE|S|T|VE))?\", reOptMod = rsModifier + \"?\", rsOptVar = \"[\" + rsVarRange + \"]?\", rsOptJoin = \"(?:\" + rsZWJ + \"(?:\" + [rsNonAstral, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsOptVar + reOptMod + \")*\", rsOrdLower = \"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\", rsOrdUpper = \"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = \"(?:\" + [rsDingbat, rsRegional, rsSurrPair].join(\"|\") + \")\" + rsSeq, rsSymbol = \"(?:\" + [rsNonAstral + rsCombo + \"?\", rsCombo, rsRegional, rsSurrPair, rsAstral].join(\"|\") + \")\";\n var reApos = RegExp(rsApos, \"g\");\n var reComboMark = RegExp(rsCombo, \"g\");\n var reUnicode = RegExp(rsFitz + \"(?=\" + rsFitz + \")|\" + rsSymbol + rsSeq, \"g\");\n var reUnicodeWord = RegExp([\n rsUpper + \"?\" + rsLower + \"+\" + rsOptContrLower + \"(?=\" + [rsBreak, rsUpper, \"$\"].join(\"|\") + \")\",\n rsMiscUpper + \"+\" + rsOptContrUpper + \"(?=\" + [rsBreak, rsUpper + rsMiscLower, \"$\"].join(\"|\") + \")\",\n rsUpper + \"?\" + rsMiscLower + \"+\" + rsOptContrLower,\n rsUpper + \"+\" + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join(\"|\"), \"g\");\n var reHasUnicode = RegExp(\"[\" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + \"]\");\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n var contextProps = [\n \"Array\",\n \"Buffer\",\n \"DataView\",\n \"Date\",\n \"Error\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Int8Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Map\",\n \"Math\",\n \"Object\",\n \"Promise\",\n \"RegExp\",\n \"Set\",\n \"String\",\n \"Symbol\",\n \"TypeError\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"WeakMap\",\n \"_\",\n \"clearTimeout\",\n \"isFinite\",\n \"parseInt\",\n \"setTimeout\"\n ];\n var templateCounter = -1;\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n var deburredLetters = {\n \"\\xC0\": \"A\",\n \"\\xC1\": \"A\",\n \"\\xC2\": \"A\",\n \"\\xC3\": \"A\",\n \"\\xC4\": \"A\",\n \"\\xC5\": \"A\",\n \"\\xE0\": \"a\",\n \"\\xE1\": \"a\",\n \"\\xE2\": \"a\",\n \"\\xE3\": \"a\",\n \"\\xE4\": \"a\",\n \"\\xE5\": \"a\",\n \"\\xC7\": \"C\",\n \"\\xE7\": \"c\",\n \"\\xD0\": \"D\",\n \"\\xF0\": \"d\",\n \"\\xC8\": \"E\",\n \"\\xC9\": \"E\",\n \"\\xCA\": \"E\",\n \"\\xCB\": \"E\",\n \"\\xE8\": \"e\",\n \"\\xE9\": \"e\",\n \"\\xEA\": \"e\",\n \"\\xEB\": \"e\",\n \"\\xCC\": \"I\",\n \"\\xCD\": \"I\",\n \"\\xCE\": \"I\",\n \"\\xCF\": \"I\",\n \"\\xEC\": \"i\",\n \"\\xED\": \"i\",\n \"\\xEE\": \"i\",\n \"\\xEF\": \"i\",\n \"\\xD1\": \"N\",\n \"\\xF1\": \"n\",\n \"\\xD2\": \"O\",\n \"\\xD3\": \"O\",\n \"\\xD4\": \"O\",\n \"\\xD5\": \"O\",\n \"\\xD6\": \"O\",\n \"\\xD8\": \"O\",\n \"\\xF2\": \"o\",\n \"\\xF3\": \"o\",\n \"\\xF4\": \"o\",\n \"\\xF5\": \"o\",\n \"\\xF6\": \"o\",\n \"\\xF8\": \"o\",\n \"\\xD9\": \"U\",\n \"\\xDA\": \"U\",\n \"\\xDB\": \"U\",\n \"\\xDC\": \"U\",\n \"\\xF9\": \"u\",\n \"\\xFA\": \"u\",\n \"\\xFB\": \"u\",\n \"\\xFC\": \"u\",\n \"\\xDD\": \"Y\",\n \"\\xFD\": \"y\",\n \"\\xFF\": \"y\",\n \"\\xC6\": \"Ae\",\n \"\\xE6\": \"ae\",\n \"\\xDE\": \"Th\",\n \"\\xFE\": \"th\",\n \"\\xDF\": \"ss\",\n \"\\u0100\": \"A\",\n \"\\u0102\": \"A\",\n \"\\u0104\": \"A\",\n \"\\u0101\": \"a\",\n \"\\u0103\": \"a\",\n \"\\u0105\": \"a\",\n \"\\u0106\": \"C\",\n \"\\u0108\": \"C\",\n \"\\u010A\": \"C\",\n \"\\u010C\": \"C\",\n \"\\u0107\": \"c\",\n \"\\u0109\": \"c\",\n \"\\u010B\": \"c\",\n \"\\u010D\": \"c\",\n \"\\u010E\": \"D\",\n \"\\u0110\": \"D\",\n \"\\u010F\": \"d\",\n \"\\u0111\": \"d\",\n \"\\u0112\": \"E\",\n \"\\u0114\": \"E\",\n \"\\u0116\": \"E\",\n \"\\u0118\": \"E\",\n \"\\u011A\": \"E\",\n \"\\u0113\": \"e\",\n \"\\u0115\": \"e\",\n \"\\u0117\": \"e\",\n \"\\u0119\": \"e\",\n \"\\u011B\": \"e\",\n \"\\u011C\": \"G\",\n \"\\u011E\": \"G\",\n \"\\u0120\": \"G\",\n \"\\u0122\": \"G\",\n \"\\u011D\": \"g\",\n \"\\u011F\": \"g\",\n \"\\u0121\": \"g\",\n \"\\u0123\": \"g\",\n \"\\u0124\": \"H\",\n \"\\u0126\": \"H\",\n \"\\u0125\": \"h\",\n \"\\u0127\": \"h\",\n \"\\u0128\": \"I\",\n \"\\u012A\": \"I\",\n \"\\u012C\": \"I\",\n \"\\u012E\": \"I\",\n \"\\u0130\": \"I\",\n \"\\u0129\": \"i\",\n \"\\u012B\": \"i\",\n \"\\u012D\": \"i\",\n \"\\u012F\": \"i\",\n \"\\u0131\": \"i\",\n \"\\u0134\": \"J\",\n \"\\u0135\": \"j\",\n \"\\u0136\": \"K\",\n \"\\u0137\": \"k\",\n \"\\u0138\": \"k\",\n \"\\u0139\": \"L\",\n \"\\u013B\": \"L\",\n \"\\u013D\": \"L\",\n \"\\u013F\": \"L\",\n \"\\u0141\": \"L\",\n \"\\u013A\": \"l\",\n \"\\u013C\": \"l\",\n \"\\u013E\": \"l\",\n \"\\u0140\": \"l\",\n \"\\u0142\": \"l\",\n \"\\u0143\": \"N\",\n \"\\u0145\": \"N\",\n \"\\u0147\": \"N\",\n \"\\u014A\": \"N\",\n \"\\u0144\": \"n\",\n \"\\u0146\": \"n\",\n \"\\u0148\": \"n\",\n \"\\u014B\": \"n\",\n \"\\u014C\": \"O\",\n \"\\u014E\": \"O\",\n \"\\u0150\": \"O\",\n \"\\u014D\": \"o\",\n \"\\u014F\": \"o\",\n \"\\u0151\": \"o\",\n \"\\u0154\": \"R\",\n \"\\u0156\": \"R\",\n \"\\u0158\": \"R\",\n \"\\u0155\": \"r\",\n \"\\u0157\": \"r\",\n \"\\u0159\": \"r\",\n \"\\u015A\": \"S\",\n \"\\u015C\": \"S\",\n \"\\u015E\": \"S\",\n \"\\u0160\": \"S\",\n \"\\u015B\": \"s\",\n \"\\u015D\": \"s\",\n \"\\u015F\": \"s\",\n \"\\u0161\": \"s\",\n \"\\u0162\": \"T\",\n \"\\u0164\": \"T\",\n \"\\u0166\": \"T\",\n \"\\u0163\": \"t\",\n \"\\u0165\": \"t\",\n \"\\u0167\": \"t\",\n \"\\u0168\": \"U\",\n \"\\u016A\": \"U\",\n \"\\u016C\": \"U\",\n \"\\u016E\": \"U\",\n \"\\u0170\": \"U\",\n \"\\u0172\": \"U\",\n \"\\u0169\": \"u\",\n \"\\u016B\": \"u\",\n \"\\u016D\": \"u\",\n \"\\u016F\": \"u\",\n \"\\u0171\": \"u\",\n \"\\u0173\": \"u\",\n \"\\u0174\": \"W\",\n \"\\u0175\": \"w\",\n \"\\u0176\": \"Y\",\n \"\\u0177\": \"y\",\n \"\\u0178\": \"Y\",\n \"\\u0179\": \"Z\",\n \"\\u017B\": \"Z\",\n \"\\u017D\": \"Z\",\n \"\\u017A\": \"z\",\n \"\\u017C\": \"z\",\n \"\\u017E\": \"z\",\n \"\\u0132\": \"IJ\",\n \"\\u0133\": \"ij\",\n \"\\u0152\": \"Oe\",\n \"\\u0153\": \"oe\",\n \"\\u0149\": \"'n\",\n \"\\u017F\": \"s\"\n };\n var htmlEscapes = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n };\n var htmlUnescapes = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \""\": '\"',\n \"'\": \"'\"\n };\n var stringEscapes = {\n \"\\\\\": \"\\\\\",\n \"'\": \"'\",\n \"\\n\": \"n\",\n \"\\r\": \"r\",\n \"\\u2028\": \"u2028\",\n \"\\u2029\": \"u2029\"\n };\n var freeParseFloat = parseFloat, freeParseInt = parseInt;\n var freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\n var freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\n var root2 = freeGlobal || freeSelf || Function(\"return this\")();\n var freeExports = typeof exports == \"object\" && exports && !exports.nodeType && exports;\n var freeModule = freeExports && typeof module == \"object\" && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal.process;\n var nodeUtil = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n function arrayEach(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n function arrayEvery(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n function arrayFilter(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n function arrayIncludesWith(array, value, comparator) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n function arrayMap(array, iteratee) {\n var index = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n function arrayPush(array, values) {\n var index = -1, length = values.length, offset = array.length;\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1, length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n function arraySome(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n var asciiSize = baseProperty(\"length\");\n function asciiToArray(string) {\n return string.split(\"\");\n }\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection2) {\n if (predicate(value, key, collection2)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length, index = fromIndex + (fromRight ? 1 : -1);\n while (fromRight ? index-- : ++index < length) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n function baseIndexOf(array, value, fromIndex) {\n return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function baseIsNaN(value) {\n return value !== value;\n }\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? baseSum(array, iteratee) / length : NAN;\n }\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined2 : object[key];\n };\n }\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined2 : object[key];\n };\n }\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection2) {\n accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2);\n });\n return accumulator;\n }\n function baseSortBy(array, comparer) {\n var length = array.length;\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n function baseSum(array, iteratee) {\n var result, index = -1, length = array.length;\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined2) {\n result = result === undefined2 ? current : result + current;\n }\n }\n return result;\n }\n function baseTimes(n, iteratee) {\n var index = -1, result = Array(n);\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n function baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, \"\") : string;\n }\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1, length = strSymbols.length;\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {\n }\n return index;\n }\n function countHolders(array, placeholder) {\n var length = array.length, result = 0;\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n var deburrLetter = basePropertyOf(deburredLetters);\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n function escapeStringChar(chr) {\n return \"\\\\\" + stringEscapes[chr];\n }\n function getValue(object, key) {\n return object == null ? undefined2 : object[key];\n }\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n function iteratorToArray(iterator) {\n var data, result = [];\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n function mapToArray(map2) {\n var index = -1, result = Array(map2.size);\n map2.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n function overArg(func, transform2) {\n return function(arg) {\n return func(transform2(arg));\n };\n }\n function replaceHolders(array, placeholder) {\n var index = -1, length = array.length, resIndex = 0, result = [];\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n function setToArray(set3) {\n var index = -1, result = Array(set3.size);\n set3.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n function setToPairs(set3) {\n var index = -1, result = Array(set3.size);\n set3.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1, length = array.length;\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n function stringSize(string) {\n return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);\n }\n function stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n }\n function trimmedEndIndex(string) {\n var index = string.length;\n while (index-- && reWhitespace.test(string.charAt(index))) {\n }\n return index;\n }\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n var runInContext = function runInContext2(context) {\n context = context == null ? root2 : _.defaults(root2.Object(), context, _.pick(root2, contextProps));\n var Array2 = context.Array, Date2 = context.Date, Error2 = context.Error, Function2 = context.Function, Math2 = context.Math, Object2 = context.Object, RegExp2 = context.RegExp, String2 = context.String, TypeError2 = context.TypeError;\n var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype;\n var coreJsData = context[\"__core-js_shared__\"];\n var funcToString = funcProto.toString;\n var hasOwnProperty = objectProto.hasOwnProperty;\n var idCounter = 0;\n var maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n }();\n var nativeObjectToString = objectProto.toString;\n var objectCtorString = funcToString.call(Object2);\n var oldDash = root2._;\n var reIsNative = RegExp2(\n \"^\" + funcToString.call(hasOwnProperty).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n );\n var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2;\n var defineProperty = function() {\n try {\n var func = getNative(Object2, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n }();\n var ctxClearTimeout = context.clearTimeout !== root2.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root2.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root2.setTimeout && context.setTimeout;\n var nativeCeil = Math2.ceil, nativeFloor = Math2.floor, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse;\n var DataView2 = getNative(context, \"DataView\"), Map2 = getNative(context, \"Map\"), Promise2 = getNative(context, \"Promise\"), Set = getNative(context, \"Set\"), WeakMap = getNative(context, \"WeakMap\"), nativeCreate = getNative(Object2, \"create\");\n var metaMap = WeakMap && new WeakMap();\n var realNames = {};\n var dataViewCtorString = toSource(DataView2), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap);\n var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2;\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, \"__wrapped__\")) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n var baseCreate = function() {\n function object() {\n }\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result2 = new object();\n object.prototype = undefined2;\n return result2;\n };\n }();\n function baseLodash() {\n }\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined2;\n }\n lodash.templateSettings = {\n \"escape\": reEscape,\n \"evaluate\": reEvaluate,\n \"interpolate\": reInterpolate,\n \"variable\": \"\",\n \"imports\": {\n \"_\": lodash\n }\n };\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n function lazyClone() {\n var result2 = new LazyWrapper(this.__wrapped__);\n result2.__actions__ = copyArray(this.__actions__);\n result2.__dir__ = this.__dir__;\n result2.__filtered__ = this.__filtered__;\n result2.__iteratees__ = copyArray(this.__iteratees__);\n result2.__takeCount__ = this.__takeCount__;\n result2.__views__ = copyArray(this.__views__);\n return result2;\n }\n function lazyReverse() {\n if (this.__filtered__) {\n var result2 = new LazyWrapper(this);\n result2.__dir__ = -1;\n result2.__filtered__ = true;\n } else {\n result2 = this.clone();\n result2.__dir__ *= -1;\n }\n return result2;\n }\n function lazyValue() {\n var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start2 = view.start, end = view.end, length = end - start2, index = isRight ? end : start2 - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__);\n if (!isArr || !isRight && arrLength == length && takeCount == length) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result2 = [];\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n var iterIndex = -1, value = array[index];\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex], iteratee2 = data.iteratee, type2 = data.type, computed = iteratee2(value);\n if (type2 == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type2 == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result2[resIndex++] = value;\n }\n return result2;\n }\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n function Hash(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n function hashDelete(key) {\n var result2 = this.has(key) && delete this.__data__[key];\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result2 = data[key];\n return result2 === HASH_UNDEFINED ? undefined2 : result2;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined2;\n }\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key);\n }\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value;\n return this;\n }\n Hash.prototype.clear = hashClear;\n Hash.prototype[\"delete\"] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n function ListCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n function listCacheDelete(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n function listCacheGet(key) {\n var data = this.__data__, index = assocIndexOf(data, key);\n return index < 0 ? undefined2 : data[index][1];\n }\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n function listCacheSet(key, value) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype[\"delete\"] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n function MapCache(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map2 || ListCache)(),\n \"string\": new Hash()\n };\n }\n function mapCacheDelete(key) {\n var result2 = getMapData(this, key)[\"delete\"](key);\n this.size -= result2 ? 1 : 0;\n return result2;\n }\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n function mapCacheSet(key, value) {\n var data = getMapData(this, key), size2 = data.size;\n data.set(key, value);\n this.size += data.size == size2 ? 0 : 1;\n return this;\n }\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype[\"delete\"] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n function SetCache(values2) {\n var index = -1, length = values2 == null ? 0 : values2.length;\n this.__data__ = new MapCache();\n while (++index < length) {\n this.add(values2[index]);\n }\n }\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n function stackClear() {\n this.__data__ = new ListCache();\n this.size = 0;\n }\n function stackDelete(key) {\n var data = this.__data__, result2 = data[\"delete\"](key);\n this.size = data.size;\n return result2;\n }\n function stackGet(key) {\n return this.__data__.get(key);\n }\n function stackHas(key) {\n return this.__data__.has(key);\n }\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n Stack.prototype.clear = stackClear;\n Stack.prototype[\"delete\"] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == \"length\" || isBuff && (key == \"offset\" || key == \"parent\") || isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || isIndex(key, length)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined2;\n }\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n function assignMergeValue(object, key, value) {\n if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) {\n baseAssignValue(object, key, value);\n }\n }\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n function baseAggregator(collection, setter, iteratee2, accumulator) {\n baseEach(collection, function(value, key, collection2) {\n setter(accumulator, value, iteratee2(value), collection2);\n });\n return accumulator;\n }\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n function baseAssignValue(object, key, value) {\n if (key == \"__proto__\" && defineProperty) {\n defineProperty(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n }\n function baseAt(object, paths) {\n var index = -1, length = paths.length, result2 = Array2(length), skip = object == null;\n while (++index < length) {\n result2[index] = skip ? undefined2 : get3(object, paths[index]);\n }\n return result2;\n }\n function baseClamp(number3, lower2, upper) {\n if (number3 === number3) {\n if (upper !== undefined2) {\n number3 = number3 <= upper ? number3 : upper;\n }\n if (lower2 !== undefined2) {\n number3 = number3 >= lower2 ? number3 : lower2;\n }\n }\n return number3;\n }\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\n if (customizer) {\n result2 = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result2 !== undefined2) {\n return result2;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result2 = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result2);\n }\n } else {\n var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || isFunc && !object) {\n result2 = isFlat || isFunc ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result2 = initCloneByTag(value, tag, isDeep);\n }\n }\n stack || (stack = new Stack());\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result2);\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key2) {\n result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n }\n var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n var props = isArr ? undefined2 : keysFunc(value);\n arrayEach(props || value, function(subValue, key2) {\n if (props) {\n key2 = subValue;\n subValue = value[key2];\n }\n assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n });\n return result2;\n }\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (length--) {\n var key = props[length], predicate = source[key], value = object[key];\n if (value === undefined2 && !(key in object) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n function baseDelay(func, wait, args) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return setTimeout2(function() {\n func.apply(undefined2, args);\n }, wait);\n }\n function baseDifference(array, values2, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length;\n if (!length) {\n return result2;\n }\n if (iteratee2) {\n values2 = arrayMap(values2, baseUnary(iteratee2));\n }\n if (comparator) {\n includes2 = arrayIncludesWith;\n isCommon = false;\n } else if (values2.length >= LARGE_ARRAY_SIZE) {\n includes2 = cacheHas;\n isCommon = false;\n values2 = new SetCache(values2);\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 == null ? value : iteratee2(value);\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values2[valuesIndex] === computed) {\n continue outer;\n }\n }\n result2.push(value);\n } else if (!includes2(values2, computed, comparator)) {\n result2.push(value);\n }\n }\n return result2;\n }\n var baseEach = createBaseEach(baseForOwn);\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n function baseEvery(collection, predicate) {\n var result2 = true;\n baseEach(collection, function(value, index, collection2) {\n result2 = !!predicate(value, index, collection2);\n return result2;\n });\n return result2;\n }\n function baseExtremum(array, iteratee2, comparator) {\n var index = -1, length = array.length;\n while (++index < length) {\n var value = array[index], current = iteratee2(value);\n if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) {\n var computed = current, result2 = value;\n }\n }\n return result2;\n }\n function baseFill(array, value, start2, end) {\n var length = array.length;\n start2 = toInteger(start2);\n if (start2 < 0) {\n start2 = -start2 > length ? 0 : length + start2;\n }\n end = end === undefined2 || end > length ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start2 > end ? 0 : toLength(end);\n while (start2 < end) {\n array[start2++] = value;\n }\n return array;\n }\n function baseFilter(collection, predicate) {\n var result2 = [];\n baseEach(collection, function(value, index, collection2) {\n if (predicate(value, index, collection2)) {\n result2.push(value);\n }\n });\n return result2;\n }\n function baseFlatten(array, depth, predicate, isStrict, result2) {\n var index = -1, length = array.length;\n predicate || (predicate = isFlattenable);\n result2 || (result2 = []);\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n baseFlatten(value, depth - 1, predicate, isStrict, result2);\n } else {\n arrayPush(result2, value);\n }\n } else if (!isStrict) {\n result2[result2.length] = value;\n }\n }\n return result2;\n }\n var baseFor = createBaseFor();\n var baseForRight = createBaseFor(true);\n function baseForOwn(object, iteratee2) {\n return object && baseFor(object, iteratee2, keys);\n }\n function baseForOwnRight(object, iteratee2) {\n return object && baseForRight(object, iteratee2, keys);\n }\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n function baseGet(object, path) {\n path = castPath(path, object);\n var index = 0, length = path.length;\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return index && index == length ? object : undefined2;\n }\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result2 = keysFunc(object);\n return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object));\n }\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined2 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value);\n }\n function baseGt(value, other) {\n return value > other;\n }\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n function baseHasIn(object, key) {\n return object != null && key in Object2(object);\n }\n function baseInRange(number3, start2, end) {\n return number3 >= nativeMin(start2, end) && number3 < nativeMax(start2, end);\n }\n function baseIntersection(arrays, iteratee2, comparator) {\n var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = [];\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee2) {\n array = arrayMap(array, baseUnary(iteratee2));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2;\n }\n array = arrays[0];\n var index = -1, seen = caches[0];\n outer:\n while (++index < length && result2.length < maxLength) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseInverter(object, setter, iteratee2, accumulator) {\n baseForOwn(object, function(value, key, object2) {\n setter(accumulator, iteratee2(value), key, object2);\n });\n return accumulator;\n }\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined2 : apply(func, object, args);\n }\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack());\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length, length = index, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object2(object);\n while (index--) {\n var data = matchData[index];\n if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0], objValue = object[key], srcValue = data[1];\n if (noCustomizer && data[2]) {\n if (objValue === undefined2 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack();\n if (customizer) {\n var result2 = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) {\n return false;\n }\n }\n }\n return true;\n }\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n function baseIsTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n function baseIteratee(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity4;\n }\n if (typeof value == \"object\") {\n return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n }\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result2 = [];\n for (var key in Object2(object)) {\n if (hasOwnProperty.call(object, key) && key != \"constructor\") {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object), result2 = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty.call(object, key)))) {\n result2.push(key);\n }\n }\n return result2;\n }\n function baseLt(value, other) {\n return value < other;\n }\n function baseMap(collection, iteratee2) {\n var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value, key, collection2) {\n result2[++index] = iteratee2(value, key, collection2);\n });\n return result2;\n }\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get3(object, path);\n return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : undefined2;\n if (newValue === undefined2) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : undefined2;\n var isCommon = newValue === undefined2;\n if (isCommon) {\n var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined2;\n }\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee2) {\n if (isArray(iteratee2)) {\n return function(value) {\n return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2);\n };\n }\n return iteratee2;\n });\n } else {\n iteratees = [identity4];\n }\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n var result2 = baseMap(collection, function(value, key, collection2) {\n var criteria = arrayMap(iteratees, function(iteratee2) {\n return iteratee2(value);\n });\n return { \"criteria\": criteria, \"index\": ++index, \"value\": value };\n });\n return baseSortBy(result2, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n function basePickBy(object, paths, predicate) {\n var index = -1, length = paths.length, result2 = {};\n while (++index < length) {\n var path = paths[index], value = baseGet(object, path);\n if (predicate(value, path)) {\n baseSet(result2, castPath(path, object), value);\n }\n }\n return result2;\n }\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n function basePullAll(array, values2, iteratee2, comparator) {\n var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array;\n if (array === values2) {\n values2 = copyArray(values2);\n }\n if (iteratee2) {\n seen = arrayMap(array, baseUnary(iteratee2));\n }\n while (++index < length) {\n var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value;\n while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0, lastIndex = length - 1;\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n function baseRandom(lower2, upper) {\n return lower2 + nativeFloor(nativeRandom() * (upper - lower2 + 1));\n }\n function baseRange(start2, end, step, fromRight) {\n var index = -1, length = nativeMax(nativeCeil((end - start2) / (step || 1)), 0), result2 = Array2(length);\n while (length--) {\n result2[fromRight ? length : ++index] = start2;\n start2 += step;\n }\n return result2;\n }\n function baseRepeat(string, n) {\n var result2 = \"\";\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result2;\n }\n do {\n if (n % 2) {\n result2 += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n return result2;\n }\n function baseRest(func, start2) {\n return setToString(overRest(func, start2, identity4), func + \"\");\n }\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n var index = -1, length = path.length, lastIndex = length - 1, nested = object;\n while (nested != null && ++index < length) {\n var key = toKey(path[index]), newValue = value;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") {\n return object;\n }\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined2;\n if (newValue === undefined2) {\n newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {};\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n var baseSetData = !metaMap ? identity4 : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n var baseSetToString = !defineProperty ? identity4 : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n };\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n function baseSlice(array, start2, end) {\n var index = -1, length = array.length;\n if (start2 < 0) {\n start2 = -start2 > length ? 0 : length + start2;\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start2 > end ? 0 : end - start2 >>> 0;\n start2 >>>= 0;\n var result2 = Array2(length);\n while (++index < length) {\n result2[index] = array[index + start2];\n }\n return result2;\n }\n function baseSome(collection, predicate) {\n var result2;\n baseEach(collection, function(value, index, collection2) {\n result2 = predicate(value, index, collection2);\n return !result2;\n });\n return !!result2;\n }\n function baseSortedIndex(array, value, retHighest) {\n var low = 0, high = array == null ? low : array.length;\n if (typeof value == \"number\" && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = low + high >>> 1, computed = array[mid];\n if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity4, retHighest);\n }\n function baseSortedIndexBy(array, value, iteratee2, retHighest) {\n var low = 0, high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n value = iteratee2(value);\n var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2;\n while (low < high) {\n var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed);\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? computed <= value : computed < value;\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n function baseSortedUniq(array, iteratee2) {\n var index = -1, length = array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result2[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result2;\n }\n function baseToNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n function baseToString(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray(value)) {\n return arrayMap(value, baseToString) + \"\";\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function baseUniq(array, iteratee2, comparator) {\n var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2;\n if (comparator) {\n isCommon = false;\n includes2 = arrayIncludesWith;\n } else if (length >= LARGE_ARRAY_SIZE) {\n var set4 = iteratee2 ? null : createSet(array);\n if (set4) {\n return setToArray(set4);\n }\n isCommon = false;\n includes2 = cacheHas;\n seen = new SetCache();\n } else {\n seen = iteratee2 ? [] : result2;\n }\n outer:\n while (++index < length) {\n var value = array[index], computed = iteratee2 ? iteratee2(value) : value;\n value = comparator || value !== 0 ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee2) {\n seen.push(computed);\n }\n result2.push(value);\n } else if (!includes2(seen, computed, comparator)) {\n if (seen !== result2) {\n seen.push(computed);\n }\n result2.push(value);\n }\n }\n return result2;\n }\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length, index = fromRight ? length : -1;\n while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) {\n }\n return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index);\n }\n function baseWrapperValue(value, actions) {\n var result2 = value;\n if (result2 instanceof LazyWrapper) {\n result2 = result2.value();\n }\n return arrayReduce(actions, function(result3, action) {\n return action.func.apply(action.thisArg, arrayPush([result3], action.args));\n }, result2);\n }\n function baseXor(arrays, iteratee2, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1, result2 = Array2(length);\n while (++index < length) {\n var array = arrays[index], othIndex = -1;\n while (++othIndex < length) {\n if (othIndex != index) {\n result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result2, 1), iteratee2, comparator);\n }\n function baseZipObject(props, values2, assignFunc) {\n var index = -1, length = props.length, valsLength = values2.length, result2 = {};\n while (++index < length) {\n var value = index < valsLength ? values2[index] : undefined2;\n assignFunc(result2, props[index], value);\n }\n return result2;\n }\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n function castFunction(value) {\n return typeof value == \"function\" ? value : identity4;\n }\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n var castRest = baseRest;\n function castSlice(array, start2, end) {\n var length = array.length;\n end = end === undefined2 ? length : end;\n return !start2 && end >= length ? array : baseSlice(array, start2, end);\n }\n var clearTimeout2 = ctxClearTimeout || function(id2) {\n return root2.clearTimeout(id2);\n };\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result2);\n return result2;\n }\n function cloneArrayBuffer(arrayBuffer) {\n var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer));\n return result2;\n }\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n function cloneRegExp(regexp) {\n var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result2.lastIndex = regexp.lastIndex;\n return result2;\n }\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {};\n }\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);\n var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);\n if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {\n return 1;\n }\n if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n function compareMultiple(object, other, orders) {\n var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length;\n while (++index < length) {\n var result2 = compareAscending(objCriteria[index], othCriteria[index]);\n if (result2) {\n if (index >= ordersLength) {\n return result2;\n }\n var order = orders[index];\n return result2 * (order == \"desc\" ? -1 : 1);\n }\n }\n return object.index - other.index;\n }\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried;\n while (++leftIndex < leftLength) {\n result2[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result2[leftIndex++] = args[argsIndex++];\n }\n return result2;\n }\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried;\n while (++argsIndex < rangeLength) {\n result2[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result2[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result2[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result2;\n }\n function copyArray(source, array) {\n var index = -1, length = source.length;\n array || (array = Array2(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index = -1, length = props.length;\n while (++index < length) {\n var key = props[index];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2;\n if (newValue === undefined2) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n function createAggregator(setter, initializer) {\n return function(collection, iteratee2) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {};\n return func(collection, setter, getIteratee(iteratee2, 2), accumulator);\n };\n }\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined2 : customizer;\n length = 1;\n }\n object = Object2(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee2) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee2);\n }\n var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection);\n while (fromRight ? index-- : ++index < length) {\n if (iteratee2(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n function createBaseFor(fromRight) {\n return function(object, iteratee2, keysFunc) {\n var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee2(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var fn = this && this !== root2 && this instanceof wrapper ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join(\"\") : string.slice(1);\n return chr[methodName]() + trailing;\n };\n }\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, \"\")), callback, \"\");\n };\n }\n function createCtor(Ctor) {\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return new Ctor();\n case 1:\n return new Ctor(args[0]);\n case 2:\n return new Ctor(args[0], args[1]);\n case 3:\n return new Ctor(args[0], args[1], args[2]);\n case 4:\n return new Ctor(args[0], args[1], args[2], args[3]);\n case 5:\n return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7:\n return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args);\n return isObject(result2) ? result2 : thisBinding;\n };\n }\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper);\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder);\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n undefined2,\n args,\n holders,\n undefined2,\n undefined2,\n arity - length\n );\n }\n var fn = this && this !== root2 && this instanceof wrapper ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object2(collection);\n if (!isArrayLike(collection)) {\n var iteratee2 = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) {\n return iteratee2(iterable[key], key, iterable);\n };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2;\n };\n }\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru;\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == \"wrapper\") {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n var funcName = getFuncName(func), data = funcName == \"wrapper\" ? getData(func) : undefined2;\n if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments, value = args[0];\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value;\n while (++index2 < length) {\n result2 = funcs[index2].call(this, result2);\n }\n return result2;\n };\n });\n }\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func);\n function wrapper() {\n var length = arguments.length, args = Array2(length), index = length;\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func,\n bitmask,\n createHybrid,\n wrapper.placeholder,\n thisArg,\n args,\n newHolders,\n argPos,\n ary2,\n arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func;\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary2 < length) {\n args.length = ary2;\n }\n if (this && this !== root2 && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n function createInverter(setter, toIteratee) {\n return function(object, iteratee2) {\n return baseInverter(object, setter, toIteratee(iteratee2), {});\n };\n }\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result2;\n if (value === undefined2 && other === undefined2) {\n return defaultValue;\n }\n if (value !== undefined2) {\n result2 = value;\n }\n if (other !== undefined2) {\n if (result2 === undefined2) {\n return other;\n }\n if (typeof value == \"string\" || typeof other == \"string\") {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result2 = operator(value, other);\n }\n return result2;\n };\n }\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee2) {\n return apply(iteratee2, thisArg, args);\n });\n });\n });\n }\n function createPadding(length, chars) {\n chars = chars === undefined2 ? \" \" : baseToString(chars);\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join(\"\") : result2.slice(0, length);\n }\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func);\n function wrapper() {\n var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root2 && this instanceof wrapper ? Ctor : func;\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n function createRange(fromRight) {\n return function(start2, end, step) {\n if (step && typeof step != \"number\" && isIterateeCall(start2, end, step)) {\n end = step = undefined2;\n }\n start2 = toFinite(start2);\n if (end === undefined2) {\n end = start2;\n start2 = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined2 ? start2 < end ? 1 : -1 : toFinite(step);\n return baseRange(start2, end, step, fromRight);\n };\n }\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == \"string\" && typeof other == \"string\")) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials;\n bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG;\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func,\n bitmask,\n thisArg,\n newPartials,\n newHolders,\n newPartialsRight,\n newHoldersRight,\n argPos,\n ary2,\n arity\n ];\n var result2 = wrapFunc.apply(undefined2, newData);\n if (isLaziable(func)) {\n setData(result2, newData);\n }\n result2.placeholder = placeholder;\n return setWrapToString(result2, func, bitmask);\n }\n function createRound(methodName) {\n var func = Math2[methodName];\n return function(number3, precision) {\n number3 = toNumber(number3);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number3)) {\n var pair = (toString(number3) + \"e\").split(\"e\"), value = func(pair[0] + \"e\" + (+pair[1] + precision));\n pair = (toString(value) + \"e\").split(\"e\");\n return +(pair[0] + \"e\" + (+pair[1] - precision));\n }\n return func(number3);\n };\n }\n var createSet = !(Set && 1 / setToArray(new Set([, -0]))[1] == INFINITY) ? noop2 : function(values2) {\n return new Set(values2);\n };\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined2;\n }\n ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0);\n arity = arity === undefined2 ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials, holdersRight = holders;\n partials = holders = undefined2;\n }\n var data = isBindKey ? undefined2 : getData(func);\n var newData = [\n func,\n bitmask,\n thisArg,\n partials,\n holders,\n partialsRight,\n holdersRight,\n argPos,\n ary2,\n arity\n ];\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0);\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result2 = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result2 = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result2 = createPartial(func, bitmask, thisArg, partials);\n } else {\n result2 = createHybrid.apply(undefined2, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result2, newData), func, bitmask);\n }\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n return srcValue;\n }\n return objValue;\n }\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n }\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined2 : value;\n }\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined2;\n stack.set(array, other);\n stack.set(other, array);\n while (++index < arrLength) {\n var arrValue = array[index], othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined2) {\n if (compared) {\n continue;\n }\n result2 = false;\n break;\n }\n if (seen) {\n if (!arraySome(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result2 = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result2 = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result2;\n }\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) {\n return false;\n }\n return true;\n case boolTag:\n case dateTag:\n case numberTag:\n return eq(+object, +other);\n case errorTag:\n return object.name == other.name && object.message == other.message;\n case regexpTag:\n case stringTag:\n return object == other + \"\";\n case mapTag:\n var convert = mapToArray;\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n stack.set(object, other);\n var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result2;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result2 = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result2 = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result2 && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result2 = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result2;\n }\n function flatRest(func) {\n return setToString(overRest(func, undefined2, flatten), func + \"\");\n }\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n var getData = !metaMap ? noop2 : function(func) {\n return metaMap.get(func);\n };\n function getFuncName(func) {\n var result2 = func.name + \"\", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0;\n while (length--) {\n var data = array[length], otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result2;\n }\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, \"placeholder\") ? lodash : func;\n return object.placeholder;\n }\n function getIteratee() {\n var result2 = lodash.iteratee || iteratee;\n result2 = result2 === iteratee ? baseIteratee : result2;\n return arguments.length ? result2(arguments[0], arguments[1]) : result2;\n }\n function getMapData(map3, key) {\n var data = map3.__data__;\n return isKeyable(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n }\n function getMatchData(object) {\n var result2 = keys(object), length = result2.length;\n while (length--) {\n var key = result2[length], value = object[key];\n result2[length] = [key, value, isStrictComparable(value)];\n }\n return result2;\n }\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined2;\n }\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];\n try {\n value[symToStringTag] = undefined2;\n var unmasked = true;\n } catch (e) {\n }\n var result2 = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result2;\n }\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object2(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result2 = [];\n while (object) {\n arrayPush(result2, getSymbols(object));\n object = getPrototype(object);\n }\n return result2;\n };\n var getTag = baseGetTag;\n if (DataView2 && getTag(new DataView2(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap && getTag(new WeakMap()) != weakMapTag) {\n getTag = function(value) {\n var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result2;\n };\n }\n function getView(start2, end, transforms) {\n var index = -1, length = transforms.length;\n while (++index < length) {\n var data = transforms[index], size2 = data.size;\n switch (data.type) {\n case \"drop\":\n start2 += size2;\n break;\n case \"dropRight\":\n end -= size2;\n break;\n case \"take\":\n end = nativeMin(end, start2 + size2);\n break;\n case \"takeRight\":\n start2 = nativeMax(start2, end - size2);\n break;\n }\n }\n return { \"start\": start2, \"end\": end };\n }\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n var index = -1, length = path.length, result2 = false;\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result2 = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result2 || ++index != length) {\n return result2;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object));\n }\n function initCloneArray(array) {\n var length = array.length, result2 = new array.constructor(length);\n if (length && typeof array[0] == \"string\" && hasOwnProperty.call(array, \"index\")) {\n result2.index = array.index;\n result2.input = array.input;\n }\n return result2;\n }\n function initCloneObject(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n }\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n case dataViewTag:\n return cloneDataView(object, isDeep);\n case float32Tag:\n case float64Tag:\n case int8Tag:\n case int16Tag:\n case int32Tag:\n case uint8Tag:\n case uint8ClampedTag:\n case uint16Tag:\n case uint32Tag:\n return cloneTypedArray(object, isDeep);\n case mapTag:\n return new Ctor();\n case numberTag:\n case stringTag:\n return new Ctor(object);\n case regexpTag:\n return cloneRegExp(object);\n case setTag:\n return new Ctor();\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? \"& \" : \"\") + details[lastIndex];\n details = details.join(length > 2 ? \", \" : \" \");\n return source.replace(reWrapComment, \"{\\n/* [wrapped with \" + details + \"] */\\n\");\n }\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n function isIndex(value, length) {\n var type2 = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length && (type2 == \"number\" || type2 != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n }\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type2 = typeof index;\n if (type2 == \"number\" ? isArrayLike(object) && isIndex(index, object.length) : type2 == \"string\" && index in object) {\n return eq(object[index], value);\n }\n return false;\n }\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type2 = typeof value;\n if (type2 == \"number\" || type2 == \"symbol\" || type2 == \"boolean\" || value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object);\n }\n function isKeyable(value) {\n var type2 = typeof value;\n return type2 == \"string\" || type2 == \"number\" || type2 == \"symbol\" || type2 == \"boolean\" ? value !== \"__proto__\" : value === null;\n }\n function isLaziable(func) {\n var funcName = getFuncName(func), other = lodash[funcName];\n if (typeof other != \"function\" || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n function isMasked(func) {\n return !!maskSrcKey && maskSrcKey in func;\n }\n var isMaskable = coreJsData ? isFunction : stubFalse;\n function isPrototype(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto;\n return value === proto;\n }\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== undefined2 || key in Object2(object));\n };\n }\n function memoizeCapped(func) {\n var result2 = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result2.cache;\n return result2;\n }\n function mergeData(data, source) {\n var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG;\n if (!(isCommon || isCombo)) {\n return data;\n }\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n value = source[7];\n if (value) {\n data[7] = value;\n }\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n if (data[9] == null) {\n data[9] = source[9];\n }\n data[0] = source[0];\n data[1] = newBitmask;\n return data;\n }\n function nativeKeysIn(object) {\n var result2 = [];\n if (object != null) {\n for (var key in Object2(object)) {\n result2.push(key);\n }\n }\n return result2;\n }\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n function overRest(func, start2, transform3) {\n start2 = nativeMax(start2 === undefined2 ? func.length - 1 : start2, 0);\n return function() {\n var args = arguments, index = -1, length = nativeMax(args.length - start2, 0), array = Array2(length);\n while (++index < length) {\n array[index] = args[start2 + index];\n }\n index = -1;\n var otherArgs = Array2(start2 + 1);\n while (++index < start2) {\n otherArgs[index] = args[index];\n }\n otherArgs[start2] = transform3(array);\n return apply(func, this, otherArgs);\n };\n }\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n function reorder(array, indexes) {\n var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array);\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2;\n }\n return array;\n }\n function safeGet(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n }\n var setData = shortOut(baseSetData);\n var setTimeout2 = ctxSetTimeout || function(func, wait) {\n return root2.setTimeout(func, wait);\n };\n var setToString = shortOut(baseSetToString);\n function setWrapToString(wrapper, reference, bitmask) {\n var source = reference + \"\";\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n function shortOut(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined2, arguments);\n };\n }\n function shuffleSelf(array, size2) {\n var index = -1, length = array.length, lastIndex = length - 1;\n size2 = size2 === undefined2 ? length : size2;\n while (++index < size2) {\n var rand = baseRandom(index, lastIndex), value = array[rand];\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size2;\n return array;\n }\n var stringToPath = memoizeCapped(function(string) {\n var result2 = [];\n if (string.charCodeAt(0) === 46) {\n result2.push(\"\");\n }\n string.replace(rePropName, function(match, number3, quote, subString) {\n result2.push(quote ? subString.replace(reEscapeChar, \"$1\") : number3 || match);\n });\n return result2;\n });\n function toKey(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result2 = value + \"\";\n return result2 == \"0\" && 1 / value == -INFINITY ? \"-0\" : result2;\n }\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n }\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = \"_.\" + pair[0];\n if (bitmask & pair[1] && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result2.__actions__ = copyArray(wrapper.__actions__);\n result2.__index__ = wrapper.__index__;\n result2.__values__ = wrapper.__values__;\n return result2;\n }\n function chunk(array, size2, guard) {\n if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) {\n size2 = 1;\n } else {\n size2 = nativeMax(toInteger(size2), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size2 < 1) {\n return [];\n }\n var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2));\n while (index < length) {\n result2[resIndex++] = baseSlice(array, index, index += size2);\n }\n return result2;\n }\n function compact(array) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = [];\n while (++index < length) {\n var value = array[index];\n if (value) {\n result2[resIndex++] = value;\n }\n }\n return result2;\n }\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array2(length - 1), array = arguments[0], index = length;\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n var difference = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : [];\n });\n var differenceBy = baseRest(function(array, values2) {\n var iteratee2 = last(values2);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : [];\n });\n var differenceWith = baseRest(function(array, values2) {\n var comparator = last(values2);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined2;\n }\n return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : [];\n });\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function dropRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : [];\n }\n function dropWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : [];\n }\n function fill(array, value, start2, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start2 && typeof start2 != \"number\" && isIterateeCall(array, value, start2)) {\n start2 = 0;\n end = length;\n }\n return baseFill(array, value, start2, end);\n }\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n function fromPairs(pairs) {\n var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {};\n while (++index < length) {\n var pair = pairs[index];\n result2[pair[0]] = pair[1];\n }\n return result2;\n }\n function head(array) {\n return array && array.length ? array[0] : undefined2;\n }\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : [];\n });\n var intersectionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n if (iteratee2 === last(mapped)) {\n iteratee2 = undefined2;\n } else {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : [];\n });\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n if (comparator) {\n mapped.pop();\n }\n return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : [];\n });\n function join(array, separator) {\n return array == null ? \"\" : nativeJoin.call(array, separator);\n }\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined2;\n }\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined2) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true);\n }\n function nth(array, n) {\n return array && array.length ? baseNth(array, toInteger(n)) : undefined2;\n }\n var pull = baseRest(pullAll);\n function pullAll(array, values2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array;\n }\n function pullAllBy(array, values2, iteratee2) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array;\n }\n function pullAllWith(array, values2, comparator) {\n return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array;\n }\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes);\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n return result2;\n });\n function remove2(array, predicate) {\n var result2 = [];\n if (!(array && array.length)) {\n return result2;\n }\n var index = -1, indexes = [], length = array.length;\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result2.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result2;\n }\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n function slice(array, start2, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != \"number\" && isIterateeCall(array, start2, end)) {\n start2 = 0;\n end = length;\n } else {\n start2 = start2 == null ? 0 : toInteger(start2);\n end = end === undefined2 ? length : toInteger(end);\n }\n return baseSlice(array, start2, end);\n }\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n function sortedIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2));\n }\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n function sortedLastIndexBy(array, value, iteratee2) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true);\n }\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n function sortedUniq(array) {\n return array && array.length ? baseSortedUniq(array) : [];\n }\n function sortedUniqBy(array, iteratee2) {\n return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = guard || n === undefined2 ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n function takeRightWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : [];\n }\n function takeWhile(array, predicate) {\n return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : [];\n }\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n var unionBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2));\n });\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator);\n });\n function uniq(array) {\n return array && array.length ? baseUniq(array) : [];\n }\n function uniqBy(array, iteratee2) {\n return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];\n }\n function uniqWith(array, comparator) {\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return array && array.length ? baseUniq(array, undefined2, comparator) : [];\n }\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n function unzipWith(array, iteratee2) {\n if (!(array && array.length)) {\n return [];\n }\n var result2 = unzip(array);\n if (iteratee2 == null) {\n return result2;\n }\n return arrayMap(result2, function(group) {\n return apply(iteratee2, undefined2, group);\n });\n }\n var without = baseRest(function(array, values2) {\n return isArrayLikeObject(array) ? baseDifference(array, values2) : [];\n });\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n var xorBy = baseRest(function(arrays) {\n var iteratee2 = last(arrays);\n if (isArrayLikeObject(iteratee2)) {\n iteratee2 = undefined2;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2));\n });\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == \"function\" ? comparator : undefined2;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator);\n });\n var zip = baseRest(unzip);\n function zipObject(props, values2) {\n return baseZipObject(props || [], values2 || [], assignValue);\n }\n function zipObjectDeep(props, values2) {\n return baseZipObject(props || [], values2 || [], baseSet);\n }\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2;\n iteratee2 = typeof iteratee2 == \"function\" ? (arrays.pop(), iteratee2) : undefined2;\n return unzipWith(arrays, iteratee2);\n });\n function chain(value) {\n var result2 = lodash(value);\n result2.__chain__ = true;\n return result2;\n }\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n function thru(value, interceptor) {\n return interceptor(value);\n }\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length, start2 = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) {\n return baseAt(object, paths);\n };\n if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start2)) {\n return this.thru(interceptor);\n }\n value = value.slice(start2, +start2 + (length ? 1 : 0));\n value.__actions__.push({\n \"func\": thru,\n \"args\": [interceptor],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined2);\n }\n return array;\n });\n });\n function wrapperChain() {\n return chain(this);\n }\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n function wrapperNext() {\n if (this.__values__ === undefined2) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++];\n return { \"done\": done, \"value\": value };\n }\n function wrapperToIterator() {\n return this;\n }\n function wrapperPlant(value) {\n var result2, parent2 = this;\n while (parent2 instanceof baseLodash) {\n var clone2 = wrapperClone(parent2);\n clone2.__index__ = 0;\n clone2.__values__ = undefined2;\n if (result2) {\n previous.__wrapped__ = clone2;\n } else {\n result2 = clone2;\n }\n var previous = clone2;\n parent2 = parent2.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result2;\n }\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n \"func\": thru,\n \"args\": [reverse],\n \"thisArg\": undefined2\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n var countBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n ++result2[key];\n } else {\n baseAssignValue(result2, key, 1);\n }\n });\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n function filter2(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n var find2 = createFind(findIndex);\n var findLast = createFind(findLastIndex);\n function flatMap(collection, iteratee2) {\n return baseFlatten(map2(collection, iteratee2), 1);\n }\n function flatMapDeep(collection, iteratee2) {\n return baseFlatten(map2(collection, iteratee2), INFINITY);\n }\n function flatMapDepth(collection, iteratee2, depth) {\n depth = depth === undefined2 ? 1 : toInteger(depth);\n return baseFlatten(map2(collection, iteratee2), depth);\n }\n function forEach(collection, iteratee2) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function forEachRight(collection, iteratee2) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee2, 3));\n }\n var groupBy = createAggregator(function(result2, value, key) {\n if (hasOwnProperty.call(result2, key)) {\n result2[key].push(value);\n } else {\n baseAssignValue(result2, key, [value]);\n }\n });\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0;\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1;\n }\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1, isFunc = typeof path == \"function\", result2 = isArrayLike(collection) ? Array2(collection.length) : [];\n baseEach(collection, function(value) {\n result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result2;\n });\n var keyBy = createAggregator(function(result2, value, key) {\n baseAssignValue(result2, key, value);\n });\n function map2(collection, iteratee2) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee2, 3));\n }\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined2 : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n var partition = createAggregator(function(result2, value, key) {\n result2[key ? 0 : 1].push(value);\n }, function() {\n return [[], []];\n });\n function reduce(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach);\n }\n function reduceRight(collection, iteratee2, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3;\n return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight);\n }\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n function sampleSize(collection, n, guard) {\n if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined2;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n var now2 = ctxNow || function() {\n return root2.Date.now();\n };\n function after(n, func) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n function ary(func, n, guard) {\n n = guard ? undefined2 : n;\n n = func && n == null ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n);\n }\n function before(n, func) {\n var result2;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result2 = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined2;\n }\n return result2;\n };\n }\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n var bindKey2 = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey2));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n function curry(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curry.placeholder;\n return result2;\n }\n function curryRight(func, arity, guard) {\n arity = guard ? undefined2 : arity;\n var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity);\n result2.placeholder = curryRight.placeholder;\n return result2;\n }\n function debounce(func, wait, options) {\n var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = \"maxWait\" in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n function invokeFunc(time) {\n var args = lastArgs, thisArg = lastThis;\n lastArgs = lastThis = undefined2;\n lastInvokeTime = time;\n result2 = func.apply(thisArg, args);\n return result2;\n }\n function leadingEdge(time) {\n lastInvokeTime = time;\n timerId = setTimeout2(timerExpired, wait);\n return leading ? invokeFunc(time) : result2;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n function timerExpired() {\n var time = now2();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n timerId = setTimeout2(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined2;\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined2;\n return result2;\n }\n function cancel() {\n if (timerId !== undefined2) {\n clearTimeout2(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined2;\n }\n function flush() {\n return timerId === undefined2 ? result2 : trailingEdge(now2());\n }\n function debounced() {\n var time = now2(), isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined2) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n clearTimeout2(timerId);\n timerId = setTimeout2(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined2) {\n timerId = setTimeout2(timerExpired, wait);\n }\n return result2;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n function memoize(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result2 = func.apply(this, args);\n memoized.cache = cache.set(key, result2) || cache;\n return result2;\n };\n memoized.cache = new (memoize.Cache || MapCache)();\n return memoized;\n }\n memoize.Cache = MapCache;\n function negate(predicate) {\n if (typeof predicate != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0:\n return !predicate.call(this);\n case 1:\n return !predicate.call(this, args[0]);\n case 2:\n return !predicate.call(this, args[0], args[1]);\n case 3:\n return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n function once(func) {\n return before(2, func);\n }\n var overArgs = castRest(function(func, transforms) {\n transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1, length = nativeMin(args.length, funcsLength);\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders);\n });\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders);\n });\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes);\n });\n function rest(func, start2) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start2 = start2 === undefined2 ? start2 : toInteger(start2);\n return baseRest(func, start2);\n }\n function spread(func, start2) {\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n start2 = start2 == null ? 0 : nativeMax(toInteger(start2), 0);\n return baseRest(function(args) {\n var array = args[start2], otherArgs = castSlice(args, 0, start2);\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n function throttle(func, wait, options) {\n var leading = true, trailing = true;\n if (typeof func != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = \"leading\" in options ? !!options.leading : leading;\n trailing = \"trailing\" in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n \"leading\": leading,\n \"maxWait\": wait,\n \"trailing\": trailing\n });\n }\n function unary(func) {\n return ary(func, 1);\n }\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n function cloneWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n function eq(value, other) {\n return value === other || value !== value && other !== other;\n }\n var gt = createRelationalOperation(baseGt);\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n var isArguments = baseIsArguments(function() {\n return arguments;\n }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, \"callee\") && !propertyIsEnumerable.call(value, \"callee\");\n };\n var isArray = Array2.isArray;\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n function isBoolean(value) {\n return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag;\n }\n var isBuffer = nativeIsBuffer || stubFalse;\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) && (isArray(value) || typeof value == \"string\" || typeof value.splice == \"function\" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n var result2 = customizer ? customizer(value, other) : undefined2;\n return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2;\n }\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag || typeof value.message == \"string\" && typeof value.name == \"string\" && !isPlainObject(value);\n }\n function isFinite2(value) {\n return typeof value == \"number\" && nativeIsFinite(value);\n }\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n function isInteger(value) {\n return typeof value == \"number\" && value == toInteger(value);\n }\n function isLength(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n function isObject(value) {\n var type2 = typeof value;\n return value != null && (type2 == \"object\" || type2 == \"function\");\n }\n function isObjectLike(value) {\n return value != null && typeof value == \"object\";\n }\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n function isNaN2(value) {\n return isNumber(value) && value != +value;\n }\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error2(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n function isNull(value) {\n return value === null;\n }\n function isNil(value) {\n return value == null;\n }\n function isNumber(value) {\n return typeof value == \"number\" || isObjectLike(value) && baseGetTag(value) == numberTag;\n }\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n }\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n function isString(value) {\n return typeof value == \"string\" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n }\n function isSymbol(value) {\n return typeof value == \"symbol\" || isObjectLike(value) && baseGetTag(value) == symbolTag;\n }\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n function isUndefined(value) {\n return value === undefined2;\n }\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n var lt = createRelationalOperation(baseLt);\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values;\n return func(value);\n }\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = value < 0 ? -1 : 1;\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n function toInteger(value) {\n var result2 = toFinite(value), remainder = result2 % 1;\n return result2 === result2 ? remainder ? result2 - remainder : result2 : 0;\n }\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n function toNumber(value) {\n if (typeof value == \"number\") {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n value = isObject(other) ? other + \"\" : other;\n }\n if (typeof value != \"string\") {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n }\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n function toSafeInteger(value) {\n return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0;\n }\n function toString(value) {\n return value == null ? \"\" : baseToString(value);\n }\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n var at = flatRest(baseAt);\n function create2(prototype, properties) {\n var result2 = baseCreate(prototype);\n return properties == null ? result2 : baseAssign(result2, properties);\n }\n var defaults = baseRest(function(object, sources) {\n object = Object2(object);\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined2;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n });\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined2, customDefaultsMerge);\n return apply(mergeWith, undefined2, args);\n });\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n function forIn(object, iteratee2) {\n return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forInRight(object, iteratee2) {\n return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn);\n }\n function forOwn(object, iteratee2) {\n return object && baseForOwn(object, getIteratee(iteratee2, 3));\n }\n function forOwnRight(object, iteratee2) {\n return object && baseForOwnRight(object, getIteratee(iteratee2, 3));\n }\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n function get3(object, path, defaultValue) {\n var result2 = object == null ? undefined2 : baseGet(object, path);\n return result2 === undefined2 ? defaultValue : result2;\n }\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n var invert = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n result2[value] = key;\n }, constant(identity4));\n var invertBy = createInverter(function(result2, value, key) {\n if (value != null && typeof value.toString != \"function\") {\n value = nativeObjectToString.call(value);\n }\n if (hasOwnProperty.call(result2, value)) {\n result2[value].push(key);\n } else {\n result2[value] = [key];\n }\n }, getIteratee);\n var invoke = baseRest(baseInvoke);\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n function mapKeys(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, iteratee2(value, key, object2), value);\n });\n return result2;\n }\n function mapValues(object, iteratee2) {\n var result2 = {};\n iteratee2 = getIteratee(iteratee2, 3);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue(result2, key, iteratee2(value, key, object2));\n });\n return result2;\n }\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n var omit = flatRest(function(object, paths) {\n var result2 = {};\n if (object == null) {\n return result2;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result2);\n if (isDeep) {\n result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result2, paths[length]);\n }\n return result2;\n });\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n var index = -1, length = path.length;\n if (!length) {\n length = 1;\n object = undefined2;\n }\n while (++index < length) {\n var value = object == null ? undefined2 : object[toKey(path[index])];\n if (value === undefined2) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n function set3(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n var toPairs = createToPairs(keys);\n var toPairsIn = createToPairs(keysIn);\n function transform2(object, iteratee2, accumulator) {\n var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n iteratee2 = getIteratee(iteratee2, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor() : [];\n } else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n } else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) {\n return iteratee2(accumulator, value, index, object2);\n });\n return accumulator;\n }\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == \"function\" ? customizer : undefined2;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n function clamp(number3, lower2, upper) {\n if (upper === undefined2) {\n upper = lower2;\n lower2 = undefined2;\n }\n if (upper !== undefined2) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower2 !== undefined2) {\n lower2 = toNumber(lower2);\n lower2 = lower2 === lower2 ? lower2 : 0;\n }\n return baseClamp(toNumber(number3), lower2, upper);\n }\n function inRange(number3, start2, end) {\n start2 = toFinite(start2);\n if (end === undefined2) {\n end = start2;\n start2 = 0;\n } else {\n end = toFinite(end);\n }\n number3 = toNumber(number3);\n return baseInRange(number3, start2, end);\n }\n function random(lower2, upper, floating) {\n if (floating && typeof floating != \"boolean\" && isIterateeCall(lower2, upper, floating)) {\n upper = floating = undefined2;\n }\n if (floating === undefined2) {\n if (typeof upper == \"boolean\") {\n floating = upper;\n upper = undefined2;\n } else if (typeof lower2 == \"boolean\") {\n floating = lower2;\n lower2 = undefined2;\n }\n }\n if (lower2 === undefined2 && upper === undefined2) {\n lower2 = 0;\n upper = 1;\n } else {\n lower2 = toFinite(lower2);\n if (upper === undefined2) {\n upper = lower2;\n lower2 = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower2 > upper) {\n var temp = lower2;\n lower2 = upper;\n upper = temp;\n }\n if (floating || lower2 % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower2 + rand * (upper - lower2 + freeParseFloat(\"1e-\" + ((rand + \"\").length - 1))), upper);\n }\n return baseRandom(lower2, upper);\n }\n var camelCase = createCompounder(function(result2, word, index) {\n word = word.toLowerCase();\n return result2 + (index ? capitalize(word) : word);\n });\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, \"\");\n }\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n var length = string.length;\n position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length);\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n function escape(string) {\n string = toString(string);\n return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string;\n }\n function escapeRegExp(string) {\n string = toString(string);\n return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, \"\\\\$&\") : string;\n }\n var kebabCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"-\" : \"\") + word.toLowerCase();\n });\n var lowerCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toLowerCase();\n });\n var lowerFirst = createCaseFirst(\"toLowerCase\");\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars);\n }\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? string + createPadding(length - strLength, chars) : string;\n }\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n var strLength = length ? stringSize(string) : 0;\n return length && strLength < length ? createPadding(length - strLength, chars) + string : string;\n }\n function parseInt2(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, \"\"), radix || 0);\n }\n function repeat(string, n, guard) {\n if (guard ? isIterateeCall(string, n, guard) : n === undefined2) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n function replace() {\n var args = arguments, string = toString(args[0]);\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n var snakeCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \"_\" : \"\") + word.toLowerCase();\n });\n function split(string, separator, limit) {\n if (limit && typeof limit != \"number\" && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined2;\n }\n limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (typeof separator == \"string\" || separator != null && !isRegExp(separator))) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n var startCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + upperFirst(word);\n });\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length);\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n function template(string, options, guard) {\n var settings = lodash.templateSettings;\n if (guard && isIterateeCall(string, options, guard)) {\n options = undefined2;\n }\n string = toString(string);\n options = assignInWith({}, options, settings, customDefaultsAssignIn);\n var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys);\n var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = \"__p += '\";\n var reDelimiters = RegExp2(\n (options.escape || reNoMatch).source + \"|\" + interpolate.source + \"|\" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + \"|\" + (options.evaluate || reNoMatch).source + \"|$\",\n \"g\"\n );\n var sourceURL = \"//# sourceURL=\" + (hasOwnProperty.call(options, \"sourceURL\") ? (options.sourceURL + \"\").replace(/\\s/g, \" \") : \"lodash.templateSources[\" + ++templateCounter + \"]\") + \"\\n\";\n string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n interpolateValue || (interpolateValue = esTemplateValue);\n source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n if (escapeValue) {\n isEscaping = true;\n source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n }\n if (evaluateValue) {\n isEvaluating = true;\n source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n }\n if (interpolateValue) {\n source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n }\n index = offset + match.length;\n return match;\n });\n source += \"';\\n\";\n var variable = hasOwnProperty.call(options, \"variable\") && options.variable;\n if (!variable) {\n source = \"with (obj) {\\n\" + source + \"\\n}\\n\";\n } else if (reForbiddenIdentifierChars.test(variable)) {\n throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT);\n }\n source = (isEvaluating ? source.replace(reEmptyStringLeading, \"\") : source).replace(reEmptyStringMiddle, \"$1\").replace(reEmptyStringTrailing, \"$1;\");\n source = \"function(\" + (variable || \"obj\") + \") {\\n\" + (variable ? \"\" : \"obj || (obj = {});\\n\") + \"var __t, __p = ''\" + (isEscaping ? \", __e = _.escape\" : \"\") + (isEvaluating ? \", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\" : \";\\n\") + source + \"return __p\\n}\";\n var result2 = attempt(function() {\n return Function2(importsKeys, sourceURL + \"return \" + source).apply(undefined2, importsValues);\n });\n result2.source = source;\n if (isError(result2)) {\n throw result2;\n }\n return result2;\n }\n function toLower(value) {\n return toString(value).toLowerCase();\n }\n function toUpper(value) {\n return toString(value).toUpperCase();\n }\n function trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start2 = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1;\n return castSlice(strSymbols, start2, end).join(\"\");\n }\n function trimEnd(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.slice(0, trimmedEndIndex(string) + 1);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n return castSlice(strSymbols, 0, end).join(\"\");\n }\n function trimStart(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined2)) {\n return string.replace(reTrimStart, \"\");\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string), start2 = charsStartIndex(strSymbols, stringToArray(chars));\n return castSlice(strSymbols, start2).join(\"\");\n }\n function truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION;\n if (isObject(options)) {\n var separator = \"separator\" in options ? options.separator : separator;\n length = \"length\" in options ? toInteger(options.length) : length;\n omission = \"omission\" in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result2 = strSymbols ? castSlice(strSymbols, 0, end).join(\"\") : string.slice(0, end);\n if (separator === undefined2) {\n return result2 + omission;\n }\n if (strSymbols) {\n end += result2.length - end;\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match, substring = result2;\n if (!separator.global) {\n separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + \"g\");\n }\n separator.lastIndex = 0;\n while (match = separator.exec(substring)) {\n var newEnd = match.index;\n }\n result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result2.lastIndexOf(separator);\n if (index > -1) {\n result2 = result2.slice(0, index);\n }\n }\n return result2 + omission;\n }\n function unescape(string) {\n string = toString(string);\n return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string;\n }\n var upperCase = createCompounder(function(result2, word, index) {\n return result2 + (index ? \" \" : \"\") + word.toUpperCase();\n });\n var upperFirst = createCaseFirst(\"toUpperCase\");\n function words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined2 : pattern;\n if (pattern === undefined2) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n }\n var attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined2, args);\n } catch (e) {\n return isError(e) ? e : new Error2(e);\n }\n });\n var bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n });\n function cond(pairs) {\n var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee();\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != \"function\") {\n throw new TypeError2(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n }\n function conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n }\n function constant(value) {\n return function() {\n return value;\n };\n }\n function defaultTo(value, defaultValue) {\n return value == null || value !== value ? defaultValue : value;\n }\n var flow = createFlow();\n var flowRight = createFlow(true);\n function identity4(value) {\n return value;\n }\n function iteratee(func) {\n return baseIteratee(typeof func == \"function\" ? func : baseClone(func, CLONE_DEEP_FLAG));\n }\n function matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n }\n function matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n }\n var method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n });\n var methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n });\n function mixin(object, source, options) {\n var props = keys(source), methodNames = baseFunctions(source, props);\n if (options == null && !(isObject(source) && (methodNames.length || !props.length))) {\n options = source;\n source = object;\n object = this;\n methodNames = baseFunctions(source, keys(source));\n }\n var chain2 = !(isObject(options) && \"chain\" in options) || !!options.chain, isFunc = isFunction(object);\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain2 || chainAll) {\n var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__);\n actions.push({ \"func\": func, \"args\": arguments, \"thisArg\": object });\n result2.__chain__ = chainAll;\n return result2;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n return object;\n }\n function noConflict() {\n if (root2._ === this) {\n root2._ = oldDash;\n }\n return this;\n }\n function noop2() {\n }\n function nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n }\n var over = createOver(arrayMap);\n var overEvery = createOver(arrayEvery);\n var overSome = createOver(arraySome);\n function property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n }\n function propertyOf(object) {\n return function(path) {\n return object == null ? undefined2 : baseGet(object, path);\n };\n }\n var range = createRange();\n var rangeRight = createRange(true);\n function stubArray() {\n return [];\n }\n function stubFalse() {\n return false;\n }\n function stubObject() {\n return {};\n }\n function stubString() {\n return \"\";\n }\n function stubTrue() {\n return true;\n }\n function times(n, iteratee2) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH);\n iteratee2 = getIteratee(iteratee2);\n n -= MAX_ARRAY_LENGTH;\n var result2 = baseTimes(length, iteratee2);\n while (++index < n) {\n iteratee2(index);\n }\n return result2;\n }\n function toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n }\n function uniqueId(prefix) {\n var id2 = ++idCounter;\n return toString(prefix) + id2;\n }\n var add = createMathOperation(function(augend, addend) {\n return augend + addend;\n }, 0);\n var ceil = createRound(\"ceil\");\n var divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n }, 1);\n var floor = createRound(\"floor\");\n function max3(array) {\n return array && array.length ? baseExtremum(array, identity4, baseGt) : undefined2;\n }\n function maxBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2;\n }\n function mean(array) {\n return baseMean(array, identity4);\n }\n function meanBy(array, iteratee2) {\n return baseMean(array, getIteratee(iteratee2, 2));\n }\n function min2(array) {\n return array && array.length ? baseExtremum(array, identity4, baseLt) : undefined2;\n }\n function minBy(array, iteratee2) {\n return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2;\n }\n var multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n }, 1);\n var round = createRound(\"round\");\n var subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n }, 0);\n function sum(array) {\n return array && array.length ? baseSum(array, identity4) : 0;\n }\n function sumBy(array, iteratee2) {\n return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;\n }\n lodash.after = after;\n lodash.ary = ary;\n lodash.assign = assign;\n lodash.assignIn = assignIn;\n lodash.assignInWith = assignInWith;\n lodash.assignWith = assignWith;\n lodash.at = at;\n lodash.before = before;\n lodash.bind = bind;\n lodash.bindAll = bindAll;\n lodash.bindKey = bindKey2;\n lodash.castArray = castArray;\n lodash.chain = chain;\n lodash.chunk = chunk;\n lodash.compact = compact;\n lodash.concat = concat;\n lodash.cond = cond;\n lodash.conforms = conforms;\n lodash.constant = constant;\n lodash.countBy = countBy;\n lodash.create = create2;\n lodash.curry = curry;\n lodash.curryRight = curryRight;\n lodash.debounce = debounce;\n lodash.defaults = defaults;\n lodash.defaultsDeep = defaultsDeep;\n lodash.defer = defer;\n lodash.delay = delay;\n lodash.difference = difference;\n lodash.differenceBy = differenceBy;\n lodash.differenceWith = differenceWith;\n lodash.drop = drop;\n lodash.dropRight = dropRight;\n lodash.dropRightWhile = dropRightWhile;\n lodash.dropWhile = dropWhile;\n lodash.fill = fill;\n lodash.filter = filter2;\n lodash.flatMap = flatMap;\n lodash.flatMapDeep = flatMapDeep;\n lodash.flatMapDepth = flatMapDepth;\n lodash.flatten = flatten;\n lodash.flattenDeep = flattenDeep;\n lodash.flattenDepth = flattenDepth;\n lodash.flip = flip;\n lodash.flow = flow;\n lodash.flowRight = flowRight;\n lodash.fromPairs = fromPairs;\n lodash.functions = functions;\n lodash.functionsIn = functionsIn;\n lodash.groupBy = groupBy;\n lodash.initial = initial;\n lodash.intersection = intersection;\n lodash.intersectionBy = intersectionBy;\n lodash.intersectionWith = intersectionWith;\n lodash.invert = invert;\n lodash.invertBy = invertBy;\n lodash.invokeMap = invokeMap;\n lodash.iteratee = iteratee;\n lodash.keyBy = keyBy;\n lodash.keys = keys;\n lodash.keysIn = keysIn;\n lodash.map = map2;\n lodash.mapKeys = mapKeys;\n lodash.mapValues = mapValues;\n lodash.matches = matches;\n lodash.matchesProperty = matchesProperty;\n lodash.memoize = memoize;\n lodash.merge = merge;\n lodash.mergeWith = mergeWith;\n lodash.method = method;\n lodash.methodOf = methodOf;\n lodash.mixin = mixin;\n lodash.negate = negate;\n lodash.nthArg = nthArg;\n lodash.omit = omit;\n lodash.omitBy = omitBy;\n lodash.once = once;\n lodash.orderBy = orderBy;\n lodash.over = over;\n lodash.overArgs = overArgs;\n lodash.overEvery = overEvery;\n lodash.overSome = overSome;\n lodash.partial = partial;\n lodash.partialRight = partialRight;\n lodash.partition = partition;\n lodash.pick = pick;\n lodash.pickBy = pickBy;\n lodash.property = property;\n lodash.propertyOf = propertyOf;\n lodash.pull = pull;\n lodash.pullAll = pullAll;\n lodash.pullAllBy = pullAllBy;\n lodash.pullAllWith = pullAllWith;\n lodash.pullAt = pullAt;\n lodash.range = range;\n lodash.rangeRight = rangeRight;\n lodash.rearg = rearg;\n lodash.reject = reject;\n lodash.remove = remove2;\n lodash.rest = rest;\n lodash.reverse = reverse;\n lodash.sampleSize = sampleSize;\n lodash.set = set3;\n lodash.setWith = setWith;\n lodash.shuffle = shuffle;\n lodash.slice = slice;\n lodash.sortBy = sortBy;\n lodash.sortedUniq = sortedUniq;\n lodash.sortedUniqBy = sortedUniqBy;\n lodash.split = split;\n lodash.spread = spread;\n lodash.tail = tail;\n lodash.take = take;\n lodash.takeRight = takeRight;\n lodash.takeRightWhile = takeRightWhile;\n lodash.takeWhile = takeWhile;\n lodash.tap = tap;\n lodash.throttle = throttle;\n lodash.thru = thru;\n lodash.toArray = toArray;\n lodash.toPairs = toPairs;\n lodash.toPairsIn = toPairsIn;\n lodash.toPath = toPath;\n lodash.toPlainObject = toPlainObject;\n lodash.transform = transform2;\n lodash.unary = unary;\n lodash.union = union;\n lodash.unionBy = unionBy;\n lodash.unionWith = unionWith;\n lodash.uniq = uniq;\n lodash.uniqBy = uniqBy;\n lodash.uniqWith = uniqWith;\n lodash.unset = unset;\n lodash.unzip = unzip;\n lodash.unzipWith = unzipWith;\n lodash.update = update;\n lodash.updateWith = updateWith;\n lodash.values = values;\n lodash.valuesIn = valuesIn;\n lodash.without = without;\n lodash.words = words;\n lodash.wrap = wrap;\n lodash.xor = xor;\n lodash.xorBy = xorBy;\n lodash.xorWith = xorWith;\n lodash.zip = zip;\n lodash.zipObject = zipObject;\n lodash.zipObjectDeep = zipObjectDeep;\n lodash.zipWith = zipWith;\n lodash.entries = toPairs;\n lodash.entriesIn = toPairsIn;\n lodash.extend = assignIn;\n lodash.extendWith = assignInWith;\n mixin(lodash, lodash);\n lodash.add = add;\n lodash.attempt = attempt;\n lodash.camelCase = camelCase;\n lodash.capitalize = capitalize;\n lodash.ceil = ceil;\n lodash.clamp = clamp;\n lodash.clone = clone;\n lodash.cloneDeep = cloneDeep;\n lodash.cloneDeepWith = cloneDeepWith;\n lodash.cloneWith = cloneWith;\n lodash.conformsTo = conformsTo;\n lodash.deburr = deburr;\n lodash.defaultTo = defaultTo;\n lodash.divide = divide;\n lodash.endsWith = endsWith;\n lodash.eq = eq;\n lodash.escape = escape;\n lodash.escapeRegExp = escapeRegExp;\n lodash.every = every;\n lodash.find = find2;\n lodash.findIndex = findIndex;\n lodash.findKey = findKey;\n lodash.findLast = findLast;\n lodash.findLastIndex = findLastIndex;\n lodash.findLastKey = findLastKey;\n lodash.floor = floor;\n lodash.forEach = forEach;\n lodash.forEachRight = forEachRight;\n lodash.forIn = forIn;\n lodash.forInRight = forInRight;\n lodash.forOwn = forOwn;\n lodash.forOwnRight = forOwnRight;\n lodash.get = get3;\n lodash.gt = gt;\n lodash.gte = gte;\n lodash.has = has;\n lodash.hasIn = hasIn;\n lodash.head = head;\n lodash.identity = identity4;\n lodash.includes = includes;\n lodash.indexOf = indexOf;\n lodash.inRange = inRange;\n lodash.invoke = invoke;\n lodash.isArguments = isArguments;\n lodash.isArray = isArray;\n lodash.isArrayBuffer = isArrayBuffer;\n lodash.isArrayLike = isArrayLike;\n lodash.isArrayLikeObject = isArrayLikeObject;\n lodash.isBoolean = isBoolean;\n lodash.isBuffer = isBuffer;\n lodash.isDate = isDate;\n lodash.isElement = isElement;\n lodash.isEmpty = isEmpty;\n lodash.isEqual = isEqual;\n lodash.isEqualWith = isEqualWith;\n lodash.isError = isError;\n lodash.isFinite = isFinite2;\n lodash.isFunction = isFunction;\n lodash.isInteger = isInteger;\n lodash.isLength = isLength;\n lodash.isMap = isMap;\n lodash.isMatch = isMatch;\n lodash.isMatchWith = isMatchWith;\n lodash.isNaN = isNaN2;\n lodash.isNative = isNative;\n lodash.isNil = isNil;\n lodash.isNull = isNull;\n lodash.isNumber = isNumber;\n lodash.isObject = isObject;\n lodash.isObjectLike = isObjectLike;\n lodash.isPlainObject = isPlainObject;\n lodash.isRegExp = isRegExp;\n lodash.isSafeInteger = isSafeInteger;\n lodash.isSet = isSet;\n lodash.isString = isString;\n lodash.isSymbol = isSymbol;\n lodash.isTypedArray = isTypedArray;\n lodash.isUndefined = isUndefined;\n lodash.isWeakMap = isWeakMap;\n lodash.isWeakSet = isWeakSet;\n lodash.join = join;\n lodash.kebabCase = kebabCase;\n lodash.last = last;\n lodash.lastIndexOf = lastIndexOf;\n lodash.lowerCase = lowerCase;\n lodash.lowerFirst = lowerFirst;\n lodash.lt = lt;\n lodash.lte = lte;\n lodash.max = max3;\n lodash.maxBy = maxBy;\n lodash.mean = mean;\n lodash.meanBy = meanBy;\n lodash.min = min2;\n lodash.minBy = minBy;\n lodash.stubArray = stubArray;\n lodash.stubFalse = stubFalse;\n lodash.stubObject = stubObject;\n lodash.stubString = stubString;\n lodash.stubTrue = stubTrue;\n lodash.multiply = multiply;\n lodash.nth = nth;\n lodash.noConflict = noConflict;\n lodash.noop = noop2;\n lodash.now = now2;\n lodash.pad = pad;\n lodash.padEnd = padEnd;\n lodash.padStart = padStart;\n lodash.parseInt = parseInt2;\n lodash.random = random;\n lodash.reduce = reduce;\n lodash.reduceRight = reduceRight;\n lodash.repeat = repeat;\n lodash.replace = replace;\n lodash.result = result;\n lodash.round = round;\n lodash.runInContext = runInContext2;\n lodash.sample = sample;\n lodash.size = size;\n lodash.snakeCase = snakeCase;\n lodash.some = some;\n lodash.sortedIndex = sortedIndex;\n lodash.sortedIndexBy = sortedIndexBy;\n lodash.sortedIndexOf = sortedIndexOf;\n lodash.sortedLastIndex = sortedLastIndex;\n lodash.sortedLastIndexBy = sortedLastIndexBy;\n lodash.sortedLastIndexOf = sortedLastIndexOf;\n lodash.startCase = startCase;\n lodash.startsWith = startsWith;\n lodash.subtract = subtract;\n lodash.sum = sum;\n lodash.sumBy = sumBy;\n lodash.template = template;\n lodash.times = times;\n lodash.toFinite = toFinite;\n lodash.toInteger = toInteger;\n lodash.toLength = toLength;\n lodash.toLower = toLower;\n lodash.toNumber = toNumber;\n lodash.toSafeInteger = toSafeInteger;\n lodash.toString = toString;\n lodash.toUpper = toUpper;\n lodash.trim = trim;\n lodash.trimEnd = trimEnd;\n lodash.trimStart = trimStart;\n lodash.truncate = truncate;\n lodash.unescape = unescape;\n lodash.uniqueId = uniqueId;\n lodash.upperCase = upperCase;\n lodash.upperFirst = upperFirst;\n lodash.each = forEach;\n lodash.eachRight = forEachRight;\n lodash.first = head;\n mixin(lodash, function() {\n var source = {};\n baseForOwn(lodash, function(func, methodName) {\n if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n source[methodName] = func;\n }\n });\n return source;\n }(), { \"chain\": false });\n lodash.VERSION = VERSION;\n arrayEach([\"bind\", \"bindKey\", \"curry\", \"curryRight\", \"partial\", \"partialRight\"], function(methodName) {\n lodash[methodName].placeholder = lodash;\n });\n arrayEach([\"drop\", \"take\"], function(methodName, index) {\n LazyWrapper.prototype[methodName] = function(n) {\n n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0);\n var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone();\n if (result2.__filtered__) {\n result2.__takeCount__ = nativeMin(n, result2.__takeCount__);\n } else {\n result2.__views__.push({\n \"size\": nativeMin(n, MAX_ARRAY_LENGTH),\n \"type\": methodName + (result2.__dir__ < 0 ? \"Right\" : \"\")\n });\n }\n return result2;\n };\n LazyWrapper.prototype[methodName + \"Right\"] = function(n) {\n return this.reverse()[methodName](n).reverse();\n };\n });\n arrayEach([\"filter\", \"map\", \"takeWhile\"], function(methodName, index) {\n var type2 = index + 1, isFilter = type2 == LAZY_FILTER_FLAG || type2 == LAZY_WHILE_FLAG;\n LazyWrapper.prototype[methodName] = function(iteratee2) {\n var result2 = this.clone();\n result2.__iteratees__.push({\n \"iteratee\": getIteratee(iteratee2, 3),\n \"type\": type2\n });\n result2.__filtered__ = result2.__filtered__ || isFilter;\n return result2;\n };\n });\n arrayEach([\"head\", \"last\"], function(methodName, index) {\n var takeName = \"take\" + (index ? \"Right\" : \"\");\n LazyWrapper.prototype[methodName] = function() {\n return this[takeName](1).value()[0];\n };\n });\n arrayEach([\"initial\", \"tail\"], function(methodName, index) {\n var dropName = \"drop\" + (index ? \"\" : \"Right\");\n LazyWrapper.prototype[methodName] = function() {\n return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n };\n });\n LazyWrapper.prototype.compact = function() {\n return this.filter(identity4);\n };\n LazyWrapper.prototype.find = function(predicate) {\n return this.filter(predicate).head();\n };\n LazyWrapper.prototype.findLast = function(predicate) {\n return this.reverse().find(predicate);\n };\n LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n if (typeof path == \"function\") {\n return new LazyWrapper(this);\n }\n return this.map(function(value) {\n return baseInvoke(value, path, args);\n });\n });\n LazyWrapper.prototype.reject = function(predicate) {\n return this.filter(negate(getIteratee(predicate)));\n };\n LazyWrapper.prototype.slice = function(start2, end) {\n start2 = toInteger(start2);\n var result2 = this;\n if (result2.__filtered__ && (start2 > 0 || end < 0)) {\n return new LazyWrapper(result2);\n }\n if (start2 < 0) {\n result2 = result2.takeRight(-start2);\n } else if (start2) {\n result2 = result2.drop(start2);\n }\n if (end !== undefined2) {\n end = toInteger(end);\n result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start2);\n }\n return result2;\n };\n LazyWrapper.prototype.takeRightWhile = function(predicate) {\n return this.reverse().takeWhile(predicate).reverse();\n };\n LazyWrapper.prototype.toArray = function() {\n return this.take(MAX_ARRAY_LENGTH);\n };\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? \"take\" + (methodName == \"last\" ? \"Right\" : \"\") : methodName], retUnwrapped = isTaker || /^find/.test(methodName);\n if (!lodashFunc) {\n return;\n }\n lodash.prototype[methodName] = function() {\n var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value);\n var interceptor = function(value2) {\n var result3 = lodashFunc.apply(lodash, arrayPush([value2], args));\n return isTaker && chainAll ? result3[0] : result3;\n };\n if (useLazy && checkIteratee && typeof iteratee2 == \"function\" && iteratee2.length != 1) {\n isLazy = useLazy = false;\n }\n var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid;\n if (!retUnwrapped && useLazy) {\n value = onlyLazy ? value : new LazyWrapper(this);\n var result2 = func.apply(value, args);\n result2.__actions__.push({ \"func\": thru, \"args\": [interceptor], \"thisArg\": undefined2 });\n return new LodashWrapper(result2, chainAll);\n }\n if (isUnwrapped && onlyLazy) {\n return func.apply(this, args);\n }\n result2 = this.thru(interceptor);\n return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2;\n };\n });\n arrayEach([\"pop\", \"push\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? \"tap\" : \"thru\", retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n lodash.prototype[methodName] = function() {\n var args = arguments;\n if (retUnwrapped && !this.__chain__) {\n var value = this.value();\n return func.apply(isArray(value) ? value : [], args);\n }\n return this[chainName](function(value2) {\n return func.apply(isArray(value2) ? value2 : [], args);\n });\n };\n });\n baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n var lodashFunc = lodash[methodName];\n if (lodashFunc) {\n var key = lodashFunc.name + \"\";\n if (!hasOwnProperty.call(realNames, key)) {\n realNames[key] = [];\n }\n realNames[key].push({ \"name\": methodName, \"func\": lodashFunc });\n }\n });\n realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{\n \"name\": \"wrapper\",\n \"func\": undefined2\n }];\n LazyWrapper.prototype.clone = lazyClone;\n LazyWrapper.prototype.reverse = lazyReverse;\n LazyWrapper.prototype.value = lazyValue;\n lodash.prototype.at = wrapperAt;\n lodash.prototype.chain = wrapperChain;\n lodash.prototype.commit = wrapperCommit;\n lodash.prototype.next = wrapperNext;\n lodash.prototype.plant = wrapperPlant;\n lodash.prototype.reverse = wrapperReverse;\n lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n lodash.prototype.first = lodash.prototype.head;\n if (symIterator) {\n lodash.prototype[symIterator] = wrapperToIterator;\n }\n return lodash;\n };\n var _ = runInContext();\n if (typeof define == \"function\" && typeof define.amd == \"object\" && define.amd) {\n root2._ = _;\n define(function() {\n return _;\n });\n } else if (freeModule) {\n (freeModule.exports = _)._ = _;\n freeExports._ = _;\n } else {\n root2._ = _;\n }\n }).call(exports);\n }\n});\n\n// src/common/breakpoints.ts\nvar breakpoints = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280\n};\n\n// ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ascending.js\nfunction ascending_default(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n// ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisector.js\nfunction bisector_default(f) {\n let delta = f;\n let compare = f;\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n function left(a, x, lo, hi) {\n if (lo == null)\n lo = 0;\n if (hi == null)\n hi = a.length;\n while (lo < hi) {\n const mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0)\n lo = mid + 1;\n else\n hi = mid;\n }\n return lo;\n }\n function right(a, x, lo, hi) {\n if (lo == null)\n lo = 0;\n if (hi == null)\n hi = a.length;\n while (lo < hi) {\n const mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n return lo;\n }\n function center(a, x, lo, hi) {\n if (lo == null)\n lo = 0;\n if (hi == null)\n hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n return { left, center, right };\n}\nfunction ascendingComparator(f) {\n return (d, x) => ascending_default(f(d), x);\n}\n\n// ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/number.js\nfunction number_default(x) {\n return x === null ? NaN : +x;\n}\n\n// ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/bisect.js\nvar ascendingBisect = bisector_default(ascending_default);\nvar bisectRight = ascendingBisect.right;\nvar bisectLeft = ascendingBisect.left;\nvar bisectCenter = bisector_default(number_default).center;\nvar bisect_default = bisectRight;\n\n// ../../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/ticks.js\nvar e10 = Math.sqrt(50);\nvar e5 = Math.sqrt(10);\nvar e2 = Math.sqrt(2);\nfunction ticks_default(start2, stop, count) {\n var reverse, i = -1, n, ticks, step;\n stop = +stop, start2 = +start2, count = +count;\n if (start2 === stop && count > 0)\n return [start2];\n if (reverse = stop < start2)\n n = start2, start2 = stop, stop = n;\n if ((step = tickIncrement(start2, stop, count)) === 0 || !isFinite(step))\n return [];\n if (step > 0) {\n let r0 = Math.round(start2 / step), r1 = Math.round(stop / step);\n if (r0 * step < start2)\n ++r0;\n if (r1 * step > stop)\n --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n)\n ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start2 * step), r1 = Math.round(stop * step);\n if (r0 / step < start2)\n ++r0;\n if (r1 / step > stop)\n --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n)\n ticks[i] = (r0 + i) / step;\n }\n if (reverse)\n ticks.reverse();\n return ticks;\n}\nfunction tickIncrement(start2, stop, count) {\n var step = (stop - start2) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\nfunction tickStep(start2, stop, count) {\n var step0 = Math.abs(stop - start2) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;\n if (error >= e10)\n step1 *= 10;\n else if (error >= e5)\n step1 *= 5;\n else if (error >= e2)\n step1 *= 2;\n return stop < start2 ? -step1 : step1;\n}\n\n// ../../node_modules/.pnpm/d3-dispatch@2.0.0/node_modules/d3-dispatch/src/dispatch.js\nvar noop = { value: () => {\n} };\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t))\n throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\nfunction Dispatch(_) {\n this._ = _;\n}\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t))\n throw new Error(\"unknown type: \" + t);\n return { type: t, name };\n });\n}\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._, T = parseTypenames(typename + \"\", _), t, i = -1, n = T.length;\n if (arguments.length < 2) {\n while (++i < n)\n if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name)))\n return t;\n return;\n }\n if (callback != null && typeof callback !== \"function\")\n throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type)\n _[t] = set(_[t], typename.name, callback);\n else if (callback == null)\n for (t in _)\n _[t] = set(_[t], typename.name, null);\n }\n return this;\n },\n copy: function() {\n var copy2 = {}, _ = this._;\n for (var t in _)\n copy2[t] = _[t].slice();\n return new Dispatch(copy2);\n },\n call: function(type2, that) {\n if ((n = arguments.length - 2) > 0)\n for (var args = new Array(n), i = 0, n, t; i < n; ++i)\n args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type2))\n throw new Error(\"unknown type: \" + type2);\n for (t = this._[type2], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n },\n apply: function(type2, that, args) {\n if (!this._.hasOwnProperty(type2))\n throw new Error(\"unknown type: \" + type2);\n for (var t = this._[type2], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n }\n};\nfunction get(type2, name) {\n for (var i = 0, n = type2.length, c; i < n; ++i) {\n if ((c = type2[i]).name === name) {\n return c.value;\n }\n }\n}\nfunction set(type2, name, callback) {\n for (var i = 0, n = type2.length; i < n; ++i) {\n if (type2[i].name === name) {\n type2[i] = noop, type2 = type2.slice(0, i).concat(type2.slice(i + 1));\n break;\n }\n }\n if (callback != null)\n type2.push({ name, value: callback });\n return type2;\n}\nvar dispatch_default = dispatch;\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/namespaces.js\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\nvar namespaces_default = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/namespace.js\nfunction namespace_default(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\")\n name = name.slice(i + 1);\n return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name } : name;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/creator.js\nfunction creatorInherit(name) {\n return function() {\n var document2 = this.ownerDocument, uri = this.namespaceURI;\n return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);\n };\n}\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\nfunction creator_default(name) {\n var fullname = namespace_default(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selector.js\nfunction none() {\n}\nfunction selector_default(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/select.js\nfunction select_default(select) {\n if (typeof select !== \"function\")\n select = selector_default(select);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n return new Selection(subgroups, this._parents);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/array.js\nfunction array_default(x) {\n return typeof x === \"object\" && \"length\" in x ? x : Array.from(x);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selectorAll.js\nfunction empty() {\n return [];\n}\nfunction selectorAll_default(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/selectAll.js\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array_default(group);\n };\n}\nfunction selectAll_default(select) {\n if (typeof select === \"function\")\n select = arrayAll(select);\n else\n select = selectorAll_default(select);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection(subgroups, parents);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/matcher.js\nfunction matcher_default(selector) {\n return function() {\n return this.matches(selector);\n };\n}\nfunction childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/selectChild.js\nvar find = Array.prototype.find;\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\nfunction childFirst() {\n return this.firstElementChild;\n}\nfunction selectChild_default(match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/selectChildren.js\nvar filter = Array.prototype.filter;\nfunction children() {\n return this.children;\n}\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\nfunction selectChildren_default(match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/filter.js\nfunction filter_default(match) {\n if (typeof match !== \"function\")\n match = matcher_default(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Selection(subgroups, this._parents);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/sparse.js\nfunction sparse_default(update) {\n return new Array(update.length);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/enter.js\nfunction enter_default() {\n return new Selection(this._enter || this._groups.map(sparse_default), this._parents);\n}\nfunction EnterNode(parent, datum2) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum2;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function(selector) {\n return this._parent.querySelector(selector);\n },\n querySelectorAll: function(selector) {\n return this._parent.querySelectorAll(selector);\n }\n};\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/constant.js\nfunction constant_default(x) {\n return function() {\n return x;\n };\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/data.js\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0, node, groupLength = group.length, dataLength = data.length;\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\nfunction datum(node) {\n return node.__data__;\n}\nfunction data_default(value, key) {\n if (!arguments.length)\n return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;\n if (typeof value !== \"function\")\n value = constant_default(value);\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j], group = groups[j], groupLength = group.length, data = array_default(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1)\n i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength)\n ;\n previous._next = next || null;\n }\n }\n }\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/exit.js\nfunction exit_default() {\n return new Selection(this._exit || this._groups.map(sparse_default), this._parents);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/join.js\nfunction join_default(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null)\n update = onupdate(update);\n if (onexit == null)\n exit.remove();\n else\n onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/merge.js\nfunction merge_default(selection2) {\n if (!(selection2 instanceof Selection))\n throw new Error(\"invalid merge\");\n for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Selection(merges, this._parents);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/order.js\nfunction order_default() {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4)\n next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/sort.js\nfunction sort_default(compare) {\n if (!compare)\n compare = ascending;\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n return new Selection(sortgroups, this._parents).order();\n}\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/call.js\nfunction call_default() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/nodes.js\nfunction nodes_default() {\n return Array.from(this);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/node.js\nfunction node_default() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node)\n return node;\n }\n }\n return null;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/size.js\nfunction size_default() {\n let size = 0;\n for (const node of this)\n ++size;\n return size;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/empty.js\nfunction empty_default() {\n return !this.node();\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/each.js\nfunction each_default(callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n callback.call(node, node.__data__, i, group);\n }\n }\n return this;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/attr.js\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttribute(name);\n else\n this.setAttribute(name, v);\n };\n}\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttributeNS(fullname.space, fullname.local);\n else\n this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\nfunction attr_default(name, value) {\n var fullname = namespace_default(name);\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === \"function\" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value));\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/window.js\nfunction window_default(node) {\n return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/style.js\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.style.removeProperty(name);\n else\n this.style.setProperty(name, v, priority);\n };\n}\nfunction style_default(name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === \"function\" ? styleFunction : styleConstant)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name) || window_default(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/property.js\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n delete this[name];\n else\n this[name] = v;\n };\n}\nfunction property_default(name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/classed.js\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.add(names[i]);\n}\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.remove(names[i]);\n}\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\nfunction classed_default(name, value) {\n var names = classArray(name + \"\");\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n)\n if (!list.contains(names[i]))\n return false;\n return true;\n }\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/text.js\nfunction textRemove() {\n this.textContent = \"\";\n}\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\nfunction text_default(value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction : textConstant)(value)) : this.node().textContent;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/html.js\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\nfunction html_default(value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/raise.js\nfunction raise() {\n if (this.nextSibling)\n this.parentNode.appendChild(this);\n}\nfunction raise_default() {\n return this.each(raise);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/lower.js\nfunction lower() {\n if (this.previousSibling)\n this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction lower_default() {\n return this.each(lower);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/append.js\nfunction append_default(name) {\n var create2 = typeof name === \"function\" ? name : creator_default(name);\n return this.select(function() {\n return this.appendChild(create2.apply(this, arguments));\n });\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/insert.js\nfunction constantNull() {\n return null;\n}\nfunction insert_default(name, before) {\n var create2 = typeof name === \"function\" ? name : creator_default(name), select = before == null ? constantNull : typeof before === \"function\" ? before : selector_default(before);\n return this.select(function() {\n return this.insertBefore(create2.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/remove.js\nfunction remove() {\n var parent = this.parentNode;\n if (parent)\n parent.removeChild(this);\n}\nfunction remove_default() {\n return this.each(remove);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/clone.js\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction clone_default(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/datum.js\nfunction datum_default(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/on.js\nfunction contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\nfunction parseTypenames2(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n return { type: t, name };\n });\n}\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on)\n return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i)\n on.length = i;\n else\n delete this.__on;\n };\n}\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on)\n for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = { type: typename.type, name: typename.name, value, listener, options };\n if (!on)\n this.__on = [o];\n else\n on.push(o);\n };\n}\nfunction on_default(typename, value, options) {\n var typenames = parseTypenames2(typename + \"\"), i, n = typenames.length, t;\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on)\n for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i)\n this.each(on(typenames[i], value, options));\n return this;\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/dispatch.js\nfunction dispatchEvent(node, type2, params) {\n var window2 = window_default(node), event = window2.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type2, params);\n } else {\n event = window2.document.createEvent(\"Event\");\n if (params)\n event.initEvent(type2, params.bubbles, params.cancelable), event.detail = params.detail;\n else\n event.initEvent(type2, false, false);\n }\n node.dispatchEvent(event);\n}\nfunction dispatchConstant(type2, params) {\n return function() {\n return dispatchEvent(this, type2, params);\n };\n}\nfunction dispatchFunction(type2, params) {\n return function() {\n return dispatchEvent(this, type2, params.apply(this, arguments));\n };\n}\nfunction dispatch_default2(type2, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type2, params));\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/iterator.js\nfunction* iterator_default() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n yield node;\n }\n }\n}\n\n// ../../node_modules/.pnpm/d3-selection@2.0.0/node_modules/d3-selection/src/selection/index.js\nvar root = [null];\nfunction Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\nfunction selection_selection() {\n return this;\n}\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: select_default,\n selectAll: selectAll_default,\n selectChild: selectChild_default,\n selectChildren: selectChildren_default,\n filter: filter_default,\n data: data_default,\n enter: enter_default,\n exit: exit_default,\n join: join_default,\n merge: merge_default,\n selection: selection_selection,\n order: order_default,\n sort: sort_default,\n call: call_default,\n nodes: nodes_default,\n node: node_default,\n size: size_default,\n empty: empty_default,\n each: each_default,\n attr: attr_default,\n style: style_default,\n property: property_default,\n classed: classed_default,\n text: text_default,\n html: html_default,\n raise: raise_default,\n lower: lower_default,\n append: append_default,\n insert: insert_default,\n remove: remove_default,\n clone: clone_default,\n datum: datum_default,\n on: on_default,\n dispatch: dispatch_default2,\n [Symbol.iterator]: iterator_default\n};\nvar selection_default = selection;\n\n// ../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/define.js\nfunction define_default(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition)\n prototype[key] = definition[key];\n return prototype;\n}\n\n// ../../node_modules/.pnpm/d3-color@2.0.0/node_modules/d3-color/src/color.js\nfunction Color() {\n}\nvar darker = 0.7;\nvar brighter = 1 / darker;\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\nvar reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\nvar reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\nvar reHex = /^#([0-9a-f]{3,8})$/;\nvar reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\");\nvar reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\");\nvar reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\");\nvar reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\");\nvar reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\");\nvar reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\nvar named = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\ndefine_default(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\nfunction color(format2) {\n var m, l;\n format2 = (format2 + \"\").trim().toLowerCase();\n return (m = reHex.exec(format2)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format2)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format2)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format2)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format2)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n}\nfunction rgba(r, g, b, a) {\n if (a <= 0)\n r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\nfunction rgbConvert(o) {\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine_default(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex,\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\nfunction rgb_formatRgb() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \" + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? \")\" : \", \" + a + \")\");\n}\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\nfunction hsla(h, s, l, a) {\n if (a <= 0)\n h = s = l = NaN;\n else if (l <= 0 || l >= 1)\n h = s = NaN;\n else if (s <= 0)\n h = NaN;\n return new Hsl(h, s, l, a);\n}\nfunction hslConvert(o) {\n if (o instanceof Hsl)\n return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Hsl();\n if (o instanceof Hsl)\n return o;\n o = o.rgb();\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, min2 = Math.min(r, g, b), max3 = Math.max(r, g, b), h = NaN, s = max3 - min2, l = (max3 + min2) / 2;\n if (s) {\n if (r === max3)\n h = (g - b) / s + (g < b) * 6;\n else if (g === max3)\n h = (b - r) / s + 2;\n else\n h = (r - g) / s + 4;\n s /= l < 0.5 ? max3 + min2 : 2 - max3 - min2;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\nfunction hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine_default(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity;\n a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\") + (this.h || 0) + \", \" + (this.s || 0) * 100 + \"%, \" + (this.l || 0) * 100 + \"%\" + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basis.js\nfunction basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6;\n}\nfunction basis_default(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/basisClosed.js\nfunction basisClosed_default(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/constant.js\nvar constant_default2 = (x) => () => x;\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/color.js\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant_default2(isNaN(a) ? b : a);\n };\n}\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant_default2(isNaN(a) ? b : a);\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/rgb.js\nvar rgb_default = function rgbGamma(y) {\n var color2 = gamma(y);\n function rgb2(start2, end) {\n var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);\n return function(t) {\n start2.r = r(t);\n start2.g = g(t);\n start2.b = b(t);\n start2.opacity = opacity(t);\n return start2 + \"\";\n };\n }\n rgb2.gamma = rgbGamma;\n return rgb2;\n}(1);\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color2;\n for (i = 0; i < n; ++i) {\n color2 = rgb(colors[i]);\n r[i] = color2.r || 0;\n g[i] = color2.g || 0;\n b[i] = color2.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color2.opacity = 1;\n return function(t) {\n color2.r = r(t);\n color2.g = g(t);\n color2.b = b(t);\n return color2 + \"\";\n };\n };\n}\nvar rgbBasis = rgbSpline(basis_default);\nvar rgbBasisClosed = rgbSpline(basisClosed_default);\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/numberArray.js\nfunction numberArray_default(a, b) {\n if (!b)\n b = [];\n var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;\n return function(t) {\n for (i = 0; i < n; ++i)\n c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\nfunction isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/array.js\nfunction genericArray(a, b) {\n var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;\n for (i = 0; i < na; ++i)\n x[i] = value_default(a[i], b[i]);\n for (; i < nb; ++i)\n c[i] = b[i];\n return function(t) {\n for (i = 0; i < na; ++i)\n c[i] = x[i](t);\n return c;\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/date.js\nfunction date_default(a, b) {\n var d = new Date();\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/number.js\nfunction number_default2(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/object.js\nfunction object_default(a, b) {\n var i = {}, c = {}, k;\n if (a === null || typeof a !== \"object\")\n a = {};\n if (b === null || typeof b !== \"object\")\n b = {};\n for (k in b) {\n if (k in a) {\n i[k] = value_default(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i)\n c[k] = i[k](t);\n return c;\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/string.js\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\nvar reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function() {\n return b;\n };\n}\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\nfunction string_default(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i])\n s[i] += bm;\n else\n s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({ i, x: number_default2(am, bm) });\n }\n bi = reB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2)\n s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/value.js\nfunction value_default(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant_default2(b) : (t === \"number\" ? number_default2 : t === \"string\" ? (c = color(b)) ? (b = c, rgb_default) : string_default : b instanceof color ? rgb_default : b instanceof Date ? date_default : isNumberArray(b) ? numberArray_default : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object_default : number_default2)(a, b);\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/round.js\nfunction round_default(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/transform/decompose.js\nvar degrees = 180 / Math.PI;\nvar identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction decompose_default(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b))\n a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d)\n c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d))\n c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c)\n a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX,\n scaleY\n };\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/transform/parse.js\nvar svgNode;\nfunction parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose_default(m.a, m.b, m.c, m.d, m.e, m.f);\n}\nfunction parseSvg(value) {\n if (value == null)\n return identity;\n if (!svgNode)\n svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate()))\n return identity;\n value = value.matrix;\n return decompose_default(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n\n// ../../node_modules/.pnpm/d3-interpolate@2.0.1/node_modules/d3-interpolate/src/transform/index.js\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({ i: i - 4, x: number_default2(xa, xb) }, { i: i - 2, x: number_default2(ya, yb) });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180)\n b += 360;\n else if (b - a > 180)\n a += 360;\n q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number_default2(a, b) });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({ i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number_default2(a, b) });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({ i: i - 4, x: number_default2(xa, xb) }, { i: i - 2, x: number_default2(ya, yb) });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function(a, b) {\n var s = [], q = [];\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n)\n s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n\n// ../../node_modules/.pnpm/d3-timer@2.0.0/node_modules/d3-timer/src/timer.js\nvar frame = 0;\nvar timeout = 0;\nvar interval = 0;\nvar pokeDelay = 1e3;\nvar taskHead;\nvar taskTail;\nvar clockLast = 0;\nvar clockNow = 0;\nvar clockSkew = 0;\nvar clock = typeof performance === \"object\" && performance.now ? performance : Date;\nvar setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n setTimeout(f, 17);\n};\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\nfunction clearNow() {\n clockNow = 0;\n}\nfunction Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\")\n throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail)\n taskTail._next = this;\n else\n taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nfunction timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nfunction timerFlush() {\n now();\n ++frame;\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0)\n t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\nfunction poke() {\n var now2 = clock.now(), delay = now2 - clockLast;\n if (delay > pokeDelay)\n clockSkew -= delay, clockLast = now2;\n}\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time)\n time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\nfunction sleep(time) {\n if (frame)\n return;\n if (timeout)\n timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity)\n timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval)\n interval = clearInterval(interval);\n } else {\n if (!interval)\n clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n\n// ../../node_modules/.pnpm/d3-timer@2.0.0/node_modules/d3-timer/src/timeout.js\nfunction timeout_default(callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart((elapsed) => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/schedule.js\nvar emptyOn = dispatch_default(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\nfunction schedule_default(node, name, id2, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules)\n node.__transition = {};\n else if (id2 in schedules)\n return;\n create(node, id2, {\n name,\n index,\n group,\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nfunction init(node, id2) {\n var schedule = get2(node, id2);\n if (schedule.state > CREATED)\n throw new Error(\"too late; already scheduled\");\n return schedule;\n}\nfunction set2(node, id2) {\n var schedule = get2(node, id2);\n if (schedule.state > STARTED)\n throw new Error(\"too late; already running\");\n return schedule;\n}\nfunction get2(node, id2) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id2]))\n throw new Error(\"transition not found\");\n return schedule;\n}\nfunction create(node, id2, self2) {\n var schedules = node.__transition, tween;\n schedules[id2] = self2;\n self2.timer = timer(schedule, 0, self2.time);\n function schedule(elapsed) {\n self2.state = SCHEDULED;\n self2.timer.restart(start2, self2.delay, self2.time);\n if (self2.delay <= elapsed)\n start2(elapsed - self2.delay);\n }\n function start2(elapsed) {\n var i, j, n, o;\n if (self2.state !== SCHEDULED)\n return stop();\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self2.name)\n continue;\n if (o.state === STARTED)\n return timeout_default(start2);\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } else if (+i < id2) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n timeout_default(function() {\n if (self2.state === STARTED) {\n self2.state = RUNNING;\n self2.timer.restart(tick, self2.delay, self2.time);\n tick(elapsed);\n }\n });\n self2.state = STARTING;\n self2.on.call(\"start\", node, node.__data__, self2.index, self2.group);\n if (self2.state !== STARTING)\n return;\n self2.state = STARTED;\n tween = new Array(n = self2.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self2.tween[i].value.call(node, node.__data__, self2.index, self2.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n function tick(elapsed) {\n var t = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop), self2.state = ENDING, 1), i = -1, n = tween.length;\n while (++i < n) {\n tween[i].call(node, t);\n }\n if (self2.state === ENDING) {\n self2.on.call(\"end\", node, node.__data__, self2.index, self2.group);\n stop();\n }\n }\n function stop() {\n self2.state = ENDED;\n self2.timer.stop();\n delete schedules[id2];\n for (var i in schedules)\n return;\n delete node.__transition;\n }\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/interrupt.js\nfunction interrupt_default(node, name) {\n var schedules = node.__transition, schedule, active, empty2 = true, i;\n if (!schedules)\n return;\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) {\n empty2 = false;\n continue;\n }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n if (empty2)\n delete node.__transition;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/selection/interrupt.js\nfunction interrupt_default2(name) {\n return this.each(function() {\n interrupt_default(this, name);\n });\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/tween.js\nfunction tweenRemove(id2, name) {\n var tween0, tween1;\n return function() {\n var schedule = set2(this, id2), tween = schedule.tween;\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n schedule.tween = tween1;\n };\n}\nfunction tweenFunction(id2, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n var schedule = set2(this, id2), tween = schedule.tween;\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n)\n tween1.push(t);\n }\n schedule.tween = tween1;\n };\n}\nfunction tween_default(name, value) {\n var id2 = this._id;\n name += \"\";\n if (arguments.length < 2) {\n var tween = get2(this.node(), id2).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));\n}\nfunction tweenValue(transition2, name, value) {\n var id2 = transition2._id;\n transition2.each(function() {\n var schedule = set2(this, id2);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n return function(node) {\n return get2(node, id2).value[name];\n };\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/interpolate.js\nfunction interpolate_default(a, b) {\n var c;\n return (typeof b === \"number\" ? number_default2 : b instanceof color ? rgb_default : (c = color(b)) ? (b = c, rgb_default) : string_default)(a, b);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/attr.js\nfunction attrRemove2(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS2(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant2(name, interpolate, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction attrConstantNS2(fullname, interpolate, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction attrFunction2(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nfunction attrFunctionNS2(fullname, interpolate, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nfunction attr_default2(name, value) {\n var fullname = namespace_default(name), i = fullname === \"transform\" ? interpolateTransformSvg : interpolate_default;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i, value));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/attrTween.js\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction attrTween_default(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n var fullname = namespace_default(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/delay.js\nfunction delayFunction(id2, value) {\n return function() {\n init(this, id2).delay = +value.apply(this, arguments);\n };\n}\nfunction delayConstant(id2, value) {\n return value = +value, function() {\n init(this, id2).delay = value;\n };\n}\nfunction delay_default(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id2, value)) : get2(this.node(), id2).delay;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/duration.js\nfunction durationFunction(id2, value) {\n return function() {\n set2(this, id2).duration = +value.apply(this, arguments);\n };\n}\nfunction durationConstant(id2, value) {\n return value = +value, function() {\n set2(this, id2).duration = value;\n };\n}\nfunction duration_default(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id2, value)) : get2(this.node(), id2).duration;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/ease.js\nfunction easeConstant(id2, value) {\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n set2(this, id2).ease = value;\n };\n}\nfunction ease_default(value) {\n var id2 = this._id;\n return arguments.length ? this.each(easeConstant(id2, value)) : get2(this.node(), id2).ease;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/easeVarying.js\nfunction easeVarying(id2, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\")\n throw new Error();\n set2(this, id2).ease = v;\n };\n}\nfunction easeVarying_default(value) {\n if (typeof value !== \"function\")\n throw new Error();\n return this.each(easeVarying(this._id, value));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/filter.js\nfunction filter_default2(match) {\n if (typeof match !== \"function\")\n match = matcher_default(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/merge.js\nfunction merge_default2(transition2) {\n if (transition2._id !== this._id)\n throw new Error();\n for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Transition(merges, this._parents, this._name, this._id);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/on.js\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0)\n t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\nfunction onFunction(id2, name, listener) {\n var on0, on1, sit = start(name) ? init : set2;\n return function() {\n var schedule = sit(this, id2), on = schedule.on;\n if (on !== on0)\n (on1 = (on0 = on).copy()).on(name, listener);\n schedule.on = on1;\n };\n}\nfunction on_default2(name, listener) {\n var id2 = this._id;\n return arguments.length < 2 ? get2(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/remove.js\nfunction removeFunction(id2) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition)\n if (+i !== id2)\n return;\n if (parent)\n parent.removeChild(this);\n };\n}\nfunction remove_default2() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/select.js\nfunction select_default2(select) {\n var name = this._name, id2 = this._id;\n if (typeof select !== \"function\")\n select = selector_default(select);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule_default(subgroup[i], name, id2, i, subgroup, get2(node, id2));\n }\n }\n }\n return new Transition(subgroups, this._parents, name, id2);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/selectAll.js\nfunction selectAll_default2(select) {\n var name = this._name, id2 = this._id;\n if (typeof select !== \"function\")\n select = selectorAll_default(select);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children2 = select.call(node, node.__data__, i, group), child, inherit2 = get2(node, id2), k = 0, l = children2.length; k < l; ++k) {\n if (child = children2[k]) {\n schedule_default(child, name, id2, k, children2, inherit2);\n }\n }\n subgroups.push(children2);\n parents.push(node);\n }\n }\n }\n return new Transition(subgroups, parents, name, id2);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/selection.js\nvar Selection2 = selection_default.prototype.constructor;\nfunction selection_default2() {\n return new Selection2(this._groups, this._parents);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/style.js\nfunction styleNull(name, interpolate) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\nfunction styleRemove2(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant2(name, interpolate, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\nfunction styleFunction2(name, interpolate, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + \"\";\n if (value1 == null)\n string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\nfunction styleMaybeRemove(id2, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove2;\n return function() {\n var schedule = set2(this, id2), on = schedule.on, listener = schedule.value[key] == null ? remove2 || (remove2 = styleRemove2(name)) : void 0;\n if (on !== on0 || listener0 !== listener)\n (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule.on = on1;\n };\n}\nfunction style_default2(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : interpolate_default;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove2(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction2(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant2(name, i, value), priority).on(\"end.style.\" + name, null);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/styleTween.js\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\nfunction styleTween_default(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/text.js\nfunction textConstant2(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction2(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\nfunction text_default2(value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction2(tweenValue(this, \"text\", value)) : textConstant2(value == null ? \"\" : value + \"\"));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/textTween.js\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction textTween_default(value) {\n var key = \"text\";\n if (arguments.length < 1)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, textTween(value));\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/transition.js\nfunction transition_default() {\n var name = this._name, id0 = this._id, id1 = newId();\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit2 = get2(node, id0);\n schedule_default(node, name, id1, i, group, {\n time: inherit2.time + inherit2.delay + inherit2.duration,\n delay: 0,\n duration: inherit2.duration,\n ease: inherit2.ease\n });\n }\n }\n }\n return new Transition(groups, this._parents, name, id1);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/end.js\nfunction end_default() {\n var on0, on1, that = this, id2 = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = { value: reject }, end = { value: function() {\n if (--size === 0)\n resolve();\n } };\n that.each(function() {\n var schedule = set2(this, id2), on = schedule.on;\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n schedule.on = on1;\n });\n if (size === 0)\n resolve();\n });\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/transition/index.js\nvar id = 0;\nfunction Transition(groups, parents, name, id2) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id2;\n}\nfunction transition(name) {\n return selection_default().transition(name);\n}\nfunction newId() {\n return ++id;\n}\nvar selection_prototype = selection_default.prototype;\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: select_default2,\n selectAll: selectAll_default2,\n filter: filter_default2,\n merge: merge_default2,\n selection: selection_default2,\n transition: transition_default,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: on_default2,\n attr: attr_default2,\n attrTween: attrTween_default,\n style: style_default2,\n styleTween: styleTween_default,\n text: text_default2,\n textTween: textTween_default,\n remove: remove_default2,\n tween: tween_default,\n delay: delay_default,\n duration: duration_default,\n ease: ease_default,\n easeVarying: easeVarying_default,\n end: end_default,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n\n// ../../node_modules/.pnpm/d3-ease@2.0.0/node_modules/d3-ease/src/cubic.js\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/selection/transition.js\nvar defaultTiming = {\n time: null,\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\nfunction inherit(node, id2) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id2])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id2} not found`);\n }\n }\n return timing;\n}\nfunction transition_default2(name) {\n var id2, timing;\n if (name instanceof Transition) {\n id2 = name._id, name = name._name;\n } else {\n id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule_default(node, name, id2, i, group, timing || inherit(node, id2));\n }\n }\n }\n return new Transition(groups, this._parents, name, id2);\n}\n\n// ../../node_modules/.pnpm/d3-transition@2.0.0_d3-selection@2.0.0/node_modules/d3-transition/src/selection/index.js\nselection_default.prototype.interrupt = interrupt_default2;\nselection_default.prototype.transition = transition_default2;\n\n// ../../node_modules/.pnpm/d3-brush@2.1.0/node_modules/d3-brush/src/brush.js\nvar { abs, max, min } = Math;\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) {\n return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]];\n },\n output: function(xy) {\n return xy && [xy[0][0], xy[1][0]];\n }\n};\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) {\n return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]];\n },\n output: function(xy) {\n return xy && [xy[0][1], xy[1][1]];\n }\n};\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) {\n return xy == null ? null : number2(xy);\n },\n output: function(xy) {\n return xy;\n }\n};\nfunction type(t) {\n return { type: t };\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatDecimal.js\nfunction formatDecimal_default(x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n}\nfunction formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0)\n return null;\n var i, coefficient = x.slice(0, i);\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/exponent.js\nfunction exponent_default(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatGroup.js\nfunction formatGroup_default(grouping, thousands) {\n return function(value, width) {\n var i = value.length, t = [], j = 0, g = grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width)\n g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width)\n break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatNumerals.js\nfunction formatNumerals_default(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatSpecifier.js\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\nfunction formatSpecifier(specifier) {\n if (!(match = re.exec(specifier)))\n throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\nformatSpecifier.prototype = FormatSpecifier.prototype;\nfunction FormatSpecifier(specifier) {\n this.fill = specifier.fill === void 0 ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === void 0 ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === void 0 ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === void 0 ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === void 0 ? void 0 : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === void 0 ? \"\" : specifier.type + \"\";\n}\nFormatSpecifier.prototype.toString = function() {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === void 0 ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === void 0 ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n};\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTrim.js\nfunction formatTrim_default(s) {\n out:\n for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n case \"0\":\n if (i0 === 0)\n i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i])\n break out;\n if (i0 > 0)\n i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatPrefixAuto.js\nvar prefixExponent;\nfunction formatPrefixAuto_default(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d)\n return x + \"\";\n var coefficient = d[0], exponent = d[1], i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1, n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0];\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatRounded.js\nfunction formatRounded_default(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d)\n return x + \"\";\n var coefficient = d[0], exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1) : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/formatTypes.js\nvar formatTypes_default = {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal_default,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded_default(x * 100, p),\n \"r\": formatRounded_default,\n \"s\": formatPrefixAuto_default,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/identity.js\nfunction identity_default(x) {\n return x;\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/locale.js\nvar map = Array.prototype.map;\nvar prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"\\xB5\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\nfunction locale_default(locale2) {\n var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity_default : formatGroup_default(map.call(locale2.grouping, Number), locale2.thousands + \"\"), currencyPrefix = locale2.currency === void 0 ? \"\" : locale2.currency[0] + \"\", currencySuffix = locale2.currency === void 0 ? \"\" : locale2.currency[1] + \"\", decimal = locale2.decimal === void 0 ? \".\" : locale2.decimal + \"\", numerals = locale2.numerals === void 0 ? identity_default : formatNumerals_default(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? \"%\" : locale2.percent + \"\", minus = locale2.minus === void 0 ? \"\\u2212\" : locale2.minus + \"\", nan = locale2.nan === void 0 ? \"NaN\" : locale2.nan + \"\";\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type2 = specifier.type;\n if (type2 === \"n\")\n comma = true, type2 = \"g\";\n else if (!formatTypes_default[type2])\n precision === void 0 && (precision = 12), trim = true, type2 = \"g\";\n if (zero2 || fill === \"0\" && align === \"=\")\n zero2 = true, fill = \"0\", align = \"=\";\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type2) ? \"0\" + type2.toLowerCase() : \"\", suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type2) ? percent : \"\";\n var formatType = formatTypes_default[type2], maybeSuffix = /[defgprs%]/.test(type2);\n precision = precision === void 0 ? 6 : /[gprs]/.test(type2) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n function format2(value) {\n var valuePrefix = prefix, valueSuffix = suffix, i, n, c;\n if (type2 === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n var valueNegative = value < 0 || 1 / value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n if (trim)\n value = formatTrim_default(value);\n if (valueNegative && +value === 0 && sign !== \"+\")\n valueNegative = false;\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type2 === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n if (comma && !zero2)\n value = group(value, Infinity);\n var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n if (comma && zero2)\n value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n return numerals(value);\n }\n format2.toString = function() {\n return specifier + \"\";\n };\n return format2;\n }\n function formatPrefix2(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent_default(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];\n return function(value2) {\n return f(k * value2) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix: formatPrefix2\n };\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/defaultLocale.js\nvar locale;\nvar format;\nvar formatPrefix;\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\nfunction defaultLocale(definition) {\n locale = locale_default(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionFixed.js\nfunction precisionFixed_default(step) {\n return Math.max(0, -exponent_default(Math.abs(step)));\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionPrefix.js\nfunction precisionPrefix_default(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent_default(value) / 3))) * 3 - exponent_default(Math.abs(step)));\n}\n\n// ../../node_modules/.pnpm/d3-format@2.0.0/node_modules/d3-format/src/precisionRound.js\nfunction precisionRound_default(step, max3) {\n step = Math.abs(step), max3 = Math.abs(max3) - step;\n return Math.max(0, exponent_default(max3) - exponent_default(step)) + 1;\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/init.js\nfunction initRange(domain, range) {\n switch (arguments.length) {\n case 0:\n break;\n case 1:\n this.range(domain);\n break;\n default:\n this.range(range).domain(domain);\n break;\n }\n return this;\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/constant.js\nfunction constants(x) {\n return function() {\n return x;\n };\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/number.js\nfunction number(x) {\n return +x;\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/continuous.js\nvar unit = [0, 1];\nfunction identity2(x) {\n return x;\n}\nfunction normalize(a, b) {\n return (b -= a = +a) ? function(x) {\n return (x - a) / b;\n } : constants(isNaN(b) ? NaN : 0.5);\n}\nfunction clamper(a, b) {\n var t;\n if (a > b)\n t = a, a = b, b = t;\n return function(x) {\n return Math.max(a, Math.min(b, x));\n };\n}\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0)\n d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else\n d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) {\n return r0(d0(x));\n };\n}\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1, d = new Array(j), r = new Array(j), i = -1;\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n return function(x) {\n var i2 = bisect_default(domain, x, 1, j) - 1;\n return r[i2](d[i2](x));\n };\n}\nfunction copy(source, target) {\n return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());\n}\nfunction transformer() {\n var domain = unit, range = unit, interpolate = value_default, transform2, untransform, unknown, clamp = identity2, piecewise, output, input;\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity2)\n clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform2), range, interpolate)))(transform2(clamp(x)));\n }\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform2), number_default2)))(y)));\n };\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = round_default, rescale();\n };\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity2, rescale()) : clamp !== identity2;\n };\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n return function(t, u) {\n transform2 = t, untransform = u;\n return rescale();\n };\n}\nfunction continuous() {\n return transformer()(identity2, identity2);\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/tickFormat.js\nfunction tickFormat(start2, stop, count, specifier) {\n var step = tickStep(start2, stop, count), precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start2), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix_default(step, value)))\n specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound_default(step, Math.max(Math.abs(start2), Math.abs(stop)))))\n specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed_default(step)))\n specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n\n// ../../node_modules/.pnpm/d3-scale@3.3.0/node_modules/d3-scale/src/linear.js\nfunction linearish(scale) {\n var domain = scale.domain;\n scale.ticks = function(count) {\n var d = domain();\n return ticks_default(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n scale.nice = function(count) {\n if (count == null)\n count = 10;\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start2 = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n if (stop < start2) {\n step = start2, start2 = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n while (maxIter-- > 0) {\n step = tickIncrement(start2, stop, count);\n if (step === prestep) {\n d[i0] = start2;\n d[i1] = stop;\n return domain(d);\n } else if (step > 0) {\n start2 = Math.floor(start2 / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start2 = Math.ceil(start2 * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n return scale;\n };\n return scale;\n}\nfunction linear2() {\n var scale = continuous();\n scale.copy = function() {\n return copy(scale, linear2());\n };\n initRange.apply(scale, arguments);\n return linearish(scale);\n}\n\n// ../../node_modules/.pnpm/d3-zoom@2.0.0/node_modules/d3-zoom/src/transform.js\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar identity3 = new Transform(1, 0, 0);\ntransform.prototype = Transform.prototype;\nfunction transform(node) {\n while (!node.__zoom)\n if (!(node = node.parentNode))\n return identity3;\n return node.__zoom;\n}\n\n// src/common/colors.ts\nvar palette = {\n transparent: \"transparent\",\n white: \"#FFFFFF\",\n black: \"#000000\",\n \"fence-light\": \"rgba(215, 216, 219, 1)\",\n \"fence-dark\": \"rgba(52,54,71, 1)\",\n \"brand-50\": \"#EFF1FF\",\n \"brand-100\": \"#D8DCFF\",\n \"brand-200\": \"#C9CFFF\",\n \"brand-300\": \"#A4AEFA\",\n \"brand-400\": \"#8A96F4\",\n \"brand-500\": \"#6977E1\",\n \"brand-600\": \"#5461C8\",\n \"brand-700\": \"#4551AF\",\n \"brand-800\": \"#384084\",\n \"brand-900\": \"#2B305B\",\n \"blue-50\": \"#EDF4FF\",\n \"blue-100\": \"#C0D7FD\",\n \"blue-200\": \"#92BBFC\",\n \"blue-300\": \"#6AA2F6\",\n \"blue-400\": \"#528FEB\",\n \"blue-500\": \"#4280DE\",\n \"blue-600\": \"#316CC6\",\n \"blue-700\": \"#1754B1\",\n \"blue-800\": \"#124A9F\",\n \"blue-900\": \"#073376\",\n \"gray-50\": \"#FAFAFC\",\n \"gray-100\": \"#E4E6F0\",\n \"gray-200\": \"#C5C8D6\",\n \"gray-300\": \"#9799AD\",\n \"gray-400\": \"#818394\",\n \"gray-500\": \"#66687A\",\n \"gray-600\": \"#4E5161\",\n \"gray-700\": \"#343647\",\n \"gray-800\": \"#1E202E\",\n \"gray-900\": \"#090B14\",\n \"green-50\": \"#D5FADC\",\n \"green-100\": \"#A7FAB5\",\n \"green-200\": \"#7CFA91\",\n \"green-300\": \"#5CEB74\",\n \"green-400\": \"#58DB6D\",\n \"green-500\": \"#33C34A\",\n \"green-600\": \"#1CA733\",\n \"green-700\": \"#0F8922\",\n \"green-800\": \"#056F15\",\n \"green-900\": \"#01570F\",\n \"red-50\": \"#FFE8E8\",\n \"red-100\": \"#FFC7C7\",\n \"red-200\": \"#FC8282\",\n \"red-300\": \"#F45757\",\n \"red-400\": \"#E33131\",\n \"red-500\": \"#D42121\",\n \"red-600\": \"#BB0F0F\",\n \"red-700\": \"#9E0707\",\n \"red-800\": \"#8A0909\",\n \"red-900\": \"#750505\"\n};\nvar fade = (specifier, opacity) => {\n const c = color(specifier);\n if (c) {\n c.opacity = opacity;\n return c.formatRgb();\n }\n return \"rgba(0,0,0,0)\";\n};\n\n// src/common/fonts.ts\nvar fontFamilies = {\n mono: [\n '\"SF Mono\"',\n \"SFMono-Regular\",\n \"ui-monospace\",\n '\"DejaVu Sans Mono\"',\n \"Menlo\",\n \"Consolas\",\n \"monospace\"\n ],\n sans: [\n \"-apple-system\",\n \"system-ui\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n \"Roboto\",\n \"Ubuntu\",\n '\"Helvetica Neue\"',\n \"Arial\"\n ],\n title: [\n \"-apple-system\",\n \"system-ui\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n \"Roboto\",\n \"Ubuntu\",\n '\"Helvetica Neue\"',\n \"Arial\"\n ]\n};\nvar makeFontString = (names) => names.join(\", \");\n\n// src/common/gradients.ts\nvar gradients = {\n controlDestructive: `\n linear-gradient(180deg, ${fade(palette.white, 0.05)} 0%, ${fade(palette.white, 0)} 100%)\n `,\n controlPrimary: `\n linear-gradient(180deg, ${fade(palette.white, 0.05)}, 0%, ${fade(palette.white, 0)} 100%)\n `,\n controlSecondary: `\n linear-gradient(180deg, ${fade(palette.white, 0.5)} 0%, ${fade(palette.white, 0)} 100%)\n `,\n controlSecondaryDark: `\n linear-gradient(180deg, ${fade(palette.white, 0.08)} 0%, ${fade(palette.white, 0)} 100%)\n `,\n captiveChecker: `\n url(\"data:image/svg+xml,%3Csvg width='2' height='2' viewBox='0 0 4 4' fill='none' opacity='0.1' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='black'/%3E%3Crect x='2' width='2' height='2' fill='white'/%3E%3Crect y='2' width='2' height='2' fill='white'/%3E%3Crect x='2' y='2' width='2' height='2' fill='black'/%3E%3C/svg%3E\"),\n linear-gradient(23.75deg, #FEF8FF 1.79%, #F0EDFE 82.18%)\n `,\n captiveCheckerDark: `\n url(\"data:image/svg+xml,%3Csvg width='2' height='2' viewBox='0 0 4 4' fill='none' opacity='0.1' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='2' height='2' fill='black'/%3E%3Crect x='2' width='2' height='2' fill='white'/%3E%3Crect y='2' width='2' height='2' fill='white'/%3E%3Crect x='2' y='2' width='2' height='2' fill='black'/%3E%3C/svg%3E\"),\n linear-gradient(28.16deg, #735572 -1.29%, #272B4D 72.41%)\n `\n};\n\n// src/common/shadow_stacks.ts\nvar import_lodash = __toESM(require_lodash());\nfunction isInset(shadow) {\n return shadow.includes(\"inset\");\n}\nvar compareShadows = (a, b) => {\n const isAInset = isInset(a);\n const isBInset = isInset(b);\n if (isAInset === isBInset) {\n return a.localeCompare(b);\n }\n return isAInset ? -1 : 1;\n};\nfunction createShadowAnimationStack(states) {\n const maxInsetShadows = (0, import_lodash.max)(\n Object.values(states).map((shadows2) => shadows2.filter((shadow) => isInset(shadow)).length)\n ) ?? 0;\n const maxOuterShadows = (0, import_lodash.max)(\n Object.values(states).map((shadows2) => shadows2.filter((shadow) => !isInset(shadow)).length)\n ) ?? 0;\n return Object.fromEntries(\n Object.entries(states).map(([state, shadows2]) => {\n const insetShadows = shadows2.filter((shadow) => isInset(shadow)).sort(compareShadows);\n const outerShadows = shadows2.filter((shadow) => !isInset(shadow)).sort(compareShadows);\n const fillerInsetShadows = new Array(maxInsetShadows - insetShadows.length).fill(\n \"inset 0 0 0 0 rgba(0,0,0,0)\"\n );\n const fillerOuterShadows = new Array(maxOuterShadows - outerShadows.length).fill(\n \"0 0 0 0 rgba(0,0,0,0)\"\n );\n return [\n state,\n [...insetShadows, ...fillerInsetShadows, ...outerShadows, ...fillerOuterShadows].join(\", \")\n ];\n })\n );\n}\n\n// src/common/shadows.ts\nvar focusRing = `0 0 0 3px ${fade(palette[\"brand-500\"], 0.7)}`;\nvar shadowParts = {\n none: [],\n device: [\n `0 1px 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 1px 1px 0 ${fade(palette[\"gray-900\"], 0.08)}`,\n `0 0 0 0.6px ${fade(palette[\"gray-900\"], 0.04)}`,\n `inset 0 -1.5px 3px -2.2px rgba(42, 43, 48, 0.16)`,\n `inset 0 0.8px 2.8px 0 rgba(42, 43, 48, 0.06)`\n ],\n controlPrimaryInitialLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 0.85)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlPrimaryHoveredLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.35)}`,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 0.95)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlPrimaryFocusedLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.35)}`,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 0.95)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`,\n focusRing\n ],\n controlPrimaryDisabledLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 1)}`\n ],\n controlPrimaryInitialDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.2)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlPrimaryHoveredDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.24)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlPrimaryFocusedDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.24)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`,\n focusRing,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 1)}`\n ],\n controlPrimaryDisabledDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.16)}`\n ],\n controlSecondaryInitialLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.08)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-600\"], 0.3)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 1)}`\n ],\n controlSecondaryHoveredLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n `0 0 0 1px ${fade(palette[\"gray-600\"], 0.4)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 1)}`\n ],\n controlSecondaryFocusedLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n `0 0 0 1px ${fade(palette[\"gray-600\"], 0.4)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 1)}`,\n focusRing\n ],\n controlSecondaryDisabledLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-300\"], 1)}`\n ],\n controlSecondaryInitialDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.4)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.12)}`\n ],\n controlSecondaryHoveredDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.5)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.18)}`\n ],\n controlSecondaryFocusedDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.5)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.18)}`,\n `0 0 0 3px ${fade(palette[\"brand-500\"], 0.9)}`,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 1)}`\n ],\n controlSecondaryDisabledDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.3)}`\n ],\n controlDestructiveInitialLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n `0 0 0 1px ${fade(palette[\"red-900\"], 0.85)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlDestructiveHoveredLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.35)}`,\n `0 0 0 1px ${fade(palette[\"red-900\"], 0.95)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`\n ],\n controlDestructiveFocusedLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.35)}`,\n `0 0 0 1px ${fade(palette[\"red-900\"], 0.95)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`,\n focusRing\n ],\n controlDestructiveDisabledLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"red-900\"], 1)}`\n ],\n controlDestructiveInitialDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.2)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.2)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.12)}`\n ],\n controlDestructiveHoveredDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.24)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.18)}`\n ],\n controlDestructiveFocusedDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.16)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.24)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.24)}`,\n `inset 0 1px 0 0 ${fade(palette.white, 0.1)}`,\n focusRing,\n `0 0 0 1px ${fade(palette[\"brand-900\"], 1)}`\n ],\n controlDestructiveDisabledDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.16)}`\n ],\n controlTertiaryInitialLight: [`0 0 0 1px ${palette[\"gray-100\"]}`],\n controlTertiaryHoveredLight: [`0 0 0 1px ${palette[\"gray-200\"]}`],\n controlTertiaryDisabledLight: [`0 0 0 1px ${palette[\"gray-100\"]}`],\n controlTertiaryFocusedLight: [focusRing],\n controlTertiaryInitialDark: [`0 0 0 1px ${palette[\"gray-600\"]}`],\n controlTertiaryHoveredDark: [`0 0 0 1px ${palette[\"gray-500\"]}`],\n controlTertiaryDisabledDark: [`0 0 0 1px ${palette[\"gray-700\"]}`],\n controlTertiaryFocusedDark: [\n `0 0 0 1px ${fade(palette[\"brand-100\"], 0.7)}`,\n `0 0 0 4px ${fade(palette[\"brand-200\"], 0.7)}`\n ],\n fieldInitialLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.08)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-600\"], 0.3)}`\n ],\n fieldHoveredLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n `0 0 0 1px ${fade(palette[\"gray-600\"], 0.4)}`\n ],\n fieldFocusedLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.12)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.18)}`,\n focusRing\n ],\n fieldDisabledLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.08)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px rgba(177, 181, 199, 1)`\n ],\n fieldErrorLight: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.08)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1.5px ${fade(palette[\"red-600\"], 0.8)}`\n ],\n fieldInitialDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.25)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.5)}`\n ],\n fieldHoveredDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.5)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.7)}`\n ],\n fieldFocusedDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.5)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.7)}`,\n `0 0 0 3px ${fade(palette[\"brand-500\"], 0.5)}`,\n `0 0 0 1px ${fade(palette[\"brand-500\"], 0.6)}`\n ],\n fieldDisabledDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.02)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.4)}`\n ],\n fieldErrorDark: [\n `0 2px 1px 0 ${fade(palette[\"gray-900\"], 0.25)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 0 0 1px ${fade(palette[\"red-300\"], 0.8)}`\n ],\n surfaceTopLight: [`0 -1px 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceTopDark: [`0 -1px 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceTopInsetLight: [`inset 0 1px 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceTopInsetDark: [`inset 0 1px 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceRightLight: [`1px 0 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceRightDark: [`1px 0 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceRightInsetLight: [`inset -1px 0 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceRightInsetDark: [`inset -1px 0 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceBottomLight: [`0 1px 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceBottomDark: [`0 1px 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceBottomInsetLight: [`inset 0 -1px 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceBottomInsetDark: [`inset 0 -1px 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceLeftLight: [`-1px 0 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceLeftDark: [`-1px 0 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n surfaceLeftInsetLight: [`inset 1px 0 0 0 ${fade(palette[\"gray-600\"], 0.15)}`],\n surfaceLeftInsetDark: [`inset 1px 0 0 0 ${fade(palette[\"gray-900\"], 1)}`],\n fenceAllLight: [\n `0 0 0 0.5px ${palette[\"fence-light\"]}`,\n `inset 0 0 0 0.5px ${palette[\"fence-light\"]}`\n ],\n fenceAllDark: [\n `0 0 0 0.5px ${palette[\"fence-dark\"]}`,\n `inset 0 0 0 0.5px ${palette[\"fence-dark\"]}`\n ],\n fenceActiveAllLight: [\n `0 0 0 0.5px ${palette[\"brand-200\"]}`,\n `inset 0 0 0 0.5px ${palette[\"brand-200\"]}`\n ],\n fenceActiveAllDark: [\n `0 0 0 0.5px ${palette[\"brand-700\"]}`,\n `inset 0 0 0 0.5px ${palette[\"brand-700\"]}`\n ],\n fenceErrorAllLight: [\n `0 0 0 0.5px ${palette[\"red-100\"]}`,\n `inset 0 0 0 0.5px ${palette[\"red-100\"]}`\n ],\n fenceErrorAllDark: [\n `0 0 0 0.5px ${palette[\"red-700\"]}`,\n `inset 0 0 0 0.5px ${palette[\"red-700\"]}`\n ],\n fenceTopBottomLight: [\n `0 0.5px 0 0 ${palette[\"fence-light\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"fence-light\"]}`,\n `0 -0.5px 0 0 ${palette[\"fence-light\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceTopBottomDark: [\n `0 0.5px 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"fence-dark\"]}`,\n `0 -0.5px 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceErrorTopBottomLight: [\n `0 0.5px 0 0 ${palette[\"red-100\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"red-100\"]}`,\n `0 -0.5px 0 0 ${palette[\"red-100\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"red-100\"]}`\n ],\n fenceErrorTopBottomDark: [\n `0 0.5px 0 0 ${palette[\"red-700\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"red-700\"]}`,\n `0 -0.5px 0 0 ${palette[\"red-700\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"red-700\"]}`\n ],\n rowActiveTopBottomLight: [\n `0 0.5px 0 0 ${palette[\"brand-200\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"brand-200\"]}`,\n `0 -0.5px 0 0 ${palette[\"brand-200\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"brand-200\"]}`\n ],\n rowActiveTopBottomDark: [\n `0 0.5px 0 0 ${palette[\"brand-700\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"brand-700\"]}`,\n `0 -0.5px 0 0 ${palette[\"brand-700\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"brand-700\"]}`\n ],\n rowFocusedTopBottomLight: [\n `0 1px 0 0 ${palette[\"brand-400\"]}`,\n `inset 0 -1px 0 0 ${palette[\"brand-400\"]}`,\n `0 -1px 0 0 ${palette[\"brand-400\"]}`,\n `inset 0 1px 0 0 ${palette[\"brand-400\"]}`\n ],\n rowFocusedTopBottomDark: [\n `0 1px 0 0 ${palette[\"brand-500\"]}`,\n `inset 0 -1px 0 0 ${palette[\"brand-500\"]}`,\n `0 -1px 0 0 ${palette[\"brand-500\"]}`,\n `inset 0 1px 0 0 ${palette[\"brand-500\"]}`\n ],\n fenceRightLeftLight: [\n `0.5px 0 0 0 ${palette[\"fence-light\"]}`,\n `inset -0.5px 0 0 0 ${palette[\"fence-light\"]}`,\n `-0.5px 0 0 0 ${palette[\"fence-light\"]}`,\n `inset 0.5px 0 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceRightLeftDark: [\n `0.5px 0 0 0 ${palette[\"fence-dark\"]}`,\n `inset -0.5px 0 0 0 ${palette[\"fence-dark\"]}`,\n `-0.5px 0 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0.5px 0 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceTopLight: [\n `0 -0.5px 0 0 ${palette[\"fence-light\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceTopDark: [\n `0 -0.5px 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0 0.5px 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceRightLight: [\n `0.5px 0 0 0 ${palette[\"fence-light\"]}`,\n `inset -0.5px 0 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceRightDark: [\n `0.5px 0 0 0 ${palette[\"fence-dark\"]}`,\n `inset -0.5px 0 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceBottomLight: [\n `0 0.5px 0 0 ${palette[\"fence-light\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceBottomDark: [\n `0 0.5px 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0 -0.5px 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceLeftLight: [\n `-0.5px 0 0 0 ${palette[\"fence-light\"]}`,\n `inset 0.5px 0 0 0 ${palette[\"fence-light\"]}`\n ],\n fenceLeftDark: [\n `-0.5px 0 0 0 ${palette[\"fence-dark\"]}`,\n `inset 0.5px 0 0 0 ${palette[\"fence-dark\"]}`\n ],\n fenceFocusedLight: [\n `0 0 0 0.5px ${palette[\"fence-light\"]}`,\n `inset 0 0 0 0.5px ${palette[\"fence-light\"]}`,\n focusRing\n ],\n fenceFocusedDark: [\n `0 0 0 0.5px ${palette[\"fence-dark\"]}`,\n `inset 0 0 0 0.5px ${palette[\"fence-dark\"]}`,\n focusRing\n ],\n focusRingLight: [focusRing],\n focusRingDark: [\n `0 0 0 1px ${fade(palette[\"brand-100\"], 0.7)}`,\n `0 0 0 4px ${fade(palette[\"brand-200\"], 0.7)}`\n ],\n paneTopLight: [\n `0 -3px 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 -1px 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 -1px 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneTopDark: [\n `0 -4px 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `0 -2px 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 -1px 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneTopInsetLight: [\n `inset 0 3px 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 0 1px 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 0 1px 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneTopInsetDark: [\n `inset 0 4px 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `inset 0 2px 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `inset 0 1px 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneRightLight: [\n `3px 0 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `1px 0 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `1px 0 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneRightDark: [\n `4px 0 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `2px 0 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `1px 0 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneRightInsetLight: [\n `inset -3px 0 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset -1px 0 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset -1px 0 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneRightInsetDark: [\n `inset -4px 0 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `inset -2px 0 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `inset -1px 0 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneLeftLight: [\n `-3px 0 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `-1px 0 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `-1px 0 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneLeftDark: [\n `inset 3px 0 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 1px 0 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 1px 0 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneLeftInsetLight: [\n `inset 3px 0 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 1px 0 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 1px 0 0 0 rgba(41, 42, 51, 0.04)`\n ],\n paneLeftInsetDark: [\n `inset 4px 0 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `inset 2px 0 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `inset 1px 0 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneBottomLight: [\n `0 3px 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 1px 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 1px 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneBottomDark: [\n `0 4px 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `0 2px 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 1px 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n paneBottomInsetLight: [\n `inset 0 -3px 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 0 -1px 2px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `inset 0 -1px 0 0 ${fade(palette[\"gray-900\"], 0.04)}`\n ],\n paneBottomInsetDark: [\n `inset 0 -4px 5px 0 ${fade(palette[\"gray-900\"], 0.15)}`,\n `inset 0 -2px 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `inset 0 -1px 0 0 ${fade(palette[\"gray-900\"], 0.45)}`\n ],\n overlayLight: [\n `0 3px 5px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 1px 0 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.08)}`\n ],\n overlayDark: [\n `0 2px 3px 0 ${fade(palette[\"gray-900\"], 0.1)}`,\n `0 1px 2px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 1px 0 0 ${fade(palette[\"gray-900\"], 0.3)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.4)}`\n ],\n modalLight: [\n `0 9px 11px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 7px 8px 0 ${fade(palette[\"gray-900\"], 0.05)}`,\n `0 3px 0 0 ${fade(palette[\"gray-900\"], 0.04)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.08)}`\n ],\n modalDark: [\n `0 9px 11px 0 ${fade(palette[\"gray-900\"], 0.1)}`,\n `0 7px 8px 0 ${fade(palette[\"gray-900\"], 0.4)}`,\n `0 3px 0 0 ${fade(palette[\"gray-900\"], 0.3)}`,\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.4)}`\n ],\n manufacturerLight: [\n `0 0 0 1px ${fade(palette[\"gray-900\"], 0.06)}`,\n `0px 1px 0px ${fade(palette[\"gray-900\"], 0.06)}`,\n `0px 2px 1px ${fade(palette[\"gray-900\"], 0.05)}`\n ],\n manufacturerDark: [\n `0 0 0 1px ${fade(palette[\"gray-700\"], 0.06)}`,\n `0px 1px 0px ${fade(palette[\"gray-700\"], 0.1)}`,\n `0px 2px 1px ${fade(palette[\"gray-700\"], 0.3)}`\n ]\n};\nvar shadows = createShadowAnimationStack(shadowParts);\n\nexport {\n __commonJS,\n __toESM,\n breakpoints,\n linear2 as linear,\n palette,\n fade,\n fontFamilies,\n makeFontString,\n gradients,\n require_lodash,\n shadows\n};\n/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n//# sourceMappingURL=chunk-2ER2SZAY.mjs.map","var e=\"colors\",t=\"sizes\",r=\"space\",n={gap:r,gridGap:r,columnGap:r,gridColumnGap:r,rowGap:r,gridRowGap:r,inset:r,insetBlock:r,insetBlockEnd:r,insetBlockStart:r,insetInline:r,insetInlineEnd:r,insetInlineStart:r,margin:r,marginTop:r,marginRight:r,marginBottom:r,marginLeft:r,marginBlock:r,marginBlockEnd:r,marginBlockStart:r,marginInline:r,marginInlineEnd:r,marginInlineStart:r,padding:r,paddingTop:r,paddingRight:r,paddingBottom:r,paddingLeft:r,paddingBlock:r,paddingBlockEnd:r,paddingBlockStart:r,paddingInline:r,paddingInlineEnd:r,paddingInlineStart:r,top:r,right:r,bottom:r,left:r,scrollMargin:r,scrollMarginTop:r,scrollMarginRight:r,scrollMarginBottom:r,scrollMarginLeft:r,scrollMarginX:r,scrollMarginY:r,scrollMarginBlock:r,scrollMarginBlockEnd:r,scrollMarginBlockStart:r,scrollMarginInline:r,scrollMarginInlineEnd:r,scrollMarginInlineStart:r,scrollPadding:r,scrollPaddingTop:r,scrollPaddingRight:r,scrollPaddingBottom:r,scrollPaddingLeft:r,scrollPaddingX:r,scrollPaddingY:r,scrollPaddingBlock:r,scrollPaddingBlockEnd:r,scrollPaddingBlockStart:r,scrollPaddingInline:r,scrollPaddingInlineEnd:r,scrollPaddingInlineStart:r,fontSize:\"fontSizes\",background:e,backgroundColor:e,backgroundImage:e,borderImage:e,border:e,borderBlock:e,borderBlockEnd:e,borderBlockStart:e,borderBottom:e,borderBottomColor:e,borderColor:e,borderInline:e,borderInlineEnd:e,borderInlineStart:e,borderLeft:e,borderLeftColor:e,borderRight:e,borderRightColor:e,borderTop:e,borderTopColor:e,caretColor:e,color:e,columnRuleColor:e,fill:e,outline:e,outlineColor:e,stroke:e,textDecorationColor:e,fontFamily:\"fonts\",fontWeight:\"fontWeights\",lineHeight:\"lineHeights\",letterSpacing:\"letterSpacings\",blockSize:t,minBlockSize:t,maxBlockSize:t,inlineSize:t,minInlineSize:t,maxInlineSize:t,width:t,minWidth:t,maxWidth:t,height:t,minHeight:t,maxHeight:t,flexBasis:t,gridTemplateColumns:t,gridTemplateRows:t,borderWidth:\"borderWidths\",borderTopWidth:\"borderWidths\",borderRightWidth:\"borderWidths\",borderBottomWidth:\"borderWidths\",borderLeftWidth:\"borderWidths\",borderStyle:\"borderStyles\",borderTopStyle:\"borderStyles\",borderRightStyle:\"borderStyles\",borderBottomStyle:\"borderStyles\",borderLeftStyle:\"borderStyles\",borderRadius:\"radii\",borderTopLeftRadius:\"radii\",borderTopRightRadius:\"radii\",borderBottomRightRadius:\"radii\",borderBottomLeftRadius:\"radii\",boxShadow:\"shadows\",textShadow:\"shadows\",transition:\"transitions\",zIndex:\"zIndices\"},i=(e,t)=>\"function\"==typeof t?{\"()\":Function.prototype.toString.call(t)}:t,o=()=>{const e=Object.create(null);return(t,r,...n)=>{const o=(e=>JSON.stringify(e,i))(t);return o in e?e[o]:e[o]=r(t,...n)}},l=Symbol.for(\"sxs.internal\"),s=(e,t)=>Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)),a=e=>{for(const t in e)return!0;return!1},{hasOwnProperty:c}=Object.prototype,d=e=>e.includes(\"-\")?e:e.replace(/[A-Z]/g,(e=>\"-\"+e.toLowerCase())),g=/\\s+(?![^()]*\\))/,p=e=>t=>e(...\"string\"==typeof t?String(t).split(g):[t]),u={appearance:e=>({WebkitAppearance:e,appearance:e}),backfaceVisibility:e=>({WebkitBackfaceVisibility:e,backfaceVisibility:e}),backdropFilter:e=>({WebkitBackdropFilter:e,backdropFilter:e}),backgroundClip:e=>({WebkitBackgroundClip:e,backgroundClip:e}),boxDecorationBreak:e=>({WebkitBoxDecorationBreak:e,boxDecorationBreak:e}),clipPath:e=>({WebkitClipPath:e,clipPath:e}),content:e=>({content:e.includes('\"')||e.includes(\"'\")||/^([A-Za-z]+\\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(e)?e:`\"${e}\"`}),hyphens:e=>({WebkitHyphens:e,hyphens:e}),maskImage:e=>({WebkitMaskImage:e,maskImage:e}),maskSize:e=>({WebkitMaskSize:e,maskSize:e}),tabSize:e=>({MozTabSize:e,tabSize:e}),textSizeAdjust:e=>({WebkitTextSizeAdjust:e,textSizeAdjust:e}),userSelect:e=>({WebkitUserSelect:e,userSelect:e}),marginBlock:p(((e,t)=>({marginBlockStart:e,marginBlockEnd:t||e}))),marginInline:p(((e,t)=>({marginInlineStart:e,marginInlineEnd:t||e}))),maxSize:p(((e,t)=>({maxBlockSize:e,maxInlineSize:t||e}))),minSize:p(((e,t)=>({minBlockSize:e,minInlineSize:t||e}))),paddingBlock:p(((e,t)=>({paddingBlockStart:e,paddingBlockEnd:t||e}))),paddingInline:p(((e,t)=>({paddingInlineStart:e,paddingInlineEnd:t||e})))},h=/([\\d.]+)([^]*)/,f=(e,t)=>e.length?e.reduce(((e,r)=>(e.push(...t.map((e=>e.includes(\"&\")?e.replace(/&/g,/[ +>|~]/.test(r)&&/&.*&/.test(e)?`:is(${r})`:r):r+\" \"+e))),e)),[]):t,m=(e,t)=>e in b&&\"string\"==typeof t?t.replace(/^((?:[^]*[^\\w-])?)(fit-content|stretch)((?:[^\\w-][^]*)?)$/,((t,r,n,i)=>r+(\"stretch\"===n?`-moz-available${i};${d(e)}:${r}-webkit-fill-available`:`-moz-fit-content${i};${d(e)}:${r}fit-content`)+i)):String(t),b={blockSize:1,height:1,inlineSize:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,width:1},S=e=>e?e+\"-\":\"\",k=(e,t,r)=>e.replace(/([+-])?((?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[Ee][+-]?\\d+)?)?(\\$|--)([$\\w-]+)/g,((e,n,i,o,l)=>\"$\"==o==!!i?e:(n||\"--\"==o?\"calc(\":\"\")+\"var(--\"+(\"$\"===o?S(t)+(l.includes(\"$\")?\"\":S(r))+l.replace(/\\$/g,\"-\"):l)+\")\"+(n||\"--\"==o?\"*\"+(n||\"\")+(i||\"1\")+\")\":\"\"))),y=/\\s*,\\s*(?![^()]*\\))/,B=Object.prototype.toString,$=(e,t,r,n,i)=>{let o,l,s;const a=(e,t,r)=>{let c,g;const p=e=>{for(c in e){const R=64===c.charCodeAt(0),z=R&&Array.isArray(e[c])?e[c]:[e[c]];for(g of z){const e=/[A-Z]/.test($=c)?$:$.replace(/-[^]/g,(e=>e[1].toUpperCase())),z=\"object\"==typeof g&&g&&g.toString===B&&(!n.utils[e]||!t.length);if(e in n.utils&&!z){const t=n.utils[e];if(t!==l){l=t,p(t(g)),l=null;continue}}else if(e in u){const t=u[e];if(t!==s){s=t,p(t(g)),s=null;continue}}if(R&&(b=c.slice(1)in n.media?\"@media \"+n.media[c.slice(1)]:c,c=b.replace(/\\(\\s*([\\w-]+)\\s*(=|<|<=|>|>=)\\s*([\\w-]+)\\s*(?:(<|<=|>|>=)\\s*([\\w-]+)\\s*)?\\)/g,((e,t,r,n,i,o)=>{const l=h.test(t),s=.0625*(l?-1:1),[a,c]=l?[n,t]:[t,n];return\"(\"+(\"=\"===r[0]?\"\":\">\"===r[0]===l?\"max-\":\"min-\")+a+\":\"+(\"=\"!==r[0]&&1===r.length?c.replace(h,((e,t,n)=>Number(t)+s*(\">\"===r?1:-1)+n)):c)+(i?\") and (\"+(\">\"===i[0]?\"min-\":\"max-\")+a+\":\"+(1===i.length?o.replace(h,((e,t,r)=>Number(t)+s*(\">\"===i?-1:1)+r)):o):\"\")+\")\"}))),z){const e=R?r.concat(c):[...r],n=R?[...t]:f(t,c.split(y));void 0!==o&&i(x(...o)),o=void 0,a(g,n,e)}else void 0===o&&(o=[[],t,r]),c=R||36!==c.charCodeAt(0)?c:`--${S(n.prefix)}${c.slice(1).replace(/\\$/g,\"-\")}`,g=z?g:\"number\"==typeof g?g&&e in I?String(g)+\"px\":String(g):k(m(e,null==g?\"\":g),n.prefix,n.themeMap[e]),o[0].push(`${R?`${c} `:`${d(c)}:`}${g}`)}}var b,$};p(e),void 0!==o&&i(x(...o)),o=void 0};a(e,t,r)},x=(e,t,r)=>`${r.map((e=>`${e}{`)).join(\"\")}${t.length?`${t.join(\",\")}{`:\"\"}${e.join(\";\")}${t.length?\"}\":\"\"}${Array(r.length?r.length+1:0).join(\"}\")}`,I={animationDelay:1,animationDuration:1,backgroundSize:1,blockSize:1,border:1,borderBlock:1,borderBlockEnd:1,borderBlockEndWidth:1,borderBlockStart:1,borderBlockStartWidth:1,borderBlockWidth:1,borderBottom:1,borderBottomLeftRadius:1,borderBottomRightRadius:1,borderBottomWidth:1,borderEndEndRadius:1,borderEndStartRadius:1,borderInlineEnd:1,borderInlineEndWidth:1,borderInlineStart:1,borderInlineStartWidth:1,borderInlineWidth:1,borderLeft:1,borderLeftWidth:1,borderRadius:1,borderRight:1,borderRightWidth:1,borderSpacing:1,borderStartEndRadius:1,borderStartStartRadius:1,borderTop:1,borderTopLeftRadius:1,borderTopRightRadius:1,borderTopWidth:1,borderWidth:1,bottom:1,columnGap:1,columnRule:1,columnRuleWidth:1,columnWidth:1,containIntrinsicSize:1,flexBasis:1,fontSize:1,gap:1,gridAutoColumns:1,gridAutoRows:1,gridTemplateColumns:1,gridTemplateRows:1,height:1,inlineSize:1,inset:1,insetBlock:1,insetBlockEnd:1,insetBlockStart:1,insetInline:1,insetInlineEnd:1,insetInlineStart:1,left:1,letterSpacing:1,margin:1,marginBlock:1,marginBlockEnd:1,marginBlockStart:1,marginBottom:1,marginInline:1,marginInlineEnd:1,marginInlineStart:1,marginLeft:1,marginRight:1,marginTop:1,maxBlockSize:1,maxHeight:1,maxInlineSize:1,maxWidth:1,minBlockSize:1,minHeight:1,minInlineSize:1,minWidth:1,offsetDistance:1,offsetRotate:1,outline:1,outlineOffset:1,outlineWidth:1,overflowClipMargin:1,padding:1,paddingBlock:1,paddingBlockEnd:1,paddingBlockStart:1,paddingBottom:1,paddingInline:1,paddingInlineEnd:1,paddingInlineStart:1,paddingLeft:1,paddingRight:1,paddingTop:1,perspective:1,right:1,rowGap:1,scrollMargin:1,scrollMarginBlock:1,scrollMarginBlockEnd:1,scrollMarginBlockStart:1,scrollMarginBottom:1,scrollMarginInline:1,scrollMarginInlineEnd:1,scrollMarginInlineStart:1,scrollMarginLeft:1,scrollMarginRight:1,scrollMarginTop:1,scrollPadding:1,scrollPaddingBlock:1,scrollPaddingBlockEnd:1,scrollPaddingBlockStart:1,scrollPaddingBottom:1,scrollPaddingInline:1,scrollPaddingInlineEnd:1,scrollPaddingInlineStart:1,scrollPaddingLeft:1,scrollPaddingRight:1,scrollPaddingTop:1,shapeMargin:1,textDecoration:1,textDecorationThickness:1,textIndent:1,textUnderlineOffset:1,top:1,transitionDelay:1,transitionDuration:1,verticalAlign:1,width:1,wordSpacing:1},R=e=>String.fromCharCode(e+(e>25?39:97)),z=e=>(e=>{let t,r=\"\";for(t=Math.abs(e);t>52;t=t/52|0)r=R(t%52)+r;return R(t%52)+r})(((e,t)=>{let r=t.length;for(;r;)e=33*e^t.charCodeAt(--r);return e})(5381,JSON.stringify(e))>>>0),W=[\"themed\",\"global\",\"styled\",\"onevar\",\"resonevar\",\"allvar\",\"inline\"],j=e=>{if(e.href&&!e.href.startsWith(location.origin))return!1;try{return!!e.cssRules}catch(e){return!1}},E=e=>{let t;const r=()=>{const{cssRules:e}=t.sheet;return[].map.call(e,((r,n)=>{const{cssText:i}=r;let o=\"\";if(i.startsWith(\"--sxs\"))return\"\";if(e[n-1]&&(o=e[n-1].cssText).startsWith(\"--sxs\")){if(!r.cssRules.length)return\"\";for(const e in t.rules)if(t.rules[e].group===r)return`--sxs{--sxs:${[...t.rules[e].cache].join(\" \")}}${i}`;return r.cssRules.length?`${o}${i}`:\"\"}return i})).join(\"\")},n=()=>{if(t){const{rules:e,sheet:r}=t;if(!r.deleteRule){for(;3===Object(Object(r.cssRules)[0]).type;)r.cssRules.splice(0,1);r.cssRules=[]}for(const t in e)delete e[t]}const i=Object(e).styleSheets||[];for(const e of i)if(j(e)){for(let i=0,o=e.cssRules;o[i];++i){const l=Object(o[i]);if(1!==l.type)continue;const s=Object(o[i+1]);if(4!==s.type)continue;++i;const{cssText:a}=l;if(!a.startsWith(\"--sxs\"))continue;const c=a.slice(14,-3).trim().split(/\\s+/),d=W[c[0]];d&&(t||(t={sheet:e,reset:n,rules:{},toString:r}),t.rules[d]={group:s,index:i,cache:new Set(c)})}if(t)break}if(!t){const i=(e,t)=>({type:t,cssRules:[],insertRule(e,t){this.cssRules.splice(t,0,i(e,{import:3,undefined:1}[(e.toLowerCase().match(/^@([a-z]+)/)||[])[1]]||4))},get cssText(){return\"@media{}\"===e?`@media{${[].map.call(this.cssRules,(e=>e.cssText)).join(\"\")}}`:e}});t={sheet:e?(e.head||e).appendChild(document.createElement(\"style\")).sheet:i(\"\",\"text/css\"),rules:{},reset:n,toString:r}}const{sheet:o,rules:l}=t;for(let e=W.length-1;e>=0;--e){const t=W[e];if(!l[t]){const r=W[e+1],n=l[r]?l[r].index:o.cssRules.length;o.insertRule(\"@media{}\",n),o.insertRule(`--sxs{--sxs:${e}}`,n),l[t]={group:o.cssRules[n+1],index:n,cache:new Set([e])}}v(l[t])}};return n(),t},v=e=>{const t=e.group;let r=t.cssRules.length;e.apply=e=>{try{t.insertRule(e,r),++r}catch(e){}}},T=Symbol(),w=o(),M=(e,t)=>w(e,(()=>(...r)=>{let n={type:null,composers:new Set};for(const t of r)if(null!=t)if(t[l]){null==n.type&&(n.type=t[l].type);for(const e of t[l].composers)n.composers.add(e)}else t.constructor!==Object||t.$$typeof?null==n.type&&(n.type=t):n.composers.add(C(t,e));return null==n.type&&(n.type=\"span\"),n.composers.size||n.composers.add([\"PJLV\",{},[],[],{},[]]),P(e,n,t)})),C=({variants:e,compoundVariants:t,defaultVariants:r,...n},i)=>{const o=`${S(i.prefix)}c-${z(n)}`,l=[],s=[],d=Object.create(null),g=[];for(const e in r)d[e]=String(r[e]);if(\"object\"==typeof e&&e)for(const t in e){p=d,u=t,c.call(p,u)||(d[t]=\"undefined\");const r=e[t];for(const e in r){const n={[t]:String(e)};\"undefined\"===String(e)&&g.push(t);const i=r[e],o=[n,i,!a(i)];l.push(o)}}var p,u;if(\"object\"==typeof t&&t)for(const e of t){let{css:t,...r}=e;t=\"object\"==typeof t&&t||{};for(const e in r)r[e]=String(r[e]);const n=[r,t,!a(t)];s.push(n)}return[o,n,l,s,d,g]},P=(e,t,r)=>{const[n,i,o,a]=L(t.composers),c=\"function\"==typeof t.type||t.type.$$typeof?(e=>{function t(){for(let r=0;rt.rules[e]={apply:r=>t[T].push([e,r])})),t})(r):null,d=(c||r).rules,g=`.${n}${i.length>1?`:where(.${i.slice(1).join(\".\")})`:\"\"}`,p=l=>{l=\"object\"==typeof l&&l||A;const{css:s,...p}=l,u={};for(const e in o)if(delete p[e],e in l){let t=l[e];\"object\"==typeof t&&t?u[e]={\"@initial\":o[e],...t}:(t=String(t),u[e]=\"undefined\"!==t||a.has(e)?t:o[e])}else u[e]=o[e];const h=new Set([...i]);for(const[n,i,o,l]of t.composers){r.rules.styled.cache.has(n)||(r.rules.styled.cache.add(n),$(i,[`.${n}`],[],e,(e=>{d.styled.apply(e)})));const t=O(o,u,e.media),s=O(l,u,e.media,!0);for(const i of t)if(void 0!==i)for(const[t,o,l]of i){const i=`${n}-${z(o)}-${t}`;h.add(i);const s=(l?r.rules.resonevar:r.rules.onevar).cache,a=l?d.resonevar:d.onevar;s.has(i)||(s.add(i),$(o,[`.${i}`],[],e,(e=>{a.apply(e)})))}for(const t of s)if(void 0!==t)for(const[i,o]of t){const t=`${n}-${z(o)}-${i}`;h.add(t),r.rules.allvar.cache.has(t)||(r.rules.allvar.cache.add(t),$(o,[`.${t}`],[],e,(e=>{d.allvar.apply(e)})))}}if(\"object\"==typeof s&&s){const t=`${n}-i${z(s)}-css`;h.add(t),r.rules.inline.cache.has(t)||(r.rules.inline.cache.add(t),$(s,[`.${t}`],[],e,(e=>{d.inline.apply(e)})))}for(const e of String(l.className||\"\").trim().split(/\\s+/))e&&h.add(e);const f=p.className=[...h].join(\" \");return{type:t.type,className:f,selector:g,props:p,toString:()=>f,deferredInjector:c}};return s(p,{className:n,selector:g,[l]:t,toString:()=>(r.rules.styled.cache.has(n)||p(),n)})},L=e=>{let t=\"\";const r=[],n={},i=[];for(const[o,,,,l,s]of e){\"\"===t&&(t=o),r.push(o),i.push(...s);for(const e in l){const t=l[e];(void 0===n[e]||\"undefined\"!==t||s.includes(t))&&(n[e]=t)}}return[t,r,n,new Set(i)]},O=(e,t,r,n)=>{const i=[];e:for(let[o,l,s]of e){if(s)continue;let e,a=0,c=!1;for(e in o){const n=o[e];let i=t[e];if(i!==n){if(\"object\"!=typeof i||!i)continue e;{let e,t,o=0;for(const l in i){if(n===String(i[l])){if(\"@initial\"!==l){const e=l.slice(1);(t=t||[]).push(e in r?r[e]:l.replace(/^@media ?/,\"\")),c=!0}a+=o,e=!0}++o}if(t&&t.length&&(l={[\"@media \"+t.join(\", \")]:l}),!e)continue e}}}(i[a]=i[a]||[]).push([n?\"cv\":`${e}-${o[e]}`,l,c])}return i},A={},N=o(),D=(e,t)=>N(e,(()=>(...r)=>{const n=()=>{for(let n of r){n=\"object\"==typeof n&&n||{};let r=z(n);if(!t.rules.global.cache.has(r)){if(t.rules.global.cache.add(r),\"@import\"in n){let e=[].indexOf.call(t.sheet.cssRules,t.rules.themed.group)-1;for(let r of[].concat(n[\"@import\"]))r=r.includes('\"')||r.includes(\"'\")?r:`\"${r}\"`,t.sheet.insertRule(`@import ${r};`,e++);delete n[\"@import\"]}$(n,[],[],e,(e=>{t.rules.global.apply(e)}))}}return\"\"};return s(n,{toString:n})})),H=o(),V=(e,t)=>H(e,(()=>r=>{const n=`${S(e.prefix)}k-${z(r)}`,i=()=>{if(!t.rules.global.cache.has(n)){t.rules.global.cache.add(n);const i=[];$(r,[],[],e,(e=>i.push(e)));const o=`@keyframes ${n}{${i.join(\"\")}}`;t.rules.global.apply(o)}return n};return s(i,{get name(){return i()},toString:i})})),G=class{constructor(e,t,r,n){this.token=null==e?\"\":String(e),this.value=null==t?\"\":String(t),this.scale=null==r?\"\":String(r),this.prefix=null==n?\"\":String(n)}get computedValue(){return\"var(\"+this.variable+\")\"}get variable(){return\"--\"+S(this.prefix)+S(this.scale)+this.token}toString(){return this.computedValue}},F=o(),J=(e,t)=>F(e,(()=>(r,n)=>{n=\"object\"==typeof r&&r||Object(n);const i=`.${r=(r=\"string\"==typeof r?r:\"\")||`${S(e.prefix)}t-${z(n)}`}`,o={},l=[];for(const t in n){o[t]={};for(const r in n[t]){const i=`--${S(e.prefix)}${t}-${r}`,s=k(String(n[t][r]),e.prefix,t);o[t][r]=new G(r,s,t,e.prefix),l.push(`${i}:${s}`)}}const s=()=>{if(l.length&&!t.rules.themed.cache.has(r)){t.rules.themed.cache.add(r);const i=`${n===e.theme?\":root,\":\"\"}.${r}{${l.join(\";\")}}`;t.rules.themed.apply(i)}return r};return{...o,get className(){return s()},selector:i,toString:s}})),U=o();import Z from\"react\";var X,Y=o(),q=e=>{const t=(e=>{let t=!1;const r=U(e,(e=>{t=!0;const r=\"prefix\"in(e=\"object\"==typeof e&&e||{})?String(e.prefix):\"\",i=\"object\"==typeof e.media&&e.media||{},o=\"object\"==typeof e.root?e.root||null:globalThis.document||null,l=\"object\"==typeof e.theme&&e.theme||{},s={prefix:r,media:i,theme:l,themeMap:\"object\"==typeof e.themeMap&&e.themeMap||{...n},utils:\"object\"==typeof e.utils&&e.utils||{}},a=E(o),c={css:M(s,a),globalCss:D(s,a),keyframes:V(s,a),createTheme:J(s,a),reset(){a.reset(),c.theme.toString()},theme:{},sheet:a,config:s,prefix:r,getCssText:a.toString,toString:a.toString};return String(c.theme=c.createTheme(l)),c}));return t||r.reset(),r})(e);return t.styled=(({config:e,sheet:t})=>Y(e,(()=>{const r=M(e,t);return(...e)=>{const t=r(...e),n=t[l].type,i=Z.forwardRef(((e,r)=>{const i=e&&e.as||n,{props:o,deferredInjector:l}=t(e);return delete o.as,o.ref=r,l?Z.createElement(Z.Fragment,null,Z.createElement(i,o),Z.createElement(l,null)):Z.createElement(i,o)}));return i.className=t.className,i.displayName=`Styled.${n.displayName||n.name||n}`,i.selector=t.selector,i.toString=()=>t.selector,i[l]=t[l],i}})))(t),t},K=()=>X||(X=q()),Q=(...e)=>K().createTheme(...e),_=(...e)=>K().globalCss(...e),ee=(...e)=>K().keyframes(...e),te=(...e)=>K().css(...e),re=(...e)=>K().styled(...e);export{q as createStitches,Q as createTheme,te as css,n as defaultThemeMap,_ as globalCss,ee as keyframes,re as styled};\n//# sourceMappingUrl=index.map","import {useState as $6imuh$useState, useRef as $6imuh$useRef, useCallback as $6imuh$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange) {\n let [stateValue, setStateValue] = (0, $6imuh$useState)(value || defaultValue);\n let ref = (0, $6imuh$useRef)(value !== undefined);\n let wasControlled = ref.current;\n let isControlled = value !== undefined;\n // Internal state reference for useCallback\n let stateRef = (0, $6imuh$useRef)(stateValue);\n if (wasControlled !== isControlled) console.warn(`WARN: A component changed from ${wasControlled ? \"controlled\" : \"uncontrolled\"} to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`);\n ref.current = isControlled;\n let setValue = (0, $6imuh$useCallback)((value, ...args)=>{\n let onChangeCaller = (value, ...onChangeArgs)=>{\n if (onChange) {\n if (!Object.is(stateRef.current, value)) onChange(value, ...onChangeArgs);\n }\n if (!isControlled) stateRef.current = value;\n };\n if (typeof value === \"function\") {\n console.warn(\"We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320\");\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs)=>{\n let interceptedValue = value(isControlled ? stateRef.current : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) return interceptedValue;\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) setStateValue(value);\n onChangeCaller(value, ...args);\n }\n }, [\n isControlled,\n onChange\n ]);\n // If a controlled component's value prop changes, we need to update stateRef\n if (isControlled) stateRef.current = value;\n else value = stateValue;\n return [\n value,\n setValue\n ];\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */ function $9446cca9a3875146$export$7d15b64cf5a3a4c4(value, min = -Infinity, max = Infinity) {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\nfunction $9446cca9a3875146$export$cb6e0bb50bc19463(value, min, max, step) {\n let remainder = (value - (isNaN(min) ? 0 : min)) % step;\n let snappedValue = Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder;\n if (!isNaN(min)) {\n if (snappedValue < min) snappedValue = min;\n else if (!isNaN(max) && snappedValue > max) snappedValue = min + Math.floor((max - min) / step) * step;\n } else if (!isNaN(max) && snappedValue > max) snappedValue = Math.floor(max / step) * step;\n // correct floating point behavior by rounding to step precision\n let string = step.toString();\n let index = string.indexOf(\".\");\n let precision = index >= 0 ? string.length - index : 0;\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n return snappedValue;\n}\nfunction $9446cca9a3875146$export$b6268554fba451f(value, digits, base = 10) {\n const pow = Math.pow(base, digits);\n return Math.round(value * pow) / pow;\n}\n\n\n\n\nexport {$458b0a5536c1a7cf$export$40bfa8c7b0832715 as useControlledState, $9446cca9a3875146$export$7d15b64cf5a3a4c4 as clamp, $9446cca9a3875146$export$cb6e0bb50bc19463 as snapValueToStep, $9446cca9a3875146$export$b6268554fba451f as toFixedNumber};\n//# sourceMappingURL=module.js.map\n","import $89yE2$react, {useContext as $89yE2$useContext, useMemo as $89yE2$useMemo, useState as $89yE2$useState, useLayoutEffect as $89yE2$useLayoutEffect} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst $704cf1d3b684cc5c$var$defaultContext = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\nconst $704cf1d3b684cc5c$var$SSRContext = /*#__PURE__*/ (0, $89yE2$react).createContext($704cf1d3b684cc5c$var$defaultContext);\nfunction $704cf1d3b684cc5c$export$9f8ac96af4b1b2ae(props) {\n let cur = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n let value = (0, $89yE2$useMemo)(()=>({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === $704cf1d3b684cc5c$var$defaultContext ? \"\" : `${cur.prefix}-${++cur.current}`,\n current: 0\n }), [\n cur\n ]);\n return /*#__PURE__*/ (0, $89yE2$react).createElement($704cf1d3b684cc5c$var$SSRContext.Provider, {\n value: value\n }, props.children);\n}\nlet $704cf1d3b684cc5c$var$canUseDOM = Boolean(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction $704cf1d3b684cc5c$export$619500959fc48b26(defaultId) {\n let ctx = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === $704cf1d3b684cc5c$var$defaultContext && !$704cf1d3b684cc5c$var$canUseDOM) console.warn(\"When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.\");\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return (0, $89yE2$useMemo)(()=>defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [\n defaultId\n ]);\n}\nfunction $704cf1d3b684cc5c$export$535bd6ca7f90a273() {\n let cur = (0, $89yE2$useContext)($704cf1d3b684cc5c$var$SSRContext);\n let isInSSRContext = cur !== $704cf1d3b684cc5c$var$defaultContext;\n let [isSSR, setIsSSR] = (0, $89yE2$useState)(isInSSRContext);\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== \"undefined\" && isInSSRContext) // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, $89yE2$useLayoutEffect)(()=>{\n setIsSSR(false);\n }, []);\n return isSSR;\n}\n\n\n\n\nexport {$704cf1d3b684cc5c$export$9f8ac96af4b1b2ae as SSRProvider, $704cf1d3b684cc5c$export$619500959fc48b26 as useSSRSafeId, $704cf1d3b684cc5c$export$535bd6ca7f90a273 as useIsSSR};\n//# sourceMappingURL=module.js.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t{};\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $1dbecbe27a04f9af$export$14d238f342723f25(defaultValue) {\n let [value, setValue] = (0, $12uGp$useState)(defaultValue);\n let valueRef = (0, $12uGp$useRef)(value);\n let effect = (0, $12uGp$useRef)(null);\n valueRef.current = value;\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = (0, $12uGp$useRef)(null);\n nextRef.current = ()=>{\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) nextRef.current();\n else setValue(newValue.value);\n };\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) nextRef.current();\n });\n let queue = (0, $12uGp$useCallback)((fn)=>{\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [\n effect,\n nextRef\n ]);\n return [\n value,\n queue\n ];\n}\n\n\nlet $bdb11010cef70236$var$idsUpdaterMap = new Map();\nfunction $bdb11010cef70236$export$f680877a34711e37(defaultId) {\n let [value, setValue] = (0, $12uGp$useState)(defaultId);\n let nextId = (0, $12uGp$useRef)(null);\n let res = (0, $12uGp$useSSRSafeId)(value);\n let updateValue = (0, $12uGp$useCallback)((val)=>{\n nextId.current = val;\n }, []);\n $bdb11010cef70236$var$idsUpdaterMap.set(res, updateValue);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n let r = res;\n return ()=>{\n $bdb11010cef70236$var$idsUpdaterMap.delete(r);\n };\n }, [\n res\n ]);\n // This cannot cause an infinite loop because the ref is updated first.\n // eslint-disable-next-line\n (0, $12uGp$useEffect)(()=>{\n let newId = nextId.current;\n if (newId) {\n nextId.current = null;\n setValue(newId);\n }\n });\n return res;\n}\nfunction $bdb11010cef70236$export$cd8c9cb68f842629(idA, idB) {\n if (idA === idB) return idA;\n let setIdA = $bdb11010cef70236$var$idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n let setIdB = $bdb11010cef70236$var$idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n return idB;\n}\nfunction $bdb11010cef70236$export$b4cc09c592e8fdb8(depArray = []) {\n let id = $bdb11010cef70236$export$f680877a34711e37();\n let [resolvedId, setResolvedId] = (0, $1dbecbe27a04f9af$export$14d238f342723f25)(id);\n let updateId = (0, $12uGp$useCallback)(()=>{\n setResolvedId(function*() {\n yield id;\n yield document.getElementById(id) ? id : undefined;\n });\n }, [\n id,\n setResolvedId\n ]);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(updateId, [\n id,\n updateId,\n ...depArray\n ]);\n return resolvedId;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Calls all functions in the order they were chained with the same arguments.\n */ function $ff5963eb1fccf552$export$e08e3b67e392101e(...callbacks) {\n return (...args)=>{\n for (let callback of callbacks)if (typeof callback === \"function\") callback(...args);\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $3ef42575df84b30b$export$9d1611c77c2fe928(...args) {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result = {\n ...args[0]\n };\n for(let i = 1; i < args.length; i++){\n let props = args[i];\n for(let key in props){\n let a = result[key];\n let b = props[key];\n // Chain events\n if (typeof a === \"function\" && typeof b === \"function\" && // This is a lot faster than a regex.\n key[0] === \"o\" && key[1] === \"n\" && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = (0, $ff5963eb1fccf552$export$e08e3b67e392101e)(a, b);\n else if ((key === \"className\" || key === \"UNSAFE_className\") && typeof a === \"string\" && typeof b === \"string\") result[key] = (0, $12uGp$clsx)(a, b);\n else if (key === \"id\" && a && b) result.id = (0, $bdb11010cef70236$export$cd8c9cb68f842629)(a, b);\n else result[key] = b !== undefined ? b : a;\n }\n }\n return result;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $5dc95899b306f630$export$c9058316764c140e(...refs) {\n return (value)=>{\n for (let ref of refs){\n if (typeof ref === \"function\") ref(value);\n else if (ref != null) ref.current = value;\n }\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $65484d02dcb7eb3e$var$DOMPropNames = new Set([\n \"id\"\n]);\nconst $65484d02dcb7eb3e$var$labelablePropNames = new Set([\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-describedby\",\n \"aria-details\"\n]);\nconst $65484d02dcb7eb3e$var$propRe = /^(data-.*)$/;\nfunction $65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, opts = {}) {\n let { labelable: labelable , propNames: propNames } = opts;\n let filteredProps = {};\n for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && ($65484d02dcb7eb3e$var$DOMPropNames.has(prop) || labelable && $65484d02dcb7eb3e$var$labelablePropNames.has(prop) || (propNames === null || propNames === void 0 ? void 0 : propNames.has(prop)) || $65484d02dcb7eb3e$var$propRe.test(prop))) filteredProps[prop] = props[prop];\n return filteredProps;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $7215afc6de606d6b$export$de79e2c695e052f3(element) {\n if ($7215afc6de606d6b$var$supportsPreventScroll()) element.focus({\n preventScroll: true\n });\n else {\n let scrollableElements = $7215afc6de606d6b$var$getScrollableElements(element);\n element.focus();\n $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements);\n }\n}\nlet $7215afc6de606d6b$var$supportsPreventScrollCached = null;\nfunction $7215afc6de606d6b$var$supportsPreventScroll() {\n if ($7215afc6de606d6b$var$supportsPreventScrollCached == null) {\n $7215afc6de606d6b$var$supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement(\"div\");\n focusElem.focus({\n get preventScroll () {\n $7215afc6de606d6b$var$supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n return $7215afc6de606d6b$var$supportsPreventScrollCached;\n}\nfunction $7215afc6de606d6b$var$getScrollableElements(element) {\n var parent = element.parentNode;\n var scrollableElements = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n while(parent instanceof HTMLElement && parent !== rootScrollingElement){\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n return scrollableElements;\n}\nfunction $7215afc6de606d6b$var$restoreScrollPosition(scrollableElements) {\n for (let { element: element , scrollTop: scrollTop , scrollLeft: scrollLeft } of scrollableElements){\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $ab71dadb03a6fb2e$export$622cea445a1c5b7d(element, reverse, orientation = \"horizontal\") {\n let rect = element.getBoundingClientRect();\n if (reverse) return orientation === \"horizontal\" ? rect.right : rect.bottom;\n return orientation === \"horizontal\" ? rect.left : rect.top;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet $bbed8b41f857bcc0$var$transitionsByElement = new Map();\n// A list of callbacks to call once there are no transitioning elements.\nlet $bbed8b41f857bcc0$var$transitionCallbacks = new Set();\nfunction $bbed8b41f857bcc0$var$setupGlobalEvents() {\n if (typeof window === \"undefined\") return;\n let onTransitionStart = (e)=>{\n // Add the transitioning property to the list for this element.\n let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener(\"transitioncancel\", onTransitionEnd);\n }\n transitions.add(e.propertyName);\n };\n let onTransitionEnd = (e)=>{\n // Remove property from list of transitioning properties.\n let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);\n if (!properties) return;\n properties.delete(e.propertyName);\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener(\"transitioncancel\", onTransitionEnd);\n $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);\n }\n // If no transitioning elements, call all of the queued callbacks.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {\n for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)cb();\n $bbed8b41f857bcc0$var$transitionCallbacks.clear();\n }\n };\n document.body.addEventListener(\"transitionrun\", onTransitionStart);\n document.body.addEventListener(\"transitionend\", onTransitionEnd);\n}\nif (typeof document !== \"undefined\") {\n if (document.readyState !== \"loading\") $bbed8b41f857bcc0$var$setupGlobalEvents();\n else document.addEventListener(\"DOMContentLoaded\", $bbed8b41f857bcc0$var$setupGlobalEvents);\n}\nfunction $bbed8b41f857bcc0$export$24490316f764c430(fn) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(()=>{\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) fn();\n else $bbed8b41f857bcc0$var$transitionCallbacks.add(fn);\n });\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst $9cc09df9fd7676be$var$draggingElements = [];\nfunction $9cc09df9fd7676be$export$7bbed75feba39706(props) {\n console.warn(\"useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html\");\n let { containerRef: containerRef , reverse: reverse , orientation: orientation , onHover: onHover , onDrag: onDrag , onPositionChange: onPositionChange , onIncrement: onIncrement , onDecrement: onDecrement , onIncrementToMax: onIncrementToMax , onDecrementToMin: onDecrementToMin , onCollapseToggle: onCollapseToggle } = props;\n let getPosition = (e)=>orientation === \"horizontal\" ? e.clientX : e.clientY;\n let getNextOffset = (e)=>{\n let containerOffset = (0, $ab71dadb03a6fb2e$export$622cea445a1c5b7d)(containerRef.current, reverse, orientation);\n let mouseOffset = getPosition(e);\n let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n let dragging = (0, $12uGp$useRef)(false);\n let prevPosition = (0, $12uGp$useRef)(0);\n // Keep track of the current handlers in a ref so that the events can access them.\n let handlers = (0, $12uGp$useRef)({\n onPositionChange: onPositionChange,\n onDrag: onDrag\n });\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n let onMouseDragged = (e)=>{\n e.preventDefault();\n let nextOffset = getNextOffset(e);\n if (!dragging.current) {\n dragging.current = true;\n if (handlers.current.onDrag) handlers.current.onDrag(true);\n if (handlers.current.onPositionChange) handlers.current.onPositionChange(nextOffset);\n }\n if (prevPosition.current === nextOffset) return;\n prevPosition.current = nextOffset;\n if (onPositionChange) onPositionChange(nextOffset);\n };\n let onMouseUp = (e)=>{\n const target = e.target;\n dragging.current = false;\n let nextOffset = getNextOffset(e);\n if (handlers.current.onDrag) handlers.current.onDrag(false);\n if (handlers.current.onPositionChange) handlers.current.onPositionChange(nextOffset);\n $9cc09df9fd7676be$var$draggingElements.splice($9cc09df9fd7676be$var$draggingElements.indexOf(target), 1);\n window.removeEventListener(\"mouseup\", onMouseUp, false);\n window.removeEventListener(\"mousemove\", onMouseDragged, false);\n };\n let onMouseDown = (e)=>{\n const target = e.currentTarget;\n // If we're already handling dragging on a descendant with useDrag1D, then\n // we don't want to handle the drag motion on this target as well.\n if ($9cc09df9fd7676be$var$draggingElements.some((elt)=>target.contains(elt))) return;\n $9cc09df9fd7676be$var$draggingElements.push(target);\n window.addEventListener(\"mousemove\", onMouseDragged, false);\n window.addEventListener(\"mouseup\", onMouseUp, false);\n };\n let onMouseEnter = ()=>{\n if (onHover) onHover(true);\n };\n let onMouseOut = ()=>{\n if (onHover) onHover(false);\n };\n let onKeyDown = (e)=>{\n switch(e.key){\n case \"Left\":\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n e.preventDefault();\n if (onDecrement && !reverse) onDecrement();\n else if (onIncrement && reverse) onIncrement();\n }\n break;\n case \"Up\":\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n e.preventDefault();\n if (onDecrement && !reverse) onDecrement();\n else if (onIncrement && reverse) onIncrement();\n }\n break;\n case \"Right\":\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n e.preventDefault();\n if (onIncrement && !reverse) onIncrement();\n else if (onDecrement && reverse) onDecrement();\n }\n break;\n case \"Down\":\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n e.preventDefault();\n if (onIncrement && !reverse) onIncrement();\n else if (onDecrement && reverse) onDecrement();\n }\n break;\n case \"Home\":\n e.preventDefault();\n if (onDecrementToMin) onDecrementToMin();\n break;\n case \"End\":\n e.preventDefault();\n if (onIncrementToMax) onIncrementToMax();\n break;\n case \"Enter\":\n e.preventDefault();\n if (onCollapseToggle) onCollapseToggle();\n break;\n }\n };\n return {\n onMouseDown: onMouseDown,\n onMouseEnter: onMouseEnter,\n onMouseOut: onMouseOut,\n onKeyDown: onKeyDown\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $03deb23ff14920c4$export$4eaf04e54aa8eed6() {\n let globalListeners = (0, $12uGp$useRef)(new Map());\n let addGlobalListener = (0, $12uGp$useCallback)((eventTarget, type, listener, options)=>{\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = (options === null || options === void 0 ? void 0 : options.once) ? (...args)=>{\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {\n type: type,\n eventTarget: eventTarget,\n fn: fn,\n options: options\n });\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = (0, $12uGp$useCallback)((eventTarget, type, listener, options)=>{\n var _globalListeners_current_get;\n let fn = ((_globalListeners_current_get = globalListeners.current.get(listener)) === null || _globalListeners_current_get === void 0 ? void 0 : _globalListeners_current_get.fn) || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = (0, $12uGp$useCallback)(()=>{\n globalListeners.current.forEach((value, key)=>{\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [\n removeGlobalListener\n ]);\n // eslint-disable-next-line arrow-body-style\n (0, $12uGp$useEffect)(()=>{\n return removeAllGlobalListeners;\n }, [\n removeAllGlobalListeners\n ]);\n return {\n addGlobalListener: addGlobalListener,\n removeGlobalListener: removeGlobalListener,\n removeAllGlobalListeners: removeAllGlobalListeners\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $313b98861ee5dd6c$export$d6875122194c7b44(props, defaultLabel) {\n let { id: id , \"aria-label\": label , \"aria-labelledby\": labelledBy } = props;\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = (0, $bdb11010cef70236$export$f680877a34711e37)(id);\n if (labelledBy && label) {\n let ids = new Set([\n ...labelledBy.trim().split(/\\s+/),\n id\n ]);\n labelledBy = [\n ...ids\n ].join(\" \");\n } else if (labelledBy) labelledBy = labelledBy.trim().split(/\\s+/).join(\" \");\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) label = defaultLabel;\n return {\n id: id,\n \"aria-label\": label,\n \"aria-labelledby\": labelledBy\n };\n}\n\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $df56164dff5785e2$export$4338b53315abf666(forwardedRef) {\n const objRef = (0, $12uGp$useRef)();\n /**\n * We're using `useLayoutEffect` here instead of `useEffect` because we want\n * to make sure that the `ref` value is up to date before other places in the\n * the execution cycle try to read it.\n */ (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (!forwardedRef) return;\n if (typeof forwardedRef === \"function\") forwardedRef(objRef.current);\n else forwardedRef.current = objRef.current;\n }, [\n forwardedRef\n ]);\n return objRef;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $4f58c5f72bcf79f7$export$496315a1608d9602(effect, dependencies) {\n const isInitialMount = (0, $12uGp$useRef)(true);\n (0, $12uGp$useEffect)(()=>{\n if (isInitialMount.current) isInitialMount.current = false;\n else effect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n\n\n\n\nfunction $9daab02d461809db$var$hasResizeObserver() {\n return typeof window.ResizeObserver !== \"undefined\";\n}\nfunction $9daab02d461809db$export$683480f191c0e3ea(options) {\n const { ref: ref , onResize: onResize } = options;\n (0, $12uGp$useEffect)(()=>{\n let element = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!element) return;\n if (!$9daab02d461809db$var$hasResizeObserver()) {\n window.addEventListener(\"resize\", onResize, false);\n return ()=>{\n window.removeEventListener(\"resize\", onResize, false);\n };\n } else {\n const resizeObserverInstance = new window.ResizeObserver((entries)=>{\n if (!entries.length) return;\n onResize();\n });\n resizeObserverInstance.observe(element);\n return ()=>{\n if (element) resizeObserverInstance.unobserve(element);\n };\n }\n }, [\n onResize,\n ref\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $e7801be82b4b2a53$export$4debdb1a3f0fa79e(context, ref) {\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return ()=>{\n context.ref.current = null;\n };\n }\n }, [\n context,\n ref\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $62d8ded9296f3872$export$cfa2225e87938781(node) {\n while(node && !$62d8ded9296f3872$var$isScrollable(node))node = node.parentElement;\n return node || document.scrollingElement || document.documentElement;\n}\nfunction $62d8ded9296f3872$var$isScrollable(node) {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n// @ts-ignore\nlet $5df64b3807dc15ee$var$visualViewport = typeof window !== \"undefined\" && window.visualViewport;\nfunction $5df64b3807dc15ee$export$d699905dd57c73ca() {\n let [size, setSize] = (0, $12uGp$useState)(()=>$5df64b3807dc15ee$var$getViewportSize());\n (0, $12uGp$useEffect)(()=>{\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = ()=>{\n setSize((size)=>{\n let newSize = $5df64b3807dc15ee$var$getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) return size;\n return newSize;\n });\n };\n if (!$5df64b3807dc15ee$var$visualViewport) window.addEventListener(\"resize\", onResize);\n else $5df64b3807dc15ee$var$visualViewport.addEventListener(\"resize\", onResize);\n return ()=>{\n if (!$5df64b3807dc15ee$var$visualViewport) window.removeEventListener(\"resize\", onResize);\n else $5df64b3807dc15ee$var$visualViewport.removeEventListener(\"resize\", onResize);\n };\n }, []);\n return size;\n}\nfunction $5df64b3807dc15ee$var$getViewportSize() {\n return {\n width: ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.width) || window.innerWidth,\n height: ($5df64b3807dc15ee$var$visualViewport === null || $5df64b3807dc15ee$var$visualViewport === void 0 ? void 0 : $5df64b3807dc15ee$var$visualViewport.height) || window.innerHeight\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nlet $ef06256079686ba0$var$descriptionId = 0;\nconst $ef06256079686ba0$var$descriptionNodes = new Map();\nfunction $ef06256079686ba0$export$f8aeda7b10753fa1(description) {\n let [id, setId] = (0, $12uGp$useState)(undefined);\n (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n if (!description) return;\n let desc = $ef06256079686ba0$var$descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${$ef06256079686ba0$var$descriptionId++}`;\n setId(id);\n let node = document.createElement(\"div\");\n node.id = id;\n node.style.display = \"none\";\n node.textContent = description;\n document.body.appendChild(node);\n desc = {\n refCount: 0,\n element: node\n };\n $ef06256079686ba0$var$descriptionNodes.set(description, desc);\n } else setId(desc.element.id);\n desc.refCount++;\n return ()=>{\n if (--desc.refCount === 0) {\n desc.element.remove();\n $ef06256079686ba0$var$descriptionNodes.delete(description);\n }\n };\n }, [\n description\n ]);\n return {\n \"aria-describedby\": description ? id : undefined\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n var _window_navigator_userAgentData;\n if (typeof window === \"undefined\" || window.navigator == null) return false;\n return ((_window_navigator_userAgentData = window.navigator[\"userAgentData\"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n var _window_navigator_userAgentData;\n return typeof window !== \"undefined\" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator[\"userAgentData\"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$export$9ac100e40613ea10() {\n return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n}\nfunction $c87311424ea30a05$export$186c6964ca17d99() {\n return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n}\nfunction $c87311424ea30a05$export$7bef049ce92e4224() {\n return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n}\nfunction $c87311424ea30a05$export$fedb369cb70207f1() {\n return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n}\nfunction $c87311424ea30a05$export$e1865c3bedcd822b() {\n return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n}\nfunction $c87311424ea30a05$export$78551043582a6a98() {\n return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n}\nfunction $c87311424ea30a05$export$6446a186d09e379e() {\n return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n}\nfunction $c87311424ea30a05$export$a11b0059900ceec8() {\n return $c87311424ea30a05$var$testUserAgent(/Android/i);\n}\n\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $e9faafb641e167db$export$90fc3a17d93f704c(ref, event, handler, options) {\n let handlerRef = (0, $12uGp$useRef)(handler);\n handlerRef.current = handler;\n let isDisabled = handler == null;\n (0, $12uGp$useEffect)(()=>{\n if (isDisabled) return;\n let element = ref.current;\n let handler = (e)=>handlerRef.current.call(this, e);\n element.addEventListener(event, handler, options);\n return ()=>{\n element.removeEventListener(event, handler, options);\n };\n }, [\n ref,\n event,\n options,\n isDisabled\n ]);\n}\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */ function $2f04cbc44ee30ce0$export$53a0910f038337bd(scrollView, element) {\n let offsetX = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, \"left\");\n let offsetY = $2f04cbc44ee30ce0$var$relativeOffset(scrollView, element, \"top\");\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n if (offsetX <= x) x = offsetX;\n else if (offsetX + width > maxX) x += offsetX + width - maxX;\n if (offsetY <= y) y = offsetY;\n else if (offsetY + height > maxY) y += offsetY + height - maxY;\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */ function $2f04cbc44ee30ce0$var$relativeOffset(ancestor, child, axis) {\n const prop = axis === \"left\" ? \"offsetLeft\" : \"offsetTop\";\n let sum = 0;\n while(child.offsetParent){\n sum += child[prop];\n if (child.offsetParent === ancestor) break;\n else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent;\n }\n return sum;\n}\n\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n // JAWS/NVDA with Firefox.\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n // to detect TalkBack virtual clicks.\n if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === \"click\" && event.buttons === 1;\n return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n // Talkback double tap from Windows Firefox touch screen press\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\";\n}\n\n\n\n\nexport {$bdb11010cef70236$export$f680877a34711e37 as useId, $bdb11010cef70236$export$cd8c9cb68f842629 as mergeIds, $bdb11010cef70236$export$b4cc09c592e8fdb8 as useSlotId, $ff5963eb1fccf552$export$e08e3b67e392101e as chain, $3ef42575df84b30b$export$9d1611c77c2fe928 as mergeProps, $5dc95899b306f630$export$c9058316764c140e as mergeRefs, $65484d02dcb7eb3e$export$457c3d6518dd4c6f as filterDOMProps, $7215afc6de606d6b$export$de79e2c695e052f3 as focusWithoutScrolling, $ab71dadb03a6fb2e$export$622cea445a1c5b7d as getOffset, $bbed8b41f857bcc0$export$24490316f764c430 as runAfterTransition, $9cc09df9fd7676be$export$7bbed75feba39706 as useDrag1D, $03deb23ff14920c4$export$4eaf04e54aa8eed6 as useGlobalListeners, $313b98861ee5dd6c$export$d6875122194c7b44 as useLabels, $df56164dff5785e2$export$4338b53315abf666 as useObjectRef, $4f58c5f72bcf79f7$export$496315a1608d9602 as useUpdateEffect, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect, $9daab02d461809db$export$683480f191c0e3ea as useResizeObserver, $e7801be82b4b2a53$export$4debdb1a3f0fa79e as useSyncRef, $62d8ded9296f3872$export$cfa2225e87938781 as getScrollParent, $5df64b3807dc15ee$export$d699905dd57c73ca as useViewportSize, $ef06256079686ba0$export$f8aeda7b10753fa1 as useDescription, $c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $e9faafb641e167db$export$90fc3a17d93f704c as useEvent, $1dbecbe27a04f9af$export$14d238f342723f25 as useValueEffect, $2f04cbc44ee30ce0$export$53a0910f038337bd as scrollIntoView, $4507461a1b870123$re_export$clamp as clamp, $4507461a1b870123$re_export$snapValueToStep as snapValueToStep, $6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=module.js.map\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n","import {mergeProps as $bx7SL$mergeProps, useSyncRef as $bx7SL$useSyncRef, useGlobalListeners as $bx7SL$useGlobalListeners, isVirtualClick as $bx7SL$isVirtualClick, focusWithoutScrolling as $bx7SL$focusWithoutScrolling, isVirtualPointerEvent as $bx7SL$isVirtualPointerEvent, isIOS as $bx7SL$isIOS, runAfterTransition as $bx7SL$runAfterTransition, useLayoutEffect as $bx7SL$useLayoutEffect, isMac as $bx7SL$isMac, useEvent as $bx7SL$useEvent, useDescription as $bx7SL$useDescription} from \"@react-aria/utils\";\nimport $bx7SL$react, {useRef as $bx7SL$useRef, useContext as $bx7SL$useContext, useState as $bx7SL$useState, useMemo as $bx7SL$useMemo, useEffect as $bx7SL$useEffect, useCallback as $bx7SL$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet $14c0b72509d70225$var$state = \"default\";\nlet $14c0b72509d70225$var$savedUserSelect = \"\";\nlet $14c0b72509d70225$var$modifiedElementMap = new WeakMap();\nfunction $14c0b72509d70225$export$16a4697467175487(target) {\n if ((0, $bx7SL$isIOS)()) {\n if ($14c0b72509d70225$var$state === \"default\") {\n $14c0b72509d70225$var$savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = \"none\";\n }\n $14c0b72509d70225$var$state = \"disabled\";\n } else if (target instanceof HTMLElement || target instanceof SVGElement) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n $14c0b72509d70225$var$modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = \"none\";\n }\n}\nfunction $14c0b72509d70225$export$b0d6fa1ab32e3295(target) {\n if ((0, $bx7SL$isIOS)()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if ($14c0b72509d70225$var$state !== \"disabled\") return;\n $14c0b72509d70225$var$state = \"restoring\";\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(()=>{\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n (0, $bx7SL$runAfterTransition)(()=>{\n // Avoid race conditions\n if ($14c0b72509d70225$var$state === \"restoring\") {\n if (document.documentElement.style.webkitUserSelect === \"none\") document.documentElement.style.webkitUserSelect = $14c0b72509d70225$var$savedUserSelect || \"\";\n $14c0b72509d70225$var$savedUserSelect = \"\";\n $14c0b72509d70225$var$state = \"default\";\n }\n });\n }, 300);\n } else if (target instanceof HTMLElement || target instanceof SVGElement) // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n {\n if (target && $14c0b72509d70225$var$modifiedElementMap.has(target)) {\n let targetOldUserSelect = $14c0b72509d70225$var$modifiedElementMap.get(target);\n if (target.style.userSelect === \"none\") target.style.userSelect = targetOldUserSelect;\n if (target.getAttribute(\"style\") === \"\") target.removeAttribute(\"style\");\n $14c0b72509d70225$var$modifiedElementMap.delete(target);\n }\n }\n}\n\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (0, $bx7SL$react).createContext(null);\n$ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = \"PressResponderContext\";\n\n\n\nfunction $f6c31cce2adf654f$var$usePressResponderContext(props) {\n // Consume context from and merge with props.\n let context = (0, $bx7SL$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n if (context) {\n let { register: register , ...contextProps } = context;\n props = (0, $bx7SL$mergeProps)(contextProps, props);\n register();\n }\n (0, $bx7SL$useSyncRef)(context, props.ref);\n return props;\n}\nfunction $f6c31cce2adf654f$export$45712eceda6fad21(props) {\n let { onPress: onPress , onPressChange: onPressChange , onPressStart: onPressStart , onPressEnd: onPressEnd , onPressUp: onPressUp , isDisabled: isDisabled , isPressed: isPressedProp , preventFocusOnPress: preventFocusOnPress , shouldCancelOnPointerExit: shouldCancelOnPointerExit , allowTextSelectionOnPress: allowTextSelectionOnPress , // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _ , ...domProps } = $f6c31cce2adf654f$var$usePressResponderContext(props);\n let propsRef = (0, $bx7SL$useRef)(null);\n propsRef.current = {\n onPress: onPress,\n onPressChange: onPressChange,\n onPressStart: onPressStart,\n onPressEnd: onPressEnd,\n onPressUp: onPressUp,\n isDisabled: isDisabled,\n shouldCancelOnPointerExit: shouldCancelOnPointerExit\n };\n let [isPressed, setPressed] = (0, $bx7SL$useState)(false);\n let ref = (0, $bx7SL$useRef)({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n let { addGlobalListener: addGlobalListener , removeAllGlobalListeners: removeAllGlobalListeners } = (0, $bx7SL$useGlobalListeners)();\n let pressProps = (0, $bx7SL$useMemo)(()=>{\n let state = ref.current;\n let triggerPressStart = (originalEvent, pointerType)=>{\n let { onPressStart: onPressStart , onPressChange: onPressChange , isDisabled: isDisabled } = propsRef.current;\n if (isDisabled || state.didFirePressStart) return;\n if (onPressStart) onPressStart({\n type: \"pressstart\",\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n if (onPressChange) onPressChange(true);\n state.didFirePressStart = true;\n setPressed(true);\n };\n let triggerPressEnd = (originalEvent, pointerType, wasPressed = true)=>{\n let { onPressEnd: onPressEnd , onPressChange: onPressChange , onPress: onPress , isDisabled: isDisabled } = propsRef.current;\n if (!state.didFirePressStart) return;\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n if (onPressEnd) onPressEnd({\n type: \"pressend\",\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n if (onPressChange) onPressChange(false);\n setPressed(false);\n if (onPress && wasPressed && !isDisabled) onPress({\n type: \"press\",\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let triggerPressUp = (originalEvent, pointerType)=>{\n let { onPressUp: onPressUp , isDisabled: isDisabled } = propsRef.current;\n if (isDisabled) return;\n if (onPressUp) onPressUp({\n type: \"pressup\",\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let cancel = (e)=>{\n if (state.isPressed) {\n if (state.isOverTarget) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n }\n };\n let pressProps = {\n onKeyDown (e) {\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && e.currentTarget.contains(e.target)) {\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n e.stopPropagation();\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, \"keyboard\");\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, \"keyup\", onKeyUp, false);\n }\n } else if (e.key === \"Enter\" && $f6c31cce2adf654f$var$isHTMLAnchorLink(e.currentTarget)) // If the target is a link, we won't have handled this above because we want the default\n // browser behavior to open the link when pressing Enter. But we still need to prevent\n // default so that elements above do not also handle it (e.g. table row).\n e.stopPropagation();\n },\n onKeyUp (e) {\n if ($f6c31cce2adf654f$var$isValidKeyboardEvent(e.nativeEvent, e.currentTarget) && !e.repeat && e.currentTarget.contains(e.target)) triggerPressUp($f6c31cce2adf654f$var$createEvent(state.target, e), \"keyboard\");\n },\n onClick (e) {\n if (e && !e.currentTarget.contains(e.target)) return;\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) e.preventDefault();\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === \"virtual\" || (0, $bx7SL$isVirtualClick)(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) (0, $bx7SL$focusWithoutScrolling)(e.currentTarget);\n triggerPressStart(e, \"virtual\");\n triggerPressUp(e, \"virtual\");\n triggerPressEnd(e, \"virtual\");\n }\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n let onKeyUp = (e)=>{\n if (state.isPressed && $f6c31cce2adf654f$var$isValidKeyboardEvent(e, state.target)) {\n if ($f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();\n e.stopPropagation();\n state.isPressed = false;\n let target = e.target;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), \"keyboard\", state.target.contains(target));\n removeAllGlobalListeners();\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target instanceof HTMLElement && state.target.contains(target) && ($f6c31cce2adf654f$var$isHTMLAnchorLink(state.target) || state.target.getAttribute(\"role\") === \"link\")) state.target.click();\n }\n };\n if (typeof PointerEvent !== \"undefined\") {\n pressProps.onPointerDown = (e)=>{\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if ((0, $bx7SL$isVirtualPointerEvent)(e.nativeEvent)) {\n state.pointerType = \"virtual\";\n return;\n }\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget)) e.preventDefault();\n state.pointerType = e.pointerType;\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n if (!isDisabled && !preventFocusOnPress) (0, $bx7SL$focusWithoutScrolling)(e.currentTarget);\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n triggerPressStart(e, state.pointerType);\n addGlobalListener(document, \"pointermove\", onPointerMove, false);\n addGlobalListener(document, \"pointerup\", onPointerUp, false);\n addGlobalListener(document, \"pointercancel\", onPointerCancel, false);\n }\n };\n pressProps.onMouseDown = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget)) e.preventDefault();\n e.stopPropagation();\n }\n };\n pressProps.onPointerUp = (e)=>{\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target) || state.pointerType === \"virtual\") return;\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && $f6c31cce2adf654f$var$isOverTarget(e, e.currentTarget)) triggerPressUp(e, state.pointerType || e.pointerType);\n };\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e)=>{\n if (e.pointerId !== state.activePointerId) return;\n if ($f6c31cce2adf654f$var$isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) cancel(e);\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if ($f6c31cce2adf654f$var$isOverTarget(e, state.target)) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n else if (state.isOverTarget) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n }\n };\n let onPointerCancel = (e)=>{\n cancel(e);\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e)=>{\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if ($f6c31cce2adf654f$var$shouldPreventDefault(e.currentTarget)) e.preventDefault();\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) return;\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = (0, $bx7SL$isVirtualClick)(e.nativeEvent) ? \"virtual\" : \"mouse\";\n if (!isDisabled && !preventFocusOnPress) (0, $bx7SL$focusWithoutScrolling)(e.currentTarget);\n triggerPressStart(e, state.pointerType);\n addGlobalListener(document, \"mouseup\", onMouseUp, false);\n };\n pressProps.onMouseEnter = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n pressProps.onMouseLeave = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) cancel(e);\n }\n };\n pressProps.onMouseUp = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType);\n };\n let onMouseUp = (e)=>{\n // Only handle left clicks\n if (e.button !== 0) return;\n state.isPressed = false;\n removeAllGlobalListeners();\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n if ($f6c31cce2adf654f$var$isOverTarget(e, state.target)) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType);\n else if (state.isOverTarget) triggerPressEnd($f6c31cce2adf654f$var$createEvent(state.target, e), state.pointerType, false);\n state.isOverTarget = false;\n };\n pressProps.onTouchStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n let touch = $f6c31cce2adf654f$var$getTouchFromEvent(e.nativeEvent);\n if (!touch) return;\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = \"touch\";\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) (0, $bx7SL$focusWithoutScrolling)(e.currentTarget);\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$16a4697467175487)(state.target);\n triggerPressStart(e, state.pointerType);\n addGlobalListener(window, \"scroll\", onScroll, true);\n };\n pressProps.onTouchMove = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (!state.isPressed) return;\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) cancel(e);\n }\n };\n pressProps.onTouchEnd = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (!state.isPressed) return;\n let touch = $f6c31cce2adf654f$var$getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && $f6c31cce2adf654f$var$isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) triggerPressEnd(e, state.pointerType, false);\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(state.target);\n removeAllGlobalListeners();\n };\n pressProps.onTouchCancel = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n e.stopPropagation();\n if (state.isPressed) cancel(e);\n };\n let onScroll = (e)=>{\n if (state.isPressed && e.target.contains(state.target)) cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n };\n pressProps.onDragStart = (e)=>{\n if (!e.currentTarget.contains(e.target)) return;\n cancel(e);\n };\n }\n return pressProps;\n }, [\n addGlobalListener,\n isDisabled,\n preventFocusOnPress,\n removeAllGlobalListeners,\n allowTextSelectionOnPress\n ]);\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n (0, $bx7SL$useEffect)(()=>{\n return ()=>{\n if (!allowTextSelectionOnPress) // eslint-disable-next-line react-hooks/exhaustive-deps\n (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)(ref.current.target);\n };\n }, [\n allowTextSelectionOnPress\n ]);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: (0, $bx7SL$mergeProps)(domProps, pressProps)\n };\n}\nfunction $f6c31cce2adf654f$var$isHTMLAnchorLink(target) {\n return target.tagName === \"A\" && target.hasAttribute(\"href\");\n}\nfunction $f6c31cce2adf654f$var$isValidKeyboardEvent(event, currentTarget) {\n const { key: key , code: code } = event;\n const element = currentTarget;\n const role = element.getAttribute(\"role\");\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (key === \"Enter\" || key === \" \" || key === \"Spacebar\" || code === \"Space\") && !(element instanceof HTMLInputElement && !$f6c31cce2adf654f$var$isValidInputKey(element, key) || element instanceof HTMLTextAreaElement || element.isContentEditable) && // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!$f6c31cce2adf654f$var$isHTMLAnchorLink(element) || role === \"button\" && key !== \"Enter\") && // An element with role='link' should only trigger with Enter key\n !(role === \"link\" && key !== \"Enter\");\n}\nfunction $f6c31cce2adf654f$var$getTouchFromEvent(event) {\n const { targetTouches: targetTouches } = event;\n if (targetTouches.length > 0) return targetTouches[0];\n return null;\n}\nfunction $f6c31cce2adf654f$var$getTouchById(event, pointerId) {\n const changedTouches = event.changedTouches;\n for(let i = 0; i < changedTouches.length; i++){\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) return touch;\n }\n return null;\n}\nfunction $f6c31cce2adf654f$var$createEvent(target, e) {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\nfunction $f6c31cce2adf654f$var$getPointClientRect(point) {\n let offsetX = point.width / 2 || point.radiusX || 0;\n let offsetY = point.height / 2 || point.radiusY || 0;\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\nfunction $f6c31cce2adf654f$var$areRectanglesOverlapping(a, b) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) return false;\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) return false;\n return true;\n}\nfunction $f6c31cce2adf654f$var$isOverTarget(point, target) {\n let rect = target.getBoundingClientRect();\n let pointRect = $f6c31cce2adf654f$var$getPointClientRect(point);\n return $f6c31cce2adf654f$var$areRectanglesOverlapping(rect, pointRect);\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefault(target) {\n // We cannot prevent default if the target is a draggable element.\n return !(target instanceof HTMLElement) || !target.draggable;\n}\nfunction $f6c31cce2adf654f$var$shouldPreventDefaultKeyboard(target, key) {\n if (target instanceof HTMLInputElement) return !$f6c31cce2adf654f$var$isValidInputKey(target, key);\n if (target instanceof HTMLButtonElement) return target.type !== \"submit\";\n return true;\n}\nconst $f6c31cce2adf654f$var$nonTextInputTypes = new Set([\n \"checkbox\",\n \"radio\",\n \"range\",\n \"color\",\n \"file\",\n \"image\",\n \"button\",\n \"submit\",\n \"reset\"\n]);\nfunction $f6c31cce2adf654f$var$isValidInputKey(target, key) {\n // Only space should toggle checkboxes and radios, not enter.\n return target.type === \"checkbox\" || target.type === \"radio\" ? key === \" \" : $f6c31cce2adf654f$var$nonTextInputTypes.has(target.type);\n}\n\n\n\nconst $3b117e43dc0ca95d$export$27c701ed9e449e99 = /*#__PURE__*/ (0, $bx7SL$react).forwardRef(({ children: children , ...props }, ref)=>{\n let newRef = (0, $bx7SL$useRef)();\n ref = ref !== null && ref !== void 0 ? ref : newRef;\n let { pressProps: pressProps } = (0, $f6c31cce2adf654f$export$45712eceda6fad21)({\n ...props,\n ref: ref\n });\n let child = (0, $bx7SL$react).Children.only(children);\n return /*#__PURE__*/ (0, $bx7SL$react).cloneElement(child, // @ts-ignore\n {\n ref: ref,\n ...(0, $bx7SL$mergeProps)(child.props, pressProps)\n });\n});\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $f1ab8c75478c6f73$export$3351871ee4b288b8 = /*#__PURE__*/ (0, $bx7SL$react).forwardRef(({ children: children , ...props }, ref)=>{\n let isRegistered = (0, $bx7SL$useRef)(false);\n let prevContext = (0, $bx7SL$useContext)((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5));\n let context = (0, $bx7SL$mergeProps)(prevContext || {}, {\n ...props,\n ref: ref || (prevContext === null || prevContext === void 0 ? void 0 : prevContext.ref),\n register () {\n isRegistered.current = true;\n if (prevContext) prevContext.register();\n }\n });\n (0, $bx7SL$useSyncRef)(prevContext, ref);\n (0, $bx7SL$useEffect)(()=>{\n if (!isRegistered.current) console.warn(\"A PressResponder was rendered without a pressable child. Either call the usePress hook, or wrap your DOM node with component.\");\n }, []);\n return /*#__PURE__*/ (0, $bx7SL$react).createElement((0, $ae1eeba8b9eafd08$export$5165eccb35aaadb5).Provider, {\n value: context\n }, children);\n});\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n isDefaultPrevented() {\n return this.nativeEvent.defaultPrevented;\n }\n preventDefault() {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n stopPropagation() {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = ()=>true;\n }\n isPropagationStopped() {\n return false;\n }\n persist() {}\n constructor(type, nativeEvent){\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target;\n this.currentTarget = nativeEvent.currentTarget;\n this.relatedTarget = nativeEvent.relatedTarget;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n let stateRef = (0, $bx7SL$useRef)({\n isFocused: false,\n onBlur: onBlur,\n observer: null\n });\n stateRef.current.onBlur = onBlur;\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n (0, $bx7SL$useLayoutEffect)(()=>{\n const state = stateRef.current;\n return ()=>{\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n // This function is called during a React onFocus event.\n return (0, $bx7SL$useCallback)((e)=>{\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n stateRef.current.isFocused = true;\n let target = e.target;\n let onBlurHandler = (e)=>{\n var // For backward compatibility, dispatch a (fake) React synthetic event.\n _stateRef_current, _stateRef_current_onBlur;\n stateRef.current.isFocused = false;\n if (target.disabled) (_stateRef_current_onBlur = (_stateRef_current = stateRef.current).onBlur) === null || _stateRef_current_onBlur === void 0 ? void 0 : _stateRef_current_onBlur.call(_stateRef_current, new $8a9cb279dc87e130$export$905e7fc544a71f36(\"blur\", e));\n // We no longer need the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n target.addEventListener(\"focusout\", onBlurHandler, {\n once: true\n });\n stateRef.current.observer = new MutationObserver(()=>{\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer.disconnect();\n target.dispatchEvent(new FocusEvent(\"blur\"));\n target.dispatchEvent(new FocusEvent(\"focusout\", {\n bubbles: true\n }));\n }\n });\n stateRef.current.observer.observe(target, {\n attributes: true,\n attributeFilter: [\n \"disabled\"\n ]\n });\n }\n }, []);\n}\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n let { isDisabled: isDisabled , onFocus: onFocusProp , onBlur: onBlurProp , onFocusChange: onFocusChange } = props;\n const onBlur = (0, $bx7SL$useCallback)((e)=>{\n if (e.target === e.currentTarget) {\n if (onBlurProp) onBlurProp(e);\n if (onFocusChange) onFocusChange(false);\n return true;\n }\n }, [\n onBlurProp,\n onFocusChange\n ]);\n const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n const onFocus = (0, $bx7SL$useCallback)((e)=>{\n if (e.target === e.currentTarget) {\n if (onFocusProp) onFocusProp(e);\n if (onFocusChange) onFocusChange(true);\n onSyntheticFocus(e);\n }\n }, [\n onFocusChange,\n onFocusProp,\n onSyntheticFocus\n ]);\n return {\n focusProps: {\n onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : null\n }\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$var$hasSetupGlobalListeners = false;\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || !(0, $bx7SL$isMac)() && e.altKey || e.ctrlKey || e.key === \"Control\" || e.key === \"Shift\" || e.key === \"Meta\");\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n if ($507fabe10e71c6fb$var$isValidKey(e)) {\n $507fabe10e71c6fb$var$currentModality = \"keyboard\";\n $507fabe10e71c6fb$var$triggerChangeHandlers(\"keyboard\", e);\n }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n $507fabe10e71c6fb$var$currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$triggerChangeHandlers(\"pointer\", e);\n }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n if ((0, $bx7SL$isVirtualClick)(e)) {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n $507fabe10e71c6fb$var$currentModality = \"virtual\";\n }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) return;\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n $507fabe10e71c6fb$var$currentModality = \"virtual\";\n $507fabe10e71c6fb$var$triggerChangeHandlers(\"virtual\", e);\n }\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents() {\n if (typeof window === \"undefined\" || $507fabe10e71c6fb$var$hasSetupGlobalListeners) return;\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function() {\n $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n document.addEventListener(\"keydown\", $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n document.addEventListener(\"keyup\", $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n document.addEventListener(\"click\", $507fabe10e71c6fb$var$handleClickEvent, true);\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener(\"focus\", $507fabe10e71c6fb$var$handleFocusEvent, true);\n window.addEventListener(\"blur\", $507fabe10e71c6fb$var$handleWindowBlur, false);\n if (typeof PointerEvent !== \"undefined\") {\n document.addEventListener(\"pointerdown\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n document.addEventListener(\"pointermove\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n document.addEventListener(\"pointerup\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n } else {\n document.addEventListener(\"mousedown\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n document.addEventListener(\"mousemove\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n document.addEventListener(\"mouseup\", $507fabe10e71c6fb$var$handlePointerEvent, true);\n }\n $507fabe10e71c6fb$var$hasSetupGlobalListeners = true;\n}\nif (typeof document !== \"undefined\") {\n if (document.readyState !== \"loading\") $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n else document.addEventListener(\"DOMContentLoaded\", $507fabe10e71c6fb$var$setupGlobalFocusEvents);\n}\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n return $507fabe10e71c6fb$var$currentModality !== \"pointer\";\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n $507fabe10e71c6fb$var$currentModality = modality;\n $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n let [modality, setModality] = (0, $bx7SL$useState)($507fabe10e71c6fb$var$currentModality);\n (0, $bx7SL$useEffect)(()=>{\n let handler = ()=>{\n setModality($507fabe10e71c6fb$var$currentModality);\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n }, []);\n return modality;\n}\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n return !(isTextInput && modality === \"keyboard\" && e instanceof KeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n let { isTextInput: isTextInput , autoFocus: autoFocus } = props;\n let [isFocusVisibleState, setFocusVisible] = (0, $bx7SL$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n setFocusVisible(isFocusVisible);\n }, [\n isTextInput\n ], {\n isTextInput: isTextInput\n });\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n (0, $bx7SL$useEffect)(()=>{\n let handler = (modality, e)=>{\n if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(opts === null || opts === void 0 ? void 0 : opts.isTextInput, modality, e)) return;\n fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n };\n $507fabe10e71c6fb$var$changeHandlers.add(handler);\n return ()=>{\n $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n let { isDisabled: isDisabled , onBlurWithin: onBlurWithin , onFocusWithin: onFocusWithin , onFocusWithinChange: onFocusWithinChange } = props;\n let state = (0, $bx7SL$useRef)({\n isFocusWithin: false\n });\n let onBlur = (0, $bx7SL$useCallback)((e)=>{\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n state.current.isFocusWithin = false;\n if (onBlurWithin) onBlurWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [\n onBlurWithin,\n onFocusWithinChange,\n state\n ]);\n let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n let onFocus = (0, $bx7SL$useCallback)((e)=>{\n if (!state.current.isFocusWithin) {\n if (onFocusWithin) onFocusWithin(e);\n if (onFocusWithinChange) onFocusWithinChange(true);\n state.current.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n }, [\n onFocusWithin,\n onFocusWithinChange,\n onSyntheticFocus\n ]);\n if (isDisabled) return {\n focusWithinProps: {\n onFocus: null,\n onBlur: null\n }\n };\n return {\n focusWithinProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(()=>{\n $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n if (e.pointerType === \"touch\") $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n if (typeof document === \"undefined\") return;\n if (typeof PointerEvent !== \"undefined\") document.addEventListener(\"pointerup\", $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.addEventListener(\"touchend\", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n $6179b936705e76d3$var$hoverCount++;\n return ()=>{\n $6179b936705e76d3$var$hoverCount--;\n if ($6179b936705e76d3$var$hoverCount > 0) return;\n if (typeof PointerEvent !== \"undefined\") document.removeEventListener(\"pointerup\", $6179b936705e76d3$var$handleGlobalPointerEvent);\n else document.removeEventListener(\"touchend\", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n let { onHoverStart: onHoverStart , onHoverChange: onHoverChange , onHoverEnd: onHoverEnd , isDisabled: isDisabled } = props;\n let [isHovered, setHovered] = (0, $bx7SL$useState)(false);\n let state = (0, $bx7SL$useRef)({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: \"\",\n target: null\n }).current;\n (0, $bx7SL$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n let { hoverProps: hoverProps , triggerHoverEnd: triggerHoverEnd } = (0, $bx7SL$useMemo)(()=>{\n let triggerHoverStart = (event, pointerType)=>{\n state.pointerType = pointerType;\n if (isDisabled || pointerType === \"touch\" || state.isHovered || !event.currentTarget.contains(event.target)) return;\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n if (onHoverStart) onHoverStart({\n type: \"hoverstart\",\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(true);\n setHovered(true);\n };\n let triggerHoverEnd = (event, pointerType)=>{\n state.pointerType = \"\";\n state.target = null;\n if (pointerType === \"touch\" || !state.isHovered) return;\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) onHoverEnd({\n type: \"hoverend\",\n target: target,\n pointerType: pointerType\n });\n if (onHoverChange) onHoverChange(false);\n setHovered(false);\n };\n let hoverProps = {};\n if (typeof PointerEvent !== \"undefined\") {\n hoverProps.onPointerEnter = (e)=>{\n if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === \"mouse\") return;\n triggerHoverStart(e, e.pointerType);\n };\n hoverProps.onPointerLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n };\n } else {\n hoverProps.onTouchStart = ()=>{\n state.ignoreEmulatedMouseEvents = true;\n };\n hoverProps.onMouseEnter = (e)=>{\n if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, \"mouse\");\n state.ignoreEmulatedMouseEvents = false;\n };\n hoverProps.onMouseLeave = (e)=>{\n if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, \"mouse\");\n };\n }\n return {\n hoverProps: hoverProps,\n triggerHoverEnd: triggerHoverEnd\n };\n }, [\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled,\n state\n ]);\n (0, $bx7SL$useEffect)(()=>{\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) triggerHoverEnd({\n currentTarget: state.target\n }, state.pointerType);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled\n ]);\n return {\n hoverProps: hoverProps,\n isHovered: isHovered\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nfunction $e0b6e0b68ec7f50f$export$872b660ac5a1ff98(props) {\n let { ref: ref , onInteractOutside: onInteractOutside , isDisabled: isDisabled , onInteractOutsideStart: onInteractOutsideStart } = props;\n let stateRef = (0, $bx7SL$useRef)({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside: onInteractOutside,\n onInteractOutsideStart: onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n (0, $bx7SL$useEffect)(()=>{\n if (isDisabled) return;\n let onPointerDown = (e)=>{\n if ($e0b6e0b68ec7f50f$var$isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) state.onInteractOutsideStart(e);\n state.isPointerDown = true;\n }\n };\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== \"undefined\") {\n let onPointerUp = (e)=>{\n if (state.isPointerDown && state.onInteractOutside && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n // changing these to capture phase fixed combobox\n document.addEventListener(\"pointerdown\", onPointerDown, true);\n document.addEventListener(\"pointerup\", onPointerUp, true);\n return ()=>{\n document.removeEventListener(\"pointerdown\", onPointerDown, true);\n document.removeEventListener(\"pointerup\", onPointerUp, true);\n };\n } else {\n let onMouseUp = (e)=>{\n if (state.ignoreEmulatedMouseEvents) state.ignoreEmulatedMouseEvents = false;\n else if (state.isPointerDown && state.onInteractOutside && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n let onTouchEnd = (e)=>{\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && $e0b6e0b68ec7f50f$var$isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown, true);\n document.addEventListener(\"mouseup\", onMouseUp, true);\n document.addEventListener(\"touchstart\", onPointerDown, true);\n document.addEventListener(\"touchend\", onTouchEnd, true);\n return ()=>{\n document.removeEventListener(\"mousedown\", onPointerDown, true);\n document.removeEventListener(\"mouseup\", onMouseUp, true);\n document.removeEventListener(\"touchstart\", onPointerDown, true);\n document.removeEventListener(\"touchend\", onTouchEnd, true);\n };\n }\n }, [\n ref,\n state,\n isDisabled\n ]);\n}\nfunction $e0b6e0b68ec7f50f$var$isValidEvent(event, ref) {\n if (event.button > 0) return false;\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) return false;\n }\n return ref.current && !ref.current.contains(event.target);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $93925083ecbb358c$export$48d1ea6320830260(handler) {\n if (!handler) return;\n let shouldStopPropagation = true;\n return (e)=>{\n let event = {\n ...e,\n preventDefault () {\n e.preventDefault();\n },\n isDefaultPrevented () {\n return e.isDefaultPrevented();\n },\n stopPropagation () {\n console.error(\"stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.\");\n },\n continuePropagation () {\n shouldStopPropagation = false;\n }\n };\n handler(event);\n if (shouldStopPropagation) e.stopPropagation();\n };\n}\n\n\nfunction $46d819fcbaf35654$export$8f71654801c2f7cd(props) {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyDown),\n onKeyUp: (0, $93925083ecbb358c$export$48d1ea6320830260)(props.onKeyUp)\n }\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $e8a7022cf87cba2a$export$36da96379f79f245(props) {\n let { onMoveStart: onMoveStart , onMove: onMove , onMoveEnd: onMoveEnd } = props;\n let state = (0, $bx7SL$useRef)({\n didMove: false,\n lastPosition: null,\n id: null\n });\n let { addGlobalListener: addGlobalListener , removeGlobalListener: removeGlobalListener } = (0, $bx7SL$useGlobalListeners)();\n let moveProps = (0, $bx7SL$useMemo)(()=>{\n let moveProps = {};\n let start = ()=>{\n (0, $14c0b72509d70225$export$16a4697467175487)();\n state.current.didMove = false;\n };\n let move = (originalEvent, pointerType, deltaX, deltaY)=>{\n if (deltaX === 0 && deltaY === 0) return;\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({\n type: \"movestart\",\n pointerType: pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove({\n type: \"move\",\n pointerType: pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let end = (originalEvent, pointerType)=>{\n (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)();\n if (state.current.didMove) onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({\n type: \"moveend\",\n pointerType: pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n if (typeof PointerEvent === \"undefined\") {\n let onMouseMove = (e)=>{\n if (e.button === 0) {\n move(e, \"mouse\", e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n let onMouseUp = (e)=>{\n if (e.button === 0) {\n end(e, \"mouse\");\n removeGlobalListener(window, \"mousemove\", onMouseMove, false);\n removeGlobalListener(window, \"mouseup\", onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e)=>{\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n addGlobalListener(window, \"mousemove\", onMouseMove, false);\n addGlobalListener(window, \"mouseup\", onMouseUp, false);\n }\n };\n let onTouchMove = (e)=>{\n let touch = [\n ...e.changedTouches\n ].findIndex(({ identifier: identifier })=>identifier === state.current.id);\n if (touch >= 0) {\n let { pageX: pageX , pageY: pageY } = e.changedTouches[touch];\n move(e, \"touch\", pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: pageX,\n pageY: pageY\n };\n }\n };\n let onTouchEnd = (e)=>{\n let touch = [\n ...e.changedTouches\n ].findIndex(({ identifier: identifier })=>identifier === state.current.id);\n if (touch >= 0) {\n end(e, \"touch\");\n state.current.id = null;\n removeGlobalListener(window, \"touchmove\", onTouchMove);\n removeGlobalListener(window, \"touchend\", onTouchEnd);\n removeGlobalListener(window, \"touchcancel\", onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e)=>{\n if (e.changedTouches.length === 0 || state.current.id != null) return;\n let { pageX: pageX , pageY: pageY , identifier: identifier } = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: pageX,\n pageY: pageY\n };\n state.current.id = identifier;\n addGlobalListener(window, \"touchmove\", onTouchMove, false);\n addGlobalListener(window, \"touchend\", onTouchEnd, false);\n addGlobalListener(window, \"touchcancel\", onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e)=>{\n if (e.pointerId === state.current.id) {\n let pointerType = e.pointerType || \"mouse\";\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n let onPointerUp = (e)=>{\n if (e.pointerId === state.current.id) {\n let pointerType = e.pointerType || \"mouse\";\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, \"pointermove\", onPointerMove, false);\n removeGlobalListener(window, \"pointerup\", onPointerUp, false);\n removeGlobalListener(window, \"pointercancel\", onPointerUp, false);\n }\n };\n moveProps.onPointerDown = (e)=>{\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n state.current.id = e.pointerId;\n addGlobalListener(window, \"pointermove\", onPointerMove, false);\n addGlobalListener(window, \"pointerup\", onPointerUp, false);\n addGlobalListener(window, \"pointercancel\", onPointerUp, false);\n }\n };\n }\n let triggerKeyboardMove = (e, deltaX, deltaY)=>{\n start();\n move(e, \"keyboard\", deltaX, deltaY);\n end(e, \"keyboard\");\n };\n moveProps.onKeyDown = (e)=>{\n switch(e.key){\n case \"Left\":\n case \"ArrowLeft\":\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case \"Right\":\n case \"ArrowRight\":\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case \"Up\":\n case \"ArrowUp\":\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case \"Down\":\n case \"ArrowDown\":\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n return moveProps;\n }, [\n state,\n onMoveStart,\n onMove,\n onMoveEnd,\n addGlobalListener,\n removeGlobalListener\n ]);\n return {\n moveProps: moveProps\n };\n}\n\n\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $7d0a636d7a4dcefd$export$2123ff2b87c81ca(props, ref) {\n let { onScroll: onScroll , isDisabled: isDisabled } = props;\n let onScrollHandler = (0, $bx7SL$useCallback)((e)=>{\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) return;\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n if (onScroll) onScroll({\n deltaX: e.deltaX,\n deltaY: e.deltaY\n });\n }, [\n onScroll\n ]);\n (0, $bx7SL$useEvent)(ref, \"wheel\", isDisabled ? null : onScrollHandler);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $8a26561d2877236e$var$DEFAULT_THRESHOLD = 500;\nfunction $8a26561d2877236e$export$c24ed0104d07eab9(props) {\n let { isDisabled: isDisabled , onLongPressStart: onLongPressStart , onLongPressEnd: onLongPressEnd , onLongPress: onLongPress , threshold: threshold = $8a26561d2877236e$var$DEFAULT_THRESHOLD , accessibilityDescription: accessibilityDescription } = props;\n const timeRef = (0, $bx7SL$useRef)(null);\n let { addGlobalListener: addGlobalListener , removeGlobalListener: removeGlobalListener } = (0, $bx7SL$useGlobalListeners)();\n let { pressProps: pressProps } = (0, $f6c31cce2adf654f$export$45712eceda6fad21)({\n isDisabled: isDisabled,\n onPressStart (e) {\n if (e.pointerType === \"mouse\" || e.pointerType === \"touch\") {\n if (onLongPressStart) onLongPressStart({\n ...e,\n type: \"longpressstart\"\n });\n timeRef.current = setTimeout(()=>{\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent(\"pointercancel\", {\n bubbles: true\n }));\n if (onLongPress) onLongPress({\n ...e,\n type: \"longpress\"\n });\n timeRef.current = null;\n }, threshold);\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === \"touch\") {\n let onContextMenu = (e)=>{\n e.preventDefault();\n };\n addGlobalListener(e.target, \"contextmenu\", onContextMenu, {\n once: true\n });\n addGlobalListener(window, \"pointerup\", ()=>{\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(()=>{\n removeGlobalListener(e.target, \"contextmenu\", onContextMenu);\n }, 30);\n }, {\n once: true\n });\n }\n }\n },\n onPressEnd (e) {\n if (timeRef.current) clearTimeout(timeRef.current);\n if (onLongPressEnd && (e.pointerType === \"mouse\" || e.pointerType === \"touch\")) onLongPressEnd({\n ...e,\n type: \"longpressend\"\n });\n }\n });\n let descriptionProps = (0, $bx7SL$useDescription)(onLongPress && !isDisabled ? accessibilityDescription : null);\n return {\n longPressProps: (0, $bx7SL$mergeProps)(pressProps, descriptionProps)\n };\n}\n\n\n\n\nexport {$3b117e43dc0ca95d$export$27c701ed9e449e99 as Pressable, $f1ab8c75478c6f73$export$3351871ee4b288b8 as PressResponder, $a1ea59d68270f0dd$export$f8168d8dd8fd66e6 as useFocus, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener, $9ab94262bd0047c7$export$420e68273165f4ec as useFocusWithin, $6179b936705e76d3$export$ae780daf29e6d456 as useHover, $e0b6e0b68ec7f50f$export$872b660ac5a1ff98 as useInteractOutside, $46d819fcbaf35654$export$8f71654801c2f7cd as useKeyboard, $e8a7022cf87cba2a$export$36da96379f79f245 as useMove, $f6c31cce2adf654f$export$45712eceda6fad21 as usePress, $7d0a636d7a4dcefd$export$2123ff2b87c81ca as useScrollWheel, $8a26561d2877236e$export$c24ed0104d07eab9 as useLongPress};\n//# sourceMappingURL=module.js.map\n","import $6nfFC$swchelperssrc_define_propertymjs from \"@swc/helpers/src/_define_property.mjs\";\nimport $6nfFC$react, {useRef as $6nfFC$useRef, useContext as $6nfFC$useContext, useMemo as $6nfFC$useMemo, useEffect as $6nfFC$useEffect, useState as $6nfFC$useState, useCallback as $6nfFC$useCallback} from \"react\";\nimport {useLayoutEffect as $6nfFC$useLayoutEffect, runAfterTransition as $6nfFC$runAfterTransition, focusWithoutScrolling as $6nfFC$focusWithoutScrolling, mergeProps as $6nfFC$mergeProps, useSyncRef as $6nfFC$useSyncRef} from \"@react-aria/utils\";\nimport {getInteractionModality as $6nfFC$getInteractionModality, isFocusVisible as $6nfFC$isFocusVisible, useFocusVisibleListener as $6nfFC$useFocusVisibleListener, useFocus as $6nfFC$useFocus, useFocusWithin as $6nfFC$useFocusWithin, useKeyboard as $6nfFC$useKeyboard} from \"@react-aria/interactions\";\nimport $6nfFC$clsx from \"clsx\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $6a99195332edec8b$export$80f3e147d781571c(element) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if ((0, $6nfFC$getInteractionModality)() === \"virtual\") {\n let lastFocusedElement = document.activeElement;\n (0, $6nfFC$runAfterTransition)(()=>{\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) (0, $6nfFC$focusWithoutScrolling)(element);\n });\n } else (0, $6nfFC$focusWithoutScrolling)(element);\n}\n\n\n/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $645f2e67b85a24c9$var$isStyleVisible(element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) return false;\n let { display: display , visibility: visibility } = element.style;\n let isVisible = display !== \"none\" && visibility !== \"hidden\" && visibility !== \"collapse\";\n if (isVisible) {\n const { getComputedStyle: getComputedStyle } = element.ownerDocument.defaultView;\n let { display: computedDisplay , visibility: computedVisibility } = getComputedStyle(element);\n isVisible = computedDisplay !== \"none\" && computedVisibility !== \"hidden\" && computedVisibility !== \"collapse\";\n }\n return isVisible;\n}\nfunction $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) {\n return !element.hasAttribute(\"hidden\") && (element.nodeName === \"DETAILS\" && childElement && childElement.nodeName !== \"SUMMARY\" ? element.hasAttribute(\"open\") : true);\n}\nfunction $645f2e67b85a24c9$export$e989c0fffaa6b27a(element, childElement) {\n return element.nodeName !== \"#comment\" && $645f2e67b85a24c9$var$isStyleVisible(element) && $645f2e67b85a24c9$var$isAttributeVisible(element, childElement) && (!element.parentElement || $645f2e67b85a24c9$export$e989c0fffaa6b27a(element.parentElement, element));\n}\n\n\n\n\nconst $9bf71ea28793e738$var$FocusContext = /*#__PURE__*/ (0, $6nfFC$react).createContext(null);\nlet $9bf71ea28793e738$var$activeScope = null;\nfunction $9bf71ea28793e738$export$20e40289641fbbb6(props) {\n let { children: children , contain: contain , restoreFocus: restoreFocus , autoFocus: autoFocus } = props;\n let startRef = (0, $6nfFC$useRef)();\n let endRef = (0, $6nfFC$useRef)();\n let scopeRef = (0, $6nfFC$useRef)([]);\n let ctx = (0, $6nfFC$useContext)($9bf71ea28793e738$var$FocusContext);\n var _ctx_scopeRef;\n // The parent scope is based on the JSX tree, using context.\n // However, if a new scope mounts outside the active scope (e.g. DialogContainer launched from a menu),\n // we want the parent scope to be the active scope instead.\n let ctxParent = (_ctx_scopeRef = ctx === null || ctx === void 0 ? void 0 : ctx.scopeRef) !== null && _ctx_scopeRef !== void 0 ? _ctx_scopeRef : null;\n let parentScope = (0, $6nfFC$useMemo)(()=>$9bf71ea28793e738$var$activeScope && $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope) && !$9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, ctxParent) ? $9bf71ea28793e738$var$activeScope : ctxParent, [\n ctxParent\n ]);\n (0, $6nfFC$useLayoutEffect)(()=>{\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while(node && node !== endRef.current){\n nodes.push(node);\n node = node.nextSibling;\n }\n scopeRef.current = nodes;\n }, [\n children,\n parentScope\n ]);\n // add to the focus scope tree in render order because useEffects/useLayoutEffects run children first whereas render runs parent first\n // which matters when constructing a tree\n if ($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parentScope) && !$9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef)) $9bf71ea28793e738$export$d06fae2ee68b101e.addTreeNode(scopeRef, parentScope);\n let node = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef);\n node.contain = contain;\n $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain);\n $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain);\n $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus);\n // this layout effect needs to run last so that focusScopeTree cleanup happens at the last moment possible\n (0, $6nfFC$useLayoutEffect)(()=>{\n if (scopeRef) return ()=>{\n // Scope may have been re-parented.\n let parentScope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef).parent.scopeRef;\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if ((scopeRef === $9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope(scopeRef, $9bf71ea28793e738$var$activeScope)) && (!parentScope || $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(parentScope))) $9bf71ea28793e738$var$activeScope = parentScope;\n $9bf71ea28793e738$export$d06fae2ee68b101e.removeTreeNode(scopeRef);\n };\n }, [\n scopeRef,\n parentScope\n ]);\n let focusManager = $9bf71ea28793e738$var$createFocusManagerForScope(scopeRef);\n return /*#__PURE__*/ (0, $6nfFC$react).createElement($9bf71ea28793e738$var$FocusContext.Provider, {\n value: {\n scopeRef: scopeRef,\n focusManager: focusManager\n }\n }, /*#__PURE__*/ (0, $6nfFC$react).createElement(\"span\", {\n \"data-focus-scope-start\": true,\n hidden: true,\n ref: startRef\n }), children, /*#__PURE__*/ (0, $6nfFC$react).createElement(\"span\", {\n \"data-focus-scope-end\": true,\n hidden: true,\n ref: endRef\n }));\n}\nfunction $9bf71ea28793e738$export$10c5169755ce7bd7() {\n var _useContext;\n return (_useContext = (0, $6nfFC$useContext)($9bf71ea28793e738$var$FocusContext)) === null || _useContext === void 0 ? void 0 : _useContext.focusManager;\n}\nfunction $9bf71ea28793e738$var$createFocusManagerForScope(scopeRef) {\n return {\n focusNext (opts = {}) {\n let scope = scopeRef.current;\n let { from: from , tabbable: tabbable , wrap: wrap , accept: accept } = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = {}) {\n let scope = scopeRef.current;\n let { from: from , tabbable: tabbable , wrap: wrap , accept: accept } = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = $9bf71ea28793e738$var$isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode();\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n },\n focusFirst (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable , accept: accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = {}) {\n let scope = scopeRef.current;\n let { tabbable: tabbable , accept: accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: tabbable,\n accept: accept\n }, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode();\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n }\n };\n}\nconst $9bf71ea28793e738$var$focusableElements = [\n \"input:not([disabled]):not([type=hidden])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"a[href]\",\n \"area[href]\",\n \"summary\",\n \"iframe\",\n \"object\",\n \"embed\",\n \"audio[controls]\",\n \"video[controls]\",\n \"[contenteditable]\"\n];\nconst $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(\":not([hidden]),\") + \",[tabindex]:not([disabled]):not([hidden])\";\n$9bf71ea28793e738$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR = $9bf71ea28793e738$var$focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\nfunction $9bf71ea28793e738$var$getScopeRoot(scope) {\n return scope[0].parentElement;\n}\nfunction $9bf71ea28793e738$var$shouldContainFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.contain) return false;\n scope = scope.parent;\n }\n return true;\n}\nfunction $9bf71ea28793e738$var$useFocusContainment(scopeRef, contain) {\n let focusedNode = (0, $6nfFC$useRef)();\n let raf = (0, $6nfFC$useRef)(null);\n (0, $6nfFC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n if (!contain) {\n // if contain was changed, then we should cancel any ongoing waits to pull focus back into containment\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n return;\n }\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e)=>{\n if (e.key !== \"Tab\" || e.altKey || e.ctrlKey || e.metaKey || !$9bf71ea28793e738$var$shouldContainFocus(scopeRef)) return;\n let focusedElement = document.activeElement;\n let scope = scopeRef.current;\n if (!$9bf71ea28793e738$var$isElementInScope(focusedElement, scope)) return;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: true\n }, scope);\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n }\n e.preventDefault();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n };\n let onFocus = (e)=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if ((!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) && $9bf71ea28793e738$var$isElementInScope(e.target, scopeRef.current)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) focusedNode.current.focus();\n else if ($9bf71ea28793e738$var$activeScope) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n } else if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef)) focusedNode.current = e.target;\n };\n let onBlur = (e)=>{\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(()=>{\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if ($9bf71ea28793e738$var$shouldContainFocus(scopeRef) && !$9bf71ea28793e738$var$isElementInChildScope(document.activeElement, scopeRef)) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n if (document.body.contains(e.target)) {\n focusedNode.current = e.target;\n focusedNode.current.focus();\n } else if ($9bf71ea28793e738$var$activeScope) $9bf71ea28793e738$var$focusFirstInScope($9bf71ea28793e738$var$activeScope.current);\n }\n });\n };\n document.addEventListener(\"keydown\", onKeyDown, false);\n document.addEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.addEventListener(\"focusin\", onFocus, false));\n scope.forEach((element)=>element.addEventListener(\"focusout\", onBlur, false));\n return ()=>{\n document.removeEventListener(\"keydown\", onKeyDown, false);\n document.removeEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.removeEventListener(\"focusin\", onFocus, false));\n scope.forEach((element)=>element.removeEventListener(\"focusout\", onBlur, false));\n };\n }, [\n scopeRef,\n contain\n ]);\n // eslint-disable-next-line arrow-body-style\n (0, $6nfFC$useEffect)(()=>{\n return ()=>{\n if (raf.current) cancelAnimationFrame(raf.current);\n };\n }, [\n raf\n ]);\n}\nfunction $9bf71ea28793e738$var$isElementInAnyScope(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element);\n}\nfunction $9bf71ea28793e738$var$isElementInScope(element, scope) {\n return scope.some((node)=>node.contains(element));\n}\nfunction $9bf71ea28793e738$var$isElementInChildScope(element, scope = null) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let { scopeRef: s } of $9bf71ea28793e738$export$d06fae2ee68b101e.traverse($9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope))){\n if ($9bf71ea28793e738$var$isElementInScope(element, s.current)) return true;\n }\n return false;\n}\nfunction $9bf71ea28793e738$export$1258395f99bf9cbf(element) {\n return $9bf71ea28793e738$var$isElementInChildScope(element, $9bf71ea28793e738$var$activeScope);\n}\nfunction $9bf71ea28793e738$var$isAncestorScope(ancestor, scope) {\n var _focusScopeTree_getTreeNode;\n let parent = (_focusScopeTree_getTreeNode = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scope)) === null || _focusScopeTree_getTreeNode === void 0 ? void 0 : _focusScopeTree_getTreeNode.parent;\n while(parent){\n if (parent.scopeRef === ancestor) return true;\n parent = parent.parent;\n }\n return false;\n}\nfunction $9bf71ea28793e738$var$focusElement(element, scroll = false) {\n if (element != null && !scroll) try {\n (0, $6a99195332edec8b$export$80f3e147d781571c)(element);\n } catch (err) {\n // ignore\n }\n else if (element != null) try {\n element.focus();\n } catch (err1) {\n // ignore\n }\n}\nfunction $9bf71ea28793e738$var$focusFirstInScope(scope, tabbable = true) {\n let sentinel = scope[0].previousElementSibling;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: tabbable\n }, scope);\n walker.currentNode = sentinel;\n let nextNode = walker.nextNode();\n // If the scope does not contain a tabbable element, use the first focusable element.\n if (tabbable && !nextNode) {\n walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa($9bf71ea28793e738$var$getScopeRoot(scope), {\n tabbable: false\n }, scope);\n walker.currentNode = sentinel;\n nextNode = walker.nextNode();\n }\n $9bf71ea28793e738$var$focusElement(nextNode);\n}\nfunction $9bf71ea28793e738$var$useAutoFocus(scopeRef, autoFocus) {\n const autoFocusRef = (0, $6nfFC$react).useRef(autoFocus);\n (0, $6nfFC$useEffect)(()=>{\n if (autoFocusRef.current) {\n $9bf71ea28793e738$var$activeScope = scopeRef;\n if (!$9bf71ea28793e738$var$isElementInScope(document.activeElement, $9bf71ea28793e738$var$activeScope.current)) $9bf71ea28793e738$var$focusFirstInScope(scopeRef.current);\n }\n autoFocusRef.current = false;\n }, [\n scopeRef\n ]);\n}\nfunction $9bf71ea28793e738$var$useActiveScopeTracker(scopeRef, restore, contain) {\n // tracks the active scope, in case restore and contain are both false.\n // if either are true, this is tracked in useRestoreFocus or useFocusContainment.\n (0, $6nfFC$useLayoutEffect)(()=>{\n if (restore || contain) return;\n let scope = scopeRef.current;\n let onFocus = (e)=>{\n let target = e.target;\n if ($9bf71ea28793e738$var$isElementInScope(target, scopeRef.current)) $9bf71ea28793e738$var$activeScope = scopeRef;\n else if (!$9bf71ea28793e738$var$isElementInAnyScope(target)) $9bf71ea28793e738$var$activeScope = null;\n };\n document.addEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.addEventListener(\"focusin\", onFocus, false));\n return ()=>{\n document.removeEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.removeEventListener(\"focusin\", onFocus, false));\n };\n }, [\n scopeRef,\n restore,\n contain\n ]);\n}\nfunction $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef) {\n let scope = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode($9bf71ea28793e738$var$activeScope);\n while(scope && scope.scopeRef !== scopeRef){\n if (scope.nodeToRestore) return false;\n scope = scope.parent;\n }\n return (scope === null || scope === void 0 ? void 0 : scope.scopeRef) === scopeRef;\n}\nfunction $9bf71ea28793e738$var$useRestoreFocus(scopeRef, restoreFocus, contain) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = (0, $6nfFC$useRef)(typeof document !== \"undefined\" ? document.activeElement : null);\n // restoring scopes should all track if they are active regardless of contain, but contain already tracks it plus logic to contain the focus\n // restoring-non-containing scopes should only care if they become active so they can perform the restore\n (0, $6nfFC$useLayoutEffect)(()=>{\n let scope = scopeRef.current;\n if (!restoreFocus || contain) return;\n let onFocus = ()=>{\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!$9bf71ea28793e738$var$activeScope || $9bf71ea28793e738$var$isAncestorScope($9bf71ea28793e738$var$activeScope, scopeRef)) $9bf71ea28793e738$var$activeScope = scopeRef;\n };\n document.addEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.addEventListener(\"focusin\", onFocus, false));\n return ()=>{\n document.removeEventListener(\"focusin\", onFocus, false);\n scope.forEach((element)=>element.removeEventListener(\"focusin\", onFocus, false));\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n scopeRef,\n contain\n ]);\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n (0, $6nfFC$useLayoutEffect)(()=>{\n if (!restoreFocus) return;\n $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef).nodeToRestore = nodeToRestoreRef.current;\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e)=>{\n if (e.key !== \"Tab\" || e.altKey || e.ctrlKey || e.metaKey) return;\n let focusedElement = document.activeElement;\n if (!$9bf71ea28793e738$var$isElementInScope(focusedElement, scopeRef.current)) return;\n let nodeToRestore = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef).nodeToRestore;\n // Create a DOM tree walker that matches all tabbable elements\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(document.body, {\n tabbable: true\n });\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef).nodeToRestore = null;\n }\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !$9bf71ea28793e738$var$isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n while ($9bf71ea28793e738$var$isElementInScope(nextElement, scopeRef.current));\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) $9bf71ea28793e738$var$focusElement(nextElement, true);\n else // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!$9bf71ea28793e738$var$isElementInAnyScope(nodeToRestore)) focusedElement.blur();\n else $9bf71ea28793e738$var$focusElement(nodeToRestore, true);\n }\n };\n if (!contain) document.addEventListener(\"keydown\", onKeyDown, true);\n return ()=>{\n if (!contain) document.removeEventListener(\"keydown\", onKeyDown, true);\n let nodeToRestore = $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(scopeRef).nodeToRestore;\n // if we already lost focus to the body and this was the active scope, then we should attempt to restore\n if (restoreFocus && nodeToRestore && // eslint-disable-next-line react-hooks/exhaustive-deps\n ($9bf71ea28793e738$var$isElementInScope(document.activeElement, scopeRef.current) || document.activeElement === document.body && $9bf71ea28793e738$var$shouldRestoreFocus(scopeRef))) {\n // freeze the focusScopeTree so it persists after the raf, otherwise during unmount nodes are removed from it\n let clonedTree = $9bf71ea28793e738$export$d06fae2ee68b101e.clone();\n requestAnimationFrame(()=>{\n // Only restore focus if we've lost focus to the body, the alternative is that focus has been purposefully moved elsewhere\n if (document.activeElement === document.body) {\n // look up the tree starting with our scope to find a nodeToRestore still in the DOM\n let treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.nodeToRestore && document.body.contains(treeNode.nodeToRestore)) {\n $9bf71ea28793e738$var$focusElement(treeNode.nodeToRestore);\n return;\n }\n treeNode = treeNode.parent;\n }\n // If no nodeToRestore was found, focus the first element in the nearest\n // ancestor scope that is still in the tree.\n treeNode = clonedTree.getTreeNode(scopeRef);\n while(treeNode){\n if (treeNode.scopeRef && $9bf71ea28793e738$export$d06fae2ee68b101e.getTreeNode(treeNode.scopeRef)) {\n $9bf71ea28793e738$var$focusFirstInScope(treeNode.scopeRef.current, true);\n return;\n }\n treeNode = treeNode.parent;\n }\n }\n });\n }\n };\n }, [\n scopeRef,\n restoreFocus,\n contain\n ]);\n}\nfunction $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, opts, scope) {\n let selector = (opts === null || opts === void 0 ? void 0 : opts.tabbable) ? $9bf71ea28793e738$var$TABBABLE_ELEMENT_SELECTOR : $9bf71ea28793e738$var$FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode (node) {\n var _opts_from;\n // Skip nodes inside the starting node.\n if (opts === null || opts === void 0 ? void 0 : (_opts_from = opts.from) === null || _opts_from === void 0 ? void 0 : _opts_from.contains(node)) return NodeFilter.FILTER_REJECT;\n if (node.matches(selector) && (0, $645f2e67b85a24c9$export$e989c0fffaa6b27a)(node) && (!scope || $9bf71ea28793e738$var$isElementInScope(node, scope)) && (!(opts === null || opts === void 0 ? void 0 : opts.accept) || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;\n return NodeFilter.FILTER_SKIP;\n }\n });\n if (opts === null || opts === void 0 ? void 0 : opts.from) walker.currentNode = opts.from;\n return walker;\n}\nfunction $9bf71ea28793e738$export$c5251b9e124bf29(ref, defaultOptions = {}) {\n return {\n focusNext (opts = {}) {\n let root = ref.current;\n if (!root) return;\n let { from: from , tabbable: tabbable = defaultOptions.tabbable , wrap: wrap = defaultOptions.wrap , accept: accept = defaultOptions.accept } = opts;\n let node = from || document.activeElement;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode();\n }\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusPrevious (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return;\n let { from: from , tabbable: tabbable = defaultOptions.tabbable , wrap: wrap = defaultOptions.wrap , accept: accept = defaultOptions.accept } = opts;\n let node = from || document.activeElement;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n if (root.contains(node)) walker.currentNode = node;\n else {\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next;\n }\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = $9bf71ea28793e738$var$last(walker);\n }\n if (previousNode) $9bf71ea28793e738$var$focusElement(previousNode, true);\n return previousNode;\n },\n focusFirst (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return;\n let { tabbable: tabbable = defaultOptions.tabbable , accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let nextNode = walker.nextNode();\n if (nextNode) $9bf71ea28793e738$var$focusElement(nextNode, true);\n return nextNode;\n },\n focusLast (opts = defaultOptions) {\n let root = ref.current;\n if (!root) return;\n let { tabbable: tabbable = defaultOptions.tabbable , accept: accept = defaultOptions.accept } = opts;\n let walker = $9bf71ea28793e738$export$2d6ec8fc375ceafa(root, {\n tabbable: tabbable,\n accept: accept\n });\n let next = $9bf71ea28793e738$var$last(walker);\n if (next) $9bf71ea28793e738$var$focusElement(next, true);\n return next;\n }\n };\n}\nfunction $9bf71ea28793e738$var$last(walker) {\n let next;\n let last;\n do {\n last = walker.lastChild();\n if (last) next = last;\n }while (last);\n return next;\n}\nclass $9bf71ea28793e738$var$Tree {\n get size() {\n return this.fastMap.size;\n }\n getTreeNode(data) {\n return this.fastMap.get(data);\n }\n addTreeNode(scopeRef, parent, nodeToRestore) {\n let parentNode = this.fastMap.get(parent !== null && parent !== void 0 ? parent : null);\n let node = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: scopeRef\n });\n parentNode.addChild(node);\n node.parent = parentNode;\n this.fastMap.set(scopeRef, node);\n if (nodeToRestore) node.nodeToRestore = nodeToRestore;\n }\n removeTreeNode(scopeRef) {\n // never remove the root\n if (scopeRef === null) return;\n let node = this.fastMap.get(scopeRef);\n let parentNode = node.parent;\n // when we remove a scope, check if any sibling scopes are trying to restore focus to something inside the scope we're removing\n // if we are, then replace the siblings restore with the restore from the scope we're removing\n for (let current of this.traverse())if (current !== node && node.nodeToRestore && current.nodeToRestore && node.scopeRef.current && $9bf71ea28793e738$var$isElementInScope(current.nodeToRestore, node.scopeRef.current)) current.nodeToRestore = node.nodeToRestore;\n let children = node.children;\n parentNode.removeChild(node);\n if (children.length > 0) children.forEach((child)=>parentNode.addChild(child));\n this.fastMap.delete(node.scopeRef);\n }\n // Pre Order Depth First\n *traverse(node = this.root) {\n if (node.scopeRef != null) yield node;\n if (node.children.length > 0) for (let child of node.children)yield* this.traverse(child);\n }\n clone() {\n let newTree = new $9bf71ea28793e738$var$Tree();\n for (let node of this.traverse())newTree.addTreeNode(node.scopeRef, node.parent.scopeRef, node.nodeToRestore);\n return newTree;\n }\n constructor(){\n (0, $6nfFC$swchelperssrc_define_propertymjs)(this, \"fastMap\", new Map());\n this.root = new $9bf71ea28793e738$var$TreeNode({\n scopeRef: null\n });\n this.fastMap.set(null, this.root);\n }\n}\nclass $9bf71ea28793e738$var$TreeNode {\n addChild(node) {\n this.children.push(node);\n node.parent = this;\n }\n removeChild(node) {\n this.children.splice(this.children.indexOf(node), 1);\n node.parent = undefined;\n }\n constructor(props){\n (0, $6nfFC$swchelperssrc_define_propertymjs)(this, \"children\", []);\n (0, $6nfFC$swchelperssrc_define_propertymjs)(this, \"contain\", false);\n this.scopeRef = props.scopeRef;\n }\n}\nlet $9bf71ea28793e738$export$d06fae2ee68b101e = new $9bf71ea28793e738$var$Tree();\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n let { autoFocus: autoFocus = false , isTextInput: isTextInput , within: within } = props;\n let state = (0, $6nfFC$useRef)({\n isFocused: false,\n isFocusVisible: autoFocus || (0, $6nfFC$isFocusVisible)()\n });\n let [isFocused, setFocused] = (0, $6nfFC$useState)(false);\n let [isFocusVisibleState, setFocusVisible] = (0, $6nfFC$useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n let updateState = (0, $6nfFC$useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n let onFocusChange = (0, $6nfFC$useCallback)((isFocused)=>{\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [\n updateState\n ]);\n (0, $6nfFC$useFocusVisibleListener)((isFocusVisible)=>{\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {\n isTextInput: isTextInput\n });\n let { focusProps: focusProps } = (0, $6nfFC$useFocus)({\n isDisabled: within,\n onFocusChange: onFocusChange\n });\n let { focusWithinProps: focusWithinProps } = (0, $6nfFC$useFocusWithin)({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n return {\n isFocused: isFocused,\n isFocusVisible: state.current.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n\n\nfunction $907718708eab68af$export$1a38b4ad7f578e1d(props) {\n let { children: children , focusClass: focusClass , focusRingClass: focusRingClass } = props;\n let { isFocused: isFocused , isFocusVisible: isFocusVisible , focusProps: focusProps } = (0, $f7dceffc5ad7768b$export$4e328f61c538687f)(props);\n let child = (0, $6nfFC$react).Children.only(children);\n return /*#__PURE__*/ (0, $6nfFC$react).cloneElement(child, (0, $6nfFC$mergeProps)(child.props, {\n ...focusProps,\n className: (0, $6nfFC$clsx)({\n [focusClass || \"\"]: isFocused,\n [focusRingClass || \"\"]: isFocusVisible\n })\n }));\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nlet $e6afbd83fe6ebbd2$var$FocusableContext = /*#__PURE__*/ (0, $6nfFC$react).createContext(null);\nfunction $e6afbd83fe6ebbd2$var$useFocusableContext(ref) {\n let context = (0, $6nfFC$useContext)($e6afbd83fe6ebbd2$var$FocusableContext) || {};\n (0, $6nfFC$useSyncRef)(context, ref);\n // eslint-disable-next-line\n let { ref: _ , ...otherProps } = context;\n return otherProps;\n}\n/**\n * Provides DOM props to the nearest focusable child.\n */ function $e6afbd83fe6ebbd2$var$FocusableProvider(props, ref) {\n let { children: children , ...otherProps } = props;\n let context = {\n ...otherProps,\n ref: ref\n };\n return /*#__PURE__*/ (0, $6nfFC$react).createElement($e6afbd83fe6ebbd2$var$FocusableContext.Provider, {\n value: context\n }, children);\n}\nlet $e6afbd83fe6ebbd2$export$13f3202a3e5ddd5 = /*#__PURE__*/ (0, $6nfFC$react).forwardRef($e6afbd83fe6ebbd2$var$FocusableProvider);\nfunction $e6afbd83fe6ebbd2$export$4c014de7c8940b4c(props, domRef) {\n let { focusProps: focusProps } = (0, $6nfFC$useFocus)(props);\n let { keyboardProps: keyboardProps } = (0, $6nfFC$useKeyboard)(props);\n let interactions = (0, $6nfFC$mergeProps)(focusProps, keyboardProps);\n let domProps = $e6afbd83fe6ebbd2$var$useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = (0, $6nfFC$useRef)(props.autoFocus);\n (0, $6nfFC$useEffect)(()=>{\n if (autoFocusRef.current && domRef.current) (0, $6a99195332edec8b$export$80f3e147d781571c)(domRef.current);\n autoFocusRef.current = false;\n }, [\n domRef\n ]);\n return {\n focusableProps: (0, $6nfFC$mergeProps)({\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n }, interactionProps)\n };\n}\n\n\n\n\n\n\nexport {$9bf71ea28793e738$export$20e40289641fbbb6 as FocusScope, $9bf71ea28793e738$export$10c5169755ce7bd7 as useFocusManager, $9bf71ea28793e738$export$2d6ec8fc375ceafa as getFocusableTreeWalker, $9bf71ea28793e738$export$c5251b9e124bf29 as createFocusManager, $9bf71ea28793e738$export$1258395f99bf9cbf as isElementInChildOfActiveScope, $907718708eab68af$export$1a38b4ad7f578e1d as FocusRing, $e6afbd83fe6ebbd2$export$13f3202a3e5ddd5 as FocusableProvider, $e6afbd83fe6ebbd2$export$4c014de7c8940b4c as useFocusable, $f7dceffc5ad7768b$export$4e328f61c538687f as useFocusRing, $6a99195332edec8b$export$80f3e147d781571c as focusSafely};\n//# sourceMappingURL=module.js.map\n","/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ class $5b160d28a433310d$export$c17fa47878dc55b6 {\n /** Returns a localized string for the given key and locale. */ getStringForLocale(key, locale) {\n let strings = this.strings[locale];\n if (!strings) {\n strings = $5b160d28a433310d$var$getStringsForLocale(locale, this.strings, this.defaultLocale);\n this.strings[locale] = strings;\n }\n let string = strings[key];\n if (!string) throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n return string;\n }\n constructor(messages, defaultLocale = \"en-US\"){\n // Clone messages so we don't modify the original object.\n this.strings = {\n ...messages\n };\n this.defaultLocale = defaultLocale;\n }\n}\nfunction $5b160d28a433310d$var$getStringsForLocale(locale, strings, defaultLocale = \"en-US\") {\n // If there is an exact match, use it.\n if (strings[locale]) return strings[locale];\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = $5b160d28a433310d$var$getLanguage(locale);\n if (strings[language]) return strings[language];\n for(let key in strings){\n if (key.startsWith(language + \"-\")) return strings[key];\n }\n // Nothing close, use english.\n return strings[defaultLocale];\n}\nfunction $5b160d28a433310d$var$getLanguage(locale) {\n // @ts-ignore\n if (Intl.Locale) // @ts-ignore\n return new Intl.Locale(locale).language;\n return locale.split(\"-\")[0];\n}\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $6db58dc88e78b024$var$pluralRulesCache = new Map();\nconst $6db58dc88e78b024$var$numberFormatCache = new Map();\nclass $6db58dc88e78b024$export$2f817fcdc4b89ae0 {\n /** Formats a localized string for the given key with the provided variables. */ format(key, variables) {\n let message = this.strings.getStringForLocale(key, this.locale);\n return typeof message === \"function\" ? message(variables, this) : message;\n }\n plural(count, options, type = \"cardinal\") {\n let opt = options[\"=\" + count];\n if (opt) return typeof opt === \"function\" ? opt() : opt;\n let key = this.locale + \":\" + type;\n let pluralRules = $6db58dc88e78b024$var$pluralRulesCache.get(key);\n if (!pluralRules) {\n pluralRules = new Intl.PluralRules(this.locale, {\n type: type\n });\n $6db58dc88e78b024$var$pluralRulesCache.set(key, pluralRules);\n }\n let selected = pluralRules.select(count);\n opt = options[selected] || options.other;\n return typeof opt === \"function\" ? opt() : opt;\n }\n number(value) {\n let numberFormat = $6db58dc88e78b024$var$numberFormatCache.get(this.locale);\n if (!numberFormat) {\n numberFormat = new Intl.NumberFormat(this.locale);\n $6db58dc88e78b024$var$numberFormatCache.set(this.locale, numberFormat);\n }\n return numberFormat.format(value);\n }\n select(options, value) {\n let opt = options[value] || options.other;\n return typeof opt === \"function\" ? opt() : opt;\n }\n constructor(locale, strings){\n this.locale = locale;\n this.strings = strings;\n }\n}\n\n\n\n\nexport {$5b160d28a433310d$export$c17fa47878dc55b6 as LocalizedStringDictionary, $6db58dc88e78b024$export$2f817fcdc4b89ae0 as LocalizedStringFormatter};\n//# sourceMappingURL=module.js.map\n","import $iFADg$react, {useContext as $iFADg$useContext, useState as $iFADg$useState, useEffect as $iFADg$useEffect, useMemo as $iFADg$useMemo, useRef as $iFADg$useRef} from \"react\";\nimport {useIsSSR as $iFADg$useIsSSR} from \"@react-aria/ssr\";\nimport {LocalizedStringDictionary as $iFADg$LocalizedStringDictionary, LocalizedStringFormatter as $iFADg$LocalizedStringFormatter} from \"@internationalized/string\";\nimport {DateFormatter as $iFADg$DateFormatter} from \"@internationalized/date\";\nimport {NumberFormatter as $iFADg$NumberFormatter} from \"@internationalized/number\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // https://en.wikipedia.org/wiki/Right-to-left\nconst $148a7a147e38ea7f$var$RTL_SCRIPTS = new Set([\n \"Arab\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\"\n]);\nconst $148a7a147e38ea7f$var$RTL_LANGS = new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\"\n]);\nfunction $148a7a147e38ea7f$export$702d680b21cbd764(locale) {\n // If the Intl.Locale API is available, use it to get the script for the locale.\n // This is more accurate than guessing by language, since languages can be written in multiple scripts.\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n let script = new Intl.Locale(locale).maximize().script;\n return $148a7a147e38ea7f$var$RTL_SCRIPTS.has(script);\n }\n // If not, just guess by the language (first part of the locale)\n let lang = locale.split(\"-\")[0];\n return $148a7a147e38ea7f$var$RTL_LANGS.has(lang);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $1e5a04cdaf7d1af8$export$f09106e7c6677ec5() {\n // @ts-ignore\n let locale = typeof navigator !== \"undefined\" && (navigator.language || navigator.userLanguage) || \"en-US\";\n try {\n // @ts-ignore\n Intl.DateTimeFormat.supportedLocalesOf([\n locale\n ]);\n } catch (_err) {\n locale = \"en-US\";\n }\n return {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? \"rtl\" : \"ltr\"\n };\n}\nlet $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\nlet $1e5a04cdaf7d1af8$var$listeners = new Set();\nfunction $1e5a04cdaf7d1af8$var$updateLocale() {\n $1e5a04cdaf7d1af8$var$currentLocale = $1e5a04cdaf7d1af8$export$f09106e7c6677ec5();\n for (let listener of $1e5a04cdaf7d1af8$var$listeners)listener($1e5a04cdaf7d1af8$var$currentLocale);\n}\nfunction $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a() {\n let isSSR = (0, $iFADg$useIsSSR)();\n let [defaultLocale, setDefaultLocale] = (0, $iFADg$useState)($1e5a04cdaf7d1af8$var$currentLocale);\n (0, $iFADg$useEffect)(()=>{\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.addEventListener(\"languagechange\", $1e5a04cdaf7d1af8$var$updateLocale);\n $1e5a04cdaf7d1af8$var$listeners.add(setDefaultLocale);\n return ()=>{\n $1e5a04cdaf7d1af8$var$listeners.delete(setDefaultLocale);\n if ($1e5a04cdaf7d1af8$var$listeners.size === 0) window.removeEventListener(\"languagechange\", $1e5a04cdaf7d1af8$var$updateLocale);\n };\n }, []);\n // We cannot determine the browser's language on the server, so default to\n // en-US. This will be updated after hydration on the client to the correct value.\n if (isSSR) return {\n locale: \"en-US\",\n direction: \"ltr\"\n };\n return defaultLocale;\n}\n\n\n\nconst $18f2051aff69b9bf$var$I18nContext = /*#__PURE__*/ (0, $iFADg$react).createContext(null);\nfunction $18f2051aff69b9bf$export$a54013f0d02a8f82(props) {\n let { locale: locale , children: children } = props;\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let value = locale ? {\n locale: locale,\n direction: (0, $148a7a147e38ea7f$export$702d680b21cbd764)(locale) ? \"rtl\" : \"ltr\"\n } : defaultLocale;\n return /*#__PURE__*/ (0, $iFADg$react).createElement($18f2051aff69b9bf$var$I18nContext.Provider, {\n value: value\n }, children);\n}\nfunction $18f2051aff69b9bf$export$43bb16f9c6d9e3f7() {\n let defaultLocale = (0, $1e5a04cdaf7d1af8$export$188ec29ebc2bdc3a)();\n let context = (0, $iFADg$useContext)($18f2051aff69b9bf$var$I18nContext);\n return context || defaultLocale;\n}\n\n\nvar $2aa2084a6c2b6b4f$exports = {};\n\"use strict\";\n\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nconst $fca6afa0e843324b$var$cache = new WeakMap();\nfunction $fca6afa0e843324b$var$getCachedDictionary(strings) {\n let dictionary = $fca6afa0e843324b$var$cache.get(strings);\n if (!dictionary) {\n dictionary = new (0, $iFADg$LocalizedStringDictionary)(strings);\n $fca6afa0e843324b$var$cache.set(strings, dictionary);\n }\n return dictionary;\n}\nfunction $fca6afa0e843324b$export$f12b703ca79dfbb1(strings) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let dictionary = (0, $iFADg$useMemo)(()=>$fca6afa0e843324b$var$getCachedDictionary(strings), [\n strings\n ]);\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$LocalizedStringFormatter)(locale, dictionary), [\n locale,\n dictionary\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $33bf17300c498528$export$a2f47a3d2973640(options = {}) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n // @ts-ignore\n return (0, $iFADg$useMemo)(()=>new Intl.ListFormat(locale, options), [\n locale,\n options\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $896ba0a80a8f4d36$export$85fd5fdf27bacc79(options) {\n // Reuse last options object if it is shallowly equal, which allows the useMemo result to also be reused.\n let lastOptions = (0, $iFADg$useRef)(null);\n if (options && lastOptions.current && $896ba0a80a8f4d36$var$isEqual(options, lastOptions.current)) options = lastOptions.current;\n lastOptions.current = options;\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$DateFormatter)(locale, options), [\n locale,\n options\n ]);\n}\nfunction $896ba0a80a8f4d36$var$isEqual(a, b) {\n if (a === b) return true;\n let aKeys = Object.keys(a);\n let bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) return false;\n for (let key of aKeys){\n if (b[key] !== a[key]) return false;\n }\n return true;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $a916eb452884faea$export$b7a616150fdb9f44(options = {}) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n return (0, $iFADg$useMemo)(()=>new (0, $iFADg$NumberFormatter)(locale, options), [\n locale,\n options\n ]);\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nlet $325a3faab7a68acd$var$cache = new Map();\nfunction $325a3faab7a68acd$export$a16aca283550c30d(options) {\n let { locale: locale } = (0, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7)();\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b)=>a[0] < b[0] ? -1 : 1).join() : \"\");\n if ($325a3faab7a68acd$var$cache.has(cacheKey)) return $325a3faab7a68acd$var$cache.get(cacheKey);\n let formatter = new Intl.Collator(locale, options);\n $325a3faab7a68acd$var$cache.set(cacheKey, formatter);\n return formatter;\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $bb77f239b46e8c72$export$3274cf84b703fff(options) {\n let collator = (0, $325a3faab7a68acd$export$a16aca283550c30d)({\n usage: \"search\",\n ...options\n });\n // TODO(later): these methods don't currently support the ignorePunctuation option.\n return {\n startsWith (string, substring) {\n if (substring.length === 0) return true;\n // Normalize both strings so we can slice safely\n // TODO: take into account the ignorePunctuation option as well...\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n return collator.compare(string.slice(0, substring.length), substring) === 0;\n },\n endsWith (string, substring) {\n if (substring.length === 0) return true;\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n return collator.compare(string.slice(-substring.length), substring) === 0;\n },\n contains (string, substring) {\n if (substring.length === 0) return true;\n string = string.normalize(\"NFC\");\n substring = substring.normalize(\"NFC\");\n let scan = 0;\n let sliceLen = substring.length;\n for(; scan + sliceLen <= string.length; scan++){\n let slice = string.slice(scan, scan + sliceLen);\n if (collator.compare(substring, slice) === 0) return true;\n }\n return false;\n }\n };\n}\n\n\n\n\nexport {$18f2051aff69b9bf$export$a54013f0d02a8f82 as I18nProvider, $18f2051aff69b9bf$export$43bb16f9c6d9e3f7 as useLocale, $fca6afa0e843324b$export$f12b703ca79dfbb1 as useLocalizedStringFormatter, $33bf17300c498528$export$a2f47a3d2973640 as useListFormatter, $896ba0a80a8f4d36$export$85fd5fdf27bacc79 as useDateFormatter, $a916eb452884faea$export$b7a616150fdb9f44 as useNumberFormatter, $325a3faab7a68acd$export$a16aca283550c30d as useCollator, $bb77f239b46e8c72$export$3274cf84b703fff as useFilter};\n//# sourceMappingURL=real-module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /* Inspired by https://github.com/AlmeroSteyn/react-aria-live */ const $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY = 7000;\nlet $319e236875307eab$var$liveAnnouncer = null;\nfunction $319e236875307eab$export$a9b970dcc4ae71a9(message, assertiveness = \"assertive\", timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {\n if (!$319e236875307eab$var$liveAnnouncer) $319e236875307eab$var$liveAnnouncer = new $319e236875307eab$var$LiveAnnouncer();\n $319e236875307eab$var$liveAnnouncer.announce(message, assertiveness, timeout);\n}\nfunction $319e236875307eab$export$d10ae4f68404609a(assertiveness) {\n if ($319e236875307eab$var$liveAnnouncer) $319e236875307eab$var$liveAnnouncer.clear(assertiveness);\n}\nfunction $319e236875307eab$export$d8686216b8b81b2f() {\n if ($319e236875307eab$var$liveAnnouncer) {\n $319e236875307eab$var$liveAnnouncer.destroy();\n $319e236875307eab$var$liveAnnouncer = null;\n }\n}\n// LiveAnnouncer is implemented using vanilla DOM, not React. That's because as of React 18\n// ReactDOM.render is deprecated, and the replacement, ReactDOM.createRoot is moved into a\n// subpath import `react-dom/client`. That makes it hard for us to support multiple React versions.\n// As a global API, we can't use portals without introducing a breaking API change. LiveAnnouncer\n// is simple enough to implement without React, so that's what we do here.\n// See this discussion for more details: https://github.com/reactwg/react-18/discussions/125#discussioncomment-2382638\nclass $319e236875307eab$var$LiveAnnouncer {\n createLog(ariaLive) {\n let node = document.createElement(\"div\");\n node.setAttribute(\"role\", \"log\");\n node.setAttribute(\"aria-live\", ariaLive);\n node.setAttribute(\"aria-relevant\", \"additions\");\n return node;\n }\n destroy() {\n if (!this.node) return;\n document.body.removeChild(this.node);\n this.node = null;\n }\n announce(message, assertiveness = \"assertive\", timeout = $319e236875307eab$var$LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) return;\n let node = document.createElement(\"div\");\n node.textContent = message;\n if (assertiveness === \"assertive\") this.assertiveLog.appendChild(node);\n else this.politeLog.appendChild(node);\n if (message !== \"\") setTimeout(()=>{\n node.remove();\n }, timeout);\n }\n clear(assertiveness) {\n if (!this.node) return;\n if (!assertiveness || assertiveness === \"assertive\") this.assertiveLog.innerHTML = \"\";\n if (!assertiveness || assertiveness === \"polite\") this.politeLog.innerHTML = \"\";\n }\n constructor(){\n this.node = document.createElement(\"div\");\n this.node.dataset.liveAnnouncer = \"true\";\n // copied from VisuallyHidden\n Object.assign(this.node.style, {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: 1,\n whiteSpace: \"nowrap\"\n });\n this.assertiveLog = this.createLog(\"assertive\");\n this.node.appendChild(this.assertiveLog);\n this.politeLog = this.createLog(\"polite\");\n this.node.appendChild(this.politeLog);\n document.body.prepend(this.node);\n }\n}\n\n\n\n\nexport {$319e236875307eab$export$a9b970dcc4ae71a9 as announce, $319e236875307eab$export$d10ae4f68404609a as clearAnnouncer, $319e236875307eab$export$d8686216b8b81b2f as destroyAnnouncer};\n//# sourceMappingURL=module.js.map\n","import {mergeProps as $7CUUz$mergeProps, filterDOMProps as $7CUUz$filterDOMProps} from \"@react-aria/utils\";\nimport {useFocusable as $7CUUz$useFocusable} from \"@react-aria/focus\";\nimport {usePress as $7CUUz$usePress} from \"@react-aria/interactions\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\nfunction $d2c8e2b0480f3f34$export$cbe85ee05b554577(props, state, ref) {\n let { isDisabled: isDisabled = false , isRequired: isRequired , isReadOnly: isReadOnly , value: value , name: name , children: children , \"aria-label\": ariaLabel , \"aria-labelledby\": ariaLabelledby , validationState: validationState = \"valid\" } = props;\n let onChange = (e)=>{\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) console.warn(\"If you do not provide children, you must specify an aria-label for accessibility\");\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let { pressProps: pressProps } = (0, $7CUUz$usePress)({\n isDisabled: isDisabled\n });\n let { focusableProps: focusableProps } = (0, $7CUUz$useFocusable)(props, ref);\n let interactions = (0, $7CUUz$mergeProps)(pressProps, focusableProps);\n let domProps = (0, $7CUUz$filterDOMProps)(props, {\n labelable: true\n });\n return {\n inputProps: (0, $7CUUz$mergeProps)(domProps, {\n \"aria-invalid\": validationState === \"invalid\" || undefined,\n \"aria-errormessage\": props[\"aria-errormessage\"],\n \"aria-controls\": props[\"aria-controls\"],\n \"aria-readonly\": isReadOnly || undefined,\n \"aria-required\": isRequired || undefined,\n onChange: onChange,\n disabled: isDisabled,\n ...value == null ? {} : {\n value: value\n },\n name: name,\n type: \"checkbox\",\n ...interactions\n })\n };\n}\n\n\n\n\nexport {$d2c8e2b0480f3f34$export$cbe85ee05b554577 as useToggle};\n//# sourceMappingURL=module.js.map\n","import {useSlotId as $iD7q0$useSlotId, mergeProps as $iD7q0$mergeProps, useId as $iD7q0$useId, useLabels as $iD7q0$useLabels} from \"@react-aria/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $d191a55c9702f145$export$8467354a121f1b9f(props) {\n let { id: id , label: label , \"aria-labelledby\": ariaLabelledby , \"aria-label\": ariaLabel , labelElementType: labelElementType = \"label\" } = props;\n id = (0, $iD7q0$useId)(id);\n let labelId = (0, $iD7q0$useId)();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === \"label\" ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) console.warn(\"If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility\");\n let fieldProps = (0, $iD7q0$useLabels)({\n id: id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby\n });\n return {\n labelProps: labelProps,\n fieldProps: fieldProps\n };\n}\n\n\n\nfunction $2baaea4c71418dea$export$294aa081a6c6f55d(props) {\n let { description: description , errorMessage: errorMessage , validationState: validationState } = props;\n let { labelProps: labelProps , fieldProps: fieldProps } = (0, $d191a55c9702f145$export$8467354a121f1b9f)(props);\n let descriptionId = (0, $iD7q0$useSlotId)([\n Boolean(description),\n Boolean(errorMessage),\n validationState\n ]);\n let errorMessageId = (0, $iD7q0$useSlotId)([\n Boolean(description),\n Boolean(errorMessage),\n validationState\n ]);\n fieldProps = (0, $iD7q0$mergeProps)(fieldProps, {\n \"aria-describedby\": [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props[\"aria-describedby\"]\n ].filter(Boolean).join(\" \") || undefined\n });\n return {\n labelProps: labelProps,\n fieldProps: fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n\n\n\n\n\nexport {$2baaea4c71418dea$export$294aa081a6c6f55d as useField, $d191a55c9702f145$export$8467354a121f1b9f as useLabel};\n//# sourceMappingURL=module.js.map\n","import {useControlledState as $bOkae$useControlledState} from \"@react-stately/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $3017fa7ffdddec74$export$8042c6c013fd5226(props = {}) {\n let { isReadOnly: isReadOnly } = props;\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = (0, $bOkae$useControlledState)(props.isSelected, props.defaultSelected || false, props.onChange);\n function updateSelected(value) {\n if (!isReadOnly) setSelected(value);\n }\n function toggleState() {\n if (!isReadOnly) setSelected(!isSelected);\n }\n return {\n isSelected: isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n\n\n\n\nexport {$3017fa7ffdddec74$export$8042c6c013fd5226 as useToggleState};\n//# sourceMappingURL=module.js.map\n","import {useEffect as $cKEhs$useEffect} from \"react\";\nimport {useToggle as $cKEhs$useToggle} from \"@react-aria/toggle\";\nimport {filterDOMProps as $cKEhs$filterDOMProps, mergeProps as $cKEhs$mergeProps} from \"@react-aria/utils\";\nimport {useField as $cKEhs$useField} from \"@react-aria/label\";\nimport {useToggleState as $cKEhs$useToggleState} from \"@react-stately/toggle\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $406796ff087fe49b$export$e375f10ce42261c5(props, state, inputRef) {\n let { inputProps: inputProps } = (0, $cKEhs$useToggle)(props, state, inputRef);\n let { isSelected: isSelected } = state;\n let { isIndeterminate: isIndeterminate } = props;\n (0, $cKEhs$useEffect)(()=>{\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) inputRef.current.indeterminate = isIndeterminate;\n });\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected\n }\n };\n}\n\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ /*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ const $1ae600c947479353$export$31440636951aa68c = new WeakMap();\nconst $1ae600c947479353$export$a3077e9c93f7360f = new WeakMap();\nconst $1ae600c947479353$export$d5679492e2864181 = new WeakMap();\n\n\n\n\nfunction $1e9fce0cfacc738b$export$49ff6f28c54f1cbe(props, state) {\n let { isDisabled: isDisabled , name: name } = props;\n let { labelProps: labelProps , fieldProps: fieldProps , descriptionProps: descriptionProps , errorMessageProps: errorMessageProps } = (0, $cKEhs$useField)({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a

...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (props) {\n var noRelative = props.noRelative, noImportant = props.noImportant, _a = props.gapMode, gapMode = _a === void 0 ? 'margin' : _a;\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of d) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== document.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n target = target.parentNode;\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n if (isDeltaPositive && ((noOverscroll && availableScroll === 0) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && availableScrollTop === 0) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(function () { return styleSingleton(); })[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if ('touches' in event && event.touches.length === 2) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: \"margin\" }) : null));\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","import{useId as e}from\"@radix-ui/react-id\";import{useFocusGuards as n}from\"@radix-ui/react-focus-guards\";import{useCallbackRef as t}from\"@radix-ui/react-use-callback-ref\";import{useDirection as r}from\"@radix-ui/react-use-direction\";import*as o from\"@radix-ui/react-roving-focus\";import{createRovingFocusGroupScope as u}from\"@radix-ui/react-roving-focus\";import{Portal as c}from\"@radix-ui/react-portal\";import*as a from\"@radix-ui/react-popper\";import{createPopperScope as i}from\"@radix-ui/react-popper\";import{Primitive as s}from\"@radix-ui/react-primitive\";import{Presence as l}from\"@radix-ui/react-presence\";import{FocusScope as d}from\"@radix-ui/react-focus-scope\";import{DismissableLayer as p}from\"@radix-ui/react-dismissable-layer\";import{createContextScope as f}from\"@radix-ui/react-context\";import{useComposedRefs as m,composeRefs as v}from\"@radix-ui/react-compose-refs\";import{createCollection as g}from\"@radix-ui/react-collection\";import{composeEventHandlers as M}from\"@radix-ui/primitive\";import{hideOthers as h}from\"aria-hidden\";import{RemoveScroll as C}from\"react-remove-scroll\";import*as E from\"react\";import w from\"@babel/runtime/helpers/esm/extends\";const x=[\"Enter\",\" \"],b=[\"ArrowUp\",\"PageDown\",\"End\"],R=[\"ArrowDown\",\"PageUp\",\"Home\",...b],_={ltr:[...x,\"ArrowRight\"],rtl:[...x,\"ArrowLeft\"]},y={ltr:[\"ArrowLeft\"],rtl:[\"ArrowRight\"]},[I,k,P]=g(\"Menu\"),[D,S]=f(\"Menu\",[P,i,u]);export{S as createMenuScope};const O=i(),T=u(),[L,A]=D(\"Menu\");export const Menu=e=>{const{__scopeMenu:n,open:o=!1,children:u,onOpenChange:c,modal:i=!0}=e,s=O(n),[l,d]=E.useState(null),p=E.useRef(!1),f=t(c),m=r(l,e.dir);return E.useEffect((()=>{const e=()=>{p.current=!0,document.addEventListener(\"pointerdown\",n,{capture:!0,once:!0}),document.addEventListener(\"pointermove\",n,{capture:!0,once:!0})},n=()=>p.current=!1;return document.addEventListener(\"keydown\",e,{capture:!0}),()=>{document.removeEventListener(\"keydown\",e,{capture:!0}),document.removeEventListener(\"pointerdown\",n,{capture:!0}),document.removeEventListener(\"pointermove\",n,{capture:!0})}}),[]),/*#__PURE__*/E.createElement(a.Root,s,/*#__PURE__*/E.createElement(L,{scope:n,isSubmenu:!1,isUsingKeyboardRef:p,dir:m,open:o,onOpenChange:f,content:l,onContentChange:d,onRootClose:E.useCallback((()=>f(!1)),[f]),modal:i},u))};/*#__PURE__*/export const MenuSub=n=>{const{__scopeMenu:r,children:o,open:u=!1,onOpenChange:c}=n,i=A(\"MenuSub\",r),s=O(r),[l,d]=E.useState(null),[p,f]=E.useState(null),m=t(c);return E.useEffect((()=>(!1===i.open&&m(!1),()=>m(!1))),[i.open,m]),/*#__PURE__*/E.createElement(a.Root,s,/*#__PURE__*/E.createElement(L,{scope:r,isSubmenu:!0,isUsingKeyboardRef:i.isUsingKeyboardRef,dir:i.dir,open:u,onOpenChange:m,content:p,onContentChange:f,onRootClose:i.onRootClose,contentId:e(),trigger:l,onTriggerChange:d,triggerId:e(),modal:!1},o))};/*#__PURE__*/export const MenuAnchor=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);/*#__PURE__*/return E.createElement(a.Anchor,w({},o,r,{ref:n}))}));/*#__PURE__*/const[F,K]=D(\"MenuContent\");export const MenuContent=/*#__PURE__*/E.forwardRef(((e,n)=>{const{forceMount:t,...r}=e,o=A(\"MenuContent\",e.__scopeMenu);/*#__PURE__*/return E.createElement(I.Provider,{scope:e.__scopeMenu},/*#__PURE__*/E.createElement(l,{present:t||o.open},/*#__PURE__*/E.createElement(I.Slot,{scope:e.__scopeMenu},o.isSubmenu?/*#__PURE__*/E.createElement(X,w({},r,{ref:n})):/*#__PURE__*/E.createElement(G,w({},r,{ref:n})))))}));const G=/*#__PURE__*/E.forwardRef(((e,n)=>A(\"MenuContent\",e.__scopeMenu).modal?/*#__PURE__*/E.createElement(U,w({},e,{ref:n})):/*#__PURE__*/E.createElement(V,w({},e,{ref:n})))),U=/*#__PURE__*/E.forwardRef(((e,n)=>{const t=A(\"MenuContent\",e.__scopeMenu),r=E.useRef(null),o=m(n,r);return E.useEffect((()=>{const e=r.current;if(e)return h(e)}),[]),/*#__PURE__*/E.createElement(B,w({},e,{ref:o,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:M(e.onFocusOutside,(e=>e.preventDefault()),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)}))})),V=/*#__PURE__*/E.forwardRef(((e,n)=>{const t=A(\"MenuContent\",e.__scopeMenu);/*#__PURE__*/return E.createElement(B,w({},e,{ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)}))})),X=/*#__PURE__*/E.forwardRef(((e,n)=>{const t=A(\"MenuContent\",e.__scopeMenu),r=E.useRef(null),o=m(n,r);return t.isSubmenu?/*#__PURE__*/E.createElement(B,w({id:t.contentId,\"aria-labelledby\":t.triggerId},e,{ref:o,align:\"start\",side:\"rtl\"===t.dir?\"left\":\"right\",portalled:!0,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var n;t.isUsingKeyboardRef.current&&(null===(n=r.current)||void 0===n||n.focus()),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:M(e.onFocusOutside,(e=>{e.target!==t.trigger&&t.onOpenChange(!1)})),onEscapeKeyDown:M(e.onEscapeKeyDown,t.onRootClose),onKeyDown:M(e.onKeyDown,(e=>{const n=e.currentTarget.contains(e.target),r=y[t.dir].includes(e.key);var o;n&&r&&(t.onOpenChange(!1),null===(o=t.trigger)||void 0===o||o.focus(),e.preventDefault())}))})):null})),B=/*#__PURE__*/E.forwardRef(((e,t)=>{const{__scopeMenu:r,loop:u=!1,trapFocus:i,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_,disableOutsideScroll:y,allowPinchZoom:I,portalled:P,...D}=e,S=A(\"MenuContent\",r),L=O(r),K=T(r),G=k(r),[U,V]=E.useState(null),X=E.useRef(null),B=m(t,X,S.onContentChange),Y=E.useRef(0),Z=E.useRef(\"\"),z=E.useRef(0),H=E.useRef(null),W=E.useRef(\"right\"),q=E.useRef(0),N=P?c:E.Fragment,Q=y?C:E.Fragment,$=y?{allowPinchZoom:I}:void 0,ee=e=>{var n,t;const r=Z.current+e,o=G().filter((e=>!e.disabled)),u=document.activeElement,c=null===(n=o.find((e=>e.ref.current===u)))||void 0===n?void 0:n.textValue,a=function(e,n,t){const r=n.length>1&&Array.from(n).every((e=>e===n[0]))?n[0]:n,o=t?e.indexOf(t):-1;let u=(c=e,a=Math.max(o,0),c.map(((e,n)=>c[(a+n)%c.length])));var c,a;1===r.length&&(u=u.filter((e=>e!==t)));const i=u.find((e=>e.toLowerCase().startsWith(r.toLowerCase())));return i!==t?i:void 0}(o.map((e=>e.textValue)),r,c),i=null===(t=o.find((e=>e.textValue===a)))||void 0===t?void 0:t.ref.current;!function e(n){Z.current=n,window.clearTimeout(Y.current),\"\"!==n&&(Y.current=window.setTimeout((()=>e(\"\")),1e3))}(r),i&&setTimeout((()=>i.focus()))};E.useEffect((()=>()=>window.clearTimeout(Y.current)),[]),n();const ne=E.useCallback((e=>{var n,t;return W.current===(null===(n=H.current)||void 0===n?void 0:n.side)&&function(e,n){if(!n)return!1;return function(e,n){const{x:t,y:r}=e;let o=!1;for(let e=0,u=n.length-1;er!=s>r&&t<(i-c)*(r-a)/(s-a)+c&&(o=!o)}return o}({x:e.clientX,y:e.clientY},n)}(e,null===(t=H.current)||void 0===t?void 0:t.area)}),[]);/*#__PURE__*/return E.createElement(N,null,/*#__PURE__*/E.createElement(Q,$,/*#__PURE__*/E.createElement(F,{scope:r,searchRef:Z,onItemEnter:E.useCallback((e=>{ne(e)&&e.preventDefault()}),[ne]),onItemLeave:E.useCallback((e=>{var n;ne(e)||(null===(n=X.current)||void 0===n||n.focus(),V(null))}),[ne]),onTriggerLeave:E.useCallback((e=>{ne(e)&&e.preventDefault()}),[ne]),pointerGraceTimerRef:z,onPointerGraceIntentChange:E.useCallback((e=>{H.current=e}),[])},/*#__PURE__*/E.createElement(d,{asChild:!0,trapped:i,onMountAutoFocus:M(s,(e=>{var n;e.preventDefault(),null===(n=X.current)||void 0===n||n.focus()})),onUnmountAutoFocus:l},/*#__PURE__*/E.createElement(p,{asChild:!0,disableOutsidePointerEvents:f,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:h,onInteractOutside:x,onDismiss:_},/*#__PURE__*/E.createElement(o.Root,w({asChild:!0},K,{dir:S.dir,orientation:\"vertical\",loop:u,currentTabStopId:U,onCurrentTabStopIdChange:V,onEntryFocus:e=>{S.isUsingKeyboardRef.current||e.preventDefault()}}),/*#__PURE__*/E.createElement(a.Content,w({role:\"menu\",\"aria-orientation\":\"vertical\",\"data-state\":j(S.open),dir:S.dir},L,D,{ref:B,style:{outline:\"none\",...D.style},onKeyDown:M(D.onKeyDown,(e=>{const n=e.target,t=e.currentTarget.contains(n),r=e.ctrlKey||e.altKey||e.metaKey,o=1===e.key.length;t&&(\"Tab\"===e.key&&e.preventDefault(),!r&&o&&ee(e.key));const u=X.current;if(e.target!==u)return;if(!R.includes(e.key))return;e.preventDefault();const c=G().filter((e=>!e.disabled)).map((e=>e.ref.current));b.includes(e.key)&&c.reverse(),function(e){const n=document.activeElement;for(const t of e){if(t===n)return;if(t.focus(),document.activeElement!==n)return}}(c)})),onBlur:M(e.onBlur,(e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(Y.current),Z.current=\"\")})),onPointerMove:M(e.onPointerMove,J((e=>{const n=e.target,t=q.current!==e.clientX;if(e.currentTarget.contains(n)&&t){const n=e.clientX>q.current?\"right\":\"left\";W.current=n,q.current=e.clientX}})))}))))))))}));export const MenuGroup=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;/*#__PURE__*/return E.createElement(s.div,w({role:\"group\"},r,{ref:n}))}));/*#__PURE__*/export const MenuLabel=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;/*#__PURE__*/return E.createElement(s.div,w({},r,{ref:n}))}));/*#__PURE__*/export const MenuItem=/*#__PURE__*/E.forwardRef(((e,n)=>{const{disabled:t=!1,onSelect:r,...o}=e,u=E.useRef(null),c=A(\"MenuItem\",e.__scopeMenu),a=K(\"MenuItem\",e.__scopeMenu),i=m(n,u),s=E.useRef(!1);/*#__PURE__*/return E.createElement(Y,w({},o,{ref:i,disabled:t,onClick:M(e.onClick,(()=>{const e=u.current;if(!t&&e){const n=new Event(\"menu.itemSelect\",{bubbles:!0,cancelable:!0});e.addEventListener(\"menu.itemSelect\",(e=>null==r?void 0:r(e)),{once:!0}),e.dispatchEvent(n),n.defaultPrevented?s.current=!1:c.onRootClose()}})),onPointerDown:n=>{var t;null===(t=e.onPointerDown)||void 0===t||t.call(e,n),s.current=!0},onPointerUp:M(e.onPointerUp,(e=>{var n;s.current||null===(n=e.currentTarget)||void 0===n||n.click()})),onKeyDown:M(e.onKeyDown,(e=>{const n=\"\"!==a.searchRef.current;t||n&&\" \"===e.key||x.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())}))}))}));/*#__PURE__*/export const MenuSubTrigger=/*#__PURE__*/E.forwardRef(((e,n)=>{const t=A(\"MenuSubTrigger\",e.__scopeMenu),r=K(\"MenuSubTrigger\",e.__scopeMenu),o=E.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:c}=r,a={__scopeMenu:e.__scopeMenu},i=E.useCallback((()=>{o.current&&window.clearTimeout(o.current),o.current=null}),[]);return E.useEffect((()=>i),[i]),E.useEffect((()=>{const e=u.current;return()=>{window.clearTimeout(e),c(null)}}),[u,c]),t.isSubmenu?/*#__PURE__*/E.createElement(MenuAnchor,w({asChild:!0},a),/*#__PURE__*/E.createElement(Y,w({id:t.triggerId,\"aria-haspopup\":\"menu\",\"aria-expanded\":t.open,\"aria-controls\":t.contentId,\"data-state\":j(t.open)},e,{ref:v(n,t.onTriggerChange),onClick:n=>{var r;null===(r=e.onClick)||void 0===r||r.call(e,n),e.disabled||n.defaultPrevented||(n.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:M(e.onPointerMove,J((n=>{r.onItemEnter(n),n.defaultPrevented||e.disabled||t.open||o.current||(r.onPointerGraceIntentChange(null),o.current=window.setTimeout((()=>{t.onOpenChange(!0),i()}),100))}))),onPointerLeave:M(e.onPointerLeave,J((e=>{var n;i();const o=null===(n=t.content)||void 0===n?void 0:n.getBoundingClientRect();if(o){var c;const n=null===(c=t.content)||void 0===c?void 0:c.dataset.side,a=\"right\"===n,i=a?-5:5,s=o[a?\"left\":\"right\"],l=o[a?\"right\":\"left\"];r.onPointerGraceIntentChange({area:[{x:e.clientX+i,y:e.clientY},{x:s,y:o.top},{x:l,y:o.top},{x:l,y:o.bottom},{x:s,y:o.bottom}],side:n}),window.clearTimeout(u.current),u.current=window.setTimeout((()=>r.onPointerGraceIntentChange(null)),300)}else{if(r.onTriggerLeave(e),e.defaultPrevented)return;r.onPointerGraceIntentChange(null)}}))),onKeyDown:M(e.onKeyDown,(n=>{const o=\"\"!==r.searchRef.current;var u;e.disabled||o&&\" \"===n.key||_[t.dir].includes(n.key)&&(t.onOpenChange(!0),null===(u=t.content)||void 0===u||u.focus(),n.preventDefault())}))}))):null}));/*#__PURE__*/const Y=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,disabled:r=!1,textValue:u,...c}=e,a=K(\"MenuItem\",t),i=T(t),l=E.useRef(null),d=m(n,l),[p,f]=E.useState(\"\");return E.useEffect((()=>{const e=l.current;var n;e&&f((null!==(n=e.textContent)&&void 0!==n?n:\"\").trim())}),[c.children]),/*#__PURE__*/E.createElement(I.ItemSlot,{scope:t,disabled:r,textValue:null!=u?u:p},/*#__PURE__*/E.createElement(o.Item,w({asChild:!0},i,{focusable:!r}),/*#__PURE__*/E.createElement(s.div,w({role:\"menuitem\",\"aria-disabled\":r||void 0,\"data-disabled\":r?\"\":void 0},c,{ref:d,onPointerMove:M(e.onPointerMove,J((e=>{if(r)a.onItemLeave(e);else if(a.onItemEnter(e),!e.defaultPrevented){e.currentTarget.focus()}}))),onPointerLeave:M(e.onPointerLeave,J((e=>a.onItemLeave(e))))}))))}));export const MenuCheckboxItem=/*#__PURE__*/E.forwardRef(((e,n)=>{const{checked:t=!1,onCheckedChange:r,...o}=e;/*#__PURE__*/return E.createElement(H,{scope:e.__scopeMenu,checked:t},/*#__PURE__*/E.createElement(MenuItem,w({role:\"menuitemcheckbox\",\"aria-checked\":t},o,{ref:n,\"data-state\":q(t),onSelect:M(o.onSelect,(()=>null==r?void 0:r(!t)),{checkForDefaultPrevented:!1})})))}));/*#__PURE__*/const[Z,z]=D(\"MenuRadioGroup\",{value:void 0,onValueChange:()=>{}});export const MenuRadioGroup=/*#__PURE__*/E.forwardRef(((e,n)=>{const{value:r,onValueChange:o,...u}=e,c=t(o);/*#__PURE__*/return E.createElement(Z,{scope:e.__scopeMenu,value:r,onValueChange:c},/*#__PURE__*/E.createElement(MenuGroup,w({},u,{ref:n})))}));/*#__PURE__*/export const MenuRadioItem=/*#__PURE__*/E.forwardRef(((e,n)=>{const{value:t,...r}=e,o=z(\"MenuRadioItem\",e.__scopeMenu),u=t===o.value;/*#__PURE__*/return E.createElement(H,{scope:e.__scopeMenu,checked:u},/*#__PURE__*/E.createElement(MenuItem,w({role:\"menuitemradio\",\"aria-checked\":u},r,{ref:n,\"data-state\":q(u),onSelect:M(r.onSelect,(()=>{var e;return null===(e=o.onValueChange)||void 0===e?void 0:e.call(o,t)}),{checkForDefaultPrevented:!1})})))}));/*#__PURE__*/const[H,W]=D(\"MenuItemIndicator\",{checked:!1});export const MenuItemIndicator=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,forceMount:r,...o}=e,u=W(\"MenuItemIndicator\",t);/*#__PURE__*/return E.createElement(l,{present:r||u.checked},/*#__PURE__*/E.createElement(s.span,w({},o,{ref:n,\"data-state\":q(u.checked)})))}));/*#__PURE__*/export const MenuSeparator=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e;/*#__PURE__*/return E.createElement(s.div,w({role:\"separator\",\"aria-orientation\":\"horizontal\"},r,{ref:n}))}));/*#__PURE__*/export const MenuArrow=/*#__PURE__*/E.forwardRef(((e,n)=>{const{__scopeMenu:t,...r}=e,o=O(t);/*#__PURE__*/return E.createElement(a.Arrow,w({},o,r,{ref:n}))}));/*#__PURE__*/function j(e){return e?\"open\":\"closed\"}function q(e){return e?\"checked\":\"unchecked\"}function J(e){return n=>\"mouse\"===n.pointerType?e(n):void 0}export const Root=Menu;export const Sub=MenuSub;export const Anchor=MenuAnchor;export const SubTrigger=MenuSubTrigger;export const Content=MenuContent;export const Group=MenuGroup;export const Label=MenuLabel;export const Item=MenuItem;export const CheckboxItem=MenuCheckboxItem;export const RadioGroup=MenuRadioGroup;export const RadioItem=MenuRadioItem;export const ItemIndicator=MenuItemIndicator;export const Separator=MenuSeparator;export const Arrow=MenuArrow;\n//# sourceMappingURL=index.module.js.map\n","import{useId as e}from\"@radix-ui/react-id\";import*as o from\"@radix-ui/react-menu\";import{createMenuScope as n}from\"@radix-ui/react-menu\";import{Primitive as r}from\"@radix-ui/react-primitive\";import{useControllableState as t}from\"@radix-ui/react-use-controllable-state\";import{createContextScope as p}from\"@radix-ui/react-context\";import{composeRefs as d}from\"@radix-ui/react-compose-refs\";import{composeEventHandlers as a}from\"@radix-ui/primitive\";import*as c from\"react\";import u from\"@babel/runtime/helpers/esm/extends\";const[s,i]=p(\"DropdownMenu\",[n]);export{i as createDropdownMenuScope};const l=n(),[m,w]=s(\"DropdownMenu\");export const DropdownMenu=e=>{const{__scopeDropdownMenu:n,children:r,open:p,defaultOpen:d,onOpenChange:a}=e,s=M(\"DropdownMenu\",n),i=l(n),[w=!1,D]=t({prop:p,defaultProp:d,onChange:a}),g=c.useCallback((()=>D((e=>!e))),[D]);return s.isInsideContent?/*#__PURE__*/c.createElement(m,{scope:n,isRootMenu:!1,open:w,onOpenChange:D,onOpenToggle:g},/*#__PURE__*/c.createElement(o.Sub,u({},i,{open:w,onOpenChange:D}),r)):/*#__PURE__*/c.createElement(f,u({},e,{open:w,onOpenChange:D,onOpenToggle:g}),r)};/*#__PURE__*/const f=n=>{const{__scopeDropdownMenu:r,children:t,dir:p,open:d,onOpenChange:a,onOpenToggle:s,modal:i=!0}=n,w=l(r),f=c.useRef(null);/*#__PURE__*/return c.createElement(m,{scope:r,isRootMenu:!0,triggerId:e(),triggerRef:f,contentId:e(),open:d,onOpenChange:a,onOpenToggle:s,modal:i},/*#__PURE__*/c.createElement(o.Root,u({},w,{open:d,onOpenChange:a,dir:p,modal:i}),t))};export const DropdownMenuTrigger=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:t,disabled:p=!1,...s}=e,i=w(\"DropdownMenuTrigger\",t),m=l(t);return i.isRootMenu?/*#__PURE__*/c.createElement(o.Anchor,u({asChild:!0},m),/*#__PURE__*/c.createElement(r.button,u({type:\"button\",id:i.triggerId,\"aria-haspopup\":\"menu\",\"aria-expanded\":!!i.open||void 0,\"aria-controls\":i.open?i.contentId:void 0,\"data-state\":i.open?\"open\":\"closed\",\"data-disabled\":p?\"\":void 0,disabled:p},s,{ref:d(n,i.triggerRef),onPointerDown:a(e.onPointerDown,(e=>{p||0!==e.button||!1!==e.ctrlKey||(i.open||e.preventDefault(),i.onOpenToggle())})),onKeyDown:a(e.onKeyDown,(e=>{p||([\"Enter\",\" \"].includes(e.key)&&i.onOpenToggle(),\"ArrowDown\"===e.key&&i.onOpenChange(!0),[\" \",\"ArrowDown\"].includes(e.key)&&e.preventDefault())}))}))):null}));/*#__PURE__*/const[D,M]=s(\"DropdownMenuContent\",{isInsideContent:!1});export const DropdownMenuContent=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=w(\"DropdownMenuContent\",r),d=l(r),a={...t,style:{...e.style,\"--radix-dropdown-menu-content-transform-origin\":\"var(--radix-popper-transform-origin)\"}};/*#__PURE__*/return c.createElement(D,{scope:r,isInsideContent:!0},p.isRootMenu?/*#__PURE__*/c.createElement(g,u({__scopeDropdownMenu:r},a,{ref:n})):/*#__PURE__*/c.createElement(o.Content,u({},d,a,{ref:n})))}));/*#__PURE__*/const g=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,portalled:t=!0,...p}=e,d=w(\"DropdownMenuContent\",r),s=l(r),i=c.useRef(!1);return d.isRootMenu?/*#__PURE__*/c.createElement(o.Content,u({id:d.contentId,\"aria-labelledby\":d.triggerId},s,p,{ref:n,portalled:t,onCloseAutoFocus:a(e.onCloseAutoFocus,(e=>{var o;i.current||null===(o=d.triggerRef.current)||void 0===o||o.focus(),i.current=!1,e.preventDefault()})),onInteractOutside:a(e.onInteractOutside,(e=>{const o=e.detail.originalEvent,n=0===o.button&&!0===o.ctrlKey,r=2===o.button||n;d.modal&&!r||(i.current=!0)}))})):null}));export const DropdownMenuGroup=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.Group,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuLabel=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.Label,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuItem=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.Item,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuTriggerItem=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.SubTrigger,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuCheckboxItem=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.CheckboxItem,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuRadioGroup=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.RadioGroup,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuRadioItem=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.RadioItem,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuItemIndicator=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.ItemIndicator,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuSeparator=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.Separator,u({},p,t,{ref:n}))}));/*#__PURE__*/export const DropdownMenuArrow=/*#__PURE__*/c.forwardRef(((e,n)=>{const{__scopeDropdownMenu:r,...t}=e,p=l(r);/*#__PURE__*/return c.createElement(o.Arrow,u({},p,t,{ref:n}))}));/*#__PURE__*/export const Root=DropdownMenu;export const Trigger=DropdownMenuTrigger;export const Content=DropdownMenuContent;export const Group=DropdownMenuGroup;export const Label=DropdownMenuLabel;export const Item=DropdownMenuItem;export const TriggerItem=DropdownMenuTriggerItem;export const CheckboxItem=DropdownMenuCheckboxItem;export const RadioGroup=DropdownMenuRadioGroup;export const RadioItem=DropdownMenuRadioItem;export const ItemIndicator=DropdownMenuItemIndicator;export const Separator=DropdownMenuSeparator;export const Arrow=DropdownMenuArrow;\n//# sourceMappingURL=index.module.js.map\n","import{useId as e}from\"@radix-ui/react-id\";import{Presence as t}from\"@radix-ui/react-presence\";import{Primitive as o}from\"@radix-ui/react-primitive\";import{useComposedRefs as n}from\"@radix-ui/react-compose-refs\";import{useLayoutEffect as r}from\"@radix-ui/react-use-layout-effect\";import{useControllableState as i}from\"@radix-ui/react-use-controllable-state\";import{createContextScope as a}from\"@radix-ui/react-context\";import{composeEventHandlers as l}from\"@radix-ui/primitive\";import*as s from\"react\";import c from\"@babel/runtime/helpers/esm/extends\";const[p,d]=a(\"Collapsible\");export{d as createCollapsibleScope};const[u,m]=p(\"Collapsible\");export const Collapsible=/*#__PURE__*/s.forwardRef(((t,n)=>{const{__scopeCollapsible:r,open:a,defaultOpen:l,disabled:p,onOpenChange:d,...m}=t,[f=!1,C]=i({prop:a,defaultProp:l,onChange:d});/*#__PURE__*/return s.createElement(u,{scope:r,disabled:p,contentId:e(),open:f,onOpenToggle:s.useCallback((()=>C((e=>!e))),[C])},/*#__PURE__*/s.createElement(o.div,c({\"data-state\":b(f),\"data-disabled\":p?\"\":void 0},m,{ref:n})))}));/*#__PURE__*/export const CollapsibleTrigger=/*#__PURE__*/s.forwardRef(((e,t)=>{const{__scopeCollapsible:n,...r}=e,i=m(\"CollapsibleTrigger\",n);/*#__PURE__*/return s.createElement(o.button,c({type:\"button\",\"aria-controls\":i.contentId,\"aria-expanded\":i.open||!1,\"data-state\":b(i.open),\"data-disabled\":i.disabled?\"\":void 0,disabled:i.disabled},r,{ref:t,onClick:l(e.onClick,i.onOpenToggle)}))}));/*#__PURE__*/export const CollapsibleContent=/*#__PURE__*/s.forwardRef(((e,o)=>{const{forceMount:n,...r}=e,i=m(\"CollapsibleContent\",e.__scopeCollapsible);/*#__PURE__*/return s.createElement(t,{present:n||i.open},(({present:e})=>/*#__PURE__*/s.createElement(f,c({},r,{ref:o,present:e}))))}));/*#__PURE__*/const f=/*#__PURE__*/s.forwardRef(((e,t)=>{const{__scopeCollapsible:i,present:a,children:l,...p}=e,d=m(\"CollapsibleContent\",i),[u,f]=s.useState(a),C=s.useRef(null),x=n(t,C),g=s.useRef(0),y=g.current,h=s.useRef(0),R=h.current,D=d.open||u,v=s.useRef(D),_=s.useRef();return s.useEffect((()=>{const e=requestAnimationFrame((()=>v.current=!1));return()=>cancelAnimationFrame(e)}),[]),r((()=>{const e=C.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationDuration:e.style.animationDuration,animationFillMode:e.style.animationFillMode},e.style.transitionDuration=\"0s\",e.style.animationDuration=\"0s\",e.style.animationFillMode=\"none\";const t=e.getBoundingClientRect();g.current=t.height,h.current=t.width,v.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationDuration=_.current.animationDuration,e.style.animationFillMode=_.current.animationFillMode),f(a)}}),[d.open,a]),/*#__PURE__*/s.createElement(o.div,c({\"data-state\":b(d.open),\"data-disabled\":d.disabled?\"\":void 0,id:d.contentId,hidden:!D},p,{ref:x,style:{\"--radix-collapsible-content-height\":y?`${y}px`:void 0,\"--radix-collapsible-content-width\":R?`${R}px`:void 0,...e.style}}),D&&l)}));function b(e){return e?\"open\":\"closed\"}export const Root=Collapsible;export const Trigger=CollapsibleTrigger;export const Content=CollapsibleContent;\n//# sourceMappingURL=index.module.js.map\n","import{Primitive as e}from\"@radix-ui/react-primitive\";import*as r from\"react\";import t from\"@babel/runtime/helpers/esm/extends\";export const VisuallyHidden=/*#__PURE__*/r.forwardRef(((i,o)=>/*#__PURE__*/r.createElement(e.span,t({},i,{ref:o,style:{position:\"absolute\",border:0,width:1,height:1,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",wordWrap:\"normal\",...i.style}}))));/*#__PURE__*/export const Root=VisuallyHidden;\n//# sourceMappingURL=index.module.js.map\n","import*as e from\"react\";export function usePrevious(r){const u=e.useRef({value:r,previous:r});return e.useMemo((()=>(u.current.value!==r&&(u.current.previous=u.current.value,u.current.value=r),u.current.previous)),[r])}\n//# sourceMappingURL=index.module.js.map\n","import{useId as e}from\"@radix-ui/react-id\";import{Primitive as t}from\"@radix-ui/react-primitive\";import{useComposedRefs as r}from\"@radix-ui/react-compose-refs\";import{createContext as o}from\"@radix-ui/react-context\";import*as l from\"react\";import n from\"@babel/runtime/helpers/esm/extends\";const[i,a]=o(\"Label\",{id:void 0,controlRef:{current:null}});export const Label=/*#__PURE__*/l.forwardRef(((o,a)=>{const{htmlFor:c,id:u,...s}=o,d=l.useRef(null),f=l.useRef(null),m=r(a,f),b=e(u);return l.useEffect((()=>{if(c){const e=document.getElementById(c);if(f.current&&e){const t=()=>e.getAttribute(\"aria-labelledby\"),r=[b,t()].filter(Boolean).join(\" \");return e.setAttribute(\"aria-labelledby\",r),d.current=e,()=>{var r;const o=null===(r=t())||void 0===r?void 0:r.replace(b,\"\");\"\"===o?e.removeAttribute(\"aria-labelledby\"):o&&e.setAttribute(\"aria-labelledby\",o)}}}}),[b,c]),/*#__PURE__*/l.createElement(i,{id:b,controlRef:d},/*#__PURE__*/l.createElement(t.span,n({role:\"label\",id:b},s,{ref:m,onMouseDown:e=>{var t;null===(t=o.onMouseDown)||void 0===t||t.call(o,e),!e.defaultPrevented&&e.detail>1&&e.preventDefault()},onClick:e=>{var t;if(null===(t=o.onClick)||void 0===t||t.call(o,e),!d.current||e.defaultPrevented)return;const r=d.current.contains(e.target),l=!0===e.isTrusted;!r&&l&&(d.current.click(),d.current.focus())}})))}));/*#__PURE__*/export const useLabelContext=e=>{const t=a(\"LabelConsumer\"),{controlRef:r}=t;return l.useEffect((()=>{e&&(r.current=e)}),[e,r]),t.id};export const Root=Label;\n//# sourceMappingURL=index.module.js.map\n","export function clamp(t,[a,n]){return Math.min(n,Math.max(a,t))}\n//# sourceMappingURL=index.module.js.map\n","import{RemoveScroll as e}from\"react-remove-scroll\";import{hideOthers as t}from\"aria-hidden\";import{VisuallyHidden as o}from\"@radix-ui/react-visually-hidden\";import{usePrevious as n}from\"@radix-ui/react-use-previous\";import{useLayoutEffect as r}from\"@radix-ui/react-use-layout-effect\";import{useControllableState as l}from\"@radix-ui/react-use-controllable-state\";import{useCallbackRef as c}from\"@radix-ui/react-use-callback-ref\";import{Primitive as a}from\"@radix-ui/react-primitive\";import{Portal as i}from\"@radix-ui/react-portal\";import{useLabelContext as s}from\"@radix-ui/react-label\";import{useId as u}from\"@radix-ui/react-id\";import{FocusScope as d}from\"@radix-ui/react-focus-scope\";import{DismissableLayer as p}from\"@radix-ui/react-dismissable-layer\";import{createContextScope as f}from\"@radix-ui/react-context\";import{useComposedRefs as m}from\"@radix-ui/react-compose-refs\";import{createCollection as v}from\"@radix-ui/react-collection\";import{composeEventHandlers as S}from\"@radix-ui/primitive\";import{clamp as h}from\"@radix-ui/number\";import*as g from\"react-dom\";import*as x from\"react\";import w from\"@babel/runtime/helpers/esm/extends\";const b=[\" \",\"Enter\",\"ArrowUp\",\"ArrowDown\"],y=[\" \",\"Enter\"],[E,C,I]=v(\"Select\"),[T,_]=f(\"Select\",[I]);export{_ as createSelectScope};const[R,D]=T(\"Select\");export const Select=e=>{const{__scopeSelect:t,children:o,open:n,defaultOpen:r,onOpenChange:c,value:a,defaultValue:i,onValueChange:s,dir:d,name:p,autoComplete:f}=e,[m,v]=x.useState(null),[S,h]=x.useState(null),[g,w]=x.useState(!1),[b=!1,y]=l({prop:n,defaultProp:r,onChange:c}),[C=\"\",I]=l({prop:a,defaultProp:i,onChange:s}),T=!m||Boolean(m.closest(\"form\")),[_,D]=x.useState(null),P=x.useRef(null);/*#__PURE__*/return x.createElement(R,{scope:t,trigger:m,onTriggerChange:v,valueNode:S,onValueNodeChange:h,valueNodeHasChildren:g,onValueNodeHasChildrenChange:w,contentId:u(),value:C,onValueChange:I,open:b,onOpenChange:y,dir:d,bubbleSelect:_,triggerPointerDownPosRef:P},/*#__PURE__*/x.createElement(E.Provider,{scope:t},o),T?/*#__PURE__*/x.createElement(O,{ref:D,\"aria-hidden\":!0,tabIndex:-1,name:p,autoComplete:f,value:C,onChange:e=>I(e.target.value)}):null)};/*#__PURE__*/export const SelectTrigger=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,disabled:n=!1,\"aria-labelledby\":r,...l}=e,c=D(\"SelectTrigger\",o),i=m(t,c.onTriggerChange),u=C(o),d=s(c.trigger),p=r||d,[f,v,h]=N((e=>{const t=u().filter((e=>!e.disabled)),o=t.find((e=>e.value===c.value)),n=K(t,e,o);void 0!==n&&c.onValueChange(n.value)})),g=()=>{n||(c.onOpenChange(!0),h())};/*#__PURE__*/return x.createElement(a.button,w({type:\"button\",role:\"combobox\",\"aria-controls\":c.contentId,\"aria-expanded\":c.open,\"aria-autocomplete\":\"none\",\"aria-labelledby\":p,dir:c.dir,disabled:n,\"data-disabled\":n?\"\":void 0},l,{ref:i,onPointerDown:S(l.onPointerDown,(e=>{e.target.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&(g(),c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)},e.preventDefault())})),onKeyDown:S(l.onKeyDown,(e=>{const t=\"\"!==f.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||v(e.key),t&&\" \"===e.key||b.includes(e.key)&&(g(),e.preventDefault())}))}))}));/*#__PURE__*/export const SelectValue=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,className:n,style:r,...l}=e,c=D(\"SelectValue\",o),{onValueNodeHasChildrenChange:i}=c,s=void 0!==e.children,u=m(t,c.onValueNodeChange);return x.useEffect((()=>{i(s)}),[i,s]),/*#__PURE__*/x.createElement(a.span,w({},l,{ref:u,style:{pointerEvents:\"none\"}}))}));/*#__PURE__*/export const SelectIcon=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,children:n,...r}=e;/*#__PURE__*/return x.createElement(a.span,w({\"aria-hidden\":!0},r,{ref:t}),n||\"▼\")}));/*#__PURE__*/export const SelectContent=/*#__PURE__*/x.forwardRef(((e,t)=>{const o=D(\"SelectContent\",e.__scopeSelect),[n,l]=x.useState();return r((()=>{l(new DocumentFragment)}),[]),o.open?/*#__PURE__*/x.createElement(k,w({},e,{ref:t})):n?/*#__PURE__*/g.createPortal(/*#__PURE__*/\nx.createElement(P,{scope:e.__scopeSelect},/*#__PURE__*/x.createElement(E.Slot,{scope:e.__scopeSelect},/*#__PURE__*/x.createElement(\"div\",null,e.children))),n):null}));const[P,L]=T(\"SelectContent\"),k=/*#__PURE__*/x.forwardRef(((o,n)=>{const{__scopeSelect:l,onCloseAutoFocus:c,children:a,...s}=o,u=D(\"SelectContent\",l),[f,v]=x.useState(null),[g,b]=x.useState(null),[y,E]=x.useState(null),I=m(n,(e=>b(e))),[T,_]=x.useState(null),[R,L]=x.useState(null),k=C(l),[V,H]=x.useState(!1),M=x.useRef(!0),B=x.useRef(!1);x.useEffect((()=>{if(g)return t(g)}),[g]);const A=x.useCallback((e=>{const[t,...o]=k().map((e=>e.ref.current)),[n]=o.slice(-1),r=document.activeElement;for(const o of e){if(o===r)return;if(null==o||o.scrollIntoView({block:\"nearest\"}),o===t&&y&&(y.scrollTop=0),o===n&&y&&(y.scrollTop=y.scrollHeight),null==o||o.focus(),document.activeElement!==r)return}}),[k,y]),O=x.useCallback((()=>{if(u.trigger&&u.valueNode&&f&&g&&y&&T&&R){const e=u.trigger.getBoundingClientRect(),t=g.getBoundingClientRect(),o=u.valueNode.getBoundingClientRect(),n=R.getBoundingClientRect();if(\"rtl\"!==u.dir){const r=n.left-t.left,l=o.left-r,c=e.left-l,a=e.width+c,i=Math.max(a,t.width),s=window.innerWidth-10,u=h(l,[10,s-i]);f.style.minWidth=a+\"px\",f.style.left=u+\"px\"}else{const r=t.right-n.right,l=window.innerWidth-o.right-r,c=window.innerWidth-e.right-l,a=e.width+c,i=Math.max(a,t.width),s=window.innerWidth-10,u=h(l,[10,s-i]);f.style.minWidth=a+\"px\",f.style.right=u+\"px\"}const r=window.innerHeight-20,l=5*T.offsetHeight,c=y.scrollHeight,a=window.getComputedStyle(g),i=parseInt(a.borderTopWidth,10),s=parseInt(a.paddingTop,10),d=parseInt(a.borderBottomWidth,10),p=i+s+c+parseInt(a.paddingBottom,10)+d,m=e.top+e.height/2-10,v=r-m,S=T.offsetHeight/2,x=i+(T.offsetTop+S),w=p-x;if(x<=m){f.style.bottom=\"0px\";const e=g.clientHeight-y.offsetTop-y.offsetHeight,t=x+Math.max(v,S+e+d);f.style.height=t+\"px\"}else{f.style.top=\"0px\";const e=Math.max(m,i+y.offsetTop+S)+w;f.style.height=e+\"px\",y.scrollTop=x-m+y.offsetTop}f.style.margin=\"10px 0\",f.style.minHeight=l+\"px\",f.style.maxHeight=r+\"px\",H(!0),requestAnimationFrame((()=>B.current=!0))}}),[u.trigger,u.valueNode,f,g,y,T,R,u.dir]);r((()=>O()),[O]);const F=x.useCallback((()=>A([T,g])),[A,T,g]);x.useEffect((()=>{V&&F()}),[V,F]);const U=x.useCallback((e=>{e&&!0===M.current&&(O(),F(),M.current=!1)}),[O,F]),{onOpenChange:W,triggerPointerDownPosRef:z}=u;x.useEffect((()=>{if(g){let e={x:0,y:0};const t=t=>{var o,n,r,l;e={x:Math.abs(Math.round(t.pageX)-(null!==(o=null===(n=z.current)||void 0===n?void 0:n.x)&&void 0!==o?o:0)),y:Math.abs(Math.round(t.pageY)-(null!==(r=null===(l=z.current)||void 0===l?void 0:l.y)&&void 0!==r?r:0))}},o=o=>{e.x<=10&&e.y<=10?o.preventDefault():g.contains(o.target)||W(!1),document.removeEventListener(\"pointermove\",t),z.current=null};return null!==z.current&&(document.addEventListener(\"pointermove\",t),document.addEventListener(\"pointerup\",o,{capture:!0,once:!0})),()=>{document.removeEventListener(\"pointermove\",t),document.removeEventListener(\"pointerup\",o,{capture:!0})}}}),[g,W,z]),x.useEffect((()=>{const e=()=>W(!1);return window.addEventListener(\"blur\",e),window.addEventListener(\"resize\",e),()=>{window.removeEventListener(\"blur\",e),window.removeEventListener(\"resize\",e)}}),[W]);const[G,j]=N((e=>{const t=k().filter((e=>!e.disabled)),o=t.find((e=>e.ref.current===document.activeElement)),n=K(t,e,o);n&&setTimeout((()=>n.ref.current.focus()))})),X=x.useCallback((()=>null==g?void 0:g.focus()),[g]);/*#__PURE__*/return x.createElement(i,null,/*#__PURE__*/x.createElement(e,null,/*#__PURE__*/x.createElement(\"div\",{ref:v,style:{display:\"flex\",flexDirection:\"column\",position:\"fixed\",zIndex:0}},/*#__PURE__*/x.createElement(d,{asChild:!0,trapped:u.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:S(c,(e=>{var t;null===(t=u.trigger)||void 0===t||t.focus({preventScroll:!0}),e.preventDefault()}))},/*#__PURE__*/x.createElement(p,w({role:\"listbox\",id:u.contentId,\"data-state\":u.open?\"open\":\"closed\",dir:u.dir,onContextMenu:e=>e.preventDefault()},s,{ref:I,style:{display:\"flex\",flexDirection:\"column\",boxSizing:\"border-box\",maxHeight:\"100%\",outline:\"none\",...s.style},disableOutsidePointerEvents:!0,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>u.onOpenChange(!1),onKeyDown:S(s.onKeyDown,(e=>{const t=e.ctrlKey||e.altKey||e.metaKey;if(\"Tab\"===e.key&&e.preventDefault(),t||1!==e.key.length||j(e.key),[\"ArrowUp\",\"ArrowDown\",\"Home\",\"End\"].includes(e.key)){let t=k().filter((e=>!e.disabled)).map((e=>e.ref.current));if([\"ArrowUp\",\"End\"].includes(e.key)&&(t=t.slice().reverse()),[\"ArrowUp\",\"ArrowDown\"].includes(e.key)){const o=e.target,n=t.indexOf(o);t=t.slice(n+1)}setTimeout((()=>A(t))),e.preventDefault()}}))}),/*#__PURE__*/x.createElement(P,{scope:l,contentWrapper:f,content:g,viewport:y,onViewportChange:E,selectedItem:T,onSelectedItemChange:_,selectedItemText:R,onSelectedItemTextChange:L,onScrollButtonChange:U,onItemLeave:X,isPositioned:V,shouldExpandOnScrollRef:B,searchRef:G},a))))))}));export const SelectViewport=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,...n}=e,r=L(\"SelectViewport\",o),l=m(t,r.onViewportChange),c=x.useRef(0);/*#__PURE__*/return x.createElement(x.Fragment,null,/*#__PURE__*/x.createElement(\"style\",{dangerouslySetInnerHTML:{__html:\"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}\"}}),/*#__PURE__*/x.createElement(E.Slot,{scope:o},/*#__PURE__*/x.createElement(a.div,w({\"data-radix-select-viewport\":\"\",role:\"presentation\"},n,{ref:l,style:{position:\"relative\",flex:1,overflow:\"auto\",...n.style},onScroll:S(n.onScroll,(e=>{const t=e.currentTarget,{contentWrapper:o,shouldExpandOnScrollRef:n}=r;if(n.current&&o){const e=Math.abs(c.current-t.scrollTop);if(e>0){const n=window.innerHeight-20,r=parseFloat(o.style.minHeight),l=parseFloat(o.style.height),c=Math.max(r,l);if(c0?a:0,o.style.justifyContent=\"flex-end\")}}}c.current=t.scrollTop}))}))))}));/*#__PURE__*/const[V,H]=T(\"SelectGroup\");export const SelectGroup=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,...n}=e,r=u();/*#__PURE__*/return x.createElement(V,{scope:o,id:r},/*#__PURE__*/x.createElement(a.div,w({role:\"group\",\"aria-labelledby\":r},n,{ref:t})))}));/*#__PURE__*/export const SelectLabel=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,...n}=e,r=H(\"SelectLabel\",o);/*#__PURE__*/return x.createElement(a.div,w({id:r.id},n,{ref:t}))}));/*#__PURE__*/const[M,B]=T(\"SelectItem\");export const SelectItem=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,value:n,disabled:r=!1,textValue:l,...c}=e,i=D(\"SelectItem\",o),s=L(\"SelectItem\",o),d=i.value===n,[p,f]=x.useState(null!=l?l:\"\"),[v,h]=x.useState(!1),g=m(t,d?s.onSelectedItemChange:void 0),b=u(),C=()=>{r||(i.onValueChange(n),i.onOpenChange(!1))};/*#__PURE__*/return x.createElement(M,{scope:o,value:n,textId:b,isSelected:d,onItemTextChange:x.useCallback((e=>{f((t=>{var o;return t||(null!==(o=null==e?void 0:e.textContent)&&void 0!==o?o:\"\").trim()}))}),[])},/*#__PURE__*/x.createElement(E.ItemSlot,{scope:o,value:n,disabled:r,textValue:p},/*#__PURE__*/x.createElement(a.div,w({role:\"option\",\"aria-labelledby\":b,\"aria-selected\":d&&v,\"data-state\":d?\"active\":\"inactive\",\"aria-disabled\":r||void 0,\"data-disabled\":r?\"\":void 0,tabIndex:r?void 0:-1},c,{ref:g,onFocus:S(c.onFocus,(()=>h(!0))),onBlur:S(c.onBlur,(()=>h(!1))),onPointerUp:S(c.onPointerUp,C),onPointerMove:S(c.onPointerMove,(e=>{r?s.onItemLeave():e.currentTarget.focus({preventScroll:!0})})),onPointerLeave:S(c.onPointerLeave,(e=>{e.currentTarget===document.activeElement&&s.onItemLeave()})),onKeyDown:S(c.onKeyDown,(e=>{\"\"!==s.searchRef.current&&\" \"===e.key||(y.includes(e.key)&&C(),\" \"===e.key&&e.preventDefault())}))}))))}));/*#__PURE__*/export const SelectItemText=/*#__PURE__*/x.forwardRef(((e,t)=>{var o;const{__scopeSelect:n,className:r,style:l,...c}=e,i=D(\"SelectItemText\",n),s=L(\"SelectItemText\",n),u=B(\"SelectItemText\",n),d=x.useRef(null),p=m(t,d,u.onItemTextChange,u.isSelected?s.onSelectedItemTextChange:void 0);/*#__PURE__*/return x.createElement(x.Fragment,null,/*#__PURE__*/x.createElement(a.span,w({id:u.textId},c,{ref:p})),u.isSelected&&i.valueNode&&!i.valueNodeHasChildren?/*#__PURE__*/g.createPortal(c.children,i.valueNode):null,i.bubbleSelect?/*#__PURE__*/g.createPortal(/*#__PURE__*/\nx.createElement(\"option\",{value:u.value},null===(o=d.current)||void 0===o?void 0:o.textContent),i.bubbleSelect):null)}));/*#__PURE__*/export const SelectItemIndicator=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,...n}=e;return B(\"SelectItemIndicator\",o).isSelected?/*#__PURE__*/x.createElement(a.span,w({\"aria-hidden\":!0},n,{ref:t})):null}));/*#__PURE__*/export const SelectScrollUpButton=/*#__PURE__*/x.forwardRef(((e,t)=>{const o=L(\"SelectScrollUpButton\",e.__scopeSelect),[n,r]=x.useState(!1),l=m(t,o.onScrollButtonChange);return x.useEffect((()=>{if(o.viewport&&o.isPositioned){const t=o.viewport;function e(){const e=t.scrollTop>0;r(e)}return e(),t.addEventListener(\"scroll\",e),()=>t.removeEventListener(\"scroll\",e)}}),[o.viewport,o.isPositioned]),n?/*#__PURE__*/x.createElement(A,w({},e,{ref:l,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}})):null}));/*#__PURE__*/export const SelectScrollDownButton=/*#__PURE__*/x.forwardRef(((e,t)=>{const o=L(\"SelectScrollDownButton\",e.__scopeSelect),[n,r]=x.useState(!1),l=m(t,o.onScrollButtonChange);return x.useEffect((()=>{if(o.viewport&&o.isPositioned){const t=o.viewport;function e(){const e=t.scrollHeight-t.clientHeight,o=Math.ceil(t.scrollTop)t.removeEventListener(\"scroll\",e)}}),[o.viewport,o.isPositioned]),n?/*#__PURE__*/x.createElement(A,w({},e,{ref:l,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}})):null}));/*#__PURE__*/const A=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,onAutoScroll:n,...l}=e,c=L(\"SelectScrollButton\",o),i=x.useRef(null),s=C(o),u=x.useCallback((()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)}),[]);return x.useEffect((()=>()=>u()),[u]),r((()=>{var e;const t=s().find((e=>e.ref.current===document.activeElement));null==t||null===(e=t.ref.current)||void 0===e||e.scrollIntoView({block:\"nearest\"})}),[s]),/*#__PURE__*/x.createElement(a.div,w({\"aria-hidden\":!0},l,{ref:t,style:{flexShrink:0,...l.style},onPointerMove:S(l.onPointerMove,(()=>{c.onItemLeave(),null===i.current&&(i.current=window.setInterval(n,50))})),onPointerLeave:S(l.onPointerLeave,(()=>{u()}))}))}));export const SelectSeparator=/*#__PURE__*/x.forwardRef(((e,t)=>{const{__scopeSelect:o,...n}=e;/*#__PURE__*/return x.createElement(a.div,w({\"aria-hidden\":!0},n,{ref:t}))}));/*#__PURE__*/const O=/*#__PURE__*/x.forwardRef(((e,t)=>{const{value:r,...l}=e,c=x.useRef(null),a=m(t,c),i=n(r);return x.useEffect((()=>{const e=c.current,t=window.HTMLSelectElement.prototype,o=Object.getOwnPropertyDescriptor(t,\"value\").set;if(i!==r&&o){const t=new Event(\"change\",{bubbles:!0});o.call(e,r),e.dispatchEvent(t)}}),[i,r]),/*#__PURE__*/x.createElement(o,{asChild:!0},/*#__PURE__*/x.createElement(\"select\",w({},l,{ref:a,defaultValue:r})))}));function N(e){const t=c(e),o=x.useRef(\"\"),n=x.useRef(0),r=x.useCallback((e=>{const r=o.current+e;t(r),function e(t){o.current=t,window.clearTimeout(n.current),\"\"!==t&&(n.current=window.setTimeout((()=>e(\"\")),1e3))}(r)}),[t]),l=x.useCallback((()=>{o.current=\"\",window.clearTimeout(n.current)}),[]);return x.useEffect((()=>()=>window.clearTimeout(n.current)),[]),[o,r,l]}function K(e,t,o){const n=t.length>1&&Array.from(t).every((e=>e===t[0]))?t[0]:t,r=o?e.indexOf(o):-1;let l=(c=e,a=Math.max(r,0),c.map(((e,t)=>c[(a+t)%c.length])));var c,a;1===n.length&&(l=l.filter((e=>e!==o)));const i=l.find((e=>e.textValue.toLowerCase().startsWith(n.toLowerCase())));return i!==o?i:void 0}export const Root=Select;export const Trigger=SelectTrigger;export const Value=SelectValue;export const Icon=SelectIcon;export const Content=SelectContent;export const Viewport=SelectViewport;export const Group=SelectGroup;export const Label=SelectLabel;export const Item=SelectItem;export const ItemText=SelectItemText;export const ItemIndicator=SelectItemIndicator;export const ScrollUpButton=SelectScrollUpButton;export const ScrollDownButton=SelectScrollDownButton;export const Separator=SelectSeparator;\n//# sourceMappingURL=index.module.js.map\n","function $ae6933e535247d3d$export$7d15b64cf5a3a4c4(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n\n\n\nexport {$ae6933e535247d3d$export$7d15b64cf5a3a4c4 as clamp};\n//# sourceMappingURL=index.module.js.map\n","import {useRef as $8LvvK$useRef, useMemo as $8LvvK$useMemo} from \"react\";\n\n\nfunction $010c2913dbd2fe3d$export$5cae361ad82dce8b(value) {\n const ref = $8LvvK$useRef({\n value: value,\n previous: value\n }); // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return $8LvvK$useMemo(()=>{\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [\n value\n ]);\n}\n\n\n\n\nexport {$010c2913dbd2fe3d$export$5cae361ad82dce8b as usePrevious};\n//# sourceMappingURL=index.module.js.map\n","import {useState as $9gyGR$useState} from \"react\";\nimport {useLayoutEffect as $9gyGR$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\n\n\n\nfunction $db6c3485150b8e66$export$1ab7ae714698c4b8(element) {\n const [size, setSize] = $9gyGR$useState(undefined);\n $9gyGR$useLayoutEffect(()=>{\n if (element) {\n // provide size as early as possible\n setSize({\n width: element.offsetWidth,\n height: element.offsetHeight\n });\n const resizeObserver = new ResizeObserver((entries)=>{\n if (!Array.isArray(entries)) return;\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length) return;\n const entry = entries[0];\n let width;\n let height;\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry['borderBoxSize']; // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize['inlineSize'];\n height = borderSize['blockSize'];\n } else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({\n width: width,\n height: height\n });\n });\n resizeObserver.observe(element, {\n box: 'border-box'\n });\n return ()=>resizeObserver.unobserve(element)\n ;\n } else // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n setSize(undefined);\n }, [\n element\n ]);\n return size;\n}\n\n\n\n\nexport {$db6c3485150b8e66$export$1ab7ae714698c4b8 as useSize};\n//# sourceMappingURL=index.module.js.map\n","import $g1Vy2$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $g1Vy2$forwardRef, useState as $g1Vy2$useState, useRef as $g1Vy2$useRef, createElement as $g1Vy2$createElement, useMemo as $g1Vy2$useMemo, useEffect as $g1Vy2$useEffect} from \"react\";\nimport {clamp as $g1Vy2$clamp} from \"@radix-ui/number\";\nimport {composeEventHandlers as $g1Vy2$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {useComposedRefs as $g1Vy2$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {createContextScope as $g1Vy2$createContextScope} from \"@radix-ui/react-context\";\nimport {useControllableState as $g1Vy2$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useDirection as $g1Vy2$useDirection} from \"@radix-ui/react-direction\";\nimport {usePrevious as $g1Vy2$usePrevious} from \"@radix-ui/react-use-previous\";\nimport {useSize as $g1Vy2$useSize} from \"@radix-ui/react-use-size\";\nimport {Primitive as $g1Vy2$Primitive} from \"@radix-ui/react-primitive\";\nimport {createCollection as $g1Vy2$createCollection} from \"@radix-ui/react-collection\";\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst $faa2e61a3361514f$var$PAGE_KEYS = [\n 'PageUp',\n 'PageDown'\n];\nconst $faa2e61a3361514f$var$ARROW_KEYS = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight'\n];\nconst $faa2e61a3361514f$var$BACK_KEYS = {\n 'from-left': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowLeft'\n ],\n 'from-right': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowRight'\n ],\n 'from-bottom': [\n 'Home',\n 'PageDown',\n 'ArrowDown',\n 'ArrowLeft'\n ],\n 'from-top': [\n 'Home',\n 'PageDown',\n 'ArrowUp',\n 'ArrowLeft'\n ]\n};\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SLIDER_NAME = 'Slider';\nconst [$faa2e61a3361514f$var$Collection, $faa2e61a3361514f$var$useCollection, $faa2e61a3361514f$var$createCollectionScope] = $g1Vy2$createCollection($faa2e61a3361514f$var$SLIDER_NAME);\nconst [$faa2e61a3361514f$var$createSliderContext, $faa2e61a3361514f$export$ef72632d7b901f97] = $g1Vy2$createContextScope($faa2e61a3361514f$var$SLIDER_NAME, [\n $faa2e61a3361514f$var$createCollectionScope\n]);\nconst [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME);\nconst $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [\n min\n ] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;\n const [slider, setSlider] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)\n );\n const thumbRefs = $g1Vy2$useRef(new Set());\n const valueIndexToChangeRef = $g1Vy2$useRef(0);\n const isHorizontal = orientation === 'horizontal'; // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? $faa2e61a3361514f$var$SliderHorizontal : $faa2e61a3361514f$var$SliderVertical;\n const [values = [], setValues] = $g1Vy2$useControllableState({\n prop: value1,\n defaultProp: defaultValue,\n onChange: (value)=>{\n var _thumbs$valueIndexToC;\n const thumbs = [\n ...thumbRefs.current\n ];\n (_thumbs$valueIndexToC = thumbs[valueIndexToChangeRef.current]) === null || _thumbs$valueIndexToC === void 0 || _thumbs$valueIndexToC.focus();\n onValueChange(value);\n }\n });\n const valuesBeforeSlideStartRef = $g1Vy2$useRef(values);\n function handleSlideStart(value) {\n const closestIndex = $faa2e61a3361514f$var$getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n function handleSlideMove(value) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value, atIndex, { commit: commit } = {\n commit: false\n }) {\n const decimalCount = $faa2e61a3361514f$var$getDecimalCount(step);\n const snapToStep = $faa2e61a3361514f$var$roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = $g1Vy2$clamp(snapToStep, [\n min,\n max\n ]);\n setValues((prevValues = [])=>{\n const nextValues = $faa2e61a3361514f$var$getNextSortedValues(prevValues, nextValue, atIndex);\n if ($faa2e61a3361514f$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else return prevValues;\n });\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderProvider, {\n scope: props.__scopeSlider,\n disabled: disabled,\n min: min,\n max: max,\n valueIndexToChangeRef: valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values: values,\n orientation: orientation\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.Provider, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.Slot, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement(SliderOrientation, $g1Vy2$babelruntimehelpersesmextends({\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? '' : undefined\n }, sliderProps, {\n ref: composedRefs,\n onPointerDown: $g1Vy2$composeEventHandlers(sliderProps.onPointerDown, ()=>{\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min: min,\n max: max,\n inverted: inverted,\n onSlideStart: disabled ? undefined : handleSlideStart,\n onSlideMove: disabled ? undefined : handleSlideMove,\n onSlideEnd: disabled ? undefined : handleSlideEnd,\n onHomeKeyDown: ()=>!disabled && updateValues(min, 0, {\n commit: true\n })\n ,\n onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1, {\n commit: true\n })\n ,\n onStepKeyDown: ({ event: event , direction: stepDirection })=>{\n if (!disabled) {\n const isPageKey = $faa2e61a3361514f$var$PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && $faa2e61a3361514f$var$ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, {\n commit: true\n });\n }\n }\n })))), isFormControl && values.map((value, index)=>/*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$BubbleInput, {\n key: index,\n name: name ? name + (values.length > 1 ? '[]' : '') : undefined,\n value: value\n })\n ));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$472062a354075cee, {\n displayName: $faa2e61a3361514f$var$SLIDER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/ const [$faa2e61a3361514f$var$SliderOrientationProvider, $faa2e61a3361514f$var$useSliderOrientationContext] = $faa2e61a3361514f$var$createSliderContext($faa2e61a3361514f$var$SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1\n});\nconst $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const [slider, setSlider] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)\n );\n const rectRef = $g1Vy2$useRef();\n const direction = $g1Vy2$useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [\n 0,\n rect.width\n ];\n const output = isSlidingFromLeft ? [\n min,\n max\n ] : [\n max,\n min\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? 'left' : 'right',\n endEdge: isSlidingFromLeft ? 'right' : 'left',\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\"\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({\n dir: direction,\n \"data-orientation\": \"horizontal\"\n }, sliderProps, {\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n ['--radix-slider-thumb-transform']: 'translateX(-50%)'\n },\n onSlideStart: (event)=>{\n const value = getValueFromPointer(event.clientX);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event)=>{\n const value = getValueFromPointer(event.clientX);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: ()=>{\n rectRef.current = undefined;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event)=>{\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event: event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderVertical = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const sliderRef = $g1Vy2$useRef(null);\n const ref = $g1Vy2$useComposedRefs(forwardedRef, sliderRef);\n const rectRef = $g1Vy2$useRef();\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [\n 0,\n rect.height\n ];\n const output = isSlidingFromBottom ? [\n max,\n min\n ] : [\n min,\n max\n ];\n const value = $faa2e61a3361514f$var$linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? 'bottom' : 'top',\n endEdge: isSlidingFromBottom ? 'top' : 'bottom',\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({\n \"data-orientation\": \"vertical\"\n }, sliderProps, {\n ref: ref,\n style: {\n ...sliderProps.style,\n ['--radix-slider-thumb-transform']: 'translateY(50%)'\n },\n onSlideStart: (event)=>{\n const value = getValueFromPointer(event.clientY);\n onSlideStart === null || onSlideStart === void 0 || onSlideStart(value);\n },\n onSlideMove: (event)=>{\n const value = getValueFromPointer(event.clientY);\n onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);\n },\n onSlideEnd: ()=>{\n rectRef.current = undefined;\n onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();\n },\n onStepKeyDown: (event)=>{\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({\n event: event,\n direction: isBackKey ? -1 : 1\n });\n }\n })));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderImpl = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onHomeKeyDown: onHomeKeyDown , onEndKeyDown: onEndKeyDown , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$SLIDER_NAME, __scopeSlider);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({}, sliderProps, {\n ref: forwardedRef,\n onKeyDown: $g1Vy2$composeEventHandlers(props.onKeyDown, (event)=>{\n if (event.key === 'Home') {\n onHomeKeyDown(event); // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event); // Prevent scrolling to page end\n event.preventDefault();\n } else if ($faa2e61a3361514f$var$PAGE_KEYS.concat($faa2e61a3361514f$var$ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event); // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n }),\n onPointerDown: $g1Vy2$composeEventHandlers(props.onPointerDown, (event)=>{\n const target = event.target;\n target.setPointerCapture(event.pointerId); // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault(); // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) target.focus();\n else onSlideStart(event);\n }),\n onPointerMove: $g1Vy2$composeEventHandlers(props.onPointerMove, (event)=>{\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: $g1Vy2$composeEventHandlers(props.onPointerUp, (event)=>{\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }));\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$TRACK_NAME = 'SliderTrack';\nconst $faa2e61a3361514f$export$105594979f116971 = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , ...trackProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$TRACK_NAME, __scopeSlider);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n \"data-disabled\": context.disabled ? '' : undefined,\n \"data-orientation\": context.orientation\n }, trackProps, {\n ref: forwardedRef\n }));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$105594979f116971, {\n displayName: $faa2e61a3361514f$var$TRACK_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$RANGE_NAME = 'SliderRange';\nconst $faa2e61a3361514f$export$a5cf38a7a000fe77 = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , ...rangeProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$RANGE_NAME, __scopeSlider);\n const ref = $g1Vy2$useRef(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value)=>$faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? '' : undefined\n }, rangeProps, {\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%'\n }\n }));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$a5cf38a7a000fe77, {\n displayName: $faa2e61a3361514f$var$RANGE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$THUMB_NAME = 'SliderThumb';\nconst $faa2e61a3361514f$export$2c1b491743890dec = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const getItems = $faa2e61a3361514f$var$useCollection(props.__scopeSlider);\n const [thumb, setThumb] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setThumb(node)\n );\n const index = $g1Vy2$useMemo(()=>thumb ? getItems().findIndex((item)=>item.ref.current === thumb\n ) : -1\n , [\n getItems,\n thumb\n ]);\n return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderThumbImpl, $g1Vy2$babelruntimehelpersesmextends({}, props, {\n ref: composedRefs,\n index: index\n }));\n});\nconst $faa2e61a3361514f$var$SliderThumbImpl = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{\n const { __scopeSlider: __scopeSlider , index: index , ...thumbProps } = props;\n const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = $g1Vy2$useState(null);\n const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setThumb(node)\n );\n const size = $g1Vy2$useSize(thumb); // We cast because index could be `-1` which would return undefined\n const value = context.values[index];\n const percent = value === undefined ? 0 : $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max);\n const label = $faa2e61a3361514f$var$getLabel(index, context.values.length);\n const orientationSize = size === null || size === void 0 ? void 0 : size[orientation.size];\n const thumbInBoundsOffset = orientationSize ? $faa2e61a3361514f$var$getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n $g1Vy2$useEffect(()=>{\n if (thumb) {\n context.thumbs.add(thumb);\n return ()=>{\n context.thumbs.delete(thumb);\n };\n }\n }, [\n thumb,\n context.thumbs\n ]);\n return /*#__PURE__*/ $g1Vy2$createElement(\"span\", {\n style: {\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n }\n }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$Collection.ItemSlot, {\n scope: props.__scopeSlider\n }, /*#__PURE__*/ $g1Vy2$createElement($g1Vy2$Primitive.span, $g1Vy2$babelruntimehelpersesmextends({\n role: \"slider\",\n \"aria-label\": props['aria-label'] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? '' : undefined,\n tabIndex: context.disabled ? undefined : 0\n }, thumbProps, {\n ref: composedRefs,\n style: value === undefined ? {\n display: 'none'\n } : props.style,\n onFocus: $g1Vy2$composeEventHandlers(props.onFocus, ()=>{\n context.valueIndexToChangeRef.current = index;\n })\n }))));\n});\n/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$2c1b491743890dec, {\n displayName: $faa2e61a3361514f$var$THUMB_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$BubbleInput = (props)=>{\n const { value: value , ...inputProps } = props;\n const ref = $g1Vy2$useRef(null);\n const prevValue = $g1Vy2$usePrevious(value); // Bubble value change to parents (e.g form change event)\n $g1Vy2$useEffect(()=>{\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value');\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', {\n bubbles: true\n });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */ return /*#__PURE__*/ $g1Vy2$createElement(\"input\", $g1Vy2$babelruntimehelpersesmextends({\n style: {\n display: 'none'\n }\n }, inputProps, {\n ref: ref,\n defaultValue: value\n }));\n};\nfunction $faa2e61a3361514f$var$getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [\n ...prevValues\n ];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b)=>a - b\n );\n}\nfunction $faa2e61a3361514f$var$convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */ function $faa2e61a3361514f$var$getLabel(index, totalValues) {\n if (totalValues > 2) return `Value ${index + 1} of ${totalValues}`;\n else if (totalValues === 2) return [\n 'Minimum',\n 'Maximum'\n ][index];\n else return undefined;\n}\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */ function $faa2e61a3361514f$var$getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value)=>Math.abs(value - nextValue)\n );\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */ function $faa2e61a3361514f$var$getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = $faa2e61a3361514f$var$linearScale([\n 0,\n halfPercent\n ], [\n 0,\n halfWidth\n ]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */ function $faa2e61a3361514f$var$getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index)=>values[index + 1] - value\n );\n}\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */ function $faa2e61a3361514f$var$hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = $faa2e61a3361514f$var$getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n} // https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction $faa2e61a3361514f$var$linearScale(input, output) {\n return (value)=>{\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction $faa2e61a3361514f$var$getDecimalCount(value) {\n return (String(value).split('.')[1] || '').length;\n}\nfunction $faa2e61a3361514f$var$roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nconst $faa2e61a3361514f$export$be92b6f5f03c0fe9 = $faa2e61a3361514f$export$472062a354075cee;\nconst $faa2e61a3361514f$export$13921ac0cc260818 = $faa2e61a3361514f$export$105594979f116971;\nconst $faa2e61a3361514f$export$9a58ef0d7ad3278c = $faa2e61a3361514f$export$a5cf38a7a000fe77;\nconst $faa2e61a3361514f$export$6521433ed15a34db = $faa2e61a3361514f$export$2c1b491743890dec;\n\n\n\n\nexport {$faa2e61a3361514f$export$ef72632d7b901f97 as createSliderScope, $faa2e61a3361514f$export$472062a354075cee as Slider, $faa2e61a3361514f$export$105594979f116971 as SliderTrack, $faa2e61a3361514f$export$a5cf38a7a000fe77 as SliderRange, $faa2e61a3361514f$export$2c1b491743890dec as SliderThumb, $faa2e61a3361514f$export$be92b6f5f03c0fe9 as Root, $faa2e61a3361514f$export$13921ac0cc260818 as Track, $faa2e61a3361514f$export$9a58ef0d7ad3278c as Range, $faa2e61a3361514f$export$6521433ed15a34db as Thumb};\n//# sourceMappingURL=index.module.js.map\n","import{useId as e}from\"@radix-ui/react-id\";import*as o from\"@radix-ui/react-visually-hidden\";import{Slottable as t}from\"@radix-ui/react-slot\";import{Portal as r}from\"@radix-ui/react-portal\";import*as n from\"@radix-ui/react-popper\";import{createPopperScope as i}from\"@radix-ui/react-popper\";import{Primitive as a}from\"@radix-ui/react-primitive\";import{Presence as l}from\"@radix-ui/react-presence\";import{useRect as c}from\"@radix-ui/react-use-rect\";import{usePrevious as s}from\"@radix-ui/react-use-previous\";import{useEscapeKeydown as u}from\"@radix-ui/react-use-escape-keydown\";import{useControllableState as p}from\"@radix-ui/react-use-controllable-state\";import{createContextScope as d}from\"@radix-ui/react-context\";import{useComposedRefs as m}from\"@radix-ui/react-compose-refs\";import{composeEventHandlers as f}from\"@radix-ui/primitive\";import*as T from\"react\";import C from\"@babel/runtime/helpers/esm/extends\";const[w,x]=d(\"Tooltip\",[i]);export{x as createTooltipScope};const g=i(),E=700,[v,b]=w(\"TooltipProvider\",{isOpenDelayed:!0,delayDuration:E,onOpen:()=>{},onClose:()=>{}});export const TooltipProvider=e=>{const{__scopeTooltip:o,delayDuration:t=E,skipDelayDuration:r=300,children:n}=e,[i,a]=T.useState(!0),l=T.useRef(0);return T.useEffect((()=>{const e=l.current;return()=>window.clearTimeout(e)}),[]),/*#__PURE__*/T.createElement(v,{scope:o,isOpenDelayed:i,delayDuration:t,onOpen:T.useCallback((()=>{window.clearTimeout(l.current),a(!1)}),[]),onClose:T.useCallback((()=>{window.clearTimeout(l.current),l.current=window.setTimeout((()=>a(!0)),r)}),[r])},n)};/*#__PURE__*/const[y,_]=w(\"Tooltip\");export const Tooltip=o=>{const{__scopeTooltip:t,children:r,open:i,defaultOpen:a=!1,onOpenChange:l,delayDuration:c}=o,s=b(\"Tooltip\",t),u=g(t),[d,m]=T.useState(null),f=e(),C=T.useRef(0),w=null!=c?c:s.delayDuration,x=T.useRef(!1),{onOpen:E,onClose:v}=s,[_=!1,h]=p({prop:i,defaultProp:a,onChange:e=>{e&&(document.dispatchEvent(new CustomEvent(\"tooltip.open\")),E()),null==l||l(e)}}),k=T.useMemo((()=>_?x.current?\"delayed-open\":\"instant-open\":\"closed\"),[_]),D=T.useCallback((()=>{window.clearTimeout(C.current),x.current=!1,h(!0)}),[h]),O=T.useCallback((()=>{window.clearTimeout(C.current),C.current=window.setTimeout((()=>{x.current=!0,h(!0)}),w)}),[w,h]);return T.useEffect((()=>()=>window.clearTimeout(C.current)),[]),/*#__PURE__*/T.createElement(n.Root,u,/*#__PURE__*/T.createElement(y,{scope:t,contentId:f,open:_,stateAttribute:k,trigger:d,onTriggerChange:m,onTriggerEnter:T.useCallback((()=>{s.isOpenDelayed?O():D()}),[s.isOpenDelayed,O,D]),onOpen:T.useCallback(D,[D]),onClose:T.useCallback((()=>{window.clearTimeout(C.current),h(!1),v()}),[h,v])},r))};/*#__PURE__*/export const TooltipTrigger=/*#__PURE__*/T.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=_(\"TooltipTrigger\",t),l=g(t),c=m(o,i.onTriggerChange),s=T.useRef(!1),u=T.useCallback((()=>s.current=!1),[]);return T.useEffect((()=>()=>document.removeEventListener(\"mouseup\",u)),[u]),/*#__PURE__*/T.createElement(n.Anchor,C({asChild:!0},l),/*#__PURE__*/T.createElement(a.button,C({\"aria-describedby\":i.open?i.contentId:void 0,\"data-state\":i.stateAttribute},r,{ref:c,onMouseEnter:f(e.onMouseEnter,i.onTriggerEnter),onMouseLeave:f(e.onMouseLeave,i.onClose),onMouseDown:f(e.onMouseDown,(()=>{i.onClose(),s.current=!0,document.addEventListener(\"mouseup\",u,{once:!0})})),onFocus:f(e.onFocus,(()=>{s.current||i.onOpen()})),onBlur:f(e.onBlur,i.onClose),onClick:f(e.onClick,(e=>{0===e.detail&&i.onClose()}))})))}));/*#__PURE__*/export const TooltipContent=/*#__PURE__*/T.forwardRef(((e,o)=>{const{forceMount:t,...r}=e,n=_(\"TooltipContent\",e.__scopeTooltip);/*#__PURE__*/return T.createElement(l,{present:t||n.open},/*#__PURE__*/T.createElement(h,C({ref:o},r)))}));const h=/*#__PURE__*/T.forwardRef(((e,i)=>{const{__scopeTooltip:a,children:l,\"aria-label\":c,portalled:s=!0,...p}=e,d=_(\"TooltipContent\",a),m=g(a),f=s?r:T.Fragment,{onClose:w}=d;return u((()=>w())),T.useEffect((()=>(document.addEventListener(\"tooltip.open\",w),()=>document.removeEventListener(\"tooltip.open\",w))),[w]),/*#__PURE__*/T.createElement(f,null,/*#__PURE__*/T.createElement(k,{__scopeTooltip:a}),/*#__PURE__*/T.createElement(n.Content,C({\"data-state\":d.stateAttribute},m,p,{ref:i,style:{...p.style,\"--radix-tooltip-content-transform-origin\":\"var(--radix-popper-transform-origin)\"}}),/*#__PURE__*/T.createElement(t,null,l),/*#__PURE__*/T.createElement(o.Root,{id:d.contentId,role:\"tooltip\"},c||l)))}));/*#__PURE__*/export const TooltipArrow=/*#__PURE__*/T.forwardRef(((e,o)=>{const{__scopeTooltip:t,...r}=e,i=g(t);/*#__PURE__*/return T.createElement(n.Arrow,C({},i,r,{ref:o}))}));/*#__PURE__*/function k(e){const{__scopeTooltip:o}=e,t=_(\"CheckTriggerMoved\",o),r=c(t.trigger),n=null==r?void 0:r.left,i=s(n),a=null==r?void 0:r.top,l=s(a),u=t.onClose;return T.useEffect((()=>{(void 0!==i&&i!==n||void 0!==l&&l!==a)&&u()}),[u,i,l,n,a]),null}export const Provider=TooltipProvider;export const Root=Tooltip;export const Trigger=TooltipTrigger;export const Content=TooltipContent;export const Arrow=TooltipArrow;\n//# sourceMappingURL=index.module.js.map\n","import {\n __commonJS,\n __toESM,\n breakpoints,\n fade,\n fontFamilies,\n gradients,\n linear,\n makeFontString,\n palette,\n require_lodash,\n shadows\n} from \"./chunk-2ER2SZAY.mjs\";\n\n// ../../node_modules/.pnpm/ts-brand@0.0.2/node_modules/ts-brand/lib/index.js\nvar require_lib = __commonJS({\n \"../../node_modules/.pnpm/ts-brand@0.0.2/node_modules/ts-brand/lib/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n function identity(underlying) {\n return underlying;\n }\n exports.identity = identity;\n function make2() {\n return identity;\n }\n exports.make = make2;\n }\n});\n\n// ../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js\nvar require_react_is_production_min = __commonJS({\n \"../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js\"(exports) {\n \"use strict\";\n var b = \"function\" === typeof Symbol && Symbol.for;\n var c = b ? Symbol.for(\"react.element\") : 60103;\n var d = b ? Symbol.for(\"react.portal\") : 60106;\n var e = b ? Symbol.for(\"react.fragment\") : 60107;\n var f = b ? Symbol.for(\"react.strict_mode\") : 60108;\n var g = b ? Symbol.for(\"react.profiler\") : 60114;\n var h = b ? Symbol.for(\"react.provider\") : 60109;\n var k = b ? Symbol.for(\"react.context\") : 60110;\n var l = b ? Symbol.for(\"react.async_mode\") : 60111;\n var m = b ? Symbol.for(\"react.concurrent_mode\") : 60111;\n var n = b ? Symbol.for(\"react.forward_ref\") : 60112;\n var p2 = b ? Symbol.for(\"react.suspense\") : 60113;\n var q = b ? Symbol.for(\"react.suspense_list\") : 60120;\n var r = b ? Symbol.for(\"react.memo\") : 60115;\n var t = b ? Symbol.for(\"react.lazy\") : 60116;\n var v = b ? Symbol.for(\"react.block\") : 60121;\n var w2 = b ? Symbol.for(\"react.fundamental\") : 60117;\n var x = b ? Symbol.for(\"react.responder\") : 60118;\n var y = b ? Symbol.for(\"react.scope\") : 60119;\n function z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p2:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n }\n function A(a) {\n return z(a) === m;\n }\n exports.AsyncMode = l;\n exports.ConcurrentMode = m;\n exports.ContextConsumer = k;\n exports.ContextProvider = h;\n exports.Element = c;\n exports.ForwardRef = n;\n exports.Fragment = e;\n exports.Lazy = t;\n exports.Memo = r;\n exports.Portal = d;\n exports.Profiler = g;\n exports.StrictMode = f;\n exports.Suspense = p2;\n exports.isAsyncMode = function(a) {\n return A(a) || z(a) === l;\n };\n exports.isConcurrentMode = A;\n exports.isContextConsumer = function(a) {\n return z(a) === k;\n };\n exports.isContextProvider = function(a) {\n return z(a) === h;\n };\n exports.isElement = function(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n };\n exports.isForwardRef = function(a) {\n return z(a) === n;\n };\n exports.isFragment = function(a) {\n return z(a) === e;\n };\n exports.isLazy = function(a) {\n return z(a) === t;\n };\n exports.isMemo = function(a) {\n return z(a) === r;\n };\n exports.isPortal = function(a) {\n return z(a) === d;\n };\n exports.isProfiler = function(a) {\n return z(a) === g;\n };\n exports.isStrictMode = function(a) {\n return z(a) === f;\n };\n exports.isSuspense = function(a) {\n return z(a) === p2;\n };\n exports.isValidElementType = function(a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p2 || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w2 || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n };\n exports.typeOf = z;\n }\n});\n\n// ../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js\nvar require_react_is_development = __commonJS({\n \"../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js\"(exports) {\n \"use strict\";\n if (process.env.NODE_ENV !== \"production\") {\n (function() {\n \"use strict\";\n var hasSymbol = typeof Symbol === \"function\" && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for(\"react.element\") : 60103;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for(\"react.portal\") : 60106;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for(\"react.fragment\") : 60107;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.strict_mode\") : 60108;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for(\"react.profiler\") : 60114;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for(\"react.provider\") : 60109;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for(\"react.context\") : 60110;\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for(\"react.async_mode\") : 60111;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.concurrent_mode\") : 60111;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for(\"react.forward_ref\") : 60112;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for(\"react.suspense\") : 60113;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for(\"react.suspense_list\") : 60120;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for(\"react.memo\") : 60115;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for(\"react.lazy\") : 60116;\n var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for(\"react.block\") : 60121;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for(\"react.fundamental\") : 60117;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for(\"react.responder\") : 60118;\n var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for(\"react.scope\") : 60119;\n function isValidElementType(type) {\n return typeof type === \"string\" || typeof type === \"function\" || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === \"object\" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n function typeOf(object) {\n if (typeof object === \"object\" && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n return void 0;\n }\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment9 = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false;\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n console[\"warn\"](\"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\");\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === \"object\" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment9;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n exports.isValidElementType = isValidElementType;\n exports.typeOf = typeOf;\n })();\n }\n }\n});\n\n// ../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js\nvar require_react_is = __commonJS({\n \"../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js\"(exports, module) {\n \"use strict\";\n if (process.env.NODE_ENV === \"production\") {\n module.exports = require_react_is_production_min();\n } else {\n module.exports = require_react_is_development();\n }\n }\n});\n\n// ../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js\nvar require_object_assign = __commonJS({\n \"../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js\"(exports, module) {\n \"use strict\";\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === void 0) {\n throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n var test1 = new String(\"abc\");\n test1[5] = \"de\";\n if (Object.getOwnPropertyNames(test1)[0] === \"5\") {\n return false;\n }\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2[\"_\" + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function(n) {\n return test2[n];\n });\n if (order2.join(\"\") !== \"0123456789\") {\n return false;\n }\n var test3 = {};\n \"abcdefghijklmnopqrst\".split(\"\").forEach(function(letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join(\"\") !== \"abcdefghijklmnopqrst\") {\n return false;\n }\n return true;\n } catch (err) {\n return false;\n }\n }\n module.exports = shouldUseNative() ? Object.assign : function(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js\nvar require_ReactPropTypesSecret = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js\"(exports, module) {\n \"use strict\";\n var ReactPropTypesSecret = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n module.exports = ReactPropTypesSecret;\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js\nvar require_has = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js\"(exports, module) {\n module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js\nvar require_checkPropTypes = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js\"(exports, module) {\n \"use strict\";\n var printWarning = function() {\n };\n if (process.env.NODE_ENV !== \"production\") {\n ReactPropTypesSecret = require_ReactPropTypesSecret();\n loggedTypeFailures = {};\n has = require_has();\n printWarning = function(text) {\n var message = \"Warning: \" + text;\n if (typeof console !== \"undefined\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (x) {\n }\n };\n }\n var ReactPropTypesSecret;\n var loggedTypeFailures;\n var has;\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== \"production\") {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n try {\n if (typeof typeSpecs[typeSpecName] !== \"function\") {\n var err = Error(\n (componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + typeof typeSpecs[typeSpecName] + \"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\"\n );\n err.name = \"Invariant Violation\";\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || \"React class\") + \": type specification of \" + location + \" `\" + typeSpecName + \"` is invalid; the type checker function must return `null` or an `Error` but returned a \" + typeof error + \". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\"\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : \"\";\n printWarning(\n \"Failed \" + location + \" type: \" + error.message + (stack != null ? stack : \"\")\n );\n }\n }\n }\n }\n }\n checkPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== \"production\") {\n loggedTypeFailures = {};\n }\n };\n module.exports = checkPropTypes;\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js\nvar require_factoryWithTypeCheckers = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js\"(exports, module) {\n \"use strict\";\n var ReactIs = require_react_is();\n var assign = require_object_assign();\n var ReactPropTypesSecret = require_ReactPropTypesSecret();\n var has = require_has();\n var checkPropTypes = require_checkPropTypes();\n var printWarning = function() {\n };\n if (process.env.NODE_ENV !== \"production\") {\n printWarning = function(text) {\n var message = \"Warning: \" + text;\n if (typeof console !== \"undefined\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (x) {\n }\n };\n }\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n module.exports = function(isValidElement, throwOnDirectAccess) {\n var ITERATOR_SYMBOL = typeof Symbol === \"function\" && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = \"@@iterator\";\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === \"function\") {\n return iteratorFn;\n }\n }\n var ANONYMOUS = \"<>\";\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker(\"array\"),\n bigint: createPrimitiveTypeChecker(\"bigint\"),\n bool: createPrimitiveTypeChecker(\"boolean\"),\n func: createPrimitiveTypeChecker(\"function\"),\n number: createPrimitiveTypeChecker(\"number\"),\n object: createPrimitiveTypeChecker(\"object\"),\n string: createPrimitiveTypeChecker(\"string\"),\n symbol: createPrimitiveTypeChecker(\"symbol\"),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n function is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n }\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === \"object\" ? data : {};\n this.stack = \"\";\n }\n PropTypeError.prototype = Error.prototype;\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== \"production\") {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n var err = new Error(\n \"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\"\n );\n err.name = \"Invariant Violation\";\n throw err;\n } else if (process.env.NODE_ENV !== \"production\" && typeof console !== \"undefined\") {\n var cacheKey = componentName + \":\" + propName;\n if (!manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3) {\n printWarning(\n \"You are manually calling a React.PropTypes validation function for the `\" + propFullName + \"` prop on `\" + componentName + \"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.\"\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError(\"The \" + location + \" `\" + propFullName + \"` is marked as required \" + (\"in `\" + componentName + \"`, but its value is `null`.\"));\n }\n return new PropTypeError(\"The \" + location + \" `\" + propFullName + \"` is marked as required in \" + (\"`\" + componentName + \"`, but its value is `undefined`.\"));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n var preciseType = getPreciseType(propValue);\n return new PropTypeError(\n \"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + preciseType + \"` supplied to `\" + componentName + \"`, expected \") + (\"`\" + expectedType + \"`.\"),\n { expectedType }\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== \"function\") {\n return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside arrayOf.\");\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected an array.\"));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + \"[\" + i + \"]\", ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected a single ReactElement.\"));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected a single ReactElement type.\"));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + actualClassName + \"` supplied to `\" + componentName + \"`, expected \") + (\"instance of `\" + expectedClassName + \"`.\"));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 1) {\n printWarning(\n \"Invalid arguments supplied to oneOf, expected an array, got \" + arguments.length + \" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).\"\n );\n } else {\n printWarning(\"Invalid argument supplied to oneOf, expected an array.\");\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === \"symbol\") {\n return String(value);\n }\n return value;\n });\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of value `\" + String(propValue) + \"` \" + (\"supplied to `\" + componentName + \"`, expected one of \" + valuesString + \".\"));\n }\n return createChainableTypeChecker(validate);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== \"function\") {\n return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside objectOf.\");\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== \"object\") {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type \" + (\"`\" + propType + \"` supplied to `\" + componentName + \"`, expected an object.\"));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== \"production\" ? printWarning(\"Invalid argument supplied to oneOfType, expected an instance of array.\") : void 0;\n return emptyFunctionThatReturnsNull;\n }\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== \"function\") {\n printWarning(\n \"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \" + getPostfixForTypeWarning(checker) + \" at index \" + i + \".\"\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i2 = 0; i2 < arrayOfTypeCheckers.length; i2++) {\n var checker2 = arrayOfTypeCheckers[i2];\n var checkerResult = checker2(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, \"expectedType\")) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = expectedTypes.length > 0 ? \", expected one of type [\" + expectedTypes.join(\", \") + \"]\" : \"\";\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to \" + (\"`\" + componentName + \"`\" + expectedTypesMessage + \".\"));\n }\n return createChainableTypeChecker(validate);\n }\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode2(props[propName])) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to \" + (\"`\" + componentName + \"`, expected a ReactNode.\"));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || \"React class\") + \": \" + location + \" type `\" + propFullName + \".\" + key + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + type + \"`.\"\n );\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== \"object\") {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` \" + (\"supplied to `\" + componentName + \"`, expected `object`.\"));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== \"function\") {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== \"object\") {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` \" + (\"supplied to `\" + componentName + \"`, expected `object`.\"));\n }\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== \"function\") {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n \"Invalid \" + location + \" `\" + propFullName + \"` key `\" + key + \"` supplied to `\" + componentName + \"`.\\nBad object: \" + JSON.stringify(props[propName], null, \" \") + \"\\nValid keys: \" + JSON.stringify(Object.keys(shapeTypes), null, \" \")\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode2(propValue) {\n switch (typeof propValue) {\n case \"number\":\n case \"string\":\n case \"undefined\":\n return true;\n case \"boolean\":\n return !propValue;\n case \"object\":\n if (Array.isArray(propValue)) {\n return propValue.every(isNode2);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode2(step.value)) {\n return false;\n }\n }\n } else {\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode2(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n return true;\n default:\n return false;\n }\n }\n function isSymbol(propType, propValue) {\n if (propType === \"symbol\") {\n return true;\n }\n if (!propValue) {\n return false;\n }\n if (propValue[\"@@toStringTag\"] === \"Symbol\") {\n return true;\n }\n if (typeof Symbol === \"function\" && propValue instanceof Symbol) {\n return true;\n }\n return false;\n }\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return \"array\";\n }\n if (propValue instanceof RegExp) {\n return \"object\";\n }\n if (isSymbol(propType, propValue)) {\n return \"symbol\";\n }\n return propType;\n }\n function getPreciseType(propValue) {\n if (typeof propValue === \"undefined\" || propValue === null) {\n return \"\" + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === \"object\") {\n if (propValue instanceof Date) {\n return \"date\";\n } else if (propValue instanceof RegExp) {\n return \"regexp\";\n }\n }\n return propType;\n }\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case \"array\":\n case \"object\":\n return \"an \" + type;\n case \"boolean\":\n case \"date\":\n case \"regexp\":\n return \"a \" + type;\n default:\n return type;\n }\n }\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js\nvar require_factoryWithThrowingShims = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js\"(exports, module) {\n \"use strict\";\n var ReactPropTypesSecret = require_ReactPropTypesSecret();\n function emptyFunction() {\n }\n function emptyFunctionWithReset() {\n }\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n module.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n return;\n }\n var err = new Error(\n \"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\"\n );\n err.name = \"Invariant Violation\";\n throw err;\n }\n ;\n shim.isRequired = shim;\n function getShim() {\n return shim;\n }\n ;\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n }\n});\n\n// ../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js\nvar require_prop_types = __commonJS({\n \"../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js\"(exports, module) {\n if (process.env.NODE_ENV !== \"production\") {\n ReactIs = require_react_is();\n throwOnDirectAccess = true;\n module.exports = require_factoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);\n } else {\n module.exports = require_factoryWithThrowingShims()();\n }\n var ReactIs;\n var throwOnDirectAccess;\n }\n});\n\n// ../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/symbols.js\nvar require_symbols = __commonJS({\n \"../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/symbols.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.AnonymousSelectKey = exports.Select = exports.Not = exports.Guard = exports.PatternKind = void 0;\n exports.PatternKind = Symbol(\"@ts-pattern/pattern-kind\");\n exports.Guard = Symbol(\"@ts-pattern/guard\");\n exports.Not = Symbol(\"@ts-pattern/not\");\n exports.Select = Symbol(\"@ts-pattern/select\");\n exports.AnonymousSelectKey = \"@ts-pattern/__anonymous-select-key\";\n }\n});\n\n// ../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/guards.js\nvar require_guards = __commonJS({\n \"../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/guards.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.instanceOf = exports.select = exports.not = exports.when = void 0;\n var symbols = require_symbols();\n var when = (predicate) => ({\n [symbols.PatternKind]: symbols.Guard,\n [symbols.Guard]: predicate\n });\n exports.when = when;\n var not = (pattern) => ({\n [symbols.PatternKind]: symbols.Not,\n [symbols.Not]: pattern\n });\n exports.not = not;\n function select(key) {\n return key === void 0 ? {\n [symbols.PatternKind]: symbols.Select,\n [symbols.Select]: symbols.AnonymousSelectKey\n } : {\n [symbols.PatternKind]: symbols.Select,\n [symbols.Select]: key\n };\n }\n exports.select = select;\n function isInstanceOf(classConstructor) {\n return (val) => val instanceof classConstructor;\n }\n var instanceOf = (classConstructor) => (0, exports.when)(isInstanceOf(classConstructor));\n exports.instanceOf = instanceOf;\n }\n});\n\n// ../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/wildcards.js\nvar require_wildcards = __commonJS({\n \"../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/wildcards.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.__ = void 0;\n var guards_1 = require_guards();\n function isUnknown(x) {\n return true;\n }\n function isNumber(x) {\n return typeof x === \"number\";\n }\n function numberIsNaN(x) {\n return Number.isNaN(x);\n }\n function isString(x) {\n return typeof x === \"string\";\n }\n function isBoolean(x) {\n return typeof x === \"boolean\";\n }\n function isNullish(x) {\n return x === null || x === void 0;\n }\n var unknownGuard = (0, guards_1.when)(isUnknown);\n var stringGuard = (0, guards_1.when)(isString);\n var numberGuard = (0, guards_1.when)(isNumber);\n var NaNGuard = (0, guards_1.when)(numberIsNaN);\n var booleanGuard = (0, guards_1.when)(isBoolean);\n var nullishGuard = (0, guards_1.when)(isNullish);\n exports.__ = Object.assign(unknownGuard, {\n string: stringGuard,\n number: numberGuard,\n NaN: NaNGuard,\n boolean: booleanGuard,\n nullish: nullishGuard\n });\n }\n});\n\n// ../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/index.js\nvar require_lib2 = __commonJS({\n \"../../node_modules/.pnpm/ts-pattern@3.3.5/node_modules/ts-pattern/lib/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isMatching = exports.match = exports.instanceOf = exports.select = exports.not = exports.when = exports.__ = void 0;\n var symbols = require_symbols();\n var guards_1 = require_guards();\n Object.defineProperty(exports, \"when\", { enumerable: true, get: function() {\n return guards_1.when;\n } });\n Object.defineProperty(exports, \"not\", { enumerable: true, get: function() {\n return guards_1.not;\n } });\n Object.defineProperty(exports, \"select\", { enumerable: true, get: function() {\n return guards_1.select;\n } });\n Object.defineProperty(exports, \"instanceOf\", { enumerable: true, get: function() {\n return guards_1.instanceOf;\n } });\n var wildcards_1 = require_wildcards();\n Object.defineProperty(exports, \"__\", { enumerable: true, get: function() {\n return wildcards_1.__;\n } });\n var match5 = (value) => builder(value, []);\n exports.match = match5;\n var builder = (value, cases) => {\n const run = () => {\n const entry = cases.find(({ test }) => test(value));\n if (!entry) {\n let displayedValue;\n try {\n displayedValue = JSON.stringify(value);\n } catch (e) {\n displayedValue = value;\n }\n throw new Error(`Pattern matching error: no pattern matches value ${displayedValue}`);\n }\n return entry.handler(entry.select(value), value);\n };\n return {\n with(...args) {\n const handler = args[args.length - 1];\n const patterns = [];\n const predicates = [];\n for (let i = 0; i < args.length - 1; i++) {\n const arg = args[i];\n if (typeof arg === \"function\") {\n predicates.push(arg);\n } else {\n patterns.push(arg);\n }\n }\n let selected = {};\n const doesMatch = (value2) => Boolean(patterns.some((pattern) => matchPattern(pattern, value2, (key, value3) => {\n selected[key] = value3;\n })) && predicates.every((predicate) => predicate(value2)));\n return builder(value, cases.concat([\n {\n test: doesMatch,\n handler,\n select: (value2) => Object.keys(selected).length ? symbols.AnonymousSelectKey in selected ? selected[symbols.AnonymousSelectKey] : selected : value2\n }\n ]));\n },\n when: (predicate, handler) => builder(value, cases.concat([\n {\n test: predicate,\n handler,\n select: (value2) => value2\n }\n ])),\n otherwise: (handler) => builder(value, cases.concat([\n {\n test: () => true,\n handler,\n select: (value2) => value2\n }\n ])).run(),\n exhaustive: () => run(),\n run\n };\n };\n var isObject = (value) => Boolean(value && typeof value === \"object\");\n var isGuardPattern = (x) => {\n const pattern = x;\n return pattern && pattern[symbols.PatternKind] === symbols.Guard;\n };\n var isNotPattern = (x) => {\n const pattern = x;\n return pattern && pattern[symbols.PatternKind] === symbols.Not;\n };\n var isSelectPattern = (x) => {\n const pattern = x;\n return pattern && pattern[symbols.PatternKind] === symbols.Select;\n };\n var matchPattern = (pattern, value, select) => {\n if (isObject(pattern)) {\n if (isGuardPattern(pattern))\n return Boolean(pattern[symbols.Guard](value));\n if (isSelectPattern(pattern)) {\n select(pattern[symbols.Select], value);\n return true;\n }\n if (isNotPattern(pattern))\n return !matchPattern(pattern[symbols.Not], value, select);\n if (!isObject(value))\n return false;\n if (Array.isArray(pattern)) {\n if (!Array.isArray(value))\n return false;\n if (pattern.length === 1) {\n const selected = {};\n const listSelect = (key, value2) => {\n selected[key] = (selected[key] || []).concat([value2]);\n };\n const doesMatch = value.every((v) => matchPattern(pattern[0], v, listSelect));\n if (doesMatch) {\n Object.keys(selected).forEach((key) => select(key, selected[key]));\n }\n return doesMatch;\n }\n return pattern.length === value.length ? pattern.every((subPattern, i) => matchPattern(subPattern, value[i], select)) : false;\n }\n if (pattern instanceof Map) {\n if (!(value instanceof Map))\n return false;\n return [...pattern.keys()].every((key) => matchPattern(pattern.get(key), value.get(key), select));\n }\n if (pattern instanceof Set) {\n if (!(value instanceof Set))\n return false;\n if (pattern.size === 0)\n return value.size === 0;\n if (pattern.size === 1) {\n const [subPattern] = [...pattern.values()];\n return Object.values(wildcards_1.__).includes(subPattern) ? matchPattern([subPattern], [...value.values()], select) : value.has(subPattern);\n }\n return [...pattern.values()].every((subPattern) => value.has(subPattern));\n }\n return Object.keys(pattern).every((k) => k in value && matchPattern(\n pattern[k],\n value[k],\n select\n ));\n }\n return value === pattern;\n };\n function isMatching(...args) {\n if (args.length === 1) {\n const [pattern] = args;\n return (value) => matchPattern(pattern, value, () => {\n });\n }\n if (args.length === 2) {\n const [pattern, value] = args;\n return matchPattern(pattern, value, () => {\n });\n }\n throw new Error(`isMatching wasn't given enough arguments: expected 1 or 2, received ${args.length}.`);\n }\n exports.isMatching = isMatching;\n }\n});\n\n// ../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js\nvar require_classnames = __commonJS({\n \"../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js\"(exports, module) {\n (function() {\n \"use strict\";\n var hasOwn = {}.hasOwnProperty;\n var nativeCodeString = \"[native code]\";\n function classNames2() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg)\n continue;\n var argType = typeof arg;\n if (argType === \"string\" || argType === \"number\") {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames2.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === \"object\") {\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes(\"[native code]\")) {\n classes.push(arg.toString());\n continue;\n }\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(\" \");\n }\n if (typeof module !== \"undefined\" && module.exports) {\n classNames2.default = classNames2;\n module.exports = classNames2;\n } else if (typeof define === \"function\" && typeof define.amd === \"object\" && define.amd) {\n define(\"classnames\", [], function() {\n return classNames2;\n });\n } else {\n window.classNames = classNames2;\n }\n })();\n }\n});\n\n// ../../node_modules/.pnpm/debounce@1.2.1/node_modules/debounce/index.js\nvar require_debounce = __commonJS({\n \"../../node_modules/.pnpm/debounce@1.2.1/node_modules/debounce/index.js\"(exports, module) {\n function debounce(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n if (null == wait)\n wait = 100;\n function later() {\n var last = Date.now() - timestamp;\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n ;\n var debounced = function() {\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout)\n timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n return result;\n };\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n clearTimeout(timeout);\n timeout = null;\n }\n };\n return debounced;\n }\n debounce.debounce = debounce;\n module.exports = debounce;\n }\n});\n\n// src/stitches.config.ts\nimport { createStitches } from \"@stitches/react\";\nvar SCALE_BASE_PX = 16;\nvar rem = (px) => `${px / SCALE_BASE_PX}rem`;\nvar spacings = {\n 0: rem(0),\n 1: rem(1),\n 2: rem(2),\n 4: rem(4),\n 6: rem(6),\n 8: rem(8),\n 10: rem(10),\n 12: rem(12),\n 14: rem(14),\n 16: rem(16),\n 20: rem(20),\n 24: rem(24),\n 28: rem(28),\n 32: rem(32),\n 36: rem(36),\n 40: rem(40),\n 44: rem(44),\n 48: rem(48),\n 52: rem(52),\n 56: rem(56),\n 60: rem(60),\n 64: rem(64),\n 68: rem(68),\n 72: rem(72),\n 76: rem(76),\n 80: rem(80),\n 84: rem(84),\n 88: rem(88),\n 92: rem(92),\n 96: rem(96),\n 100: rem(100),\n 104: rem(104),\n 108: rem(108),\n 112: rem(112)\n};\nvar theme = createStitches({\n theme: {\n colors: { ...palette, ...gradients },\n space: spacings,\n sizes: spacings,\n fonts: {\n mono: makeFontString(fontFamilies.mono),\n sans: makeFontString(fontFamilies.sans),\n title: makeFontString(fontFamilies.title)\n },\n shadows: { ...shadows },\n fontWeights: {\n light: \"300\",\n regular: \"400\",\n medium: \"500\",\n bold: \"600\"\n },\n radii: {\n 2: rem(2),\n 4: rem(4),\n 6: rem(6),\n 8: rem(8),\n 10: rem(10)\n },\n lineHeights: {\n 12: rem(12),\n 16: rem(16),\n 20: rem(20),\n 24: rem(24),\n 28: rem(28),\n 32: rem(32)\n },\n fontSizes: {\n 11: rem(11),\n 12: rem(12),\n 13: rem(13),\n 14: rem(14),\n 16: rem(16),\n 20: rem(20),\n 24: rem(24)\n }\n },\n utils: {\n _transformParts: () => ({\n $$translateX: 0,\n $$translateY: 0,\n $$skewX: 0,\n $$skewY: 0,\n $$scaleX: 1,\n $$scaleY: 1,\n $$rotate: 0,\n transform: \"translateX($$translateX) translateY($$translateY) rotate($$rotate) skewX($$skewX) skewY($$skewY) scaleX($$scaleX) scaleY($$scaleY)\"\n }),\n translateY: (value) => ({\n _transformParts: true,\n $$translateY: value\n }),\n translateX: (value) => ({\n _transformParts: true,\n $$translateX: value\n }),\n paddingX: (value) => ({\n paddingLeft: value,\n paddingRight: value\n }),\n paddingY: (value) => ({\n paddingTop: value,\n paddingBottom: value\n }),\n truncate: () => ({\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n }),\n borderRadiusTop: (value) => ({\n borderTopLeftRadius: value,\n borderTopRightRadius: value\n }),\n borderRadiusBottom: (value) => ({\n borderBottomLeftRadius: value,\n borderBottomRightRadius: value\n }),\n borderRadiusLeft: (value) => ({\n borderTopLeftRadius: value,\n borderBottomLeftRadius: value\n }),\n borderRadiusRight: (value) => ({\n borderTopRightRadius: value,\n borderBottomRightRadius: value\n }),\n hStack: (value) => ({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: value\n }),\n vStack: (value) => ({\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: value\n })\n },\n media: {\n sm: `(min-width: ${breakpoints.sm}px)`,\n md: `(min-width: ${breakpoints.md}px)`,\n lg: `(min-width: ${breakpoints.lg}px)`,\n xl: `(min-width: ${breakpoints.xl}px)`,\n maxSm: `(max-width: ${breakpoints.sm - 1}px)`,\n maxMd: `(max-width: ${breakpoints.md - 1}px)`,\n maxLg: `(max-width: ${breakpoints.lg - 1}px)`,\n maxXl: `(max-width: ${breakpoints.xl - 1}px)`\n }\n});\nvar {\n styled,\n css,\n keyframes,\n globalCss,\n theme: { fonts, shadows: shadows2, colors, fontWeights }\n} = theme;\nvar darkThemeSelector = \".m-dark &\";\nvar activeThemeClassName = \"metric-active-theme\";\nvar activeThemeSelector = `.${activeThemeClassName} &`;\nvar focusVisibleClassName = \"metric-focus-visible\";\nvar focusVisibleSelector = `.${focusVisibleClassName} &`;\nvar safariOnlyCSS = (properties) => ({\n \"@media not all and (min-resolution:.001dpcm)\": {\n \"@supports (-webkit-appearance:none)\": {\n \"&\": properties\n }\n }\n});\nvar firefoxOnlyCSS = (properties) => ({\n \"@-moz-document url-prefix()\": {\n \"&\": properties\n }\n});\n\n// src/assets/Band/Band.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar Base = styled(\"div\", {\n flexShrink: 0,\n boxSizing: \"border-box\",\n borderStyle: \"solid\",\n borderRadius: 100,\n variants: {\n variant: {\n alternative: {\n background: colors[\"blue-50\"],\n boxShadow: \"inset 0px 0px 0px 2px rgba(82, 143, 235, 0.3), inset 0px -8px 12px rgba(255, 255, 255, 0.5), inset 0px 3px 5px rgba(82, 143, 235, 0.3), inset 0px 8px 12px rgba(82, 143, 235, 0.26)\",\n [darkThemeSelector]: {\n boxShadow: \"unset\",\n background: \"linear-gradient(180deg, rgba(66, 128, 222, 0) 0%, rgba(66, 128, 222, 0.5) 100%), radial-gradient(50% 50% at 50% 50%, rgba(66, 128, 222, 0.1) 57.29%, rgba(23, 84, 177, 0.5) 100%)\",\n borderColor: colors[\"blue-700\"]\n }\n },\n brand: {\n background: colors[\"brand-50\"],\n boxShadow: \"inset 0px 0px 0px 2px rgba(105, 119, 225, 0.3), inset 0px -8px 12px rgba(255, 255, 255, 0.5), inset 0px 3px 5px rgba(105, 119, 225, 0.3), inset 0px 8px 12px rgba(105, 119, 225, 0.26)\",\n [darkThemeSelector]: {\n boxShadow: \"unset\",\n background: \"linear-gradient(180deg, rgba(105, 119, 225, 0) 0%, rgba(105, 119, 225, 0.5) 100%), radial-gradient(50% 50% at 50% 50%, rgba(105, 119, 225, 0.1) 57.29%, rgba(69, 81, 175, 0.5) 100%)\",\n borderColor: colors[\"brand-700\"]\n }\n },\n negative: {\n background: colors[\"red-50\"],\n boxShadow: \"inset 0px 0px 0px 2px rgba(213, 33, 33, 0.3), inset 0px -8px 12px rgba(255, 255, 255, 0.5), inset 0px 3px 5px rgba(212, 33, 33, 0.3), inset 0px 8px 12px rgba(212, 33, 33, 0.26)\",\n [darkThemeSelector]: {\n boxShadow: \"unset\",\n background: \"linear-gradient(180deg, rgba(213, 33, 33, 0) 0%, rgba(212, 33, 33, 0.5) 100%), radial-gradient(50% 50% at 50% 50%, rgba(213, 33, 33, 0.1) 57.29%, rgba(158, 7, 7, 0.5) 100%)\",\n borderColor: colors[\"red-700\"]\n }\n },\n neutral: {\n background: colors[\"gray-100\"],\n boxShadow: \"inset 0px 0px 0px 2px rgba(129, 131, 148, 0.3), inset 0px -8px 12px rgba(255, 255, 255, 0.5), inset 0px 3px 5px rgba(129, 131, 148, 0.3), inset 0px 8px 12px rgba(129, 131, 148, 0.26)\",\n [darkThemeSelector]: {\n boxShadow: \"unset\",\n background: \"linear-gradient(180deg, rgba(102, 104, 122, 0) 0%, rgba(102, 104, 122, 0.5) 100%), radial-gradient(50% 50% at 50% 50%, rgba(102, 104, 122, 0.1) 57.29%, rgba(52, 54, 71, 0.5) 100%)\",\n borderColor: colors[\"gray-600\"]\n }\n },\n positive: {\n background: colors[\"green-50\"],\n boxShadow: \"inset 0px 0px 0px 2px rgba(15, 137, 34, 0.3), inset 0px -8px 12px rgba(255, 255, 255, 0.5), inset 0px 3px 5px rgba(15, 137, 34, 0.3), inset 0px 8px 12px rgba(15, 137, 34, 0.26)\",\n [darkThemeSelector]: {\n boxShadow: \"unset\",\n background: \"linear-gradient(180deg, rgba(51, 195, 74, 0) 0%, rgba(51, 195, 74, 0.5) 100%), radial-gradient(50% 50% at 50% 50%, rgba(51, 195, 74, 0.1) 57.29%, rgba(15, 137, 34, 0.5) 100%)\",\n borderColor: colors[\"green-700\"]\n }\n }\n },\n size: {\n large: {\n width: 68,\n height: 68,\n [darkThemeSelector]: {\n borderWidth: 2\n }\n },\n medium: {\n width: 48,\n height: 48,\n [darkThemeSelector]: {\n borderWidth: 1.6\n }\n },\n small: {\n width: 32,\n height: 32,\n [darkThemeSelector]: {\n borderWidth: 1\n }\n }\n }\n }\n});\nvar Band = ({ size = \"large\", variant = \"alternative\" }) => /* @__PURE__ */ jsx(Base, {\n size,\n variant\n});\nvar Band_default = Band;\n\n// src/assets/BandWithIcon/BandWithIcon.tsx\nimport { jsx as jsx2, jsxs } from \"react/jsx-runtime\";\nvar Base2 = styled(\"div\", {\n display: \"inline-flex\",\n position: \"relative\"\n});\nvar CenteredItem = styled(\"div\", {\n position: \"absolute\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n inset: 0\n});\nvar BandWithIcon = ({\n children,\n size = \"medium\",\n variant = \"alternative\"\n}) => /* @__PURE__ */ jsxs(Base2, {\n children: [\n /* @__PURE__ */ jsx2(Band_default, {\n size,\n variant\n }),\n /* @__PURE__ */ jsx2(CenteredItem, {\n children\n })\n ]\n});\nvar BandWithIcon_default = BandWithIcon;\n\n// src/assets/ConnectLogo/ConnectLogo.tsx\nimport { jsx as jsx3, jsxs as jsxs2 } from \"react/jsx-runtime\";\nvar ConnectLogo = () => /* @__PURE__ */ jsxs2(\"svg\", {\n width: \"148\",\n height: \"29\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /* @__PURE__ */ jsxs2(\"g\", {\n filter: \"url(#filter0_ii)\",\n fill: \"#5461C8\",\n clipPath: \"url(#clip0)\",\n children: [\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M31.827 4.074L31.822 4h-.034a1.56 1.56 0 00-.043.037.753.753 0 01-.096.075l-.356.221c-.416.259-.831.518-1.254.766-.159.093-.207.196-.205.371.007.756.006 1.512.005 2.268v.975h-2.047v1.74h2.046v.216l-.001 1.605c-.003 1.44-.005 2.88.01 4.319a6.9 6.9 0 00.17 1.502c.252 1.076.918 1.834 2.003 2.209.685.237 1.391.231 2.1.125.396-.06.777-.169 1.128-.383l-.473-1.672c-.401.25-.827.36-1.279.376-.762.029-1.322-.338-1.531-1.05a3.413 3.413 0 01-.123-.937c-.009-1.583-.008-3.166-.006-4.749V10.64c0-.04.003-.078.006-.123l.005-.073h3.116V8.701h-3.127V7.66 4.231c0-.052-.005-.105-.009-.158z\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.378 14.896H36.78c.024.134.045.267.066.398.045.285.09.563.156.836.168.689.486 1.306.99 1.815.458.464 1.025.698 1.668.77.54.06 1.07.017 1.594-.124.764-.206 1.28-.725 1.692-1.366.099-.153.186-.312.277-.476l.129-.231 1.704.738a8.966 8.966 0 01-.172.341c-.424.798-.946 1.514-1.69 2.05-.585.42-1.246.647-1.949.757-.766.12-1.536.142-2.3-.018-1.272-.266-2.292-.921-3.017-2.006-.647-.967-.984-2.043-1.081-3.198-.114-1.362.076-2.672.678-3.91.647-1.33 1.648-2.26 3.102-2.628 1.52-.384 2.985-.232 4.347.583.966.578 1.572 1.454 1.98 2.481.305.768.42 1.57.424 2.393v.794zm-2.073-1.772c-.235-1.375-1.197-3.053-3.458-2.902-.805.053-1.495.351-2.027.97-.48.556-.755 1.207-.89 1.932h6.375z\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M53.389 8.895l-.085.328v.001c-.068.261-.136.523-.202.784-.031.122-.06.245-.09.372v.002l-.002.007-.042.175-.047-.013c-.028-.007-.052-.014-.076-.023-1.383-.549-2.506-.28-3.461.825-.59.681-.893 1.483-1.095 2.329a9.337 9.337 0 00-.25 2.154c-.002 1.048-.002 2.095-.001 3.143V20.468h-2.057V8.67h2.053v1.962c.05-.068.095-.134.139-.197a3.95 3.95 0 01.266-.353c.88-1.001 1.965-1.629 3.376-1.618.55.004 1.085.1 1.574.363v.068z\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28.364 14.896H19.8c.042.811.206 1.572.6 2.271.246.438.55.828.978 1.108.591.385 1.247.497 1.938.462.787-.04 1.51-.24 2.079-.828.35-.361.627-.77.846-1.22l.054-.111.033-.066 1.725.747c-.042.077-.082.153-.122.23a9.96 9.96 0 01-.262.476c-.465.778-1.039 1.454-1.84 1.908-.574.324-1.198.493-1.845.569-.675.079-1.351.09-2.021-.048-1.38-.285-2.452-1.016-3.185-2.225a6.727 6.727 0 01-.941-2.938c-.122-1.378.064-2.706.674-3.96.649-1.33 1.65-2.26 3.105-2.627 1.526-.386 2.997-.23 4.363.592.959.579 1.562 1.451 1.967 2.473.3.757.422 1.547.418 2.36V14.895zm-2.06-1.77c-.358-1.77-1.481-3.056-3.532-2.9-.79.06-1.467.373-1.984.987-.467.553-.74 1.194-.872 1.914h6.388z\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M.889 20.5h1.976v-.212c0-.438 0-.876-.002-1.314-.002-1.089-.005-2.178.009-3.268.007-.616.055-1.236.137-1.847.11-.822.38-1.598.853-2.292.465-.684 1.05-1.202 1.916-1.298.994-.11 1.826.277 2.07 1.358.088.394.115.808.116 1.214.008 1.8.007 3.599.006 5.399v2.027c0 .052.004.105.007.157l.005.071h1.984V20.3c0-.448 0-.896-.002-1.344-.003-1.125-.005-2.25.009-3.373.007-.6.054-1.203.143-1.795.146-.98.498-1.883 1.16-2.645.542-.623 1.221-.943 2.058-.886.688.047 1.202.363 1.483 1.008.197.452.236.932.237 1.416v7.817h1.98l.004-.054c.002-.036.005-.07.005-.103V18.43c.002-2.094.003-4.187-.006-6.28a5.966 5.966 0 00-.143-1.264c-.2-.898-.671-1.63-1.52-2.055-.951-.478-1.952-.482-2.952-.183-1.125.336-1.918 1.088-2.515 2.067a32.838 32.838 0 01-.121.198 21.415 21.415 0 01-.058-.198c-.29-.933-.847-1.64-1.778-2.011-.72-.288-1.471-.317-2.224-.159-1.242.261-2.126 1.002-2.747 2.078l-.058.102-.028.048-.033-.013V8.67H.889V20.5z\"\n })\n ]\n }),\n /* @__PURE__ */ jsx3(\"g\", {\n filter: \"url(#filter1_dd)\",\n children: /* @__PURE__ */ jsx3(\"rect\", {\n x: \"59.389\",\n y: \"1\",\n width: \"24\",\n height: \"24\",\n rx: \"6\",\n fill: \"url(#paint0_linear)\"\n })\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M76.93 17.393h-.97a.307.307 0 00-.304.31v.8c0-.172.136-.31.303-.31h.97a.613.613 0 00.607-.62v-.8c0 .343-.271.62-.606.62zM68.879 16.52a.627.627 0 00.16.936l5.706 3.38c.404.239.91-.059.91-.536v-.8c0 .477-.506.775-.91.535l-5.707-3.38a.613.613 0 01-.16-.135zM65.536 11.174v.8c0 .342.272.619.607.619h.97c.168 0 .304.138.304.31v-.8a.307.307 0 00-.304-.31h-.97a.613.613 0 01-.607-.62zM67.417 13.9v.8c0 .477.507.775.91.535l5.707-3.38a.627.627 0 00.16-.935.613.613 0 01-.16.135l-5.706 3.38c-.404.24-.911-.058-.911-.535z\",\n fill: \"#25B1A6\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M75.96 17.407h.97a.613.613 0 00.606-.619V15.48a.613.613 0 00-.606-.619h-.97a.307.307 0 01-.304-.31v-1.797c0-.477-.507-.775-.911-.535l-5.707 3.38a.626.626 0 000 1.07l5.707 3.38c.404.24.91-.058.91-.535v-1.797c0-.171.137-.31.304-.31z\",\n fill: \"#fff\",\n fillOpacity: \".75\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M67.113 9.261h-.97a.613.613 0 00-.607.62v1.307c0 .342.272.62.607.62h.97c.168 0 .304.138.304.309v1.797c0 .478.507.775.91.536l5.707-3.38a.626.626 0 000-1.071l-5.706-3.38c-.404-.24-.911.058-.911.535v1.798c0 .17-.136.31-.304.31z\",\n fill: \"#fff\"\n }),\n /* @__PURE__ */ jsx3(\"path\", {\n d: \"M89.389 13c0-.641.115-1.237.345-1.788.23-.55.545-1.023.947-1.417a4.46 4.46 0 011.404-.95 4.303 4.303 0 011.723-.345 4.401 4.401 0 012.179.542c.303.157.57.342.8.555.238.214.439.44.603.678l-.899.826a3.34 3.34 0 00-.48-.542 2.932 2.932 0 00-.603-.444 2.974 2.974 0 00-.738-.308 3.17 3.17 0 00-.862-.111c-.451 0-.87.086-1.256.259a3.068 3.068 0 00-1.009.69c-.279.296-.5.645-.665 1.048A3.587 3.587 0 0090.644 13c0 .469.082.904.247 1.307.164.403.39.752.677 1.048.287.296.627.53 1.021.703.394.164.82.246 1.28.246.632 0 1.17-.135 1.613-.407a3.79 3.79 0 001.108-1.06l.886.764a4.833 4.833 0 01-1.49 1.356c-.607.362-1.312.543-2.117.543a4.424 4.424 0 01-1.748-.345 4.68 4.68 0 01-1.427-.937 4.56 4.56 0 01-.96-1.43A4.595 4.595 0 0189.389 13zM102.379 17.5a4.508 4.508 0 01-1.76-.345 4.679 4.679 0 01-1.428-.937 4.395 4.395 0 01-.948-1.43A4.595 4.595 0 0197.898 13c0-.641.115-1.237.345-1.788.23-.55.546-1.023.948-1.417.41-.403.886-.72 1.428-.95a4.507 4.507 0 011.76-.345c.632 0 1.218.115 1.76.345.542.23 1.014.547 1.416.95.41.394.73.867.96 1.417.23.551.345 1.147.345 1.788s-.115 1.237-.345 1.788c-.23.55-.55 1.027-.96 1.43a4.523 4.523 0 01-1.416.937 4.455 4.455 0 01-1.76.345zm0-7.804a3.23 3.23 0 00-1.256.246 3.207 3.207 0 00-1.021.69c-.296.297-.53.646-.702 1.049A3.464 3.464 0 0099.154 13c0 .477.082.916.246 1.32.172.402.406.751.702 1.047.295.296.636.526 1.021.69a3.23 3.23 0 001.256.247c.443 0 .857-.082 1.243-.246a3.134 3.134 0 001.723-1.738c.173-.404.259-.843.259-1.32 0-.477-.086-.916-.259-1.32a3.134 3.134 0 00-1.723-1.738 3.138 3.138 0 00-1.243-.246zM108.237 8.648h1.083l4.813 6.522V8.648h1.219v8.704h-1.071l-4.813-6.534v6.534h-1.231V8.648zM117.335 8.648h1.083l4.813 6.522V8.648h1.219v8.704h-1.071l-4.813-6.534v6.534h-1.231V8.648zM126.434 8.648h5.391v1.11h-4.173v2.65h3.459v1.11h-3.459v2.712h4.296v1.122h-5.514V8.648zM132.452 13c0-.641.115-1.237.345-1.788.23-.55.546-1.023.948-1.417.402-.403.87-.72 1.403-.95a4.307 4.307 0 011.724-.345 4.39 4.39 0 012.178.542c.304.157.571.342.8.555.238.214.439.44.604.678l-.899.826c-.14-.197-.3-.378-.48-.542a2.958 2.958 0 00-.603-.444 3.166 3.166 0 00-1.6-.42c-.452 0-.87.087-1.256.26a3.061 3.061 0 00-1.009.69 3.354 3.354 0 00-.665 1.048 3.587 3.587 0 00-.234 1.307c0 .469.082.904.246 1.307.164.403.39.752.677 1.048.287.296.628.53 1.022.703.394.164.82.246 1.28.246.632 0 1.169-.135 1.613-.407.443-.28.812-.633 1.107-1.06l.887.764a4.83 4.83 0 01-1.49 1.356c-.607.362-1.313.543-2.117.543a4.424 4.424 0 01-1.748-.345 4.672 4.672 0 01-1.428-.937 4.563 4.563 0 01-.96-1.43 4.592 4.592 0 01-.345-1.788zM140.701 9.758v-1.11h6.438v1.11h-2.61v7.594h-1.218V9.758h-2.61z\",\n fill: \"#04C4B3\"\n }),\n /* @__PURE__ */ jsxs2(\"defs\", {\n children: [\n /* @__PURE__ */ jsxs2(\"filter\", {\n id: \"filter0_ii\",\n x: \".889\",\n y: \"2.97\",\n width: \"52.5\",\n height: \"18.559\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\",\n children: [\n /* @__PURE__ */ jsx3(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"BackgroundImageFix\",\n result: \"shape\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }),\n /* @__PURE__ */ jsx3(\"feOffset\", {\n dy: \"1.03\"\n }),\n /* @__PURE__ */ jsx3(\"feGaussianBlur\", {\n stdDeviation: \".515\"\n }),\n /* @__PURE__ */ jsx3(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"arithmetic\",\n k2: \"-1\",\n k3: \"1\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n values: \"0 0 0 0 0.168715 0 0 0 0 0.189966 0 0 0 0 0.358333 0 0 0 0.22 0\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in2: \"shape\",\n result: \"effect1_innerShadow\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }),\n /* @__PURE__ */ jsx3(\"feOffset\", {\n dy: \"-1.03\"\n }),\n /* @__PURE__ */ jsx3(\"feGaussianBlur\", {\n stdDeviation: \".515\"\n }),\n /* @__PURE__ */ jsx3(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"arithmetic\",\n k2: \"-1\",\n k3: \"1\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n values: \"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.1 0\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in2: \"effect1_innerShadow\",\n result: \"effect2_innerShadow\"\n })\n ]\n }),\n /* @__PURE__ */ jsxs2(\"filter\", {\n id: \"filter1_dd\",\n x: \"57.139\",\n y: \".25\",\n width: \"28.5\",\n height: \"28.5\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\",\n children: [\n /* @__PURE__ */ jsx3(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }),\n /* @__PURE__ */ jsx3(\"feOffset\", {\n dy: \"1.5\"\n }),\n /* @__PURE__ */ jsx3(\"feGaussianBlur\", {\n stdDeviation: \"1.125\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n }),\n /* @__PURE__ */ jsx3(\"feOffset\", {\n dy: \".75\"\n }),\n /* @__PURE__ */ jsx3(\"feColorMatrix\", {\n values: \"0 0 0 0 0.0352941 0 0 0 0 0.0431373 0 0 0 0 0.0784314 0 0 0 0.1 0\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in2: \"effect1_dropShadow\",\n result: \"effect2_dropShadow\"\n }),\n /* @__PURE__ */ jsx3(\"feBlend\", {\n in: \"SourceGraphic\",\n in2: \"effect2_dropShadow\",\n result: \"shape\"\n })\n ]\n }),\n /* @__PURE__ */ jsxs2(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: \"71.389\",\n y1: \"1\",\n x2: \"71.389\",\n y2: \"25\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /* @__PURE__ */ jsx3(\"stop\", {\n stopColor: \"#56DCD1\"\n }),\n /* @__PURE__ */ jsx3(\"stop\", {\n offset: \"1\",\n stopColor: \"#29C6BA\"\n })\n ]\n }),\n /* @__PURE__ */ jsx3(\"clipPath\", {\n id: \"clip0\",\n children: /* @__PURE__ */ jsx3(\"path\", {\n fill: \"#fff\",\n transform: \"translate(.889 4)\",\n d: \"M0 0h52.5v18H0z\"\n })\n })\n ]\n })\n ]\n});\nvar ConnectLogo_default = ConnectLogo;\n\n// ../atto-svgs/dist/index.mjs\nimport * as React from \"react\";\nimport * as React2 from \"react\";\nimport * as React3 from \"react\";\nimport * as React4 from \"react\";\nimport * as React5 from \"react\";\nimport * as React6 from \"react\";\nimport * as React7 from \"react\";\nimport * as React8 from \"react\";\nimport * as React9 from \"react\";\nimport * as React10 from \"react\";\nimport * as React11 from \"react\";\nimport * as React12 from \"react\";\nimport * as React13 from \"react\";\nimport * as React14 from \"react\";\nimport * as React15 from \"react\";\nimport * as React16 from \"react\";\nimport * as React17 from \"react\";\nimport * as React18 from \"react\";\nimport * as React19 from \"react\";\nimport * as React20 from \"react\";\nimport * as React21 from \"react\";\nimport * as React22 from \"react\";\nimport * as React23 from \"react\";\nimport * as React24 from \"react\";\nimport * as React25 from \"react\";\nimport * as React26 from \"react\";\nimport * as React27 from \"react\";\nimport * as React28 from \"react\";\nimport * as React29 from \"react\";\nimport * as React30 from \"react\";\nimport * as React31 from \"react\";\nimport * as React32 from \"react\";\nimport * as React33 from \"react\";\nimport * as React34 from \"react\";\nimport * as React35 from \"react\";\nimport * as React36 from \"react\";\nimport * as React37 from \"react\";\nimport * as React38 from \"react\";\nimport * as React39 from \"react\";\nimport * as React40 from \"react\";\nimport * as React41 from \"react\";\nimport * as React42 from \"react\";\nimport * as React43 from \"react\";\nimport * as React44 from \"react\";\nimport * as React45 from \"react\";\nimport * as React46 from \"react\";\nimport * as React47 from \"react\";\nimport * as React48 from \"react\";\nimport * as React49 from \"react\";\nimport * as React50 from \"react\";\nimport * as React51 from \"react\";\nimport * as React52 from \"react\";\nimport * as React53 from \"react\";\nimport * as React54 from \"react\";\nimport * as React55 from \"react\";\nimport * as React56 from \"react\";\nimport * as React57 from \"react\";\nimport * as React58 from \"react\";\nimport * as React59 from \"react\";\nimport * as React60 from \"react\";\nimport * as React61 from \"react\";\nimport * as React62 from \"react\";\nimport * as React63 from \"react\";\nimport * as React64 from \"react\";\nimport * as React65 from \"react\";\nimport * as React66 from \"react\";\nimport * as React67 from \"react\";\nimport * as React68 from \"react\";\nimport * as React69 from \"react\";\nimport * as React70 from \"react\";\nimport * as React71 from \"react\";\nimport * as React72 from \"react\";\nimport * as React73 from \"react\";\nimport * as React74 from \"react\";\nimport * as React75 from \"react\";\nimport * as React76 from \"react\";\nimport * as React77 from \"react\";\nimport * as React78 from \"react\";\nimport * as React79 from \"react\";\nimport * as React80 from \"react\";\nimport * as React81 from \"react\";\nimport * as React82 from \"react\";\nimport * as React83 from \"react\";\nimport * as React84 from \"react\";\nimport * as React85 from \"react\";\nimport * as React86 from \"react\";\nimport * as React87 from \"react\";\nimport * as React88 from \"react\";\nimport * as React89 from \"react\";\nimport * as React90 from \"react\";\nimport * as React91 from \"react\";\nimport * as React92 from \"react\";\nimport * as React93 from \"react\";\nimport * as React94 from \"react\";\nimport * as React95 from \"react\";\nimport * as React96 from \"react\";\nimport * as React97 from \"react\";\nimport * as React98 from \"react\";\nimport * as React99 from \"react\";\nimport * as React100 from \"react\";\nimport * as React101 from \"react\";\nimport * as React102 from \"react\";\nimport * as React103 from \"react\";\nimport * as React104 from \"react\";\nimport * as React105 from \"react\";\nimport * as React106 from \"react\";\nimport * as React107 from \"react\";\nimport * as React108 from \"react\";\nimport * as React109 from \"react\";\nimport * as React110 from \"react\";\nimport * as React111 from \"react\";\nimport * as React112 from \"react\";\nimport * as React113 from \"react\";\nimport * as React114 from \"react\";\nimport * as React115 from \"react\";\nimport * as React116 from \"react\";\nimport * as React117 from \"react\";\nimport * as React118 from \"react\";\nimport * as React119 from \"react\";\nimport * as React120 from \"react\";\nimport * as React121 from \"react\";\nimport * as React122 from \"react\";\nimport * as React123 from \"react\";\nimport * as React124 from \"react\";\nimport * as React125 from \"react\";\nimport * as React126 from \"react\";\nimport * as React127 from \"react\";\nimport * as React128 from \"react\";\nimport * as React129 from \"react\";\nimport * as React130 from \"react\";\nimport * as React131 from \"react\";\nimport * as React132 from \"react\";\nimport * as React133 from \"react\";\nimport * as React134 from \"react\";\nimport * as React135 from \"react\";\nimport * as React136 from \"react\";\nimport * as React137 from \"react\";\nimport * as React138 from \"react\";\nimport * as React139 from \"react\";\nimport * as React140 from \"react\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar SvgLarge = (props) => /* @__PURE__ */ React.createElement(\"svg\", __spreadValues({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React.createElement(\"g\", {\n filter: \"url(#filter0_ddd_14_10411)\"\n}, /* @__PURE__ */ React.createElement(\"rect\", {\n y: 12,\n width: 40,\n height: 16,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React.createElement(\"rect\", {\n y: 12,\n width: 40,\n height: 16,\n rx: 2,\n fill: \"url(#paint0_linear_14_10411)\"\n}), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M33.5966 22.4108C33.5963 22.4072 33.596 22.4036 33.5958 22.4H33.5907C33.5885 22.4018 33.5864 22.4036 33.5843 22.4054C33.5797 22.4093 33.5752 22.4132 33.5701 22.4163C33.5524 22.427 33.5348 22.4377 33.5171 22.4485C33.4554 22.4861 33.3937 22.5238 33.3309 22.5598C33.3073 22.5734 33.3002 22.5883 33.3004 22.6139C33.3014 22.7238 33.3013 22.8338 33.3011 22.9437V22.9438C33.3011 22.9811 33.3011 23.0184 33.3011 23.0557V23.0856H32.997V23.3388H33.3011V23.3701C33.3011 23.4479 33.3009 23.5258 33.3008 23.6036V23.6037C33.3005 23.8131 33.3002 24.0225 33.3022 24.2318C33.3029 24.3048 33.3105 24.3793 33.3275 24.4503C33.365 24.6068 33.4639 24.717 33.6252 24.7716C33.727 24.8061 33.8319 24.8053 33.9372 24.7898C33.9961 24.7811 34.0526 24.7653 34.1048 24.7341L34.0344 24.4909C33.9749 24.5272 33.9116 24.5432 33.8446 24.5456C33.7313 24.5498 33.6481 24.4964 33.617 24.3928C33.6039 24.3492 33.5989 24.3021 33.5987 24.2566C33.5975 24.0263 33.5976 23.796 33.5978 23.5658C33.5979 23.4991 33.5979 23.4324 33.5979 23.3658C33.5979 23.3601 33.5983 23.3544 33.5988 23.3479C33.599 23.3446 33.5992 23.3411 33.5995 23.3373H34.0624V23.0838H33.5979L33.5979 22.9324C33.5979 22.7662 33.5979 22.6 33.5978 22.4338C33.5978 22.4262 33.5972 22.4185 33.5966 22.4108Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M35.6099 23.9848H34.3324C34.3359 24.0044 34.3391 24.0237 34.3422 24.0427C34.349 24.0842 34.3556 24.1247 34.3654 24.1643C34.3904 24.2645 34.4376 24.3543 34.5124 24.4284C34.5805 24.4958 34.6647 24.5299 34.7603 24.5404C34.8405 24.5492 34.9194 24.5428 34.9971 24.5223C35.1107 24.4924 35.1874 24.4169 35.2486 24.3236C35.2631 24.3014 35.2762 24.2782 35.2896 24.2544C35.2959 24.2433 35.3022 24.2321 35.3088 24.2208L35.5621 24.3281C35.5593 24.3336 35.5565 24.339 35.5539 24.3443C35.5481 24.3557 35.5425 24.3668 35.5365 24.3778C35.4735 24.4938 35.3958 24.598 35.2853 24.6758C35.1984 24.737 35.1002 24.7701 34.9959 24.7861C34.882 24.8036 34.7675 24.8066 34.654 24.7834C34.465 24.7447 34.3136 24.6494 34.2058 24.4917C34.1097 24.351 34.0596 24.1945 34.0452 24.0264C34.0283 23.8283 34.0566 23.6377 34.146 23.4578C34.2421 23.2642 34.3909 23.1289 34.6069 23.0754C34.8326 23.0195 35.0503 23.0417 35.2527 23.1602C35.3962 23.2443 35.4863 23.3717 35.5469 23.5212C35.5922 23.6329 35.6094 23.7496 35.6099 23.8692C35.61 23.8945 35.6099 23.9198 35.6099 23.9463L35.6099 23.9848ZM35.3018 23.7271C35.2669 23.5271 35.124 23.283 34.7881 23.3049C34.6685 23.3128 34.566 23.356 34.4869 23.446C34.4158 23.5269 34.3747 23.6216 34.3547 23.7271H35.3018Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M36.7874 23.1597C36.7773 23.1977 36.7672 23.2358 36.7574 23.2739C36.7528 23.2916 36.7485 23.3095 36.744 23.3279L36.744 23.328C36.7419 23.3368 36.7397 23.3457 36.7375 23.3548C36.735 23.3541 36.7327 23.3534 36.7306 23.3529C36.7264 23.3518 36.7227 23.3508 36.7192 23.3494C36.5137 23.2696 36.3468 23.3089 36.2049 23.4695C36.1174 23.5686 36.0723 23.6853 36.0423 23.8083C36.0172 23.9114 36.0055 24.016 36.0052 24.1217C36.0049 24.2739 36.0049 24.4262 36.005 24.5784C36.005 24.6403 36.005 24.7023 36.005 24.7642V24.7955H35.6994V23.0791H36.0044V23.3645C36.0118 23.3547 36.0185 23.3452 36.025 23.336C36.0383 23.3174 36.0505 23.3002 36.0646 23.2846C36.1954 23.139 36.3565 23.0477 36.5661 23.0492C36.6478 23.0498 36.7274 23.0639 36.8 23.102V23.1119L36.7874 23.1597Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.082 23.9849H31.8097C31.8158 24.1028 31.8403 24.2135 31.8987 24.3153C31.9353 24.379 31.9804 24.4357 32.0441 24.4763C32.1319 24.5324 32.2294 24.5487 32.332 24.5436C32.4489 24.5378 32.5563 24.5088 32.6409 24.4231C32.6928 24.3706 32.7341 24.3111 32.7666 24.2456C32.7691 24.2405 32.7717 24.2353 32.7746 24.2297L32.7795 24.22L33.0358 24.3286C33.0296 24.3398 33.0237 24.3509 33.0178 24.3618C33.0051 24.3855 32.9926 24.4088 32.9788 24.4312C32.9097 24.5444 32.8244 24.6427 32.7053 24.7088C32.6201 24.756 32.5275 24.7805 32.4312 24.7916C32.3311 24.8031 32.2305 24.8047 32.131 24.7846C31.9259 24.7431 31.7667 24.6369 31.6578 24.4609C31.5764 24.3294 31.5318 24.1863 31.518 24.0336C31.4998 23.8331 31.5274 23.64 31.6182 23.4576C31.7145 23.2641 31.8633 23.1288 32.0794 23.0754C32.3062 23.0193 32.5247 23.0418 32.7276 23.1616C32.8701 23.2457 32.9597 23.3727 33.0199 23.5213C33.0644 23.6314 33.0827 23.7463 33.0821 23.8644C33.0819 23.8909 33.0819 23.9174 33.082 23.9451C33.082 23.958 33.082 23.9713 33.082 23.9849ZM32.776 23.7275C32.7227 23.4699 32.5559 23.2829 32.2512 23.3055C32.1338 23.3142 32.0333 23.3598 31.9564 23.4491C31.8871 23.5295 31.8465 23.6228 31.8269 23.7275H32.776Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M29 24.8H29.2937V24.7692C29.2937 24.7055 29.2935 24.6418 29.2934 24.5781C29.293 24.4196 29.2926 24.2612 29.2946 24.1027C29.2957 24.0131 29.3028 23.9229 29.315 23.834C29.3314 23.7145 29.3716 23.6016 29.4417 23.5006C29.5108 23.4012 29.5977 23.3258 29.7264 23.3118C29.8741 23.2958 29.9977 23.3521 30.0338 23.5093C30.047 23.5666 30.051 23.6269 30.0512 23.6859C30.0524 23.9477 30.0522 24.2094 30.0521 24.4712C30.0521 24.5695 30.0521 24.6678 30.0521 24.7661C30.0521 24.7738 30.0526 24.7814 30.0531 24.7889C30.0534 24.7924 30.0536 24.7959 30.0538 24.7993H30.3486V24.771C30.3486 24.7058 30.3485 24.6406 30.3483 24.5754C30.3479 24.4119 30.3475 24.2483 30.3496 24.0847C30.3507 23.9976 30.3576 23.9098 30.3708 23.8237C30.3926 23.6812 30.4448 23.5497 30.5433 23.4389C30.6238 23.3483 30.7247 23.3017 30.8489 23.31C30.9513 23.3169 31.0275 23.3629 31.0694 23.4567C31.0987 23.5225 31.1045 23.5922 31.1045 23.6626C31.1047 23.9373 31.1047 24.2119 31.1047 24.4866C31.1047 24.5811 31.1047 24.6756 31.1047 24.7701V24.7997H31.3988C31.399 24.797 31.3991 24.7944 31.3993 24.7919C31.3997 24.7866 31.4 24.7818 31.4 24.7769C31.4 24.6842 31.4001 24.5915 31.4001 24.4987C31.4003 24.1942 31.4005 23.8897 31.3991 23.5852C31.3988 23.5238 31.3916 23.4613 31.3779 23.4014C31.3481 23.2707 31.2782 23.1643 31.1521 23.1024C31.0108 23.033 30.8621 23.0324 30.7135 23.0758C30.5464 23.1247 30.4285 23.2341 30.3399 23.3765C30.3363 23.3823 30.3327 23.3881 30.3285 23.3948C30.3264 23.3981 30.3242 23.4016 30.3218 23.4054C30.3205 23.4008 30.3193 23.3968 30.3183 23.3933C30.3164 23.3867 30.3149 23.3816 30.3133 23.3766C30.27 23.2408 30.1874 23.1379 30.0492 23.084C29.942 23.0421 29.8305 23.0379 29.7187 23.0609C29.5341 23.0989 29.4029 23.2067 29.3106 23.3632C29.3077 23.3681 29.3048 23.373 29.3019 23.3779C29.3006 23.3803 29.2992 23.3827 29.2978 23.385L29.2928 23.3831V23.0791H29V24.8Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React.createElement(\"g\", {\n opacity: 0.2\n}, /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 3.90001,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 6.50002,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 9.10002,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 11.7,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 3.90001,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 6.50002,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 9.10002,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 11.7,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 15.9,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 18.5,\n cy: 21.3,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 15.9,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React.createElement(\"circle\", {\n cx: 18.5,\n cy: 24.1,\n r: 0.7,\n fill: \"#090B14\"\n}))), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"filter\", {\n id: \"filter0_ddd_14_10411\",\n x: -3,\n y: 11,\n width: 46,\n height: 22,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_14_10411\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_14_10411\",\n result: \"effect2_dropShadow_14_10411\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_14_10411\"\n}), /* @__PURE__ */ React.createElement(\"feOffset\", null), /* @__PURE__ */ React.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_14_10411\",\n result: \"effect3_dropShadow_14_10411\"\n}), /* @__PURE__ */ React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_14_10411\",\n result: \"shape\"\n})), /* @__PURE__ */ React.createElement(\"linearGradient\", {\n id: \"paint0_linear_14_10411\",\n x1: 36.4825,\n y1: 12.6064,\n x2: 32.4265,\n y2: 33.3321,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar large_default = SvgLarge;\nvar SvgMedium = (props) => /* @__PURE__ */ React2.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 28,\n viewBox: \"0 0 28 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React2.createElement(\"g\", {\n filter: \"url(#filter0_ddd_14_10412)\"\n}, /* @__PURE__ */ React2.createElement(\"rect\", {\n y: 8.40002,\n width: 28,\n height: 11.2,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React2.createElement(\"rect\", {\n y: 8.40002,\n width: 28,\n height: 11.2,\n rx: 2,\n fill: \"url(#paint0_linear_14_10412)\"\n}), /* @__PURE__ */ React2.createElement(\"path\", {\n d: \"M23.5176 15.6876C23.5174 15.6851 23.5172 15.6826 23.517 15.6801H23.5135C23.512 15.6813 23.5105 15.6825 23.509 15.6838C23.5058 15.6865 23.5026 15.6893 23.499 15.6914C23.4867 15.6989 23.4743 15.7065 23.462 15.714C23.4188 15.7403 23.3756 15.7667 23.3316 15.7919C23.3151 15.8014 23.3101 15.8119 23.3103 15.8298C23.311 15.9067 23.3109 15.9837 23.3108 16.0606V16.0607C23.3108 16.0868 23.3107 16.1129 23.3107 16.139V16.16H23.0979V16.3372H23.3107V16.3591C23.3107 16.4136 23.3106 16.4681 23.3106 16.5226V16.5226C23.3103 16.6692 23.3101 16.8158 23.3115 16.9623C23.312 17.0134 23.3173 17.0655 23.3293 17.1153C23.3555 17.2248 23.4247 17.3019 23.5376 17.3402C23.6089 17.3643 23.6823 17.3637 23.756 17.3529C23.7972 17.3468 23.8368 17.3357 23.8733 17.3139L23.8241 17.1436C23.7824 17.169 23.7381 17.1803 23.6912 17.182C23.6119 17.1849 23.5537 17.1475 23.5319 17.075C23.5227 17.0445 23.5192 17.0115 23.5191 16.9797C23.5182 16.8185 23.5183 16.6573 23.5185 16.4961C23.5185 16.4494 23.5185 16.4027 23.5185 16.3561C23.5185 16.3521 23.5188 16.3481 23.5191 16.3436C23.5193 16.3412 23.5195 16.3388 23.5196 16.3361H23.8437V16.1587H23.5185L23.5185 16.0527C23.5185 15.9364 23.5185 15.8201 23.5184 15.7037C23.5184 15.6983 23.518 15.693 23.5176 15.6876Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React2.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.9269 16.7894H24.0327C24.0351 16.8031 24.0373 16.8166 24.0395 16.8299C24.0443 16.859 24.0489 16.8873 24.0558 16.915C24.0733 16.9852 24.1063 17.0481 24.1587 17.0999C24.2064 17.1471 24.2653 17.171 24.3322 17.1783C24.3884 17.1845 24.4436 17.18 24.4979 17.1657C24.5775 17.1447 24.6311 17.0918 24.674 17.0265C24.6842 17.011 24.6933 16.9948 24.7027 16.9781C24.7071 16.9704 24.7116 16.9625 24.7162 16.9546L24.8934 17.0297C24.8915 17.0335 24.8896 17.0373 24.8877 17.041C24.8837 17.049 24.8797 17.0568 24.8756 17.0645C24.8314 17.1457 24.7771 17.2187 24.6997 17.2731C24.6389 17.3159 24.5701 17.3391 24.4971 17.3503C24.4174 17.3626 24.3373 17.3647 24.2578 17.3484C24.1255 17.3214 24.0195 17.2546 23.9441 17.1442C23.8768 17.0457 23.8417 16.9362 23.8316 16.8185C23.8198 16.6798 23.8396 16.5465 23.9022 16.4205C23.9695 16.285 24.0736 16.1903 24.2248 16.1528C24.3828 16.1137 24.5352 16.1292 24.6769 16.2122C24.7773 16.2711 24.8404 16.3602 24.8828 16.4649C24.9146 16.5431 24.9266 16.6248 24.9269 16.7084C24.927 16.7262 24.9269 16.7439 24.9269 16.7625L24.9269 16.7894ZM24.7113 16.609C24.6868 16.469 24.5868 16.2981 24.3516 16.3135C24.268 16.319 24.1962 16.3493 24.1408 16.4122C24.091 16.4689 24.0623 16.5351 24.0483 16.609H24.7113Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React2.createElement(\"path\", {\n d: \"M25.7512 16.2118C25.7441 16.2384 25.7371 16.2651 25.7301 16.2917C25.7269 16.3042 25.7239 16.3167 25.7208 16.3296L25.7208 16.3297C25.7193 16.3358 25.7178 16.342 25.7162 16.3484C25.7145 16.3479 25.7129 16.3475 25.7114 16.3471C25.7085 16.3463 25.7059 16.3456 25.7035 16.3446C25.5596 16.2888 25.4428 16.3162 25.3434 16.4287C25.2821 16.4981 25.2506 16.5797 25.2296 16.6658C25.212 16.738 25.2038 16.8113 25.2036 16.8852C25.2034 16.9918 25.2034 17.0984 25.2035 17.2049C25.2035 17.2483 25.2035 17.2916 25.2035 17.335V17.3569H24.9896V16.1554H25.2031V16.3552C25.2082 16.3483 25.213 16.3417 25.2175 16.3353C25.2268 16.3222 25.2354 16.3102 25.2452 16.2992C25.3368 16.1973 25.4496 16.1334 25.5963 16.1345C25.6534 16.1349 25.7092 16.1447 25.76 16.1715V16.1784L25.7512 16.2118Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React2.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.1574 16.7895H22.2668C22.2711 16.872 22.2882 16.9495 22.3291 17.0207C22.3547 17.0653 22.3863 17.105 22.4309 17.1335C22.4923 17.1727 22.5606 17.1841 22.6324 17.1806C22.7142 17.1765 22.7894 17.1562 22.8486 17.0962C22.8849 17.0594 22.9138 17.0178 22.9366 16.972C22.9384 16.9684 22.9402 16.9648 22.9422 16.9608L22.9456 16.954L23.125 17.0301C23.1207 17.0379 23.1166 17.0456 23.1124 17.0533C23.1035 17.0699 23.0948 17.0862 23.0852 17.1019C23.0368 17.1811 22.9771 17.2499 22.8937 17.2962C22.8341 17.3292 22.7692 17.3464 22.7019 17.3541C22.6317 17.3622 22.5613 17.3633 22.4917 17.3492C22.3481 17.3202 22.2367 17.2458 22.1604 17.1227C22.1034 17.0306 22.0722 16.9304 22.0626 16.8236C22.0499 16.6832 22.0692 16.5481 22.1327 16.4204C22.2001 16.2849 22.3043 16.1902 22.4556 16.1528C22.6143 16.1136 22.7673 16.1293 22.9093 16.2132C23.0091 16.272 23.0718 16.3609 23.1139 16.465C23.1451 16.542 23.1579 16.6225 23.1574 16.7051C23.1573 16.7237 23.1574 16.7422 23.1574 16.7616C23.1574 16.7707 23.1574 16.7799 23.1574 16.7895ZM22.9432 16.6093C22.9059 16.429 22.7891 16.2981 22.5759 16.3139C22.4936 16.32 22.4233 16.3519 22.3694 16.4144C22.3209 16.4707 22.2926 16.536 22.2788 16.6093H22.9432Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React2.createElement(\"path\", {\n d: \"M20.3 17.3601H20.5056V17.3385C20.5056 17.2939 20.5054 17.2493 20.5053 17.2047C20.5051 17.0938 20.5048 16.9829 20.5062 16.872C20.507 16.8092 20.5119 16.7461 20.5205 16.6839C20.532 16.6002 20.5601 16.5212 20.6092 16.4505C20.6575 16.3809 20.7183 16.3281 20.8084 16.3183C20.9118 16.3071 20.9984 16.3465 21.0236 16.4565C21.0329 16.4967 21.0357 16.5389 21.0359 16.5802C21.0366 16.7634 21.0366 16.9466 21.0365 17.1299C21.0365 17.1987 21.0364 17.2675 21.0364 17.3363C21.0364 17.3417 21.0368 17.347 21.0372 17.3523C21.0373 17.3547 21.0375 17.3571 21.0376 17.3595H21.244V17.3397C21.244 17.2941 21.2439 17.2485 21.2438 17.2028C21.2435 17.0883 21.2433 16.9738 21.2447 16.8593C21.2455 16.7983 21.2503 16.7369 21.2596 16.6766C21.2748 16.5769 21.3114 16.4848 21.3803 16.4072C21.4367 16.3438 21.5073 16.3113 21.5942 16.3171C21.6659 16.3218 21.7193 16.354 21.7485 16.4197C21.7691 16.4658 21.7731 16.5146 21.7731 16.5639C21.7733 16.7561 21.7733 16.9484 21.7733 17.1406C21.7733 17.2068 21.7732 17.273 21.7732 17.3391V17.3598H21.9792C21.9793 17.3579 21.9794 17.3561 21.9795 17.3543C21.9798 17.3507 21.98 17.3473 21.98 17.3439C21.98 17.279 21.98 17.2141 21.9801 17.1492C21.9802 16.936 21.9803 16.7228 21.9794 16.5097C21.9792 16.4667 21.9741 16.4229 21.9645 16.381C21.9437 16.2896 21.8947 16.2151 21.8065 16.1717C21.7075 16.1231 21.6035 16.1227 21.4994 16.1531C21.3825 16.1873 21.2999 16.2639 21.2379 16.3636C21.2354 16.3676 21.2329 16.3717 21.2299 16.3764C21.2285 16.3787 21.227 16.3811 21.2253 16.3838C21.2243 16.3806 21.2235 16.3778 21.2228 16.3753C21.2215 16.3708 21.2204 16.3672 21.2193 16.3636C21.189 16.2686 21.1312 16.1966 21.0344 16.1588C20.9594 16.1295 20.8813 16.1266 20.803 16.1427C20.6738 16.1692 20.582 16.2447 20.5174 16.3543C20.5154 16.3577 20.5134 16.3611 20.5113 16.3646C20.5104 16.3662 20.5094 16.3679 20.5085 16.3695L20.505 16.3682V16.1554H20.3V17.3601Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React2.createElement(\"g\", {\n opacity: 0.2\n}, /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 2.72999,\n cy: 14.91,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"circle\", {\n cx: 4.55,\n cy: 14.91,\n r: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 6.37001,\n cy: 14.91,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 8.18998,\n cy: 14.91,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"circle\", {\n cx: 2.72999,\n cy: 16.87,\n r: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 4.55,\n cy: 16.87,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 6.37001,\n cy: 16.87,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 8.18998,\n cy: 16.87,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 11.13,\n cy: 14.91,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 12.95,\n cy: 14.91,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 11.13,\n cy: 16.87,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React2.createElement(\"ellipse\", {\n cx: 12.95,\n cy: 16.87,\n rx: 0.49,\n ry: 0.49,\n fill: \"#090B14\"\n}))), /* @__PURE__ */ React2.createElement(\"defs\", null, /* @__PURE__ */ React2.createElement(\"filter\", {\n id: \"filter0_ddd_14_10412\",\n x: -3,\n y: 7.40002,\n width: 34,\n height: 17.2,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React2.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React2.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React2.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React2.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React2.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_14_10412\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React2.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React2.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React2.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React2.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_14_10412\",\n result: \"effect2_dropShadow_14_10412\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React2.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_14_10412\"\n}), /* @__PURE__ */ React2.createElement(\"feOffset\", null), /* @__PURE__ */ React2.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React2.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React2.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_14_10412\",\n result: \"effect3_dropShadow_14_10412\"\n}), /* @__PURE__ */ React2.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_14_10412\",\n result: \"shape\"\n})), /* @__PURE__ */ React2.createElement(\"linearGradient\", {\n id: \"paint0_linear_14_10412\",\n x1: 25.5378,\n y1: 8.82451,\n x2: 22.6985,\n y2: 23.3325,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React2.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React2.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React2.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar medium_default = SvgMedium;\nvar SvgSmall = (props) => /* @__PURE__ */ React3.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React3.createElement(\"g\", {\n filter: \"url(#filter0_ddd_14_10413)\"\n}, /* @__PURE__ */ React3.createElement(\"rect\", {\n y: 6,\n width: 20,\n height: 8,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React3.createElement(\"rect\", {\n y: 6,\n width: 20,\n height: 8,\n rx: 2,\n fill: \"url(#paint0_linear_14_10413)\"\n}), /* @__PURE__ */ React3.createElement(\"path\", {\n d: \"M16.7983 11.2053C16.7982 11.2035 16.798 11.2017 16.7979 11.2H16.7954C16.7943 11.2008 16.7932 11.2017 16.7921 11.2026C16.7899 11.2046 16.7876 11.2065 16.785 11.2081C16.7762 11.2134 16.7674 11.2188 16.7586 11.2242C16.7277 11.243 16.6968 11.2618 16.6655 11.2799C16.6536 11.2867 16.6501 11.2941 16.6502 11.3069C16.6507 11.3619 16.6506 11.4168 16.6506 11.4718V11.4718C16.6506 11.4905 16.6505 11.5091 16.6505 11.5278V11.5428H16.4985V11.6693H16.6505V11.685C16.6505 11.7239 16.6505 11.7628 16.6504 11.8017V11.8018C16.6502 11.9065 16.6501 12.0112 16.6511 12.1159C16.6515 12.1524 16.6553 12.1896 16.6638 12.2251C16.6825 12.3034 16.732 12.3584 16.8126 12.3857C16.8635 12.403 16.9159 12.4026 16.9686 12.3948C16.998 12.3905 17.0263 12.3826 17.0524 12.367L17.0172 12.2454C16.9874 12.2635 16.9558 12.2715 16.9223 12.2728C16.8656 12.2748 16.824 12.2482 16.8085 12.1963C16.8019 12.1746 16.7995 12.151 16.7993 12.1282C16.7987 12.0131 16.7988 11.898 16.7989 11.7828C16.7989 11.7495 16.799 11.7162 16.799 11.6828C16.799 11.68 16.7992 11.6771 16.7994 11.6739C16.7995 11.6722 16.7996 11.6705 16.7997 11.6686H17.0312V11.5418H16.7989L16.7989 11.4661C16.7989 11.383 16.7989 11.3 16.7989 11.2169C16.7989 11.213 16.7986 11.2092 16.7983 11.2053Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React3.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.8049 11.9923H17.1662C17.168 12.0021 17.1695 12.0118 17.1711 12.0213C17.1745 12.0421 17.1778 12.0623 17.1827 12.0821C17.1952 12.1322 17.2188 12.1771 17.2562 12.2141C17.2903 12.2478 17.3324 12.2649 17.3801 12.2701C17.4203 12.2745 17.4597 12.2713 17.4985 12.2611C17.5553 12.2461 17.5937 12.2084 17.6243 12.1617C17.6316 12.1506 17.6381 12.1391 17.6448 12.1272C17.6479 12.1216 17.6511 12.116 17.6544 12.1103L17.781 12.164C17.7796 12.1667 17.7783 12.1694 17.7769 12.1721C17.774 12.1778 17.7712 12.1833 17.7683 12.1888C17.7367 12.2468 17.6979 12.299 17.6426 12.3379C17.5992 12.3684 17.5501 12.385 17.4979 12.393C17.441 12.4017 17.3838 12.4033 17.327 12.3916C17.2325 12.3723 17.1568 12.3246 17.1029 12.2458C17.0548 12.1754 17.0298 12.0972 17.0226 12.0131C17.0141 11.9141 17.0283 11.8188 17.073 11.7288C17.1211 11.632 17.1954 11.5644 17.3034 11.5376C17.4163 11.5097 17.5252 11.5208 17.6263 11.5801C17.6981 11.6221 17.7431 11.6858 17.7734 11.7605C17.7961 11.8164 17.8047 11.8747 17.8049 11.9345C17.805 11.9472 17.805 11.9598 17.805 11.9731L17.8049 11.9923ZM17.6509 11.8635C17.6334 11.7635 17.562 11.6414 17.394 11.6524C17.3343 11.6563 17.283 11.678 17.2435 11.7229C17.2079 11.7634 17.1874 11.8107 17.1774 11.8635H17.6509Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React3.createElement(\"path\", {\n d: \"M18.3937 11.5798C18.3887 11.5988 18.3836 11.6178 18.3787 11.6369C18.3764 11.6458 18.3742 11.6547 18.372 11.6639L18.372 11.664C18.3709 11.6683 18.3699 11.6728 18.3687 11.6773C18.3675 11.677 18.3664 11.6767 18.3653 11.6764C18.3632 11.6758 18.3614 11.6753 18.3596 11.6747C18.2568 11.6348 18.1734 11.6544 18.1025 11.7347C18.0587 11.7842 18.0361 11.8426 18.0212 11.9041C18.0086 11.9556 18.0027 12.008 18.0026 12.0608C18.0024 12.1369 18.0025 12.213 18.0025 12.2891C18.0025 12.3201 18.0025 12.3511 18.0025 12.382V12.3977H17.8497V11.5395H18.0022V11.6822C18.0059 11.6773 18.0093 11.6725 18.0125 11.668C18.0192 11.6586 18.0253 11.6501 18.0323 11.6422C18.0977 11.5694 18.1783 11.5238 18.2831 11.5246C18.3239 11.5249 18.3637 11.5319 18.4 11.551V11.5559L18.3937 11.5798Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React3.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.541 11.9924H15.9048C15.9079 12.0514 15.9201 12.1067 15.9494 12.1576C15.9677 12.1894 15.9902 12.2178 16.0221 12.2381C16.066 12.2661 16.1147 12.2743 16.166 12.2717C16.2244 12.2689 16.2781 12.2543 16.3204 12.2115C16.3464 12.1852 16.367 12.1555 16.3833 12.1228C16.3846 12.1202 16.3859 12.1176 16.3873 12.1148L16.3897 12.1099L16.5179 12.1643C16.5148 12.1698 16.5118 12.1754 16.5089 12.1809C16.5025 12.1927 16.4963 12.2043 16.4894 12.2156C16.4549 12.2721 16.4122 12.3213 16.3526 12.3543C16.3101 12.3779 16.2637 12.3902 16.2156 12.3957C16.1655 12.4015 16.1152 12.4023 16.0655 12.3922C15.963 12.3715 15.8834 12.3184 15.8289 12.2304C15.7882 12.1646 15.7659 12.0931 15.759 12.0168C15.7499 11.9165 15.7637 11.82 15.8091 11.7288C15.8572 11.632 15.9317 11.5643 16.0397 11.5376C16.1531 11.5096 16.2624 11.5209 16.3638 11.5807C16.4351 11.6228 16.4799 11.6863 16.5099 11.7606C16.5322 11.8156 16.5413 11.8731 16.541 11.9322C16.541 11.9454 16.541 11.9586 16.541 11.9725C16.541 11.979 16.541 11.9856 16.541 11.9924ZM16.388 11.8637C16.3614 11.7349 16.278 11.6414 16.1256 11.6527C16.0669 11.657 16.0166 11.6798 15.9782 11.7245C15.9435 11.7647 15.9233 11.8113 15.9134 11.8637H16.388Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React3.createElement(\"path\", {\n d: \"M14.5 12.4H14.6468V12.3845C14.6468 12.3527 14.6468 12.3208 14.6467 12.289C14.6465 12.2098 14.6463 12.1305 14.6473 12.0513C14.6479 12.0065 14.6514 11.9614 14.6575 11.917C14.6657 11.8572 14.6858 11.8007 14.7209 11.7502C14.7554 11.7005 14.7988 11.6628 14.8632 11.6558C14.937 11.6478 14.9989 11.676 15.0169 11.7546C15.0235 11.7833 15.0255 11.8134 15.0256 11.8429C15.0262 11.9738 15.0261 12.1047 15.0261 12.2355C15.026 12.2847 15.026 12.3339 15.026 12.383C15.026 12.3868 15.0263 12.3906 15.0266 12.3944C15.0267 12.3961 15.0268 12.3979 15.0269 12.3996H15.1743V12.3854C15.1743 12.3528 15.1742 12.3203 15.1742 12.2877C15.174 12.2059 15.1738 12.1241 15.1748 12.0423C15.1753 11.9987 15.1788 11.9549 15.1854 11.9118C15.1963 11.8406 15.2224 11.7748 15.2717 11.7194C15.3119 11.6741 15.3624 11.6508 15.4245 11.655C15.4756 11.6584 15.5138 11.6814 15.5347 11.7283C15.5493 11.7612 15.5522 11.7961 15.5523 11.8313C15.5524 11.9686 15.5524 12.1059 15.5523 12.2432C15.5523 12.2905 15.5523 12.3377 15.5523 12.385V12.3998H15.6994C15.6995 12.3984 15.6996 12.3971 15.6997 12.3959C15.6998 12.3933 15.7 12.3908 15.7 12.3884C15.7 12.342 15.7 12.2957 15.7001 12.2493C15.7002 12.0971 15.7002 11.9448 15.6995 11.7925C15.6994 11.7618 15.6958 11.7306 15.6889 11.7006C15.6741 11.6353 15.6391 11.5821 15.5761 11.5512C15.5054 11.5164 15.4311 11.5161 15.3567 11.5379C15.2732 11.5623 15.2142 11.617 15.1699 11.6882C15.1682 11.6911 15.1663 11.694 15.1642 11.6973C15.1632 11.699 15.1621 11.7007 15.1609 11.7026C15.1602 11.7003 15.1597 11.6983 15.1591 11.6966C15.1582 11.6933 15.1574 11.6908 15.1566 11.6882C15.135 11.6204 15.0937 11.5689 15.0246 11.5419C14.971 11.521 14.9153 11.5189 14.8593 11.5304C14.767 11.5494 14.7014 11.6033 14.6553 11.6815C14.6539 11.684 14.6524 11.6864 14.651 11.6889C14.6503 11.6901 14.6496 11.6913 14.6489 11.6924L14.6464 11.6915V11.5395H14.5V12.4Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React3.createElement(\"g\", {\n opacity: 0.2\n}, /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 1.95001,\n cy: 10.65,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 3.24999,\n cy: 10.65,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 4.55001,\n cy: 10.65,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 5.85,\n cy: 10.65,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"circle\", {\n cx: 1.95001,\n cy: 12.0501,\n r: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 3.24999,\n cy: 12.0501,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 4.55001,\n cy: 12.0501,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 5.85,\n cy: 12.0501,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"circle\", {\n cx: 7.94998,\n cy: 10.65,\n r: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 9.24996,\n cy: 10.65,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 7.94998,\n cy: 12.0501,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}), /* @__PURE__ */ React3.createElement(\"ellipse\", {\n cx: 9.24996,\n cy: 12.0501,\n rx: 0.35,\n ry: 0.35,\n fill: \"#090B14\"\n}))), /* @__PURE__ */ React3.createElement(\"defs\", null, /* @__PURE__ */ React3.createElement(\"filter\", {\n id: \"filter0_ddd_14_10413\",\n x: -3,\n y: 5,\n width: 26,\n height: 14,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React3.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React3.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React3.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React3.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React3.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_14_10413\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React3.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React3.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React3.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React3.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_14_10413\",\n result: \"effect2_dropShadow_14_10413\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React3.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_14_10413\"\n}), /* @__PURE__ */ React3.createElement(\"feOffset\", null), /* @__PURE__ */ React3.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React3.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React3.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_14_10413\",\n result: \"effect3_dropShadow_14_10413\"\n}), /* @__PURE__ */ React3.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_14_10413\",\n result: \"shape\"\n})), /* @__PURE__ */ React3.createElement(\"linearGradient\", {\n id: \"paint0_linear_14_10413\",\n x1: 18.2413,\n y1: 6.30321,\n x2: 16.2132,\n y2: 16.666,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React3.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React3.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React3.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar small_default = SvgSmall;\nvar ControllerIconSVG = {\n Large: large_default,\n Medium: medium_default,\n Small: small_default\n};\nvar SvgAccessControl = (props) => /* @__PURE__ */ React4.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React4.createElement(\"path\", {\n opacity: 0.2,\n d: \"M12.6226 13.5862C12.9985 13.9621 13.6136 13.9653 13.9383 13.5445C14.6423 12.6319 15.1292 11.5656 15.3557 10.4268C15.6451 8.97195 15.4966 7.46399 14.9289 6.09358C14.3613 4.72317 13.4 3.55187 12.1667 2.72778C10.9334 1.90369 9.48336 1.46384 8.00004 1.46384C6.51672 1.46384 5.06671 1.90369 3.83338 2.72778C2.60004 3.55187 1.63878 4.72317 1.07114 6.09358C0.503494 7.46399 0.354973 8.97195 0.644354 10.4268C0.870887 11.5656 1.3578 12.6319 2.06178 13.5445C2.38645 13.9653 3.00159 13.9621 3.37746 13.5862V13.5862C3.64593 13.3177 3.64224 12.8846 3.40709 12.5865C2.83702 11.8638 2.44344 11.014 2.2626 10.1049C2.03689 8.97012 2.15273 7.79391 2.59549 6.72499C3.03825 5.65607 3.78804 4.74245 4.75004 4.09967C5.71204 3.45688 6.84305 3.11379 8.00004 3.11379C9.15703 3.11379 10.288 3.45688 11.25 4.09967C12.212 4.74245 12.9618 5.65607 13.4046 6.72499C13.8473 7.79391 13.9632 8.97012 13.7375 10.1049C13.5566 11.014 13.1631 11.8638 12.593 12.5865C12.3578 12.8846 12.3541 13.3177 12.6226 13.5862V13.5862Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React4.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.25454 4.12199C8.12924 3.97492 7.87072 3.97492 7.74541 4.12199L7.24924 4.70437C7.11231 4.8651 6.92679 4.97472 6.72607 5.04027C5.79897 5.34306 4.976 5.97585 4.44997 6.88696C3.31798 8.84761 3.98975 11.3547 5.95041 12.4867C7.91106 13.6187 10.4181 12.9469 11.5501 10.9862C12.6821 9.02558 12.0103 6.51851 10.0497 5.38652C9.79832 5.2414 9.53798 5.12592 9.2727 5.039C9.072 4.97325 8.88643 4.86366 8.74946 4.7029L8.25454 4.12199ZM10.6223 10.4505C9.78614 11.8987 7.93432 12.3949 6.48611 11.5588C5.0379 10.7227 4.5417 8.87087 5.37783 7.42266C6.21395 5.97445 8.06577 5.47826 9.51399 6.31438C10.9622 7.15051 11.4584 9.00233 10.6223 10.4505Z\",\n fill: \"currentColor\"\n}));\nvar AccessControl_default = SvgAccessControl;\nvar SvgAccessPoint = (props) => /* @__PURE__ */ React5.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React5.createElement(\"path\", {\n d: \"M6.25 4.675C6.53995 4.675 6.775 4.43995 6.775 4.15C6.775 3.86005 6.53995 3.625 6.25 3.625C5.96005 3.625 5.725 3.86005 5.725 4.15C5.725 4.43995 5.96005 4.675 6.25 4.675Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React5.createElement(\"path\", {\n d: \"M8 4.675C8.28995 4.675 8.525 4.43995 8.525 4.15C8.525 3.86005 8.28995 3.625 8 3.625C7.71005 3.625 7.475 3.86005 7.475 4.15C7.475 4.43995 7.71005 4.675 8 4.675Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React5.createElement(\"path\", {\n d: \"M9.75 4.675C10.0399 4.675 10.275 4.43995 10.275 4.15C10.275 3.86005 10.0399 3.625 9.75 3.625C9.46005 3.625 9.225 3.86005 9.225 4.15C9.225 4.43995 9.46005 4.675 9.75 4.675Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React5.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 10.3878 14.8372 13.0816 13.9622 13.9592C13.0872 14.8368 9.9535 15 8.02035 15C6.0872 15 2.9535 14.8368 2.07849 13.9592C1.20349 13.0816 1 10.3878 1 8C1 5.61226 1.20349 2.91838 2.07849 2.04082C2.9535 1.16326 6.0872 1 8.02035 1C9.9535 1 13.0872 1.16326 13.9622 2.04082C14.8372 2.91838 15 5.61226 15 8ZM3.41537 2.5108C3.01862 2.63391 2.8577 2.74643 2.82203 2.78219C2.76441 2.83999 2.65263 3.00218 2.53376 3.34785C2.41991 3.6789 2.32444 4.10405 2.24978 4.60797C2.10052 5.61547 2.05 6.82717 2.05 8C2.05 9.17284 2.10052 10.3845 2.24978 11.3921C2.32444 11.896 2.41991 12.3211 2.53376 12.6522C2.65264 12.9978 2.76442 13.16 2.82203 13.2178C2.85768 13.2536 3.0186 13.3661 3.41537 13.4892C3.78463 13.6038 4.25493 13.6967 4.79071 13.7678C5.85992 13.9097 7.07496 13.95 8.02035 13.95C8.96574 13.95 10.1808 13.9097 11.25 13.7678C11.7858 13.6967 12.2561 13.6038 12.6253 13.4892C13.0221 13.3661 13.183 13.2536 13.2187 13.2178C13.2732 13.1632 13.3825 13.0049 13.4978 12.6604C13.6082 12.3306 13.6992 11.9062 13.7692 11.4016C13.9092 10.3925 13.95 9.1794 13.95 8C13.95 6.82061 13.9092 5.60754 13.7692 4.59839C13.6992 4.09382 13.6082 3.66944 13.4978 3.33962C13.3825 2.99507 13.2732 2.83684 13.2187 2.78219C13.183 2.74645 13.0221 2.63392 12.6253 2.5108C12.2561 2.39623 11.7858 2.30329 11.25 2.23221C10.1808 2.09035 8.96574 2.05 8.02035 2.05C7.07496 2.05 5.85992 2.09035 4.79071 2.23221C4.25493 2.30329 3.78463 2.39623 3.41537 2.5108Z\",\n fill: \"currentColor\"\n}));\nvar AccessPoint_default = SvgAccessPoint;\nvar SvgArea = (props) => /* @__PURE__ */ React6.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React6.createElement(\"path\", {\n opacity: 0.1,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.47225 7.99968C9.91531 7.32812 10.2057 6.54693 10.2939 5.70555C10.473 5.68675 10.6548 5.67711 10.8389 5.67711C12.6407 5.67711 14.2268 6.60041 15.15 7.99968C14.2268 9.39896 12.6407 10.3223 10.8389 10.3223C10.6548 10.3223 10.473 10.3126 10.2939 10.2938C10.2057 9.45244 9.91531 8.67124 9.47225 7.99968ZM8 9.47204C8.58478 9.08616 9.08641 8.5845 9.47225 7.99968C9.08641 7.41488 8.58478 6.91321 8 6.52733C8.67148 6.08425 9.45259 5.79384 10.2939 5.70555C10.3126 5.52664 10.3223 5.34501 10.3223 5.16113C10.3223 3.35947 9.3991 1.77343 8 0.850216C8.81442 0.312809 9.79012 0 10.8389 0C13.6893 0 16 2.31072 16 5.16113C16 6.20975 15.6873 7.18532 15.15 7.99968C15.6873 8.81404 16 9.78962 16 10.8382C16 13.6887 13.6893 15.9994 10.8389 15.9994C9.79012 15.9994 8.81442 15.6866 8 15.1492C9.3991 14.2259 10.3223 12.6399 10.3223 10.8382C10.3223 10.6544 10.3126 10.4727 10.2939 10.2938C9.45259 10.2055 8.67148 9.91512 8 9.47204ZM5.70612 10.2938C6.54741 10.2055 7.32852 9.91512 8 9.47204C7.41522 9.08616 6.91358 8.5845 6.52775 7.99968C6.91358 7.41487 7.41522 6.9132 8 6.52733C7.32852 6.08425 6.54741 5.79384 5.70612 5.70555C5.68736 5.52664 5.67774 5.34501 5.67774 5.16113C5.67774 3.35947 6.6009 1.77343 8 0.850216C7.18558 0.312809 6.20988 0 5.16113 0C2.31072 0 0 2.31072 0 5.16113C0 6.20975 0.312728 7.18532 0.850008 7.99968C0.312728 8.81404 0 9.78962 0 10.8382C0 13.6887 2.31072 15.9994 5.16113 15.9994C6.20988 15.9994 7.18558 15.6866 8 15.1492C6.6009 14.2259 5.67774 12.6399 5.67774 10.8382C5.67774 10.6544 5.68736 10.4727 5.70612 10.2938ZM5.70612 10.2938C5.52702 10.3126 5.3452 10.3223 5.16113 10.3223C3.35934 10.3223 1.77319 9.39896 0.850008 7.99968C1.77319 6.60041 3.35934 5.67711 5.16113 5.67711C5.3452 5.67711 5.52702 5.68675 5.70612 5.70555C5.79432 6.54693 6.08469 7.32812 6.52775 7.99968C6.08469 8.67124 5.79432 9.45244 5.70612 10.2938Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React6.createElement(\"path\", {\n opacity: 0.25,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00009 0.85022C6.60099 1.77343 5.67783 3.35947 5.67783 5.16113C5.67783 5.34501 5.68745 5.52664 5.70621 5.70555C5.52711 5.68676 5.34529 5.67712 5.16122 5.67712C3.35942 5.67712 1.77328 6.60041 0.850098 7.99969C1.77328 9.39896 3.35942 10.3223 5.16122 10.3223C5.34529 10.3223 5.52711 10.3126 5.70621 10.2938C5.68745 10.4727 5.67783 10.6544 5.67783 10.8382C5.67783 12.6399 6.60099 14.2259 8.00009 15.1492C9.39919 14.2259 10.3223 12.6399 10.3223 10.8382C10.3223 10.6544 10.3127 10.4727 10.294 10.2938C10.4731 10.3126 10.6549 10.3223 10.839 10.3223C12.6408 10.3223 14.2269 9.39896 15.1501 7.99969C14.2269 6.60041 12.6408 5.67712 10.839 5.67712C10.6549 5.67712 10.4731 5.68676 10.294 5.70555C10.3127 5.52664 10.3223 5.34501 10.3223 5.16113C10.3223 3.35947 9.39919 1.77343 8.00009 0.85022ZM9.47234 7.99969C9.9154 8.67125 10.2058 9.45245 10.294 10.2938C9.45268 10.2055 8.67157 9.91513 8.00009 9.47204C8.58487 9.08617 9.0865 8.5845 9.47234 7.99969ZM8.00009 6.52734C8.67157 6.08425 9.45268 5.79384 10.294 5.70555C10.2058 6.54693 9.9154 7.32813 9.47234 7.99969C9.0865 7.41488 8.58487 6.91321 8.00009 6.52734ZM6.52784 7.99969C6.08478 7.32813 5.79441 6.54693 5.70621 5.70555C6.5475 5.79384 7.32861 6.08425 8.00009 6.52734C7.41531 6.91321 6.91367 7.41488 6.52784 7.99969ZM6.52784 7.99969C6.91367 8.5845 7.41531 9.08617 8.00009 9.47204C7.32861 9.91513 6.5475 10.2055 5.70621 10.2938C5.79441 9.45245 6.08478 8.67125 6.52784 7.99969Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React6.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 8C11 9.02333 10.9302 10.1778 10.5552 10.5539C10.1802 10.93 8.83721 11 8.00872 11C7.18023 11 5.83721 10.93 5.46221 10.5539C5.08721 10.1778 5 9.02333 5 8C5 6.97668 5.08721 5.82216 5.46221 5.44606C5.83721 5.06997 7.18023 5 8.00872 5C8.83721 5 10.1802 5.06997 10.5552 5.44606C10.9302 5.82216 11 6.97668 11 8Z\",\n fill: \"currentColor\"\n}));\nvar Area_default = SvgArea;\nvar SvgArrowDown = (props) => /* @__PURE__ */ React7.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React7.createElement(\"path\", {\n d: \"M6.96766 2.9C6.96766 2.40294 7.42986 2 8.00001 2C8.57016 2 9.03236 2.40294 9.03236 2.9V10.9254L11.4877 8.78483C11.8908 8.43336 12.5445 8.43336 12.9476 8.78483C13.3508 9.1363 13.3508 9.70615 12.9476 10.0576L8.76825 13.7012C8.57926 13.8846 8.30509 14 8.00001 14C7.69504 14 7.42097 13.8847 7.23198 13.7014L3.05237 10.0576C2.64921 9.70616 2.64921 9.13631 3.05237 8.78484C3.45553 8.43337 4.10917 8.43337 4.51233 8.78484L6.96766 10.9254V2.9Z\",\n fill: \"currentColor\"\n}));\nvar ArrowDown_default = SvgArrowDown;\nvar SvgArrowLeft = (props) => /* @__PURE__ */ React8.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React8.createElement(\"path\", {\n d: \"M13.1 6.96766C13.597 6.96766 14 7.42986 14 8.00001C14 8.57016 13.597 9.03236 13.1 9.03236H5.07462L7.21516 11.4877C7.56663 11.8908 7.56663 12.5445 7.21516 12.9476C6.86369 13.3508 6.29384 13.3508 5.94237 12.9476L2.29879 8.76825C2.11536 8.57926 1.99999 8.30509 1.99999 8.00001C1.99999 7.69505 2.11527 7.42097 2.29858 7.23198L5.94236 3.05237C6.29383 2.64921 6.86368 2.64921 7.21515 3.05237C7.56663 3.45553 7.56663 4.10917 7.21515 4.51233L5.0746 6.96766H13.1Z\",\n fill: \"currentColor\"\n}));\nvar ArrowLeft_default = SvgArrowLeft;\nvar SvgArrowRight = (props) => /* @__PURE__ */ React9.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React9.createElement(\"path\", {\n d: \"M2.9 9.03234C2.40294 9.03234 2 8.57014 2 7.99999C2 7.42984 2.40294 6.96764 2.9 6.96764H10.9254L8.78483 4.51233C8.43336 4.10917 8.43336 3.45552 8.78483 3.05237C9.1363 2.64921 9.70615 2.64921 10.0576 3.05237L13.7012 7.23175C13.8846 7.42074 14 7.69491 14 7.99999C14 8.30496 13.8847 8.57903 13.7014 8.76802L10.0576 12.9476C9.70616 13.3508 9.13631 13.3508 8.78484 12.9476C8.43337 12.5445 8.43337 11.8908 8.78484 11.4877L10.9254 9.03234H2.9Z\",\n fill: \"currentColor\"\n}));\nvar ArrowRight_default = SvgArrowRight;\nvar SvgArrowRotate = (props) => /* @__PURE__ */ React10.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React10.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.7648 6.90555C12.7258 6.95618 12.6655 6.98585 12.6016 6.98585H11.0196C10.6148 6.98585 10.2488 7.22504 10.0872 7.59449C9.92554 7.96385 9.99862 8.39367 10.2735 8.68933L12.6591 11.2548C12.8884 11.5015 13.2257 11.6188 13.5594 11.5678C13.8931 11.5167 14.1794 11.3041 14.3241 11.0004C14.7578 10.0898 15 9.07164 15 7.99995C15 4.13448 11.8581 0.999985 7.98116 0.999985C6.6594 0.999985 5.42011 1.36533 4.36276 2.00082C3.88156 2.29003 3.72692 2.91307 4.01657 3.39248C4.30641 3.87221 4.93176 4.02714 5.41327 3.73775C6.16251 3.28744 7.03994 3.02818 7.98116 3.02818C10.2926 3.02818 12.2371 4.59786 12.8007 6.72729C12.817 6.78906 12.8038 6.85492 12.7648 6.90555ZM3.23522 9.09442C3.2742 9.04379 3.33447 9.01412 3.39837 9.01412H5.01807C5.42432 9.01412 5.79131 8.77324 5.95209 8.40185C6.11284 8.03054 6.03694 7.5994 5.75871 7.30484L3.33552 4.73939C3.10519 4.49554 2.76882 4.3807 2.4367 4.43281C2.1046 4.48492 1.81997 4.69717 1.67592 4.9996C1.24218 5.91021 1 6.92833 1 8.00003C1 11.8655 4.14193 15 8.01884 15C9.3406 15 10.5799 14.6346 11.6372 13.9991C12.1184 13.7099 12.2731 13.0869 11.9834 12.6075C11.6936 12.1278 11.0682 11.9728 10.5867 12.2622C9.83749 12.7125 8.96006 12.9718 8.01884 12.9718C5.70743 12.9718 3.76293 11.4021 3.19934 9.27268C3.18299 9.21091 3.19625 9.14505 3.23522 9.09442Z\",\n fill: \"currentColor\"\n}));\nvar ArrowRotate_default = SvgArrowRotate;\nvar SvgArrowsDiagonal = (props) => /* @__PURE__ */ React11.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React11.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.53229 7.5323C7.80106 7.26353 7.829 6.8557 7.59468 6.62139L3.81148 2.83818L5.978 2.68979C6.33373 2.66543 6.64186 2.35729 6.66623 2.00156C6.69059 1.64582 6.42197 1.37719 6.06623 1.40156L2.37824 1.65415C2.20275 1.65683 2.0192 1.73169 1.87544 1.87545C1.73162 2.01926 1.65676 2.2029 1.65414 2.37846L1.40156 6.06623C1.37719 6.42197 1.64582 6.6906 2.00156 6.66623C2.35729 6.64187 2.66543 6.33374 2.68979 5.978L2.83818 3.8115L6.62138 7.59469C6.85569 7.82901 7.26352 7.80107 7.53229 7.5323ZM8.47137 8.47137C8.2026 8.74014 8.17467 9.14797 8.40898 9.38229L12.1922 13.1655L10.0257 13.3139C9.66993 13.3382 9.3618 13.6464 9.33743 14.0021C9.31307 14.3578 9.5817 14.6265 9.93743 14.6021L13.6254 14.3495C13.8009 14.3468 13.9845 14.272 14.1282 14.1282C14.272 13.9844 14.3469 13.8008 14.3495 13.6252L14.6021 9.93744C14.6265 9.5817 14.3578 9.31308 14.0021 9.33744C13.6464 9.3618 13.3382 9.66994 13.3139 10.0257L13.1655 12.1922L9.38229 8.40898C9.14797 8.17467 8.74014 8.2026 8.47137 8.47137Z\",\n fill: \"currentColor\"\n}));\nvar ArrowsDiagonal_default = SvgArrowsDiagonal;\nvar SvgArrowsMove = (props) => /* @__PURE__ */ React12.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React12.createElement(\"path\", {\n d: \"M7.36187 10.1671C7.36187 9.86118 7.64639 9.61313 7.99735 9.61313C8.34832 9.61313 8.63284 9.86118 8.63284 10.1671V14.1073L10.1443 12.7897C10.3924 12.5733 10.7948 12.5733 11.043 12.7897C11.2911 13.006 11.2911 13.3568 11.043 13.5732L8.47027 15.8161C8.35393 15.929 8.18515 16 7.99735 16C7.80963 16 7.64091 15.929 7.52458 15.8162L4.95172 13.5732C4.70355 13.3568 4.70355 13.006 4.95172 12.7897C5.1999 12.5733 5.60226 12.5733 5.85044 12.7897L7.36187 14.1074V10.1671Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React12.createElement(\"path\", {\n d: \"M8.63283 5.83285C8.63283 6.13883 8.34832 6.38687 7.99735 6.38687C7.64638 6.38687 7.36186 6.13883 7.36186 5.83285L7.36186 1.89266L5.85044 3.21031C5.60227 3.42667 5.1999 3.42667 4.95173 3.21031C4.70356 2.99396 4.70356 2.64317 4.95173 2.42682L7.52444 0.183933C7.64078 0.0710201 7.80955 0 7.99735 0C8.18508 0 8.35379 0.0709647 8.47012 0.183801L11.043 2.42681C11.2912 2.64317 11.2912 2.99395 11.043 3.21031C10.7948 3.42667 10.3924 3.42667 10.1443 3.21031L8.63283 1.89264V5.83285Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React12.createElement(\"path\", {\n d: \"M5.83285 7.36695C6.13883 7.36695 6.38687 7.65146 6.38687 8.00243C6.38687 8.3534 6.13883 8.63792 5.83285 8.63792H1.89266L3.21031 10.1493C3.42667 10.3975 3.42667 10.7999 3.21031 11.0481C2.99396 11.2962 2.64317 11.2962 2.42682 11.0481L0.183932 8.47534C0.0710193 8.35901 -3.89164e-07 8.19023 0 8.00243C-5.25372e-07 7.81471 0.0709643 7.64599 0.183801 7.52966L2.42681 4.9568C2.64317 4.70863 2.99395 4.70863 3.21031 4.9568C3.42667 5.20498 3.42667 5.60734 3.21031 5.85551L1.89264 7.36695H5.83285Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React12.createElement(\"path\", {\n d: \"M10.1671 8.63791C9.86118 8.63791 9.61313 8.3534 9.61313 8.00243C9.61313 7.65146 9.86118 7.36694 10.1671 7.36694L14.1073 7.36694L12.7897 5.85552C12.5733 5.60735 12.5733 5.20498 12.7897 4.95681C13.006 4.70864 13.3568 4.70864 13.5732 4.95681L15.8161 7.52952C15.929 7.64585 16 7.81463 16 8.00243C16 8.19015 15.929 8.35887 15.8162 8.4752L13.5732 11.0481C13.3568 11.2962 13.006 11.2962 12.7897 11.0481C12.5733 10.7999 12.5733 10.3975 12.7897 10.1493L14.1074 8.63791H10.1671Z\",\n fill: \"currentColor\"\n}));\nvar ArrowsMove_default = SvgArrowsMove;\nvar SvgArrowsVertical = (props) => /* @__PURE__ */ React13.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React13.createElement(\"path\", {\n d: \"M4.14686 6.29184C3.8845 6.56939 3.45913 6.56939 3.19677 6.29184C2.93441 6.0143 2.93441 5.56432 3.19677 5.28678L7.52496 0.708151C7.68893 0.534693 7.91658 0.469644 8.12831 0.51301C8.25535 0.539028 8.37666 0.604072 8.47505 0.708152L12.8032 5.28678C13.0656 5.56432 13.0656 6.0143 12.8032 6.29184C12.5409 6.56938 12.1155 6.56938 11.8531 6.29184L8.21113 2.43909C8.09453 2.31574 7.90548 2.31574 7.78887 2.43909L4.14686 6.29184Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React13.createElement(\"path\", {\n d: \"M11.8531 9.70816C12.1155 9.43061 12.5409 9.43061 12.8032 9.70815C13.0656 9.9857 13.0656 10.4357 12.8032 10.7132L8.47504 15.2918C8.31107 15.4653 8.08342 15.5304 7.87169 15.487C7.74465 15.461 7.62334 15.3959 7.52495 15.2918L3.19677 10.7132C2.93441 10.4357 2.93441 9.9857 3.19677 9.70816C3.45913 9.43062 3.8845 9.43062 4.14686 9.70816L7.78887 13.5609C7.90547 13.6843 8.09452 13.6843 8.21113 13.5609L11.8531 9.70816Z\",\n fill: \"currentColor\"\n}));\nvar ArrowsVertical_default = SvgArrowsVertical;\nvar SvgArrowUp = (props) => /* @__PURE__ */ React14.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React14.createElement(\"path\", {\n d: \"M9.03234 13.1C9.03234 13.5971 8.57014 14 7.99999 14C7.42984 14 6.96764 13.5971 6.96764 13.1V5.07463L4.51233 7.21517C4.10917 7.56664 3.45552 7.56664 3.05237 7.21517C2.64921 6.8637 2.64921 6.29385 3.05237 5.94237L7.23175 2.2988C7.42074 2.11537 7.69491 2 7.99999 2C8.30496 2 8.57903 2.11528 8.76802 2.29859L12.9476 5.94237C13.3508 6.29384 13.3508 6.86369 12.9476 7.21516C12.5445 7.56663 11.8908 7.56663 11.4877 7.21516L9.03234 5.07461V13.1Z\",\n fill: \"currentColor\"\n}));\nvar ArrowUp_default = SvgArrowUp;\nvar SvgAttention = (props) => /* @__PURE__ */ React15.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React15.createElement(\"path\", {\n opacity: 0.2,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React15.createElement(\"path\", {\n d: \"M8.02198 3.75C8.44541 3.75 8.78581 4.09931 8.77575 4.5235L8.66844 9.04878C8.65981 9.41288 8.36278 9.70354 7.99933 9.70354C7.63639 9.70354 7.33959 9.41367 7.33025 9.0501L7.214 4.525C7.20309 4.10024 7.54373 3.75 7.96774 3.75H8.02198Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React15.createElement(\"path\", {\n d: \"M8.00586 12.25C7.75488 12.25 7.53919 12.1675 7.3588 12.0024C7.18625 11.8295 7.09998 11.6173 7.09998 11.3658C7.09998 11.1143 7.18625 10.906 7.3588 10.741C7.53919 10.5681 7.75488 10.4816 8.00586 10.4816C8.249 10.4816 8.45684 10.5681 8.62939 10.741C8.80978 10.906 8.89998 11.1143 8.89998 11.3658C8.89998 11.6173 8.80978 11.8295 8.62939 12.0024C8.45684 12.1675 8.249 12.25 8.00586 12.25Z\",\n fill: \"currentColor\"\n}));\nvar Attention_default = SvgAttention;\nvar SvgBell = (props) => /* @__PURE__ */ React16.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React16.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.24999 12.7108C9.24999 13.3649 8.68749 13.9 7.99999 13.9C7.30624 13.9 6.74999 13.3649 6.74999 12.7108H3.41611C3.18629 12.7108 2.99999 12.5245 2.99999 12.2947C2.99999 12.1807 3.04673 12.0717 3.12929 11.9932L3.62852 11.5183C3.63112 11.5158 3.63372 11.5133 3.63631 11.5108C4.02829 11.1339 4.24999 10.6134 4.24999 10.0692V7.95405C4.24999 6.1227 5.26874 4.60054 7.06249 4.19621V3.79189C7.06249 3.29838 7.48124 2.9 7.99999 2.9C8.51874 2.9 8.93749 3.29838 8.93749 3.79189V4.19621C10.725 4.60054 11.75 6.12865 11.75 7.95405V10.0692C11.75 10.6134 11.9717 11.1339 12.3637 11.5108C12.3663 11.5133 12.3689 11.5158 12.3715 11.5183L12.8707 11.9932C12.9532 12.0717 13 12.1807 13 12.2947C13 12.5245 12.8137 12.7108 12.5839 12.7108H9.24999ZM10.0821 3.31087C11.9447 4.115 12.95 5.9595 12.95 7.95405V10.0692C12.95 10.2883 13.0398 10.4978 13.1986 10.6488L13.6978 11.1238C14.0185 11.4289 14.2 11.8521 14.2 12.2947C14.2 13.1872 13.4764 13.9108 12.5839 13.9108H10.1201C9.68569 14.6356 8.87397 15.1 7.99999 15.1C7.11977 15.1 6.31106 14.6346 5.87871 13.9108H3.41611C2.52355 13.9108 1.79999 13.1872 1.79999 12.2947C1.79999 11.8521 1.98151 11.4289 2.30218 11.1238L2.8014 10.6489C2.96013 10.4978 3.04999 10.2883 3.04999 10.0692V7.95405C3.04999 5.95458 4.05055 4.1125 5.91821 3.30968C6.14476 2.35344 7.03105 1.7 7.99999 1.7C8.96932 1.7 9.85595 2.35398 10.0821 3.31087Z\",\n fill: \"currentColor\"\n}));\nvar Bell_default = SvgBell;\nvar SvgBellFilled = (props) => /* @__PURE__ */ React17.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React17.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.0821 3.31087C11.9447 4.115 12.95 5.9595 12.95 7.95405V10.0692C12.95 10.2883 13.0398 10.4978 13.1986 10.6488L13.6978 11.1238C14.0185 11.4289 14.2 11.8521 14.2 12.2947C14.2 13.1872 13.4764 13.9108 12.5839 13.9108H10.1201C9.68569 14.6356 8.87397 15.1 7.99999 15.1C7.11977 15.1 6.31106 14.6346 5.87871 13.9108H3.41611C2.52355 13.9108 1.79999 13.1872 1.79999 12.2947C1.79999 11.8521 1.98151 11.4289 2.30218 11.1238L2.8014 10.6489C2.96013 10.4978 3.04999 10.2883 3.04999 10.0692V7.95405C3.04999 5.95458 4.05055 4.1125 5.91821 3.30968C6.14476 2.35344 7.03105 1.7 7.99999 1.7C8.96932 1.7 9.85595 2.35398 10.0821 3.31087Z\",\n fill: \"currentColor\"\n}));\nvar BellFilled_default = SvgBellFilled;\nvar SvgBookmark = (props) => /* @__PURE__ */ React18.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React18.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.371 14.8389L8 11.6568L3.629 14.8389C3.37611 15.023 3.03785 15.0519 2.75576 14.9123C2.47433 14.7731 2.3 14.4921 2.3 14.1883V1.81173C2.3 1.36839 2.66736 1.00002 3.13172 1.00002H12.8683C13.3326 1.00002 13.7 1.36839 13.7 1.81173V14.1883C13.7 14.4921 13.5257 14.7731 13.2442 14.9123C12.9621 15.0519 12.6239 15.023 12.371 14.8389ZM4.38178 2.62344C4.15073 2.62344 3.96343 2.81054 3.96343 3.04135V12.1593C3.96343 12.3302 4.15757 12.4288 4.2958 12.3282L7.50272 9.99347C7.79774 9.77869 8.20226 9.77869 8.49728 9.99347L11.7042 12.3282C11.8424 12.4288 12.0366 12.3302 12.0366 12.1593V3.04135C12.0366 2.81054 11.8493 2.62344 11.6182 2.62344H4.38178Z\",\n fill: \"currentColor\"\n}));\nvar Bookmark_default = SvgBookmark;\nvar SvgBookmarkFilled = (props) => /* @__PURE__ */ React19.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React19.createElement(\"path\", {\n d: \"M12.371 14.8389L8 11.6568L3.629 14.8389C3.37611 15.023 3.03786 15.0519 2.75576 14.9123C2.47434 14.7731 2.3 14.4921 2.3 14.1883V1.81173C2.3 1.36839 2.66737 1.00002 3.13172 1.00002H12.8683C13.3326 1.00002 13.7 1.36839 13.7 1.81173V14.1883C13.7 14.4921 13.5257 14.7731 13.2442 14.9123C12.9622 15.0519 12.6239 15.023 12.371 14.8389Z\",\n fill: \"currentColor\"\n}));\nvar BookmarkFilled_default = SvgBookmarkFilled;\nvar SvgCalendar = (props) => /* @__PURE__ */ React20.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React20.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.76248 1.5C4.4242 1.5 4.14998 1.76338 4.14998 2.08828V2.73434H2.75C1.7835 2.73434 1 3.48687 1 4.41515V12.8192C1 13.7475 1.7835 14.5 2.75 14.5H13.25C14.2165 14.5 15 13.7475 15 12.8192V4.41515C15 3.48687 14.2165 2.73434 13.25 2.73434H11.85V2.08828C11.85 1.76338 11.5758 1.5 11.2375 1.5C10.8992 1.5 10.625 1.76338 10.625 2.08828V2.73434H5.37498V2.08828C5.37498 1.76338 5.10075 1.5 4.76248 1.5ZM13.775 5.93838V4.41515C13.775 4.13667 13.5399 3.91091 13.25 3.91091H11.85V4.27333C11.85 4.59823 11.5758 4.86162 11.2375 4.86162C10.8992 4.86162 10.625 4.59823 10.625 4.27333V3.91091H5.37498V4.27333C5.37498 4.59823 5.10075 4.86162 4.76248 4.86162C4.4242 4.86162 4.14998 4.59823 4.14998 4.27333V3.91091H2.75C2.46005 3.91091 2.225 4.13667 2.225 4.41515V5.93838H13.775ZM2.225 7.11495V12.8192C2.225 13.0977 2.46005 13.3234 2.75 13.3234H13.25C13.5399 13.3234 13.775 13.0977 13.775 12.8192V7.11495H2.225Z\",\n fill: \"currentColor\"\n}));\nvar Calendar_default = SvgCalendar;\nvar SvgChangelog = (props) => /* @__PURE__ */ React21.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React21.createElement(\"g\", {\n clipPath: \"url(#clip0_2962_57970)\"\n}, /* @__PURE__ */ React21.createElement(\"circle\", {\n opacity: 0.2,\n cx: 11,\n cy: 11,\n r: 4.375,\n fill: \"currentColor\"\n}), /* @__PURE__ */ React21.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.5485 12.9159C10.4385 13.028 10.2594 13.028 10.1494 12.9159L8.45672 11.1894C8.34776 11.0783 8.34776 10.8989 8.45672 10.7878L8.82499 10.4121C8.93497 10.3 9.11409 10.3 9.22406 10.4121L10.349 11.5594L12.7759 9.08412C12.8859 8.97196 13.065 8.97196 13.175 9.08412L13.5433 9.45974C13.6522 9.57087 13.6522 9.75029 13.5433 9.86143L10.5485 12.9159Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React21.createElement(\"path\", {\n d: \"M9.28688 5.2756C9.33252 5.2756 9.37557 5.25441 9.40341 5.21825C9.43125 5.18208 9.44072 5.13504 9.42904 5.09092C9.02648 3.5699 7.63755 2.44869 5.98654 2.44869C5.31424 2.44869 4.68751 2.63388 4.15233 2.95553C3.8084 3.16224 3.36172 3.05158 3.15469 2.70891C2.9478 2.36648 3.05826 1.92145 3.40197 1.71487C4.15722 1.26095 5.04243 0.999985 5.98654 0.999985C8.56078 0.999985 10.6814 2.93472 10.9672 5.4251C9.72818 5.43223 8.58491 5.84356 7.66258 6.53391L7.62396 6.49238C7.42758 6.28119 7.37539 5.97418 7.49083 5.71035C7.60631 5.44645 7.86772 5.2756 8.15687 5.2756H9.28688Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React21.createElement(\"path\", {\n d: \"M5.62087 9.52993C4.14558 9.36849 2.94117 8.30784 2.57095 6.90905C2.55928 6.86493 2.56875 6.81789 2.59659 6.78172C2.62443 6.74556 2.66748 6.72437 2.71312 6.72437H3.87005C4.16023 6.72437 4.42236 6.55231 4.53721 6.28703C4.65203 6.02181 4.59781 5.71386 4.39908 5.50345L2.66823 3.67099C2.50371 3.49681 2.26345 3.41478 2.02622 3.452C1.789 3.48922 1.58569 3.64083 1.4828 3.85686C1.17298 4.50729 1 5.23452 1 6.00001C1 8.56261 2.93322 10.6754 5.42511 10.9659C5.42808 10.4692 5.49602 9.98781 5.62087 9.52993Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React21.createElement(\"defs\", null, /* @__PURE__ */ React21.createElement(\"clipPath\", {\n id: \"clip0_2962_57970\"\n}, /* @__PURE__ */ React21.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar Changelog_default = SvgChangelog;\nvar SvgChannel = (props) => /* @__PURE__ */ React22.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React22.createElement(\"g\", {\n opacity: 0.5\n}, /* @__PURE__ */ React22.createElement(\"path\", {\n d: \"M0 3.5C0 2.67157 0.671573 2 1.5 2C2.32843 2 3 2.67157 3 3.5V12.5C3 13.3284 2.32843 14 1.5 14C0.671573 14 0 13.3284 0 12.5V3.5Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React22.createElement(\"path\", {\n d: \"M4.33334 3.5C4.33334 2.67157 5.00492 2 5.83334 2C6.66177 2 7.33334 2.67157 7.33334 3.5V12.5C7.33334 13.3284 6.66177 14 5.83334 14C5.00492 14 4.33334 13.3284 4.33334 12.5V3.5Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React22.createElement(\"path\", {\n d: \"M14.5 2C13.6716 2 13 2.67157 13 3.5V12.5C13 13.3284 13.6716 14 14.5 14C15.3284 14 16 13.3284 16 12.5V3.5C16 2.67157 15.3284 2 14.5 2Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React22.createElement(\"rect\", {\n x: 8.66666,\n y: 2,\n width: 3,\n height: 12,\n rx: 1.5,\n fill: \"currentColor\"\n}));\nvar Channel_default = SvgChannel;\nvar SvgChat = (props) => /* @__PURE__ */ React23.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React23.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.666626 7.16667C0.666626 4.03705 3.20368 1.5 6.33329 1.5H9.66663C12.7962 1.5 15.3333 4.03705 15.3333 7.16667V12.8333C15.3333 13.7538 14.5871 14.5 13.6666 14.5H6.33329C3.20368 14.5 0.666626 11.9629 0.666626 8.83333V7.16667ZM1.79107 7.16667C1.79107 4.65807 3.82469 2.62444 6.33329 2.62444H9.66663C12.1752 2.62444 14.2088 4.65807 14.2088 7.16667V12.8333C14.2088 13.1328 13.9661 13.3756 13.6666 13.3756H6.33329C3.82469 13.3756 1.79107 11.3419 1.79107 8.83333V7.16667Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React23.createElement(\"path\", {\n d: \"M5.97999 8.00001C5.97999 8.49706 5.57705 8.90001 5.07999 8.90001C4.58294 8.90001 4.17999 8.49706 4.17999 8.00001C4.17999 7.50295 4.58294 7.10001 5.07999 7.10001C5.57705 7.10001 5.97999 7.50295 5.97999 8.00001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React23.createElement(\"path\", {\n d: \"M8.90004 8.00001C8.90004 8.49706 8.49709 8.90001 8.00004 8.90001C7.50298 8.90001 7.10004 8.49706 7.10004 8.00001C7.10004 7.50295 7.50298 7.10001 8.00004 7.10001C8.49709 7.10001 8.90004 7.50295 8.90004 8.00001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React23.createElement(\"path\", {\n d: \"M10.92 8.90001C11.417 8.90001 11.82 8.49706 11.82 8.00001C11.82 7.50295 11.417 7.10001 10.92 7.10001C10.4229 7.10001 10.02 7.50295 10.02 8.00001C10.02 8.49706 10.4229 8.90001 10.92 8.90001Z\",\n fill: \"currentColor\"\n}));\nvar Chat_default = SvgChat;\nvar SvgCheckmark = (props) => /* @__PURE__ */ React24.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React24.createElement(\"path\", {\n d: \"M6.17285 12.3881C6.31916 12.5373 6.55582 12.5373 6.70217 12.3881L13.8897 5.05741C14.0368 4.90734 14.0368 4.66345 13.8897 4.51342L13.0058 3.61193C12.8595 3.46269 12.6228 3.46269 12.4765 3.61193L6.4375 9.77115L3.52352 6.79917C3.3772 6.64992 3.14053 6.64991 2.99421 6.79916L2.11034 7.70065C1.96321 7.85072 1.96323 8.09461 2.11033 8.24464L6.17285 12.3881Z\",\n fill: \"currentColor\"\n}));\nvar Checkmark_default = SvgCheckmark;\nvar SvgCheckmarkCircle = (props) => /* @__PURE__ */ React25.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React25.createElement(\"circle\", {\n opacity: 0.2,\n cx: 8,\n cy: 8,\n r: 7,\n fill: \"currentColor\"\n}), /* @__PURE__ */ React25.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.27758 11.0654C7.10161 11.2449 6.81505 11.2449 6.63909 11.0654L3.93075 8.30312C3.75642 8.12532 3.75642 7.83824 3.93075 7.66042L4.51999 7.05943C4.69596 6.87995 4.98254 6.87996 5.15849 7.05943L6.95834 8.8951L10.8415 4.9346C11.0175 4.75514 11.3041 4.75514 11.48 4.9346L12.0693 5.53559C12.2436 5.7134 12.2436 6.00047 12.0693 6.17829L7.27758 11.0654Z\",\n fill: \"currentColor\"\n}));\nvar CheckmarkCircle_default = SvgCheckmarkCircle;\nvar SvgChevronDown = (props) => /* @__PURE__ */ React26.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React26.createElement(\"path\", {\n d: \"M14.7245 4.27754C14.3572 3.90749 13.7617 3.90749 13.3944 4.27754L8.29558 9.41454C8.13233 9.57901 7.86766 9.57901 7.70441 9.41454L2.6056 4.27755C2.2383 3.90749 1.64278 3.90749 1.27548 4.27755C0.908174 4.6476 0.908174 5.24758 1.27548 5.61763L7.33493 11.7225C7.47267 11.8612 7.64251 11.948 7.82037 11.9827C8.11679 12.0405 8.43549 11.9537 8.66506 11.7225L14.7245 5.61763C15.0918 5.24757 15.0918 4.6476 14.7245 4.27754Z\",\n fill: \"currentColor\"\n}));\nvar ChevronDown_default = SvgChevronDown;\nvar SvgChevronLeft = (props) => /* @__PURE__ */ React27.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React27.createElement(\"path\", {\n d: \"M11.7225 14.7245C12.0925 14.3572 12.0925 13.7617 11.7225 13.3944L6.58546 8.29558C6.42099 8.13233 6.42099 7.86766 6.58546 7.70441L11.7225 2.6056C12.0925 2.2383 12.0925 1.64278 11.7225 1.27548C11.3524 0.908174 10.7524 0.908174 10.3824 1.27548L4.27754 7.33493C4.13876 7.47267 4.05204 7.64251 4.01735 7.82037C3.95953 8.11679 4.04626 8.43549 4.27753 8.66506L10.3824 14.7245C10.7524 15.0918 11.3524 15.0918 11.7225 14.7245Z\",\n fill: \"currentColor\"\n}));\nvar ChevronLeft_default = SvgChevronLeft;\nvar SvgChevronRight = (props) => /* @__PURE__ */ React28.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React28.createElement(\"path\", {\n d: \"M4.27754 1.27548C3.90749 1.64278 3.90749 2.2383 4.27754 2.6056L9.41454 7.70442C9.57901 7.86767 9.57901 8.13234 9.41454 8.29559L4.27755 13.3944C3.90749 13.7617 3.90749 14.3572 4.27755 14.7245C4.6476 15.0918 5.24758 15.0918 5.61763 14.7245L11.7225 8.66507C11.8612 8.52733 11.948 8.35749 11.9827 8.17963C12.0405 7.88321 11.9537 7.56451 11.7225 7.33494L5.61763 1.27548C5.24757 0.908174 4.6476 0.908174 4.27754 1.27548Z\",\n fill: \"currentColor\"\n}));\nvar ChevronRight_default = SvgChevronRight;\nvar SvgChevronsVertical = (props) => /* @__PURE__ */ React29.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React29.createElement(\"path\", {\n d: \"M4.14686 6.29184C3.8845 6.56939 3.45913 6.56939 3.19677 6.29184C2.93441 6.0143 2.93441 5.56432 3.19677 5.28678L7.52496 0.708151C7.68893 0.534693 7.91658 0.469644 8.12831 0.51301C8.25535 0.539028 8.37666 0.604072 8.47505 0.708152L12.8032 5.28678C13.0656 5.56432 13.0656 6.0143 12.8032 6.29184C12.5409 6.56938 12.1155 6.56938 11.8531 6.29184L8.21113 2.43909C8.09453 2.31574 7.90548 2.31574 7.78887 2.43909L4.14686 6.29184Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React29.createElement(\"path\", {\n d: \"M11.8531 9.70816C12.1155 9.43061 12.5409 9.43061 12.8032 9.70815C13.0656 9.9857 13.0656 10.4357 12.8032 10.7132L8.47504 15.2918C8.31107 15.4653 8.08342 15.5304 7.87169 15.487C7.74465 15.461 7.62334 15.3959 7.52495 15.2918L3.19677 10.7132C2.93441 10.4357 2.93441 9.9857 3.19677 9.70816C3.45913 9.43062 3.8845 9.43062 4.14686 9.70816L7.78887 13.5609C7.90547 13.6843 8.09452 13.6843 8.21113 13.5609L11.8531 9.70816Z\",\n fill: \"currentColor\"\n}));\nvar ChevronsVertical_default = SvgChevronsVertical;\nvar SvgChevronUp = (props) => /* @__PURE__ */ React30.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React30.createElement(\"path\", {\n d: \"M1.27548 11.7225C1.64278 12.0925 2.2383 12.0925 2.6056 11.7225L7.70442 6.58546C7.86767 6.42099 8.13234 6.42099 8.29559 6.58546L13.3944 11.7225C13.7617 12.0925 14.3572 12.0925 14.7245 11.7225C15.0918 11.3524 15.0918 10.7524 14.7245 10.3824L8.66507 4.27754C8.52733 4.13876 8.35749 4.05204 8.17963 4.01735C7.88321 3.95953 7.56451 4.04626 7.33494 4.27754L1.27548 10.3824C0.908174 10.7524 0.908174 11.3524 1.27548 11.7225Z\",\n fill: \"currentColor\"\n}));\nvar ChevronUp_default = SvgChevronUp;\nvar SvgClient = (props) => /* @__PURE__ */ React31.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React31.createElement(\"path\", {\n d: \"M3 2.7H13C13.4418 2.7 13.8 3.05817 13.8 3.5H14.3C14.5421 3.5 14.7768 3.5354 15 3.60181V3.5C15 2.39543 14.1046 1.5 13 1.5H3C1.89543 1.5 1 2.39543 1 3.5V11.3L0.6 11.3C0.268629 11.3 0 11.5686 0 11.9C0 12.2314 0.26863 12.5 0.600001 12.5H5.4L5.40187 12.5H8V11.3H2.2V3.5C2.2 3.05817 2.55817 2.7 3 2.7Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React31.createElement(\"path\", {\n d: \"M13 12C13 12.2761 12.7761 12.5 12.5 12.5C12.2239 12.5 12 12.2761 12 12C12 11.7239 12.2239 11.5 12.5 11.5C12.7761 11.5 13 11.7239 13 12Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React31.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 4.5C9.89543 4.5 9 5.39543 9 6.5V12.5C9 13.6046 9.89543 14.5 11 14.5H14C15.1046 14.5 16 13.6046 16 12.5V6.5C16 5.39543 15.1046 4.5 14 4.5H11ZM14 5.7H11C10.5582 5.7 10.2 6.05817 10.2 6.5V12.5C10.2 12.9418 10.5582 13.3 11 13.3H14C14.4418 13.3 14.8 12.9418 14.8 12.5V6.5C14.8 6.05817 14.4418 5.7 14 5.7Z\",\n fill: \"currentColor\"\n}));\nvar Client_default = SvgClient;\nvar SvgClock = (props) => /* @__PURE__ */ React32.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React32.createElement(\"path\", {\n d: \"M7.64999 9.05001C7.26339 9.05001 6.94999 8.73661 6.94999 8.35001V4.50001C6.94999 4.11341 7.26339 3.80001 7.64999 3.80001C8.03659 3.80001 8.34999 4.11341 8.34999 4.50001V7.65001H11.5C11.8866 7.65001 12.2 7.96341 12.2 8.35001C12.2 8.73661 11.8866 9.05001 11.5 9.05001H7.64999Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React32.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15ZM8 13.775C11.1894 13.775 13.775 11.1894 13.775 8C13.775 4.81056 11.1894 2.225 8 2.225C4.81056 2.225 2.225 4.81056 2.225 8C2.225 11.1894 4.81056 13.775 8 13.775Z\",\n fill: \"currentColor\"\n}));\nvar Clock_default = SvgClock;\nvar SvgCog = (props) => /* @__PURE__ */ React33.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React33.createElement(\"path\", {\n d: \"M10 8C10 9.10457 9.10457 10 8 10C6.89543 10 6 9.10457 6 8C6 6.89543 6.89543 6 8 6C9.10457 6 10 6.89543 10 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React33.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.69087 1C6.21914 1 5.81617 1.33459 5.74285 1.80978L5.55716 3.08538C5.55387 3.10795 5.53163 3.16011 5.45484 3.19915C5.30242 3.27666 5.15548 3.36055 5.014 3.44944C4.95147 3.48873 4.9016 3.48344 4.88049 3.47519L3.62519 2.98453L3.61857 2.98203C3.19204 2.82077 2.68778 2.97795 2.44345 3.39889L1.13632 5.59877L1.13097 5.60813C0.897125 6.01735 0.984356 6.54294 1.38419 6.83919L2.41427 7.62138C2.43007 7.63338 2.46772 7.67891 2.46172 7.77472C2.4571 7.84845 2.45442 7.92385 2.45442 8C2.45442 8.071 2.45608 8.14261 2.45939 8.2142C2.46404 8.31486 2.42416 8.3649 2.40609 8.37862L1.37225 9.16361L1.36644 9.16813C0.988202 9.46231 0.899484 9.98208 1.11643 10.3805L1.12213 10.3909L2.43523 12.601C2.69257 13.0447 3.19993 13.1518 3.58152 13.0281L3.59944 13.0223L4.8707 12.5254C4.89151 12.5173 4.94209 12.5117 5.00625 12.5521C5.14887 12.6418 5.29562 12.7253 5.44758 12.8021C5.52377 12.8407 5.54572 12.8923 5.54898 12.9146L5.73654 14.2032L5.74028 14.2214C5.83148 14.6647 6.21349 15 6.69087 15H9.30912C9.74831 15 10.1974 14.6923 10.2594 14.1749L10.4428 12.9146C10.4461 12.892 10.4684 12.8399 10.5451 12.8008C10.6976 12.7233 10.8445 12.6395 10.986 12.5506C11.0485 12.5113 11.0984 12.5166 11.1195 12.5248L12.3748 13.0155L12.3814 13.018C12.8079 13.1792 13.3122 13.022 13.5565 12.6011L14.8637 10.4012L14.869 10.3919C15.1025 9.98328 15.0159 9.45866 14.6176 9.16216L13.5856 8.36912C13.568 8.35557 13.5364 8.31418 13.54 8.23607C13.5436 8.15887 13.5456 8.08015 13.5456 8C13.5456 7.92833 13.544 7.85713 13.5408 7.78641C13.5362 7.68451 13.5763 7.63471 13.5939 7.62138L14.6277 6.83639L14.6336 6.83186C15.0118 6.53769 15.1005 6.01792 14.8836 5.61953L14.8779 5.60906L13.5647 3.39894C13.3074 2.95532 12.8001 2.84825 12.4185 2.9719L12.4005 2.97771L11.1293 3.47456C11.1085 3.48269 11.0579 3.48831 10.9937 3.44792C10.8511 3.35815 10.7044 3.27472 10.5524 3.19786C10.4762 3.15933 10.4543 3.10772 10.451 3.08539L10.2661 1.81515L10.2653 1.80978C10.1891 1.31551 9.7609 1 9.30912 1H6.69087ZM6.81661 3.26871L6.96158 2.27273H9.04659L9.19156 3.26871C9.26326 3.76128 9.58985 4.13728 9.97799 4.33359C10.0933 4.39189 10.2055 4.45563 10.3158 4.52504C10.6751 4.75124 11.1473 4.834 11.5926 4.65997L12.5997 4.26636L13.6281 5.99732L12.8242 6.60776C12.4125 6.92043 12.2496 7.40723 12.2694 7.84384C12.2717 7.89504 12.2728 7.94708 12.2728 8C12.2728 8.05918 12.2714 8.11812 12.2686 8.1769C12.2483 8.61333 12.4193 9.078 12.8101 9.3783L13.6208 10.0013L12.5915 11.7336L11.5828 11.3394C11.1396 11.1662 10.6685 11.2469 10.3089 11.4729C10.1981 11.5425 10.0845 11.6072 9.96827 11.6664C9.58125 11.8632 9.25504 12.239 9.18338 12.7313L9.03841 13.7273H6.9534L6.80843 12.7313C6.73673 12.2387 6.41014 11.8627 6.022 11.6664C5.90673 11.6081 5.7945 11.5444 5.68423 11.475C5.32487 11.2488 4.85269 11.166 4.4074 11.34L3.40029 11.7336L2.37187 10.0027L3.17578 9.39224C3.58702 9.07995 3.75098 8.59333 3.73076 8.15549C3.72835 8.10328 3.72715 8.05125 3.72715 8C3.72715 7.95348 3.72879 7.9048 3.73196 7.8543C3.75966 7.4121 3.59748 6.92177 3.18396 6.60776L2.38005 5.99732L3.40847 4.26636L4.4172 4.6606C4.86043 4.83383 5.33149 4.75305 5.6911 4.52711C5.8019 4.45749 5.91545 4.39276 6.03172 4.33364C6.41874 4.13684 6.74495 3.76104 6.81661 3.26871Z\",\n fill: \"currentColor\"\n}));\nvar Cog_default = SvgCog;\nvar SvgCompany = (props) => /* @__PURE__ */ React34.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React34.createElement(\"g\", {\n clipPath: \"url(#clip0_2409_50127)\"\n}, /* @__PURE__ */ React34.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 14.3V4.55364C2 4.02665 2.23094 3.52613 2.63189 3.18414L5.06353 1.11009C5.56874 0.679176 6.27017 0.561405 6.88841 0.803691L12.8568 3.14264C13.5463 3.41288 14 4.07791 14 4.81854V14.3L15.4 14.2999C15.7314 14.2999 16 14.5685 16 14.8999C16 15.2313 15.7314 15.4999 15.4 15.4999L10.3 15.5C9.74775 15.5 9.30002 15.0523 9.30002 14.5V11.6H6.70002V14.5C6.70002 15.0523 6.2523 15.5 5.70001 15.5L0.599989 15.4999C0.268618 15.4999 -5.90057e-06 15.2313 0 14.8999C5.90115e-06 14.5685 0.26864 14.2999 0.600011 14.2999L2 14.3ZM5.84227 2.02309C6.01067 1.87945 6.24448 1.8402 6.45056 1.92096L12.4189 4.25991C12.6488 4.34999 12.8 4.57167 12.8 4.81854V14.3L10.5 14.3V11.2C10.5 10.7582 10.1419 10.4 9.70002 10.4H6.30002C5.8582 10.4 5.50002 10.7582 5.50002 11.2V14.3L3.2 14.3V4.55364C3.2 4.37798 3.27698 4.21114 3.41063 4.09714L5.84227 2.02309Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React34.createElement(\"defs\", null, /* @__PURE__ */ React34.createElement(\"clipPath\", {\n id: \"clip0_2409_50127\"\n}, /* @__PURE__ */ React34.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar Company_default = SvgCompany;\nvar SvgConnection = (props) => /* @__PURE__ */ React35.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React35.createElement(\"path\", {\n d: \"M4.10002 5.38115C4.55889 5.35027 5.03237 5.27427 5.20349 5.10265C5.45349 4.85192 5.5 4.08224 5.5 3.40002C5.5 2.71781 5.45349 1.94813 5.20349 1.6974C4.95349 1.44667 4.05814 1.40002 3.50581 1.40002C2.95349 1.40002 2.05814 1.44667 1.80814 1.6974C1.55814 1.94813 1.5 2.71781 1.5 3.40002C1.5 4.08224 1.55814 4.85192 1.80814 5.10265C1.97782 5.27283 2.44479 5.34899 2.90002 5.38036L2.90002 11.75C2.90002 13.324 4.17601 14.6 5.75002 14.6C7.32404 14.6 8.60002 13.324 8.60002 11.75V4.25002C8.60002 3.33875 9.33876 2.60002 10.25 2.60002C11.1613 2.60002 11.9 3.33875 11.9 4.25002V12.5515L10.9243 11.5758C10.69 11.3414 10.3101 11.3414 10.0758 11.5758C9.84145 11.8101 9.84145 12.19 10.0758 12.4243L12.0758 14.4243C12.3101 14.6586 12.69 14.6586 12.9243 14.4243L14.9243 12.4243C15.1586 12.19 15.1586 11.8101 14.9243 11.5758C14.69 11.3414 14.3101 11.3414 14.0758 11.5758L13.1 12.5515V4.25002C13.1 2.67601 11.824 1.40002 10.25 1.40002C8.67601 1.40002 7.40002 2.67601 7.40002 4.25002V11.75C7.40002 12.6613 6.66129 13.4 5.75002 13.4C4.83875 13.4 4.10002 12.6613 4.10002 11.75V5.38115Z\",\n fill: \"currentColor\"\n}));\nvar Connection_default = SvgConnection;\nvar SvgContentFilter = (props) => /* @__PURE__ */ React36.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React36.createElement(\"path\", {\n opacity: 0.2,\n d: \"M0.599854 3.59986C0.599854 2.49529 1.49528 1.59985 2.59985 1.59985H13.3999C14.5044 1.59985 15.3999 2.49528 15.3999 3.59985V12.3999C15.3999 13.5044 14.5044 14.3999 13.3999 14.3999H2.59985C1.49529 14.3999 0.599854 13.5044 0.599854 12.3999V3.59986Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React36.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.49992 10.1667V8.5C5.49992 7.11929 6.61921 6 7.99992 6C9.38063 6 10.4999 7.11929 10.4999 8.5V10.1667C11.4204 10.1667 12.1666 10.9129 12.1666 11.8333V14.3333C12.1666 15.2538 11.4204 16 10.4999 16H5.49992C4.57944 16 3.83325 15.2538 3.83325 14.3333V11.8333C3.83325 10.9129 4.57944 10.1667 5.49992 10.1667ZM9.49992 8.5V10.1667H6.49992V8.5C6.49992 7.67157 7.17149 7 7.99992 7C8.82835 7 9.49992 7.67157 9.49992 8.5Z\",\n fill: \"currentColor\"\n}));\nvar ContentFilter_default = SvgContentFilter;\nvar SvgController = (props) => /* @__PURE__ */ React37.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React37.createElement(\"path\", {\n d: \"M2.40002 7C2.40002 6.66863 2.66865 6.4 3.00002 6.4C3.3314 6.4 3.60002 6.66863 3.60002 7V9C3.60002 9.33137 3.3314 9.6 3.00002 9.6C2.66865 9.6 2.40002 9.33137 2.40002 9V7Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React37.createElement(\"path\", {\n d: \"M13 9.6C13.3314 9.6 13.6 9.33137 13.6 9C13.6 8.66863 13.3314 8.4 13 8.4C12.6687 8.4 12.4 8.66863 12.4 9C12.4 9.33137 12.6687 9.6 13 9.6Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React37.createElement(\"path\", {\n d: \"M11.8 9C11.8 9.33137 11.5313 9.6 11.2 9.6C10.8686 9.6 10.6 9.33137 10.6 9C10.6 8.66863 10.8686 8.4 11.2 8.4C11.5313 8.4 11.8 8.66863 11.8 9Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React37.createElement(\"path\", {\n d: \"M9.39993 9.6C9.7313 9.6 9.99993 9.33137 9.99993 9C9.99993 8.66863 9.7313 8.4 9.39993 8.4C9.06856 8.4 8.79993 8.66863 8.79993 9C8.79993 9.33137 9.06856 9.6 9.39993 9.6Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React37.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.2 4H13.8C15.015 4 16 4.98497 16 6.2V9.8C16 11.015 15.015 12 13.8 12H2.2C0.984972 12 0 11.015 0 9.8V6.2C0 4.98497 0.984975 4 2.2 4ZM2.2 5.2C1.64772 5.2 1.2 5.64771 1.2 6.2V9.8C1.2 10.3523 1.64771 10.8 2.2 10.8H13.8C14.3523 10.8 14.8 10.3523 14.8 9.8V6.2C14.8 5.64772 14.3523 5.2 13.8 5.2H2.2Z\",\n fill: \"currentColor\"\n}));\nvar Controller_default = SvgController;\nvar SvgCopy = (props) => /* @__PURE__ */ React38.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React38.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.8 0H2.2C0.984974 0 0 0.984974 0 2.2V8.8C0 10.015 0.984974 11 2.2 11H5V13.8C5 15.015 5.98497 16 7.2 16H13.8C15.015 16 16 15.015 16 13.8V7.2C16 5.98497 15.015 5 13.8 5H11V2.2C11 0.984974 10.015 0 8.8 0ZM9.8 5V2.2C9.8 1.64772 9.35229 1.2 8.8 1.2H2.2C1.64772 1.2 1.2 1.64772 1.2 2.2V8.8C1.2 9.35229 1.64772 9.8 2.2 9.8H5V7.2C5 5.98497 5.98497 5 7.2 5H9.8ZM6.2 9.8V7.2C6.2 6.64772 6.64772 6.2 7.2 6.2H9.8V8.8C9.8 9.35229 9.35229 9.8 8.8 9.8H6.2ZM6.2 11H8.8C10.015 11 11 10.015 11 8.8V6.2H13.8C14.3523 6.2 14.8 6.64772 14.8 7.2V13.8C14.8 14.3523 14.3523 14.8 13.8 14.8H7.2C6.64772 14.8 6.2 14.3523 6.2 13.8V11Z\",\n fill: \"currentColor\"\n}));\nvar Copy_default = SvgCopy;\nvar SvgCross = (props) => /* @__PURE__ */ React39.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React39.createElement(\"g\", {\n clipPath: \"url(#clip0_918_7242)\"\n}, /* @__PURE__ */ React39.createElement(\"path\", {\n d: \"M2.26715 2.26717C1.91095 2.62336 1.91095 3.20086 2.26715 3.55706L6.7101 8.00001L2.26716 12.4429C1.91096 12.7991 1.91096 13.3766 2.26716 13.7328C2.62335 14.089 3.20086 14.089 3.55705 13.7328L7.99999 9.2899L12.443 13.7329C12.7991 14.089 13.3766 14.089 13.7328 13.7329C14.089 13.3767 14.089 12.7992 13.7328 12.443L9.28988 8.00001L13.7329 3.55703C14.089 3.20084 14.089 2.62334 13.7329 2.26714C13.3767 1.91095 12.7992 1.91095 12.443 2.26714L7.99999 6.71012L3.55704 2.26717C3.20084 1.91097 2.62334 1.91097 2.26715 2.26717Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React39.createElement(\"defs\", null, /* @__PURE__ */ React39.createElement(\"clipPath\", {\n id: \"clip0_918_7242\"\n}, /* @__PURE__ */ React39.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar Cross_default = SvgCross;\nvar SvgCrossCircle = (props) => /* @__PURE__ */ React40.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React40.createElement(\"circle\", {\n opacity: 0.2,\n cx: 8,\n cy: 8,\n r: 7,\n fill: \"currentColor\"\n}), /* @__PURE__ */ React40.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.41415 4.41414C4.12863 4.69966 4.12863 5.16257 4.41415 5.44808L6.96607 8L4.41415 10.5519C4.12864 10.8374 4.12864 11.3003 4.41416 11.5858C4.69967 11.8714 5.16258 11.8714 5.44809 11.5858L8.00001 9.03393L10.5519 11.5859C10.8374 11.8714 11.3004 11.8714 11.5859 11.5859C11.8714 11.3003 11.8714 10.8374 11.5859 10.5519L9.03394 8L11.5859 5.44807C11.8714 5.16255 11.8714 4.69964 11.5859 4.41413C11.3004 4.12862 10.8375 4.12862 10.5519 4.41413L8.00001 6.96607L5.44808 4.41414C5.16257 4.12863 4.69966 4.12863 4.41415 4.41414Z\",\n fill: \"currentColor\"\n}));\nvar CrossCircle_default = SvgCrossCircle;\nvar SvgDelete = (props) => /* @__PURE__ */ React41.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M6.92924 1.20001C6.04219 1.20001 5.32309 1.90516 5.32309 2.77501H10.6769C10.6769 1.90516 9.95784 1.20001 9.07078 1.20001H6.92924Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M2.82463 2.77501C2.47966 2.77501 2.20001 3.04924 2.20001 3.38751C2.20001 3.72579 2.47966 4.00001 2.82463 4.00001H13.1754C13.5204 4.00001 13.8 3.72579 13.8 3.38751C13.8 3.04924 13.5204 2.77501 13.1754 2.77501H2.82463Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M6 7.04706C6 6.80016 6.17909 6.60001 6.4 6.60001C6.62091 6.60001 6.8 6.80016 6.8 7.04707V9.95295C6.8 10.1999 6.62091 10.4 6.4 10.4C6.17909 10.4 6 10.1999 6 9.95295V7.04706Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M8.40004 7.04707V9.95295C8.40004 10.1999 8.22095 10.4 8.00004 10.4C7.77912 10.4 7.60004 10.1999 7.60004 9.95295V7.04706C7.60004 6.80016 7.77912 6.60001 8.00004 6.60001C8.22095 6.60001 8.40004 6.80016 8.40004 7.04707Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M9.20001 9.95295V7.04706C9.20001 6.80016 9.3791 6.60001 9.60001 6.60001C9.82093 6.60001 10 6.80016 10 7.04707V9.95295C10 10.1999 9.82093 10.4 9.60001 10.4C9.3791 10.4 9.20001 10.1999 9.20001 9.95295Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React41.createElement(\"path\", {\n d: \"M3.60001 4.80002C3.93138 4.80002 4.20001 5.06865 4.20001 5.40002V12.6572C4.20001 13.1779 4.62214 13.6 5.14287 13.6H10.8572C11.3779 13.6 11.8 13.1779 11.8 12.6572V5.40001C11.8 5.06864 12.0686 4.80002 12.4 4.80002C12.7314 4.80002 13 5.06864 13 5.40001V13.1334C13 14.0538 12.2538 14.8 11.3333 14.8H4.66667C3.74619 14.8 3 14.0538 3 13.1334V5.40002C3 5.06865 3.26863 4.80002 3.60001 4.80002Z\",\n fill: \"currentColor\"\n}));\nvar Delete_default = SvgDelete;\nvar SvgDevice = (props) => /* @__PURE__ */ React42.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React42.createElement(\"path\", {\n d: \"M6 4.2C6.33137 4.2 6.6 3.93137 6.6 3.6C6.6 3.26863 6.33137 3 6 3C5.66863 3 5.4 3.26863 5.4 3.6C5.4 3.93137 5.66863 4.2 6 4.2Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React42.createElement(\"path\", {\n d: \"M8 4.2C8.33137 4.2 8.6 3.93137 8.6 3.6C8.6 3.26863 8.33137 3 8 3C7.66863 3 7.4 3.26863 7.4 3.6C7.4 3.93137 7.66863 4.2 8 4.2Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React42.createElement(\"path\", {\n d: \"M10 4.2C10.3314 4.2 10.6 3.93137 10.6 3.6C10.6 3.26863 10.3314 3 10 3C9.66863 3 9.4 3.26863 9.4 3.6C9.4 3.93137 9.66863 4.2 10 4.2Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React42.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 8C16 10.7289 15.814 13.8076 14.8139 14.8105C13.8139 15.8134 10.2326 16 8.02326 16C5.81394 16 2.23257 15.8134 1.23256 14.8105C0.23256 13.8076 0 10.7289 0 8C0 5.27115 0.232557 2.19243 1.23256 1.1895C2.23257 0.186588 5.81394 0 8.02326 0C10.2326 0 13.814 0.186588 14.814 1.1895C15.814 2.19243 16 5.27115 16 8ZM2.76042 1.72663C2.307 1.86733 2.12308 1.99592 2.08232 2.03679C2.01647 2.10284 1.88872 2.28821 1.75287 2.68326C1.62275 3.0616 1.51364 3.54749 1.42832 4.1234C1.25773 5.27483 1.2 6.65962 1.2 8C1.2 9.34039 1.25774 10.7252 1.42832 11.8766C1.51365 12.4525 1.62276 12.9384 1.75287 13.3168C1.88873 13.7118 2.01648 13.8972 2.08232 13.9632C2.12307 14.0041 2.30698 14.1327 2.76042 14.2734C3.18243 14.4043 3.71992 14.5105 4.33224 14.5918C5.55419 14.7539 6.94281 14.8 8.02326 14.8C9.10371 14.8 10.4923 14.7539 11.7143 14.5918C12.3266 14.5105 12.8641 14.4043 13.2861 14.2734C13.7396 14.1327 13.9235 14.0041 13.9642 13.9632C14.0265 13.9008 14.1514 13.7199 14.2832 13.3262C14.4093 12.9492 14.5134 12.4642 14.5934 11.8876C14.7534 10.7343 14.8 9.34789 14.8 8C14.8 6.65213 14.7534 5.26577 14.5934 4.11244C14.5134 3.53579 14.4093 3.05079 14.2832 2.67385C14.1514 2.28008 14.0265 2.09925 13.9642 2.03679C13.9235 1.99595 13.7396 1.86734 13.2861 1.72663C12.8641 1.59569 12.3266 1.48947 11.7143 1.40823C10.4923 1.24611 9.1037 1.2 8.02326 1.2C6.94281 1.2 5.5542 1.24611 4.33224 1.40823C3.71992 1.48947 3.18243 1.59569 2.76042 1.72663Z\",\n fill: \"currentColor\"\n}));\nvar Device_default = SvgDevice;\nvar SvgDocument = (props) => /* @__PURE__ */ React43.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React43.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13 6.56273C13 6.35056 12.9157 6.14708 12.7657 5.99705L8.00295 1.23431C7.85292 1.08429 7.64944 1 7.43727 1H4.6C3.71634 1 3 1.71635 3 2.6V13.4C3 14.2837 3.71634 15 4.6 15H11.4C12.2837 15 13 14.2837 13 13.4V6.56273ZM7.18918 2.59956C7.18894 2.48927 7.09947 2.4 6.98918 2.4H4.6C4.48954 2.4 4.4 2.48954 4.4 2.6V13.4C4.4 13.5105 4.48954 13.6 4.6 13.6H11.4C11.5105 13.6 11.6 13.5105 11.6 13.4V7.21329C11.6 6.99238 11.4209 6.81329 11.2 6.81329H7.79063C7.45926 6.81329 7.19063 6.54466 7.19063 6.21329V3.25391L7.18918 2.59956Z\",\n fill: \"currentColor\"\n}));\nvar Document_default = SvgDocument;\nvar SvgDownload = (props) => /* @__PURE__ */ React44.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React44.createElement(\"path\", {\n d: \"M7.98623 0C7.48917 0 7.08623 0.402944 7.08623 0.9V8.92539L4.94567 6.78484C4.5942 6.43337 4.02435 6.43337 3.67288 6.78484C3.32141 7.13631 3.32141 7.70616 3.67288 8.05763L7.31667 11.7014C7.48142 11.8847 7.72036 12 7.98623 12C8.2522 12 8.49122 11.8846 8.65598 11.7012L12.2996 8.05763C12.651 7.70615 12.651 7.13631 12.2996 6.78483C11.9481 6.43336 11.3782 6.43336 11.0268 6.78483L8.88623 8.92537V0.9C8.88623 0.402944 8.48328 0 7.98623 0Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React44.createElement(\"path\", {\n d: \"M8.00946 16C10.2188 16 13.8002 15.8134 14.8002 14.8105C15.2206 14.3888 15.4972 13.6002 15.6765 12.625C15.7378 12.2916 15.4947 11.9838 15.1576 11.9484C14.8353 11.9145 14.5467 12.1429 14.4863 12.4613C14.4237 12.792 14.3512 13.0818 14.2694 13.3262C14.1376 13.7199 14.0127 13.9007 13.9504 13.9632C13.9097 14.004 13.7258 14.1327 13.2723 14.2734C12.8503 14.4043 12.3128 14.5105 11.7005 14.5918C10.4785 14.7539 9.08991 14.8 8.00946 14.8C6.92902 14.8 5.5404 14.7539 4.31845 14.5918C3.70613 14.5105 3.16864 14.4043 2.74663 14.2734C2.29318 14.1327 2.10927 14.0041 2.06853 13.9632C2.00268 13.8972 1.87494 13.7118 1.73907 13.3168C1.65467 13.0713 1.57909 12.7806 1.51312 12.4494C1.44982 12.1316 1.15904 11.9059 0.83708 11.9427C0.500301 11.9813 0.26008 12.2913 0.324504 12.6241C0.513376 13.5998 0.7982 14.3887 1.21877 14.8105C2.21878 15.8134 5.80015 16 8.00946 16Z\",\n fill: \"currentColor\"\n}));\nvar Download_default = SvgDownload;\nvar SvgDrawerClose = (props) => /* @__PURE__ */ React45.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React45.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.93335 3.83334C0.93335 2.45263 2.12726 1.33334 3.60002 1.33334H4.93335C6.40611 1.33334 7.60002 2.45263 7.60002 3.83334V12.1667C7.60002 13.5474 6.40611 14.6667 4.93335 14.6667H3.60002C2.12726 14.6667 0.93335 13.5474 0.93335 12.1667V3.83334ZM3.60002 3.00001C3.1091 3.00001 2.71113 3.37311 2.71113 3.83334V12.1667C2.71113 12.6269 3.1091 13 3.60002 13H4.93335C5.42427 13 5.82224 12.6269 5.82224 12.1667V3.83334C5.82224 3.37311 5.42427 3.00001 4.93335 3.00001H3.60002Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React45.createElement(\"path\", {\n d: \"M8.93335 8.00001C8.93335 8.28961 9.1393 8.52437 9.39335 8.52437H13.4952L12.4012 9.77153C12.2215 9.9763 12.2215 10.3083 12.4012 10.5131C12.5808 10.7179 12.8721 10.7179 13.0517 10.5131L14.9141 8.39011C15.0078 8.29412 15.0667 8.15491 15.0667 8.00001C15.0667 7.84504 15.0077 7.70578 14.914 7.60979L13.0517 5.48693C12.8721 5.28215 12.5808 5.28215 12.4012 5.48693C12.2215 5.69171 12.2215 6.02372 12.4012 6.2285L13.4952 7.47564H9.39335C9.1393 7.47564 8.93335 7.71041 8.93335 8.00001Z\",\n fill: \"currentColor\"\n}));\nvar DrawerClose_default = SvgDrawerClose;\nvar SvgDrawerOpen = (props) => /* @__PURE__ */ React46.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React46.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.0667 3.83334C15.0667 2.45263 13.8728 1.33334 12.4 1.33334H11.0667C9.59392 1.33334 8.40002 2.45263 8.40002 3.83334V12.1667C8.40002 13.5474 9.59392 14.6667 11.0667 14.6667H12.4C13.8728 14.6667 15.0667 13.5474 15.0667 12.1667V3.83334ZM12.4 3.00001C12.8909 3.00001 13.2889 3.37311 13.2889 3.83334V12.1667C13.2889 12.6269 12.8909 13 12.4 13H11.0667C10.5758 13 10.1778 12.6269 10.1778 12.1667V3.83334C10.1778 3.37311 10.5758 3.00001 11.0667 3.00001H12.4Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React46.createElement(\"path\", {\n d: \"M7.06668 8.00001C7.06668 8.28961 6.86073 8.52437 6.60668 8.52437H2.50482L3.59888 9.77153C3.77852 9.9763 3.77852 10.3083 3.59888 10.5131C3.41924 10.7179 3.12798 10.7179 2.94834 10.5131L1.08596 8.39011C0.992273 8.29412 0.93335 8.15491 0.93335 8.00001C0.93335 7.84504 0.992318 7.70578 1.08607 7.60979L2.94834 5.48693C3.12798 5.28215 3.41924 5.28215 3.59888 5.48693C3.77852 5.69171 3.77852 6.02372 3.59888 6.2285L2.50483 7.47564H6.60668C6.86073 7.47564 7.06668 7.71041 7.06668 8.00001Z\",\n fill: \"currentColor\"\n}));\nvar DrawerOpen_default = SvgDrawerOpen;\nvar SvgEmail = (props) => /* @__PURE__ */ React47.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React47.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 4C0 2.89543 0.895431 2 2 2H14C14.3452 2 14.6699 2.08744 14.9533 2.24139C15.2344 2.39408 15.4748 2.6122 15.654 2.8753C15.8724 3.19577 16 3.58298 16 4V12C16 13.1046 15.1046 14 14 14H2C0.895431 14 0 13.1046 0 12V4ZM14.5963 3.93302L13.2317 5.29767L13.2307 5.2967L8.70617 9.8212C8.31565 10.2117 7.68249 10.2117 7.29196 9.8212L1.40371 3.93294C1.40126 3.95496 1.4 3.97733 1.4 4V12C1.4 12.3314 1.66863 12.6 2 12.6H14C14.3314 12.6 14.6 12.3314 14.6 12V4C14.6 3.97736 14.5987 3.95501 14.5963 3.93302ZM2.85066 3.4L7.57578 8.12512C7.81009 8.35943 8.18999 8.35943 8.42431 8.12512L13.1494 3.4H2.85066Z\",\n fill: \"currentColor\"\n}));\nvar Email_default = SvgEmail;\nvar SvgEyeClosed = (props) => /* @__PURE__ */ React48.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React48.createElement(\"path\", {\n d: \"M13.6569 2.34315C13.3835 2.06978 12.9403 2.06978 12.6669 2.34315L2.34315 12.6669C2.06978 12.9403 2.06978 13.3835 2.34315 13.6569C2.61651 13.9302 3.05973 13.9302 3.3331 13.6569L13.6569 3.3331C13.9302 3.05973 13.9302 2.61651 13.6569 2.34315Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React48.createElement(\"path\", {\n d: \"M7.99784 3C8.72612 3 9.40963 3.09781 10.0467 3.26624L8.86101 4.45198C8.58149 4.41504 8.29372 4.39535 7.99784 4.39535C5.90063 4.39535 4.17654 5.4253 2.91433 6.56556C2.57523 6.87189 2.16689 7.32038 1.88651 7.6397C1.69161 7.86166 1.69754 8.18834 1.89975 8.40395C2.19686 8.72075 2.63211 9.16981 2.98817 9.47608C3.13854 9.60543 3.29436 9.73305 3.45535 9.85764L2.46003 10.853C1.39302 10.004 0.610914 9.10351 0.184337 8.56257C-0.0523138 8.26247 -0.0623446 7.85968 0.161408 7.55025C1.0926 6.26249 3.86006 3 7.99784 3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React48.createElement(\"path\", {\n d: \"M5.68179 7.6312C5.83997 6.64689 6.62078 5.86666 7.60783 5.70516L5.68179 7.6312Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React48.createElement(\"path\", {\n d: \"M10.2885 8.39851L8.39727 10.2897C9.36026 10.1193 10.1212 9.35887 10.2885 8.39851Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React48.createElement(\"path\", {\n d: \"M7.99784 11.6047C7.70809 11.6047 7.42349 11.583 7.14461 11.5424L5.97004 12.717C6.60868 12.8955 7.28636 13 7.99784 13C12.2535 13 14.9612 9.77762 15.8442 8.54017C16.0507 8.25068 16.0518 7.87636 15.8482 7.58489C15.4513 7.01661 14.6813 6.03129 13.5676 5.11937L12.5739 6.1131C12.7568 6.25889 12.9313 6.40869 13.0972 6.56027C13.4507 6.88316 13.8704 7.35663 14.1499 7.68396C14.3339 7.89952 14.3319 8.21095 14.1452 8.42425C13.8701 8.73846 13.4624 9.18668 13.1192 9.49302C11.8889 10.5912 10.1673 11.6047 7.99784 11.6047Z\",\n fill: \"currentColor\"\n}));\nvar EyeClosed_default = SvgEyeClosed;\nvar SvgEyeOpen = (props) => /* @__PURE__ */ React49.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React49.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.3228 7.99999C10.3228 9.28216 9.27509 10.3256 7.98763 10.3256C6.70016 10.3256 5.65245 9.28216 5.65245 7.99999C5.65245 6.71782 6.70016 5.6744 7.98763 5.6744C9.27509 5.6744 10.3228 6.71782 10.3228 7.99999ZM9.15522 7.99999C9.15522 8.64218 8.63247 9.16278 7.98763 9.16278C7.34278 9.16278 6.82004 8.64218 6.82004 7.99999C6.82004 7.35779 7.34278 6.83719 7.98763 6.83719C8.63247 6.83719 9.15522 7.35779 9.15522 7.99999Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React49.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.99784 3C3.86006 3 1.0926 6.26249 0.161408 7.55025C-0.0623446 7.85968 -0.0523138 8.26247 0.184337 8.56257C1.17279 9.81602 4.07018 13 7.99784 13C12.2535 13 14.9612 9.77762 15.8442 8.54017C16.0507 8.25068 16.0518 7.87636 15.8482 7.58489C14.9661 6.32211 12.2422 3 7.99784 3ZM2.91433 6.56556C2.57523 6.87189 2.16689 7.32038 1.88651 7.6397C1.69161 7.86166 1.69754 8.18834 1.89975 8.40395C2.19686 8.72075 2.63211 9.16981 2.98817 9.47608C4.30199 10.6062 6.03137 11.6047 7.99784 11.6047C10.1673 11.6047 11.8889 10.5912 13.1192 9.49302C13.4624 9.18668 13.8701 8.73846 14.1452 8.42425C14.3319 8.21095 14.3339 7.89952 14.1499 7.68396C13.8704 7.35663 13.4507 6.88316 13.0972 6.56027C11.8583 5.42832 10.1405 4.39535 7.99784 4.39535C5.90063 4.39535 4.17654 5.4253 2.91433 6.56556Z\",\n fill: \"currentColor\"\n}));\nvar EyeOpen_default = SvgEyeOpen;\nvar SvgFilter = (props) => /* @__PURE__ */ React50.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React50.createElement(\"path\", {\n d: \"M14.3 2.4H12.0805C11.7922 1.58437 11.0143 1 10.1 1C9.18564 1 8.40778 1.58437 8.11949 2.4H1.7C1.3134 2.4 1 2.7134 1 3.1C1 3.4866 1.3134 3.8 1.7 3.8H8.11949C8.40778 4.61563 9.18565 5.19999 10.1 5.19999C11.0143 5.19999 11.7922 4.61563 12.0805 3.8H14.3C14.6866 3.8 15 3.4866 15 3.1C15 2.7134 14.6866 2.4 14.3 2.4Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React50.createElement(\"path\", {\n d: \"M7.41379 7.29986H14.3C14.6866 7.29986 15 7.61326 15 7.99986C15 8.38646 14.6866 8.69986 14.3 8.69986H7.41387C7.12562 9.51555 6.34772 10.1 5.43333 10.1C4.51894 10.1 3.74104 9.51555 3.45279 8.69986H1.7C1.3134 8.69986 1 8.38646 1 7.99986C1 7.61326 1.3134 7.29986 1.7 7.29986H3.45287C3.74118 6.48429 4.51902 5.89998 5.43333 5.89998C6.34764 5.89998 7.12548 6.48429 7.41379 7.29986Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React50.createElement(\"path\", {\n d: \"M13.2471 12.1998H14.3C14.6866 12.1998 15 12.5132 15 12.8998C15 13.2864 14.6866 13.5998 14.3 13.5998H13.2472C12.959 14.4155 12.1811 14.9999 11.2667 14.9999C10.3523 14.9999 9.57438 14.4155 9.28612 13.5998H1.7C1.3134 13.5998 1 13.2864 1 12.8998C1 12.5132 1.3134 12.1998 1.7 12.1998H9.2862C9.57452 11.3843 10.3524 10.8 11.2667 10.8C12.181 10.8 12.9588 11.3843 13.2471 12.1998Z\",\n fill: \"currentColor\"\n}));\nvar Filter_default = SvgFilter;\nvar SvgFloorplan = (props) => /* @__PURE__ */ React51.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React51.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.1832 1C8.3765 1 8.5332 1.1567 8.5332 1.35V2.05H8.52955C8.61111 3.62298 9.78587 4.90677 11.3086 5.15614V1.35C11.3086 1.1567 11.4653 1 11.6586 1H12.375C13.8247 1 15 2.17525 15 3.625V12.375C15 13.8247 13.8247 15 12.375 15H3.625C2.17525 15 1 13.8247 1 12.375V3.625C1 2.17525 2.17525 1 3.625 1H8.1832ZM12.3586 2.05V5.725C12.3586 6.01495 12.1235 6.25 11.8336 6.25L11.8249 6.24993C9.47875 6.23675 7.56999 4.37682 7.47846 2.05H3.625C2.75515 2.05 2.05 2.75515 2.05 3.625V6.95H6.60001C7.66316 6.95 8.52501 7.81185 8.52501 8.875V9.57499H13.95L13.95 3.625C13.95 2.75515 13.2448 2.05 12.375 2.05H12.3586ZM8.52501 10.45V13.95H12.2C13.1665 13.95 13.95 13.1665 13.95 12.2V10.45H8.52501ZM7.47501 13.95V8.875C7.47501 8.39175 7.08326 8 6.60001 8H2.05001V12.2C2.05001 13.1665 2.83351 13.95 3.80001 13.95H7.47501Z\",\n fill: \"currentColor\"\n}));\nvar Floorplan_default = SvgFloorplan;\nvar SvgFullscreen = (props) => /* @__PURE__ */ React52.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React52.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.53229 7.5323C7.80106 7.26353 7.829 6.8557 7.59468 6.62139L3.81148 2.83818L5.978 2.68979C6.33373 2.66543 6.64186 2.35729 6.66623 2.00156C6.69059 1.64582 6.42197 1.37719 6.06623 1.40156L2.37824 1.65415C2.20275 1.65683 2.0192 1.73169 1.87544 1.87545C1.73162 2.01926 1.65676 2.2029 1.65414 2.37846L1.40156 6.06623C1.37719 6.42197 1.64582 6.6906 2.00156 6.66623C2.35729 6.64187 2.66543 6.33374 2.68979 5.978L2.83818 3.8115L6.62138 7.59469C6.85569 7.82901 7.26352 7.80107 7.53229 7.5323ZM8.47137 8.47137C8.2026 8.74014 8.17467 9.14797 8.40898 9.38229L12.1922 13.1655L10.0257 13.3139C9.66993 13.3382 9.3618 13.6464 9.33743 14.0021C9.31307 14.3578 9.5817 14.6265 9.93743 14.6021L13.6254 14.3495C13.8009 14.3468 13.9845 14.272 14.1282 14.1282C14.272 13.9844 14.3469 13.8008 14.3495 13.6252L14.6021 9.93744C14.6265 9.5817 14.3578 9.31308 14.0021 9.33744C13.6464 9.3618 13.3382 9.66994 13.3139 10.0257L13.1655 12.1922L9.38229 8.40898C9.14797 8.17467 8.74014 8.2026 8.47137 8.47137Z\",\n fill: \"currentColor\"\n}));\nvar Fullscreen_default = SvgFullscreen;\nvar SvgGlobe = (props) => /* @__PURE__ */ React53.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React53.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.8659 11.8659 15 8 15C4.13406 15 1 11.8659 1 8C1 4.13406 4.13406 1 8 1C11.8659 1 15 4.13406 15 8ZM9.86116 8.52487C9.96176 8.52487 10.0418 8.6095 10.034 8.7098C9.89863 10.4478 9.26513 12.1545 8.13333 13.5996C8.06532 13.6866 7.93468 13.6866 7.86667 13.5996C6.73487 12.1545 6.10137 10.4478 5.96601 8.7098C5.95819 8.6095 6.03824 8.52487 6.13884 8.52487H9.86116ZM11.2642 8.52487C11.171 8.52487 11.0944 8.59785 11.088 8.69077C10.9753 10.349 10.4569 11.9848 9.53232 13.4381C9.44672 13.5727 9.56472 13.7444 9.71743 13.6985C11.9459 13.0279 13.6236 11.0856 13.9075 8.71498C13.9197 8.61305 13.8389 8.52487 13.7363 8.52487H11.2642ZM13.9075 7.2848C13.9197 7.38674 13.8389 7.47492 13.7363 7.47492H11.2642C11.171 7.47492 11.0944 7.40194 11.088 7.30901C10.9753 5.65083 10.4569 4.01504 9.53237 2.56191C9.44676 2.42736 9.56476 2.25557 9.71747 2.30152C11.9459 2.97212 13.6236 4.91421 13.9075 7.2848ZM10.034 7.28999C10.0418 7.39029 9.96176 7.47492 9.86116 7.47492H6.13884C6.03824 7.47492 5.95819 7.39029 5.96601 7.28999C6.10138 5.55203 6.73504 3.84555 7.86666 2.40035C7.93467 2.3135 8.06533 2.3135 8.13334 2.40035C9.26496 3.84555 9.89862 5.55203 10.034 7.28999ZM4.73582 7.47492C4.82896 7.47492 4.90564 7.40193 4.91194 7.30899C5.02446 5.65082 5.54304 4.01504 6.46763 2.56191C6.55324 2.42736 6.43524 2.25557 6.28253 2.30152C4.05412 2.97212 2.37646 4.91421 2.0925 7.2848C2.08029 7.38674 2.16112 7.47492 2.26378 7.47492H4.73582ZM2.26378 8.52487C2.16112 8.52487 2.08029 8.61305 2.0925 8.71498C2.37646 11.0858 4.05417 13.028 6.28279 13.6985C6.4355 13.7444 6.5535 13.5727 6.4679 13.4381C5.54326 11.9848 5.02466 10.349 4.91196 8.69077C4.90564 8.59785 4.82898 8.52487 4.73584 8.52487H2.26378Z\",\n fill: \"currentColor\"\n}));\nvar Globe_default = SvgGlobe;\nvar SvgHome = (props) => /* @__PURE__ */ React54.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React54.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 1.4375C7.65276 1.43765 7.32696 1.56494 7.07542 1.78102L1.60379 6.58386C1.2198 6.92092 1 7.40469 1 7.91278V12.9944C1 13.3866 1.14546 13.7767 1.42596 14.0757C1.70887 14.3772 2.10985 14.5625 2.54583 14.5625L5.14744 14.5529L5.14918 14.5529C5.58367 14.5506 5.98243 14.3644 6.26358 14.0633C6.54236 13.7647 6.68688 13.3758 6.68688 12.9849V10.3349H9.31312V12.9849C9.31312 13.3758 9.45764 13.7647 9.73642 14.0633C10.0176 14.3644 10.4163 14.5506 10.8508 14.5529L10.8526 14.5529L13.4542 14.5625C13.8901 14.5625 14.2911 14.3772 14.574 14.0757C14.8545 13.7767 15 13.3866 15 12.9944V7.91278C15 7.40469 14.7802 6.92092 14.3962 6.58386L8.92458 1.78102C8.67304 1.56494 8.34724 1.43765 8 1.4375ZM2.30036 7.36176L7.76356 2.56625C7.83072 2.50856 7.91437 2.4771 8.00063 2.4771C8.08689 2.4771 8.17054 2.50856 8.2377 2.56625L13.6995 7.35812C13.8588 7.49788 13.95 7.69852 13.95 7.90926V12.9944C13.95 13.1346 13.8978 13.269 13.8048 13.3681C13.7118 13.4672 13.5857 13.5229 13.4542 13.5229L10.8577 13.5126C10.7925 13.5126 10.7279 13.4989 10.6676 13.4723C10.6074 13.4456 10.5526 13.4065 10.5066 13.3573C10.4605 13.308 10.424 13.2496 10.3992 13.1853C10.3744 13.121 10.3617 13.0521 10.3619 12.9826V9.82378C10.3619 9.68362 10.3097 9.54921 10.2167 9.45011C10.1237 9.35101 9.99756 9.29533 9.86606 9.29533H6.13272C6.00122 9.29533 5.8751 9.35101 5.78212 9.45011C5.68913 9.54921 5.63689 9.68362 5.63689 9.82378V12.9849C5.63689 13.1246 5.58499 13.2586 5.49254 13.3576C5.40009 13.4566 5.27461 13.5126 5.14354 13.5133L2.54584 13.5229C2.41434 13.5229 2.28822 13.4672 2.19524 13.3681C2.10225 13.269 2.05001 13.1346 2.05001 12.9944V7.91278C2.05001 7.70211 2.14115 7.50152 2.30036 7.36176Z\",\n fill: \"currentColor\"\n}));\nvar Home_default = SvgHome;\nvar SvgInformation = (props) => /* @__PURE__ */ React55.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React55.createElement(\"path\", {\n opacity: 0.2,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React55.createElement(\"path\", {\n d: \"M9.09228 12.4175C8.76865 12.8058 8.36412 13 7.87869 13C7.39325 13 7.01029 12.8759 6.72982 12.6278C6.46013 12.3797 6.32529 12.0561 6.32529 11.657C6.32529 11.5167 6.41159 10.9288 6.58419 9.8932L7.11817 6.99676H6.43856L6.47092 6.7055H7.16671C7.96498 6.7055 8.5529 6.67314 8.93047 6.60841L9.157 6.55987L8.0405 12.6764C8.36412 12.644 8.63381 12.493 8.84956 12.2233L9.09228 12.4175ZM7.66833 5.00647C7.44179 4.77994 7.32852 4.50485 7.32852 4.18123C7.32852 3.85761 7.44179 3.58252 7.66833 3.35599C7.89487 3.11866 8.16995 3 8.49357 3C8.8172 3 9.09228 3.11866 9.31881 3.35599C9.55614 3.58252 9.6748 3.85761 9.6748 4.18123C9.6748 4.50485 9.55614 4.77994 9.31881 5.00647C9.09228 5.23301 8.8172 5.34628 8.49357 5.34628C8.16995 5.34628 7.89487 5.23301 7.66833 5.00647Z\",\n fill: \"currentColor\"\n}));\nvar Information_default = SvgInformation;\nvar SvgInternet = (props) => /* @__PURE__ */ React56.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React56.createElement(\"g\", {\n clipPath: \"url(#clip0_2291_20157)\"\n}, /* @__PURE__ */ React56.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 8C16 12.4182 12.4182 16 8 16C3.58179 16 0 12.4182 0 8C0 3.58179 3.58179 0 8 0C12.4182 0 16 3.58179 16 8ZM10.127 8.59985C10.242 8.59985 10.3335 8.69657 10.3246 8.8112C10.1699 10.7975 9.44587 12.748 8.15237 14.3996C8.07465 14.4989 7.92535 14.4989 7.84763 14.3996C6.55413 12.748 5.83013 10.7975 5.67544 8.8112C5.66651 8.69657 5.75799 8.59985 5.87296 8.59985H10.127ZM11.7305 8.59985C11.624 8.59985 11.5364 8.68325 11.5292 8.78945C11.4004 10.6845 10.8079 12.5541 9.75123 14.2149C9.6534 14.3688 9.78825 14.5651 9.96277 14.5125C12.5095 13.7461 14.4269 11.5264 14.7515 8.81712C14.7653 8.70063 14.6731 8.59985 14.5557 8.59985H11.7305ZM14.7515 7.18263C14.7653 7.29913 14.6731 7.39991 14.5557 7.39991H11.7305C11.624 7.39991 11.5364 7.31651 11.5292 7.21029C11.4004 5.31524 10.8079 3.44576 9.75128 1.78504C9.65344 1.63127 9.78829 1.43493 9.96283 1.48745C12.5096 2.25385 14.4269 4.47339 14.7515 7.18263ZM10.3246 7.18856C10.3335 7.30319 10.242 7.39991 10.127 7.39991H5.87296C5.75799 7.39991 5.66651 7.30319 5.67544 7.18856C5.83015 5.20232 6.55433 3.25205 7.84761 1.6004C7.92533 1.50115 8.07467 1.50115 8.15239 1.6004C9.44567 3.25205 10.1699 5.20232 10.3246 7.18856ZM4.26951 7.39991C4.37596 7.39991 4.46359 7.31649 4.47079 7.21028C4.59939 5.31523 5.19204 3.44576 6.24872 1.78504C6.34656 1.63127 6.21171 1.43493 6.03717 1.48745C3.49043 2.25385 1.57309 4.47339 1.24858 7.18263C1.23462 7.29913 1.32699 7.39991 1.44432 7.39991H4.26951ZM1.44432 8.59985C1.32699 8.59985 1.23462 8.70063 1.24857 8.81712C1.57309 11.5266 3.49048 13.7463 6.03748 14.5125C6.212 14.5651 6.34685 14.3688 6.24903 14.2149C5.19229 12.5541 4.59961 10.6845 4.47081 8.78945C4.46359 8.68325 4.37597 8.59985 4.26953 8.59985H1.44432Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React56.createElement(\"defs\", null, /* @__PURE__ */ React56.createElement(\"clipPath\", {\n id: \"clip0_2291_20157\"\n}, /* @__PURE__ */ React56.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar Internet_default = SvgInternet;\nvar SvgLocation = (props) => /* @__PURE__ */ React57.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React57.createElement(\"path\", {\n d: \"M8.00002 7.59999C8.88368 7.59999 9.60002 6.88365 9.60002 5.99999C9.60002 5.11634 8.88368 4.39999 8.00002 4.39999C7.11637 4.39999 6.40002 5.11634 6.40002 5.99999C6.40002 6.88365 7.11637 7.59999 8.00002 7.59999Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React57.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.3542 12.5652L11.2881 12.6595L11.2852 12.6636C10.7831 13.3789 10.1971 14.2137 9.51193 15.207L9.5108 15.2086C8.78033 16.2638 7.21961 16.2638 6.48921 15.2086L6.48809 15.207C5.80287 14.2136 5.21699 13.379 4.71486 12.6636L4.6458 12.5653C3.55144 11.0063 2.81228 9.95339 2.36442 9.08471C1.85815 8.10275 1.70001 7.31659 1.70001 6.3C1.70001 2.8206 4.52061 0 8.00001 0C11.4794 0 14.3 2.8206 14.3 6.3C14.3 7.31659 14.1419 8.10274 13.6356 9.0847C13.1877 9.95338 12.4486 11.0063 11.3542 12.5652ZM5.69704 11.9742C6.19917 12.6895 6.78758 13.5278 7.47588 14.5256C7.72913 14.8915 8.27087 14.8915 8.52414 14.5256C9.21238 13.5279 9.8008 12.6896 10.3029 11.9743C12.6163 8.67868 13.1 7.98954 13.1 6.3C13.1 3.48334 10.8167 1.2 8.00001 1.2C5.18335 1.2 2.90001 3.48334 2.90001 6.3C2.90001 7.98954 3.38365 8.67854 5.69704 11.9742Z\",\n fill: \"currentColor\"\n}));\nvar Location_default = SvgLocation;\nvar SvgLog = (props) => /* @__PURE__ */ React58.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React58.createElement(\"path\", {\n d: \"M8.83051 14.1409V1.85905C8.83051 1.38461 8.45868 1 8 1C7.54133 1 7.16949 1.38461 7.16949 1.85905V14.1409C7.16949 14.6154 7.54133 15 8 15C8.45868 15 8.83051 14.6154 8.83051 14.1409Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React58.createElement(\"path\", {\n d: \"M11.9153 4.73185V14.1546C11.9153 14.6215 11.5434 15 11.0847 15C10.6261 15 10.2542 14.6215 10.2542 14.1546V4.73185C10.2542 4.26494 10.6261 3.88643 11.0847 3.88643C11.5434 3.88643 11.9153 4.26494 11.9153 4.73185Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React58.createElement(\"path\", {\n d: \"M15 8.39624V14.1546C15 14.6215 14.6282 15 14.1695 15C13.7108 15 13.339 14.6215 13.339 14.1546V8.39624C13.339 7.92933 13.7108 7.55082 14.1695 7.55082C14.6282 7.55082 15 7.92933 15 8.39624Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React58.createElement(\"path\", {\n d: \"M2.66102 14.1546V8.39625C2.66102 7.92933 2.28918 7.55082 1.83051 7.55082C1.37183 7.55082 1 7.92933 1 8.39625V14.1546C1 14.6215 1.37183 15 1.83051 15C2.28918 15 2.66102 14.6215 2.66102 14.1546Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React58.createElement(\"path\", {\n d: \"M5.74576 14.1546V10.2284C5.74576 9.76153 5.37393 9.38302 4.91526 9.38302C4.45658 9.38302 4.08475 9.76153 4.08475 10.2284V14.1546C4.08475 14.6215 4.45658 15 4.91526 15C5.37393 15 5.74576 14.6215 5.74576 14.1546Z\",\n fill: \"currentColor\"\n}));\nvar Log_default = SvgLog;\nvar SvgMegaphone = (props) => /* @__PURE__ */ React59.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React59.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.1339 2.31832C11.399 1.66261 12.0416 1.2 12.7924 1.2C13.78 1.2 14.5806 2.00062 14.5806 2.98824V12.5255C14.5806 13.5131 13.78 14.3138 12.7924 14.3138C12.0515 14.3138 11.4158 13.8632 11.1445 13.2211L8.13595 12.281L5.82371 14.6594C5.12992 15.3731 3.98637 15.3812 3.28257 14.6774C2.58953 13.9843 2.58521 12.862 3.2729 12.1637L4.32892 11.0913L3.32955 10.779C2.19313 10.4238 1.41937 9.37138 1.41937 8.18077C1.41937 7.08185 2.08013 6.09071 3.09452 5.66804L11.1339 2.31832ZM12.7924 2.39216C12.4632 2.39216 12.1963 2.65903 12.1963 2.98824V12.5255C12.1963 12.8547 12.4632 13.1216 12.7924 13.1216C13.1216 13.1216 13.3885 12.8547 13.3885 12.5255V2.98824C13.3885 2.65903 13.1216 2.39216 12.7924 2.39216ZM5.6011 11.4985L4.12235 13.0001C3.89412 13.2319 3.89555 13.6044 4.12556 13.8344C4.35913 14.068 4.73865 14.0653 4.96891 13.8284L6.85604 11.8873L5.6011 11.4985ZM3.55304 6.7685L10.9566 3.68366V11.9134L3.68514 9.64108C3.04642 9.44148 2.61153 8.84995 2.61153 8.18077C2.61153 7.56312 2.98291 7.00605 3.55304 6.7685Z\",\n fill: \"currentColor\"\n}));\nvar Megaphone_default = SvgMegaphone;\nvar SvgMenu = (props) => /* @__PURE__ */ React60.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React60.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 4C2 3.44772 2.44772 3 3 3H13C13.5523 3 14 3.44772 14 4C14 4.55228 13.5523 5 13 5H3C2.44772 5 2 4.55228 2 4ZM2 8C2 7.44772 2.44772 7 3 7H13C13.5523 7 14 7.44772 14 8C14 8.55229 13.5523 9 13 9H3C2.44772 9 2 8.55229 2 8ZM3 11C2.44772 11 2 11.4477 2 12C2 12.5523 2.44772 13 3 13H13C13.5523 13 14 12.5523 14 12C14 11.4477 13.5523 11 13 11H3Z\",\n fill: \"currentColor\"\n}));\nvar Menu_default = SvgMenu;\nvar SvgMinus = (props) => /* @__PURE__ */ React61.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React61.createElement(\"path\", {\n d: \"M2 8.00001C2 7.50295 2.40294 7.10001 2.9 7.10001H13.1C13.5971 7.10001 14 7.50295 14 8.00001C14 8.49706 13.5971 8.90001 13.1 8.90001H2.9C2.40294 8.90001 2 8.49706 2 8.00001Z\",\n fill: \"currentColor\"\n}));\nvar Minus_default = SvgMinus;\nvar SvgMinusCircle = (props) => /* @__PURE__ */ React62.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React62.createElement(\"path\", {\n opacity: 0.2,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React62.createElement(\"path\", {\n d: \"M4 7.63003C4 7.28209 4.28206 7.00003 4.63 7.00003H11.77C12.1179 7.00003 12.4 7.28209 12.4 7.63003C12.4 7.97797 12.1179 8.26003 11.77 8.26003H4.63C4.28206 8.26003 4 7.97797 4 7.63003Z\",\n fill: \"currentColor\"\n}));\nvar MinusCircle_default = SvgMinusCircle;\nvar SvgNoise = (props) => /* @__PURE__ */ React63.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React63.createElement(\"path\", {\n d: \"M7.1001 2.9C7.1001 2.40294 7.50304 2 8.0001 2C8.49715 2 8.9001 2.40294 8.9001 2.9V13.1C8.9001 13.5971 8.49715 14 8.0001 14C7.50304 14 7.1001 13.5971 7.1001 13.1V2.9Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React63.createElement(\"path\", {\n d: \"M10.1001 4.9C10.1001 4.40294 10.503 4 11.0001 4C11.4972 4 11.9001 4.40294 11.9001 4.9V11.1C11.9001 11.5971 11.4972 12 11.0001 12C10.503 12 10.1001 11.5971 10.1001 11.1V4.9Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React63.createElement(\"path\", {\n d: \"M13.1001 6.9C13.1001 6.40294 13.503 6 14.0001 6C14.4972 6 14.9001 6.40294 14.9001 6.9V9.1C14.9001 9.59706 14.4972 10 14.0001 10C13.503 10 13.1001 9.59706 13.1001 9.1V6.9Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React63.createElement(\"path\", {\n d: \"M4.1001 6.9C4.1001 6.40294 4.50304 6 5.0001 6C5.49715 6 5.9001 6.40294 5.9001 6.9V9.1C5.9001 9.59706 5.49715 10 5.0001 10C4.50304 10 4.1001 9.59706 4.1001 9.1V6.9Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React63.createElement(\"path\", {\n d: \"M1.1001 4.9C1.1001 4.40294 1.50304 4 2.0001 4C2.49715 4 2.9001 4.40294 2.9001 4.9V11.1C2.9001 11.5971 2.49715 12 2.0001 12C1.50304 12 1.1001 11.5971 1.1001 11.1V4.9Z\",\n fill: \"currentColor\"\n}));\nvar Noise_default = SvgNoise;\nvar SvgOnboarding = (props) => /* @__PURE__ */ React64.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React64.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.25006 4C7.39005 4 6.5963 4.3223 6.02772 4.63354C5.74146 4.79024 5.50735 4.94686 5.34433 5.06465C5.26273 5.12362 5.19868 5.17305 5.15453 5.20815C5.13246 5.22571 5.11534 5.23971 5.10347 5.24954L5.08964 5.2611L5.08575 5.2644L5.08457 5.26541L5.0839 5.26598C5.08387 5.26601 5.08411 5.26628 5.10386 5.28878C5.12385 5.31155 5.16382 5.35708 5.24373 5.44816L5.0839 5.26598C4.98227 5.3534 4.97146 5.50585 5.05974 5.60649C5.14801 5.70709 5.30219 5.71758 5.40382 5.63024L5.40602 5.62836L5.41634 5.61974C5.42581 5.6119 5.4404 5.59996 5.45981 5.58452C5.49865 5.55363 5.55673 5.50877 5.63171 5.4546C5.78185 5.34611 5.99868 5.20102 6.26358 5.05602C6.79731 4.76385 7.5067 4.48273 8.25006 4.48273C8.99341 4.48273 9.70281 4.76385 10.2365 5.05602C10.5014 5.20102 10.7183 5.34611 10.8684 5.4546C10.9434 5.50877 11.0015 5.55363 11.0403 5.58452C11.0597 5.59996 11.0743 5.6119 11.0838 5.61974L11.0941 5.62836L11.0963 5.63024L11.0966 5.63051C11.1983 5.71782 11.3521 5.70708 11.4404 5.60649C11.5287 5.50585 11.5176 5.35317 11.4159 5.26575L11.4156 5.26541L11.4144 5.2644L11.4105 5.2611L11.3966 5.24954C11.3848 5.23971 11.3677 5.22571 11.3456 5.20815C11.3014 5.17305 11.2374 5.12362 11.1558 5.06465C10.9928 4.94686 10.7587 4.79024 10.4724 4.63354C9.90382 4.3223 9.11006 4 8.25006 4ZM11.2564 5.44819C11.4162 5.26598 11.416 5.2658 11.4159 5.26575L11.2564 5.44819Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React64.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.25006 5.20683C7.60672 5.20683 7.0161 5.44758 6.59648 5.67729C6.3847 5.79321 6.21152 5.90907 6.09083 5.99628C6.03039 6.03995 5.98284 6.07664 5.94991 6.10283C5.93344 6.11593 5.9206 6.12642 5.91162 6.13386L5.90105 6.14269L5.89798 6.1453L5.89701 6.14613L5.89641 6.14664C5.89639 6.14667 5.89662 6.14693 5.91633 6.16938C5.93628 6.19211 5.97618 6.23756 6.05596 6.3285L5.89641 6.14664C5.79478 6.23406 5.78397 6.38651 5.87226 6.48714C5.9605 6.58773 6.1145 6.59835 6.21613 6.51106L6.21743 6.50996L6.22449 6.50406C6.23107 6.49861 6.24138 6.49018 6.25518 6.47919C6.28281 6.45722 6.32439 6.42511 6.3782 6.38622C6.48603 6.30831 6.64192 6.204 6.83234 6.09976C7.2171 5.88913 7.72337 5.68956 8.25006 5.68956C8.77674 5.68956 9.28301 5.88913 9.66778 6.09976C9.8582 6.204 10.0141 6.30831 10.1219 6.38622C10.1757 6.42511 10.2173 6.45722 10.2449 6.47919C10.2587 6.49018 10.269 6.49861 10.2756 6.50406L10.2827 6.50996L10.2842 6.51122C10.3858 6.59847 10.5396 6.58771 10.6279 6.48714C10.7161 6.38651 10.7051 6.23385 10.6035 6.14642L10.6031 6.14613L10.6021 6.1453L10.5991 6.14269L10.5885 6.13386C10.5795 6.12642 10.5667 6.11593 10.5502 6.10283C10.5173 6.07664 10.4697 6.03995 10.4093 5.99628C10.2886 5.90907 10.1154 5.79321 9.90364 5.67729C9.48402 5.44758 8.89339 5.20683 8.25006 5.20683ZM10.4438 6.32885C10.6037 6.14664 10.6035 6.14647 10.6035 6.14642L10.4438 6.32885Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React64.createElement(\"path\", {\n d: \"M7.16523 6.72103C7.4359 6.57287 7.82339 6.41366 8.25006 6.41366C8.67672 6.41366 9.06422 6.57287 9.33488 6.72103C9.47217 6.79618 9.58441 6.87127 9.66279 6.9279C9.70207 6.95628 9.73312 6.98023 9.75483 6.9975C9.7657 7.00614 9.77425 7.01313 9.78035 7.01818L9.78765 7.02429L9.7899 7.02619L9.79066 7.02685L9.79108 7.0272C9.89271 7.11463 9.90363 7.26717 9.81535 7.3678C9.72715 7.46833 9.57343 7.47912 9.4718 7.392L9.47147 7.39172L9.46748 7.38838C9.46377 7.38532 9.45776 7.38039 9.44956 7.37387C9.43314 7.36081 9.40807 7.34144 9.37542 7.31784C9.30991 7.27051 9.21496 7.20697 9.09902 7.1435C8.86321 7.01442 8.56007 6.89639 8.25006 6.89639C7.94004 6.89639 7.6369 7.01442 7.4011 7.1435C7.28516 7.20697 7.19021 7.27051 7.1247 7.31784C7.09204 7.34144 7.06697 7.36081 7.05056 7.37387C7.04236 7.38039 7.03634 7.38532 7.03264 7.38838L7.02885 7.39155C6.92722 7.47889 6.77303 7.4684 6.68477 7.3678C6.59648 7.26717 6.6073 7.11472 6.70893 7.0273L6.70945 7.02685L6.71022 7.02619L6.71247 7.02429L6.71977 7.01818C6.72587 7.01313 6.73442 7.00614 6.74528 6.9975C6.767 6.98023 6.79804 6.95628 6.83733 6.9279C6.9157 6.87127 7.02794 6.79618 7.16523 6.72103Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React64.createElement(\"path\", {\n d: \"M7.73397 7.76477C7.85567 7.69815 8.04004 7.62048 8.25003 7.62048C8.46003 7.62048 8.64439 7.69815 8.7661 7.76477C8.82891 7.79916 8.88021 7.83347 8.91627 7.85952C8.93439 7.87262 8.94893 7.88382 8.95943 7.89217C8.96469 7.89635 8.96896 7.89984 8.97217 7.9025L8.97621 7.90588L8.97763 7.90708L8.97819 7.90756L8.97855 7.90787C8.97856 7.90788 8.97858 7.90789 8.97473 7.91231L8.97855 7.90787C9.04906 7.96853 9.07596 8.06058 9.05626 8.14482C9.01391 8.45365 8.54961 8.87508 8.25003 8.87508C7.93592 8.87508 7.43753 8.41174 7.43753 8.1007L7.43757 8.09559C7.43604 8.02633 7.46447 7.95694 7.52142 7.90796L7.52187 7.90756L7.52243 7.90708L7.52385 7.90588L7.52789 7.9025C7.53111 7.89984 7.53538 7.89635 7.54063 7.89217C7.55113 7.88382 7.56567 7.87262 7.5838 7.85952C7.61986 7.83347 7.67116 7.79916 7.73397 7.76477Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React64.createElement(\"path\", {\n d: \"M8.84679 13.0039C8.84679 13.3311 8.57958 13.5964 8.24995 13.5964C7.92033 13.5964 7.65312 13.3311 7.65312 13.0039C7.65312 12.6766 7.92033 12.4113 8.24995 12.4113C8.57958 12.4113 8.84679 12.6766 8.84679 13.0039Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React64.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.646 0C4.18697 0 3 1.17503 3 2.62963V13.3704C3 14.825 4.18697 16 5.646 16H10.854C12.313 16 13.5 14.825 13.5 13.3704V2.62963C13.5 1.17503 12.313 0 10.854 0H5.646ZM4.34043 13.3704C4.34043 14.0863 4.92495 14.6667 5.646 14.6667H10.854C11.575 14.6667 12.1596 14.0863 12.1596 13.3704V2.62963C12.1596 1.91371 11.575 1.33333 10.854 1.33333H5.646C4.92495 1.33333 4.34043 1.9137 4.34043 2.62963V13.3704Z\",\n fill: \"currentColor\"\n}));\nvar Onboarding_default = SvgOnboarding;\nvar SvgOverflowHorizontal = (props) => /* @__PURE__ */ React65.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React65.createElement(\"path\", {\n d: \"M3.55551 6.45C4.41462 6.45 5.11107 7.14396 5.11107 8C5.11107 8.85604 4.41462 9.55 3.55551 9.55C2.6964 9.55 1.99995 8.85604 1.99995 8C1.99995 7.14396 2.6964 6.45 3.55551 6.45Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React65.createElement(\"path\", {\n d: \"M7.99995 6.45C8.85906 6.45 9.55551 7.14396 9.55551 8C9.55551 8.85604 8.85906 9.55 7.99995 9.55C7.14084 9.55 6.4444 8.85604 6.4444 8C6.4444 7.14396 7.14084 6.45 7.99995 6.45Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React65.createElement(\"path\", {\n d: \"M14 8C14 7.14396 13.3035 6.45 12.4444 6.45C11.5853 6.45 10.8888 7.14396 10.8888 8C10.8888 8.85604 11.5853 9.55 12.4444 9.55C13.3035 9.55 14 8.85604 14 8Z\",\n fill: \"currentColor\"\n}));\nvar OverflowHorizontal_default = SvgOverflowHorizontal;\nvar SvgOverflowVertical = (props) => /* @__PURE__ */ React66.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React66.createElement(\"path\", {\n d: \"M9.55 3.55556C9.55 4.41467 8.85604 5.11111 8 5.11111C7.14396 5.11111 6.45 4.41467 6.45 3.55556C6.45 2.69645 7.14396 2 8 2C8.85604 2 9.55 2.69645 9.55 3.55556Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React66.createElement(\"path\", {\n d: \"M9.55 8C9.55 8.85911 8.85604 9.55556 8 9.55556C7.14396 9.55556 6.45 8.85911 6.45 8C6.45 7.14089 7.14396 6.44444 8 6.44444C8.85604 6.44444 9.55 7.14089 9.55 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React66.createElement(\"path\", {\n d: \"M8 14C8.85604 14 9.55 13.3036 9.55 12.4444C9.55 11.5853 8.85604 10.8889 8 10.8889C7.14396 10.8889 6.45 11.5853 6.45 12.4444C6.45 13.3036 7.14396 14 8 14Z\",\n fill: \"currentColor\"\n}));\nvar OverflowVertical_default = SvgOverflowVertical;\nvar SvgPadlock = (props) => /* @__PURE__ */ React67.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React67.createElement(\"path\", {\n d: \"M8.3 10.5198C8.47934 10.416 8.59999 10.2221 8.59999 10C8.59999 9.66865 8.33136 9.40002 7.99999 9.40002C7.66862 9.40002 7.39999 9.66865 7.39999 10C7.39999 10.2221 7.52065 10.416 7.7 10.5198V11.3C7.7 11.4657 7.83431 11.6 8 11.6C8.16568 11.6 8.3 11.4657 8.3 11.3V10.5198Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React67.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 7V5C5 3.34315 6.34315 2 8 2C9.65685 2 11 3.34315 11 5V7C12.1046 7 13 7.89543 13 9V12C13 13.1046 12.1046 14 11 14H5C3.89543 14 3 13.1046 3 12V9C3 7.89543 3.89543 7 5 7ZM9.8 5V7H6.2V5C6.2 4.00589 7.00589 3.2 8 3.2C8.99411 3.2 9.8 4.00589 9.8 5ZM11 8.2H5C4.55817 8.2 4.2 8.55817 4.2 9V12C4.2 12.4418 4.55817 12.8 5 12.8H11C11.4418 12.8 11.8 12.4418 11.8 12V9C11.8 8.55817 11.4418 8.2 11 8.2Z\",\n fill: \"currentColor\"\n}));\nvar Padlock_default = SvgPadlock;\nvar SvgPaneLeft = (props) => /* @__PURE__ */ React68.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React68.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.0667 3.83334C15.0667 2.45263 13.8728 1.33334 12.4 1.33334H11.0667C9.59392 1.33334 8.40002 2.45263 8.40002 3.83334V12.1667C8.40002 13.5474 9.59392 14.6667 11.0667 14.6667H12.4C13.8728 14.6667 15.0667 13.5474 15.0667 12.1667V3.83334ZM12.4 3.00001C12.8909 3.00001 13.2889 3.37311 13.2889 3.83334V12.1667C13.2889 12.6269 12.8909 13 12.4 13H11.0667C10.5758 13 10.1778 12.6269 10.1778 12.1667V3.83334C10.1778 3.37311 10.5758 3.00001 11.0667 3.00001H12.4Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React68.createElement(\"path\", {\n d: \"M7.06668 8.00001C7.06668 8.28961 6.86073 8.52437 6.60668 8.52437H2.50482L3.59888 9.77153C3.77852 9.9763 3.77852 10.3083 3.59888 10.5131C3.41924 10.7179 3.12798 10.7179 2.94834 10.5131L1.08596 8.39011C0.992273 8.29412 0.93335 8.15491 0.93335 8.00001C0.93335 7.84504 0.992318 7.70578 1.08607 7.60979L2.94834 5.48693C3.12798 5.28215 3.41924 5.28215 3.59888 5.48693C3.77852 5.69171 3.77852 6.02372 3.59888 6.2285L2.50483 7.47564H6.60668C6.86073 7.47564 7.06668 7.71041 7.06668 8.00001Z\",\n fill: \"currentColor\"\n}));\nvar PaneLeft_default = SvgPaneLeft;\nvar SvgPaneRight = (props) => /* @__PURE__ */ React69.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React69.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.93335 3.83334C0.93335 2.45263 2.12726 1.33334 3.60002 1.33334H4.93335C6.40611 1.33334 7.60002 2.45263 7.60002 3.83334V12.1667C7.60002 13.5474 6.40611 14.6667 4.93335 14.6667H3.60002C2.12726 14.6667 0.93335 13.5474 0.93335 12.1667V3.83334ZM3.60002 3.00001C3.1091 3.00001 2.71113 3.37311 2.71113 3.83334V12.1667C2.71113 12.6269 3.1091 13 3.60002 13H4.93335C5.42427 13 5.82224 12.6269 5.82224 12.1667V3.83334C5.82224 3.37311 5.42427 3.00001 4.93335 3.00001H3.60002Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React69.createElement(\"path\", {\n d: \"M8.93335 8.00001C8.93335 8.28961 9.1393 8.52437 9.39335 8.52437H13.4952L12.4012 9.77153C12.2215 9.9763 12.2215 10.3083 12.4012 10.5131C12.5808 10.7179 12.8721 10.7179 13.0517 10.5131L14.9141 8.39011C15.0078 8.29412 15.0667 8.15491 15.0667 8.00001C15.0667 7.84504 15.0077 7.70578 14.914 7.60979L13.0517 5.48693C12.8721 5.28215 12.5808 5.28215 12.4012 5.48693C12.2215 5.69171 12.2215 6.02372 12.4012 6.2285L13.4952 7.47564H9.39335C9.1393 7.47564 8.93335 7.71041 8.93335 8.00001Z\",\n fill: \"currentColor\"\n}));\nvar PaneRight_default = SvgPaneRight;\nvar SvgPencil = (props) => /* @__PURE__ */ React70.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React70.createElement(\"path\", {\n d: \"M13.6697 2.33037C13.2292 1.88988 12.515 1.88988 12.0745 2.33037L11.0367 3.36813L12.6319 4.96329L13.6697 3.92553C14.1102 3.48504 14.1102 2.77086 13.6697 2.33037Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React70.createElement(\"path\", {\n d: \"M11.7618 5.83337L10.1667 4.23821L2.17092 12.2339C2.10465 12.3002 2.06307 12.3867 2.05441 12.48C2.0202 12.8486 1.94442 13.8074 2.06851 13.9315C2.1926 14.0556 3.15143 13.9798 3.51999 13.9456C3.61331 13.937 3.69981 13.8954 3.76608 13.8291L11.7618 5.83337Z\",\n fill: \"currentColor\"\n}));\nvar Pencil_default = SvgPencil;\nvar SvgPhone = (props) => /* @__PURE__ */ React71.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React71.createElement(\"path\", {\n d: \"M8.53426 12.5035C8.53426 12.798 8.29504 13.0368 7.99995 13.0368C7.70486 13.0368 7.46564 12.798 7.46564 12.5035C7.46564 12.2089 7.70486 11.9701 7.99995 11.9701C8.29504 11.9701 8.53426 12.2089 8.53426 12.5035Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React71.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.66879 0.799988C4.36261 0.799988 3.29999 1.85751 3.29999 3.16665V12.8333C3.29999 14.1425 4.36261 15.2 5.66879 15.2H10.3312C11.6374 15.2 12.7 14.1425 12.7 12.8333V3.16665C12.7 1.85751 11.6374 0.799988 10.3312 0.799988H5.66879ZM4.49999 12.8333C4.49999 13.4777 5.02328 14 5.66879 14H10.3312C10.9767 14 11.5 13.4777 11.5 12.8333V3.16665C11.5 2.52232 10.9767 1.99999 10.3312 1.99999H5.66879C5.02328 1.99999 4.49999 2.52232 4.49999 3.16665V12.8333Z\",\n fill: \"currentColor\"\n}));\nvar Phone_default = SvgPhone;\nvar SvgPlaceholder = (props) => /* @__PURE__ */ React72.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React72.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 14.4C11.5346 14.4 14.4 11.5346 14.4 8C14.4 4.46538 11.5346 1.6 8 1.6C4.46538 1.6 1.6 4.46538 1.6 8C1.6 11.5346 4.46538 14.4 8 14.4ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z\",\n fill: \"currentColor\"\n}));\nvar Placeholder_default = SvgPlaceholder;\nvar SvgPlus = (props) => /* @__PURE__ */ React73.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React73.createElement(\"path\", {\n d: \"M8 2C7.50294 2 7.1 2.40294 7.1 2.9V7.09999H2.9C2.40294 7.09999 2 7.50294 2 7.99999C2 8.49705 2.40294 8.89999 2.9 8.89999H7.1V13.1C7.1 13.5971 7.50294 14 8 14C8.49706 14 8.9 13.5971 8.9 13.1V8.89999H13.1C13.5971 8.89999 14 8.49705 14 7.99999C14 7.50294 13.5971 7.09999 13.1 7.09999H8.9V2.9C8.9 2.40294 8.49706 2 8 2Z\",\n fill: \"currentColor\"\n}));\nvar Plus_default = SvgPlus;\nvar SvgPlusCircle = (props) => /* @__PURE__ */ React74.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React74.createElement(\"circle\", {\n opacity: 0.2,\n cx: 8,\n cy: 8,\n r: 7,\n fill: \"currentColor\"\n}), /* @__PURE__ */ React74.createElement(\"path\", {\n d: \"M8 3.8C7.65206 3.8 7.37 4.08206 7.37 4.43V7.37H4.43C4.08206 7.37 3.8 7.65206 3.8 8C3.8 8.34794 4.08206 8.63 4.43 8.63H7.37V11.57C7.37 11.9179 7.65206 12.2 8 12.2C8.34794 12.2 8.63 11.9179 8.63 11.57V8.63H11.57C11.9179 8.63 12.2 8.34794 12.2 8C12.2 7.65206 11.9179 7.37 11.57 7.37H8.63V4.43C8.63 4.08206 8.34794 3.8 8 3.8Z\",\n fill: \"currentColor\"\n}));\nvar PlusCircle_default = SvgPlusCircle;\nvar SvgPortforwarding = (props) => /* @__PURE__ */ React75.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React75.createElement(\"path\", {\n d: \"M11.6 1.20001H4.4C3.07452 1.20001 2 2.27453 2 3.60001V6.80001C2 8.12549 3.07451 9.20001 4.4 9.20001H5.02V8.04502C5.02 7.96213 5.02482 7.88038 5.03421 7.80001H4.4C3.84771 7.80001 3.4 7.3523 3.4 6.80001V3.60001C3.4 3.04773 3.84772 2.60001 4.4 2.60001H11.6C12.1523 2.60001 12.6 3.04773 12.6 3.60001V6.45356C12.9816 6.54525 13.342 6.75458 13.627 7.08155L13.9198 7.41741C13.9721 7.22041 14 7.01346 14 6.80001V3.60001C14 2.27453 12.9255 1.20001 11.6 1.20001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React75.createElement(\"path\", {\n d: \"M7.10999 6.35504C7.49107 6.35504 7.79999 6.66397 7.79999 7.04504V11.3C7.79999 11.6801 7.53136 11.9882 7.19999 11.9882H5.22231C5.20586 11.9894 5.18924 11.99 5.17249 11.99H1.48999C1.10891 11.99 0.799988 11.6811 0.799988 11.3C0.799988 10.9189 1.10891 10.61 1.48999 10.61H5.17249C5.18921 10.61 5.20579 10.6106 5.22221 10.6117H6.41999V7.04504C6.41999 6.66397 6.72892 6.35504 7.10999 6.35504Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React75.createElement(\"path\", {\n d: \"M8.20001 7.04504C8.20001 6.66397 8.50893 6.35504 8.89001 6.35504C9.27108 6.35504 9.58001 6.66397 9.58001 7.04504V10.6117H13.1503L11.7232 8.97487C11.4889 8.7061 11.4889 8.27034 11.7232 8.00157C11.9575 7.7328 12.3374 7.73279 12.5718 8.00157L15.0008 10.7878C15.1231 10.9138 15.2 11.0966 15.2 11.3C15.2 11.5033 15.1232 11.686 15.0009 11.812L12.5718 14.5984C12.3374 14.8672 11.9575 14.8672 11.7232 14.5984C11.4889 14.3296 11.4889 13.8939 11.7232 13.6251L13.1503 11.9882H8.80001C8.46864 11.9882 8.20001 11.6801 8.20001 11.3V7.04504Z\",\n fill: \"currentColor\"\n}));\nvar Portforwarding_default = SvgPortforwarding;\nvar SvgPower = (props) => /* @__PURE__ */ React76.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React76.createElement(\"path\", {\n d: \"M8 1.37933C7.54294 1.37933 7.17241 1.74986 7.17241 2.20692V7.79313C7.17241 8.25019 7.54294 8.62071 8 8.62071C8.45706 8.62071 8.82759 8.25019 8.82759 7.79313V2.20692C8.82759 1.74986 8.45706 1.37933 8 1.37933Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React76.createElement(\"path\", {\n d: \"M5.02511 3.40897C5.54731 3.11025 6.13793 3.53309 6.13793 4.13469C6.13793 4.47631 5.9367 4.78088 5.64955 4.96593C4.44969 5.73918 3.65517 7.08717 3.65517 8.62072C3.65517 11.0203 5.60042 12.9655 8 12.9655C10.3996 12.9655 12.3448 11.0203 12.3448 8.62072C12.3448 7.08717 11.5503 5.73918 10.3505 4.96593C10.0633 4.78088 9.86207 4.47631 9.86207 4.13469C9.86207 3.53309 10.4527 3.11025 10.9749 3.40897C12.7821 4.44278 14 6.38953 14 8.62072C14 11.9344 11.3137 14.6207 8 14.6207C4.68629 14.6207 2 11.9344 2 8.62072C2 6.38952 3.21787 4.44278 5.02511 3.40897Z\",\n fill: \"currentColor\"\n}));\nvar Power_default = SvgPower;\nvar SvgPulse = (props) => /* @__PURE__ */ React77.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React77.createElement(\"path\", {\n d: \"M5.55077 5.37946C5.65154 5.14439 5.98479 5.14441 6.08554 5.37948L9.91441 14.3135C10.0152 14.5486 10.3485 14.5486 10.4492 14.3135L12.7674 8.90362C12.8132 8.79665 12.9184 8.72729 13.0347 8.72729H15.2727C15.6744 8.72729 16 8.40168 16 8.00002V8.00002C16 7.59835 15.6744 7.27274 15.2727 7.27274H12.0762C11.9598 7.27274 11.8546 7.34208 11.8088 7.44903L10.4492 10.6206C10.3485 10.8556 10.0152 10.8556 9.91446 10.6206L6.08559 1.68651C5.98484 1.45142 5.65155 1.45143 5.55081 1.68653L3.23265 7.09641C3.18681 7.20338 3.08163 7.27274 2.96525 7.27274H0.727273C0.325612 7.27274 0 7.59835 0 8.00002V8.00002C0 8.40168 0.325611 8.72729 0.727273 8.72729H3.92383C4.04019 8.72729 4.14536 8.65795 4.19121 8.551L5.55077 5.37946Z\",\n fill: \"currentColor\"\n}));\nvar Pulse_default = SvgPulse;\nvar SvgQrCode = (props) => /* @__PURE__ */ React78.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React78.createElement(\"g\", {\n clipPath: \"url(#clip0_912_7276)\"\n}, /* @__PURE__ */ React78.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 2C0 0.895431 0.895431 0 2 0H6C7.10457 0 8 0.895431 8 2V6C8 7.10457 7.10457 8 6 8H2C0.895431 8 0 7.10457 0 6V2ZM2 1.2H6C6.44183 1.2 6.8 1.55817 6.8 2V6C6.8 6.44183 6.44183 6.8 6 6.8H2C1.55817 6.8 1.2 6.44183 1.2 6V2C1.2 1.55817 1.55817 1.2 2 1.2Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 10C8 8.89543 8.89543 8 10 8H14C15.1046 8 16 8.89543 16 10V14C16 15.1046 15.1046 16 14 16H10C8.89543 16 8 15.1046 8 14V10ZM10 9.2H14C14.4418 9.2 14.8 9.55817 14.8 10V14C14.8 14.4418 14.4418 14.8 14 14.8H10C9.55817 14.8 9.2 14.4418 9.2 14V10C9.2 9.55817 9.55817 9.2 10 9.2Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M14.3 2.80001C14.9075 2.80001 15.4 2.30752 15.4 1.70001C15.4 1.09249 14.9075 0.600006 14.3 0.600006C13.6925 0.600006 13.2 1.09249 13.2 1.70001C13.2 2.30752 13.6925 2.80001 14.3 2.80001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M9.70001 7.40001C10.3075 7.40001 10.8 6.90753 10.8 6.30001C10.8 5.6925 10.3075 5.20001 9.70001 5.20001C9.09249 5.20001 8.60001 5.6925 8.60001 6.30001C8.60001 6.90753 9.09249 7.40001 9.70001 7.40001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M9.70001 2.80001C10.3075 2.80001 10.8 2.30752 10.8 1.70001C10.8 1.09249 10.3075 0.600006 9.70001 0.600006C9.09249 0.600006 8.60001 1.09249 8.60001 1.70001C8.60001 2.30752 9.09249 2.80001 9.70001 2.80001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M15.4 6.30001C15.4 6.90753 14.9075 7.40001 14.3 7.40001C13.6925 7.40001 13.2 6.90753 13.2 6.30001C13.2 5.6925 13.6925 5.20001 14.3 5.20001C14.9075 5.20001 15.4 5.6925 15.4 6.30001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M12 5.09999C12.6075 5.09999 13.1 4.60751 13.1 3.99999C13.1 3.39248 12.6075 2.89999 12 2.89999C11.3925 2.89999 10.9 3.39248 10.9 3.99999C10.9 4.60751 11.3925 5.09999 12 5.09999Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M7.40001 9.70001C7.40001 10.3075 6.90753 10.8 6.30001 10.8C5.6925 10.8 5.20001 10.3075 5.20001 9.70001C5.20001 9.09249 5.6925 8.60001 6.30001 8.60001C6.90753 8.60001 7.40001 9.09249 7.40001 9.70001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M2.80001 14.3C2.80001 14.9075 2.30752 15.4 1.70001 15.4C1.09249 15.4 0.600006 14.9075 0.600006 14.3C0.600006 13.6925 1.09249 13.2 1.70001 13.2C2.30752 13.2 2.80001 13.6925 2.80001 14.3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M2.80001 9.70001C2.80001 10.3075 2.30752 10.8 1.70001 10.8C1.09249 10.8 0.600006 10.3075 0.600006 9.70001C0.600006 9.09249 1.09249 8.60001 1.70001 8.60001C2.30752 8.60001 2.80001 9.09249 2.80001 9.70001Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M6.30001 15.4C6.90753 15.4 7.40001 14.9075 7.40001 14.3C7.40001 13.6925 6.90753 13.2 6.30001 13.2C5.6925 13.2 5.20001 13.6925 5.20001 14.3C5.20001 14.9075 5.6925 15.4 6.30001 15.4Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React78.createElement(\"path\", {\n d: \"M5.09999 12C5.09999 12.6075 4.60751 13.1 3.99999 13.1C3.39248 13.1 2.89999 12.6075 2.89999 12C2.89999 11.3925 3.39248 10.9 3.99999 10.9C4.60751 10.9 5.09999 11.3925 5.09999 12Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React78.createElement(\"defs\", null, /* @__PURE__ */ React78.createElement(\"clipPath\", {\n id: \"clip0_912_7276\"\n}, /* @__PURE__ */ React78.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar QRCode_default = SvgQrCode;\nvar SvgQuestion = (props) => /* @__PURE__ */ React79.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React79.createElement(\"path\", {\n opacity: 0.2,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React79.createElement(\"path\", {\n d: \"M8.19807 3.68768C6.63704 3.68768 5.83793 4.63955 5.59322 5.34095C5.46586 5.70597 5.65853 6.10512 6.02355 6.23247C6.38857 6.35983 6.73302 6.17528 6.91507 5.80214C7.06459 5.49569 7.39047 4.90907 8.25087 4.90907C8.71678 4.90907 8.91381 4.97457 9.11188 5.11294C9.34829 5.27811 9.48868 5.58438 9.5123 5.85788C9.56548 6.4738 9.2653 6.83598 8.89998 7.04795C8.39305 7.34208 8.07463 7.552 7.78327 7.89302C7.47694 8.25156 7.37807 8.61143 7.33388 8.81028L7.32553 8.84766C7.24034 9.22476 7.47698 9.59952 7.85408 9.6847C8.23117 9.76989 8.60593 9.53325 8.69112 9.15616C8.74068 8.93676 8.751 8.87439 8.81088 8.72878C8.87076 8.58317 8.99342 8.35705 9.40625 8.14844C10.1406 7.77734 10.9724 6.99234 10.8633 5.7286C10.8058 5.06227 10.4751 4.52939 9.95873 4.16866C9.46542 3.82402 8.84237 3.68768 8.19807 3.68768Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React79.createElement(\"path\", {\n d: \"M7.3588 12.0024C7.53919 12.1675 7.75488 12.25 8.00586 12.25C8.249 12.25 8.45684 12.1675 8.62939 12.0024C8.80978 11.8295 8.89998 11.6173 8.89998 11.3658C8.89998 11.1143 8.80978 10.906 8.62939 10.741C8.45684 10.5681 8.249 10.4816 8.00586 10.4816C7.75488 10.4816 7.53919 10.5681 7.3588 10.741C7.18625 10.906 7.09998 11.1143 7.09998 11.3658C7.09998 11.6173 7.18625 11.8295 7.3588 12.0024Z\",\n fill: \"currentColor\"\n}));\nvar Question_default = SvgQuestion;\nvar SvgReporting = (props) => /* @__PURE__ */ React80.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React80.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.2414 2.00556C12.7573 1.93189 14.1331 2.59481 15.3147 3.73899C15.785 4.19442 16 4.80469 16 5.38573V11.8029C16 12.7363 15.2433 13.493 14.3099 13.493L1.69014 13.493C0.756698 13.493 0 12.7363 0 11.8029L0 5.52208C0 4.13422 1.62175 3.63793 2.49089 4.4482C3.30583 5.20793 4.02952 5.44849 4.67211 5.40741C5.34288 5.36451 6.16992 4.99935 7.13443 4.05828C8.37167 2.85112 9.7514 2.07797 11.2414 2.00556ZM2.47887 6.00837C4.23758 7.1352 6.11879 6.78089 8 4.94541C10.2177 2.78158 12.4355 2.67625 14.4525 4.6294C14.6559 4.82634 14.7606 5.10261 14.7606 5.38573L14.7606 11.8029C14.7606 12.0518 14.5588 12.2536 14.3099 12.2536L1.69014 12.2536C1.44122 12.2536 1.23944 12.0518 1.23944 11.8029L1.23944 5.52208C1.23944 5.3169 1.49565 5.21487 1.64573 5.35478C1.70761 5.41247 1.76968 5.46824 1.83193 5.52208C2.01512 5.68053 2.19987 5.82231 2.38602 5.94742C2.41693 5.96819 2.44788 5.98851 2.47887 6.00837Z\",\n fill: \"currentColor\"\n}));\nvar Reporting_default = SvgReporting;\nvar SvgSearch = (props) => /* @__PURE__ */ React81.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React81.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.5805 10.6907C8.68556 11.3565 7.57641 11.7505 6.37524 11.7505C3.40658 11.7505 1 9.34391 1 6.37524C1 3.40658 3.40658 1 6.37524 1C9.34391 1 11.7505 3.40658 11.7505 6.37524C11.7505 7.5764 11.3565 8.68554 10.6907 9.58048C10.7425 9.61258 10.7914 9.65109 10.8363 9.69602L14.7639 13.6236C15.0787 13.9385 15.0787 14.449 14.7639 14.7638C14.449 15.0787 13.9385 15.0787 13.6236 14.7638L9.69604 10.8363C9.65112 10.7914 9.61261 10.7424 9.5805 10.6907ZM10.1379 6.37524C10.1379 8.45331 8.45331 10.1379 6.37524 10.1379C4.29718 10.1379 2.61257 8.45331 2.61257 6.37524C2.61257 4.29718 4.29718 2.61257 6.37524 2.61257C8.45331 2.61257 10.1379 4.29718 10.1379 6.37524Z\",\n fill: \"currentColor\"\n}));\nvar Search_default = SvgSearch;\nvar SvgSearchScoped = (props) => /* @__PURE__ */ React82.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React82.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.04517 10.8306C10.106 10.8306 11.0901 10.5009 11.9011 9.938L14.4559 12.5005C14.8091 12.8548 15.3818 12.8548 15.7351 12.5005C16.0883 12.1462 16.0883 11.5717 15.7351 11.2174L13.1803 8.65495C13.7415 7.8415 14.0703 6.85441 14.0703 5.79031C14.0703 3.00662 11.8205 0.75 9.04517 0.75C6.26989 0.75 4.02008 3.00662 4.02008 5.79031C4.02008 8.57399 6.26989 10.8306 9.04517 10.8306ZM9.04517 9.0161C10.8214 9.0161 12.2612 7.57187 12.2612 5.79031C12.2612 4.00875 10.8214 2.56451 9.04517 2.56451C7.26899 2.56451 5.82911 4.00875 5.82911 5.79031C5.82911 7.57187 7.26899 9.0161 9.04517 9.0161Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React82.createElement(\"path\", {\n d: \"M11.5626 12.1646C10.7827 12.4747 9.93276 12.6451 9.04519 12.6451C7.6051 12.6451 6.26906 12.1984 5.16729 11.4355H0.904517C0.404966 11.4355 0 11.8417 0 12.3427C0 12.8438 0.404966 13.25 0.904517 13.25H12.6448L11.5626 12.1646Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React82.createElement(\"path\", {\n d: \"M0.904517 4.17743H2.40131C2.27694 4.69467 2.21105 5.23478 2.21105 5.79032C2.21105 5.85776 2.21203 5.92497 2.21395 5.99194H0.904517C0.404966 5.99194 0 5.58575 0 5.08469C0 4.58363 0.404966 4.17743 0.904517 4.17743Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React82.createElement(\"path\", {\n d: \"M3.37689 9.62094C3.00482 9.06813 2.71102 8.45797 2.51143 7.80643H0.904517C0.404966 7.80643 0 8.21262 0 8.71369C0 9.21475 0.404966 9.62094 0.904517 9.62094H3.37689Z\",\n fill: \"currentColor\"\n}));\nvar SearchScoped_default = SvgSearchScoped;\nvar SvgSecure = (props) => /* @__PURE__ */ React83.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React83.createElement(\"path\", {\n opacity: 0.2,\n d: \"M8 14.4992C8.08573 14.4992 8.17147 14.48 8.25052 14.4415C11.0282 13.092 12.7403 11.111 13.1655 8.70646C13.4923 6.85902 13.4152 4.96465 13.3052 3.77793C13.2844 3.55319 13.1352 3.36213 12.9241 3.28241L8.35322 1.55659C8.2394 1.51362 8.1197 1.49213 8 1.49213V14.4992Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React83.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.35099 3.16348C1.21731 4.32717 1.04894 6.64942 1.45585 8.95028C2.00546 12.0578 4.27911 14.4237 7.56116 15.8987C7.70132 15.9617 7.85034 15.9955 8.00001 16C8.14968 15.9955 8.2987 15.9617 8.43887 15.8987C11.7209 14.4237 13.9946 12.0578 14.5442 8.95028C14.9511 6.64942 14.7827 4.32717 14.649 3.16348C14.5943 2.68684 14.2777 2.297 13.8444 2.13341L8.40659 0.0802621C8.27508 0.0306103 8.13776 0.00385974 8.00001 0C7.86226 0.00385974 7.72494 0.0306104 7.59343 0.0802621L2.15565 2.13341C1.72235 2.297 1.40573 2.68684 1.35099 3.16348ZM8.35324 1.55659C8.1256 1.47064 7.87443 1.47064 7.64678 1.55659L3.07593 3.28241C2.86478 3.36213 2.71558 3.55318 2.69476 3.77792C2.58482 4.96465 2.50773 6.85903 2.83446 8.70646C3.25972 11.111 4.97181 13.092 7.74947 14.4415C7.90759 14.5184 8.09243 14.5184 8.25055 14.4415C11.0282 13.092 12.7403 11.111 13.1656 8.70646C13.4923 6.85902 13.4152 4.96464 13.3053 3.77792C13.2844 3.55318 13.1352 3.36213 12.9241 3.28241L8.35324 1.55659Z\",\n fill: \"currentColor\"\n}));\nvar Secure_default = SvgSecure;\nvar SvgSettings = (props) => /* @__PURE__ */ React84.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React84.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.4001 8C13.4001 8.07663 13.3982 8.15234 13.3948 8.22714C13.3816 8.51013 13.493 8.78846 13.7177 8.96108L14.8582 9.8375C15.0022 9.9425 15.0382 10.1262 14.9482 10.2837L13.5081 12.7075C13.4181 12.865 13.2291 12.9263 13.0671 12.865L11.6863 12.3253C11.4309 12.2255 11.1444 12.267 10.9122 12.4129C10.7734 12.5001 10.6302 12.5818 10.4824 12.657C10.2273 12.7867 10.0356 13.0221 9.99442 13.3053L9.79104 14.7025C9.77304 14.8775 9.62004 15 9.44003 15H6.55997C6.37996 15 6.23596 14.8775 6.19996 14.7025L5.99658 13.3052C5.95536 13.022 5.76365 12.7869 5.50828 12.6577C5.3613 12.5834 5.21886 12.5024 5.07977 12.4149C4.84683 12.2683 4.55931 12.2258 4.30296 12.326L2.92388 12.865C2.76188 12.9175 2.57287 12.865 2.48287 12.7075L1.04284 10.2837C0.961835 10.135 0.997836 9.9425 1.13284 9.8375L2.27003 8.97397C2.50616 8.79467 2.61827 8.4995 2.60459 8.20333C2.60145 8.13524 2.59987 8.06724 2.59987 8C2.59987 7.93253 2.60225 7.86429 2.60653 7.79596C2.62507 7.50005 2.51516 7.20533 2.27903 7.02603L1.14184 6.1625C0.997836 6.0575 0.961835 5.87375 1.05184 5.71625L2.49187 3.2925C2.58187 3.135 2.77088 3.07375 2.93288 3.135L4.31374 3.67468C4.56912 3.7745 4.85563 3.73298 5.08781 3.5871C5.22657 3.49992 5.36984 3.41818 5.51762 3.34303C5.77271 3.21332 5.96436 2.97795 6.00558 2.69475L6.20896 1.2975C6.23596 1.1225 6.37996 1 6.55997 1H9.44003C9.62004 1 9.77304 1.1225 9.80004 1.2975L10.0034 2.69475C10.0446 2.97795 10.2363 3.21314 10.4917 3.3423C10.6387 3.41664 10.7811 3.49758 10.9202 3.58513C11.1532 3.73175 11.4407 3.77418 11.697 3.67399L13.0761 3.135C13.2381 3.0825 13.4271 3.135 13.5171 3.2925L14.9572 5.71625C15.0382 5.865 15.0022 6.0575 14.8672 6.1625L13.73 7.02603C13.4938 7.20533 13.3822 7.50045 13.3956 7.79664C13.3986 7.86369 13.4001 7.93148 13.4001 8ZM8 11C9.65685 11 11 9.65685 11 8C11 6.34315 9.65685 5 8 5C6.34315 5 5 6.34315 5 8C5 9.65685 6.34315 11 8 11Z\",\n fill: \"currentColor\"\n}));\nvar Settings_default = SvgSettings;\nvar SvgShare = (props) => /* @__PURE__ */ React85.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React85.createElement(\"path\", {\n d: \"M8.41547 0.240015C8.22802 0.0525634 7.9241 0.0525633 7.73665 0.240015L2.92584 5.05083C2.73839 5.23828 2.73839 5.5422 2.92584 5.72965L3.37839 6.1822C3.56584 6.36965 3.86976 6.36965 4.05721 6.1822L7.27606 2.96335V10.8853C7.27606 11.1504 7.49096 11.3653 7.75606 11.3653H8.39606C8.66116 11.3653 8.87606 11.1504 8.87606 10.8853V2.96335L12.0949 6.1822C12.2824 6.36965 12.5863 6.36965 12.7737 6.1822L13.2263 5.72965C13.4137 5.5422 13.4137 5.23828 13.2263 5.05083L8.41547 0.240015Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React85.createElement(\"path\", {\n d: \"M0 9.11061C0 8.84552 0.214904 8.63062 0.480001 8.63062H1.12C1.3851 8.63062 1.6 8.84552 1.6 9.11061V13.2339C1.6 13.823 2.07756 14.3006 2.66667 14.3006H13.3333C13.9224 14.3006 14.4 13.823 14.4 13.2339V9.11061C14.4 8.84552 14.6149 8.63062 14.88 8.63062H15.52C15.7851 8.63062 16 8.84552 16 9.11061V13.2339C16 14.7067 14.8061 15.9006 13.3333 15.9006H2.66667C1.19391 15.9006 0 14.7067 0 13.2339V9.11061Z\",\n fill: \"currentColor\"\n}));\nvar Share_default = SvgShare;\nvar SvgSort = (props) => /* @__PURE__ */ React86.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React86.createElement(\"path\", {\n d: \"M4.16607 10.288C4.16607 10.6592 4.51303 10.96 4.94102 10.96C5.36902 10.96 5.71598 10.6592 5.71598 10.288V4.29573L7.55911 5.89401C7.86174 6.15644 8.35242 6.15644 8.65505 5.89401C8.95769 5.63157 8.95769 5.20608 8.65505 4.94365L5.51772 2.2231C5.37585 2.08614 5.17004 2 4.94102 2C4.7121 2 4.50635 2.08608 4.36449 2.22295L1.22698 4.94365C0.92434 5.20608 0.92434 5.63157 1.22698 5.894C1.52962 6.15644 2.02029 6.15644 2.32293 5.894L4.16607 4.29571V10.288Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React86.createElement(\"path\", {\n d: \"M11.8339 5.71197C11.8339 5.34083 11.487 5.03996 11.059 5.03996C10.631 5.03996 10.284 5.34083 10.284 5.71197V11.7043L8.44089 10.106C8.13826 9.84356 7.64758 9.84356 7.34495 10.106C7.04231 10.3684 7.04231 10.7939 7.34495 11.0563L10.4823 13.7769C10.6241 13.9139 10.83 14 11.059 14C11.2879 14 11.4936 13.9139 11.6355 13.7771L14.773 11.0564C15.0757 10.7939 15.0757 10.3684 14.773 10.106C14.4704 9.84356 13.9797 9.84356 13.6771 10.106L11.8339 11.7043V5.71197Z\",\n fill: \"currentColor\"\n}));\nvar Sort_default = SvgSort;\nvar SvgSpeedHigh = (props) => /* @__PURE__ */ React87.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React87.createElement(\"g\", {\n clipPath: \"url(#clip0_940_7297)\"\n}, /* @__PURE__ */ React87.createElement(\"path\", {\n opacity: 0.2,\n d: \"M12.9497 15.2657C13.3403 15.6562 13.9792 15.6595 14.3183 15.2236C15.3723 13.8686 16 12.1656 16 10.3159C16 5.89764 12.4183 2.31592 8 2.31592C3.58172 2.31592 0 5.89764 0 10.3159C0 12.1656 0.62771 13.8686 1.68172 15.2236C2.02082 15.6595 2.65973 15.6562 3.05025 15.2657L8 10.3159L12.9497 15.2657Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React87.createElement(\"path\", {\n opacity: 0.3,\n d: \"M13.6569 4.65906L3.05025 15.2657C2.65973 15.6562 2.02082 15.6595 1.68172 15.2236C0.62771 13.8686 0 12.1656 0 10.3159C0 5.89764 3.58172 2.31592 8 2.31592C10.2091 2.31592 12.2091 3.21135 13.6569 4.65906Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React87.createElement(\"path\", {\n d: \"M15.2679 3.03131L9.47324 11.4018L9.47215 11.4008C9.13915 11.8519 8.60374 12.1445 8 12.1445C6.99011 12.1445 6.17143 11.3258 6.17143 10.3159C6.17143 9.7282 6.44871 9.20523 6.8796 8.8707L6.88195 8.86889C6.93064 8.83121 6.9813 8.79593 7.03372 8.76323L15.2679 3.03131Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React87.createElement(\"defs\", null, /* @__PURE__ */ React87.createElement(\"clipPath\", {\n id: \"clip0_940_7297\"\n}, /* @__PURE__ */ React87.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar SpeedHigh_default = SvgSpeedHigh;\nvar SvgSpeedLow = (props) => /* @__PURE__ */ React88.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React88.createElement(\"g\", {\n clipPath: \"url(#clip0_940_7287)\"\n}, /* @__PURE__ */ React88.createElement(\"path\", {\n opacity: 0.2,\n d: \"M12.9497 15.2657C13.3403 15.6562 13.9792 15.6595 14.3183 15.2236C15.3723 13.8686 16 12.1656 16 10.3159C16 5.89764 12.4183 2.31592 8 2.31592C3.58172 2.31592 0 5.89764 0 10.3159C0 12.1656 0.62771 13.8686 1.68172 15.2236C2.02082 15.6595 2.65973 15.6562 3.05025 15.2657L8 10.3159L12.9497 15.2657Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React88.createElement(\"path\", {\n opacity: 0.3,\n d: \"M2.34315 4.65912L8 10.316L3.05025 15.2657C2.65973 15.6562 2.02082 15.6596 1.68172 15.2237C0.62771 13.8686 0 12.1656 0 10.316C0 8.10683 0.895431 6.10683 2.34315 4.65912Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React88.createElement(\"path\", {\n d: \"M0.715302 3.04803L9.08584 8.84268L9.08477 8.84377C9.5359 9.17677 9.8285 9.71217 9.8285 10.3159C9.8285 11.3258 9.00982 12.1445 7.99993 12.1445C7.41219 12.1445 6.88922 11.8672 6.55469 11.4363L6.55288 11.434C6.5152 11.3853 6.47992 11.3346 6.44722 11.2822L0.715302 3.04803Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React88.createElement(\"defs\", null, /* @__PURE__ */ React88.createElement(\"clipPath\", {\n id: \"clip0_940_7287\"\n}, /* @__PURE__ */ React88.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar SpeedLow_default = SvgSpeedLow;\nvar SvgSpeedMedium = (props) => /* @__PURE__ */ React89.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React89.createElement(\"g\", {\n clipPath: \"url(#clip0_940_7294)\"\n}, /* @__PURE__ */ React89.createElement(\"path\", {\n opacity: 0.2,\n d: \"M12.9497 15.2657C13.3403 15.6562 13.9792 15.6595 14.3183 15.2236C15.3723 13.8686 16 12.1656 16 10.3159C16 5.89764 12.4183 2.31592 8 2.31592C3.58172 2.31592 0 5.89764 0 10.3159C0 12.1656 0.62771 13.8686 1.68172 15.2236C2.02082 15.6595 2.65973 15.6562 3.05025 15.2657L8 10.3159L12.9497 15.2657Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React89.createElement(\"path\", {\n opacity: 0.3,\n d: \"M8 2.31592C3.58172 2.31592 0 5.89764 0 10.3159C0 12.1656 0.62771 13.8686 1.68172 15.2236C2.02082 15.6595 2.65973 15.6562 3.05025 15.2657L8 10.3159V2.31592Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React89.createElement(\"path\", {\n d: \"M7.9881 0.0272217L9.80953 10.0435L9.808 10.0435C9.89153 10.598 9.71984 11.1835 9.29293 11.6104C8.57883 12.3245 7.42104 12.3245 6.70694 11.6104C6.29135 11.1948 6.11762 10.6289 6.18576 10.0877L6.18614 10.0848C6.19392 10.0237 6.2048 9.96292 6.21875 9.90273L7.9881 0.0272217Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React89.createElement(\"defs\", null, /* @__PURE__ */ React89.createElement(\"clipPath\", {\n id: \"clip0_940_7294\"\n}, /* @__PURE__ */ React89.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n}))));\nvar SpeedMedium_default = SvgSpeedMedium;\nvar SvgSsid = (props) => /* @__PURE__ */ React90.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React90.createElement(\"g\", {\n opacity: 0.2\n}, /* @__PURE__ */ React90.createElement(\"path\", {\n d: \"M12.3977 11.9333H3.60233C4.68266 13.1404 6.25262 13.9 8 13.9C9.74738 13.9 11.3173 13.1404 12.3977 11.9333Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React90.createElement(\"path\", {\n d: \"M12.3977 4.06667H3.60233C4.68266 2.85963 6.25262 2.10001 8 2.10001C9.74738 2.10001 11.3173 2.85963 12.3977 4.06667Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React90.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4 4C2.34315 4 1 5.34315 1 7V9C1 10.6569 2.34315 12 4 12H12C13.6569 12 15 10.6569 15 9V7C15 5.34315 13.6569 4 12 4H4ZM13.8 7.00001C13.8 6.0059 12.9941 5.20001 12 5.20001H10.5517C9.88874 5.20001 9.30438 5.63527 9.11454 6.27051L8.73377 7.54465C8.28655 9.04116 7.00917 10.1405 5.46272 10.3597L5.31185 10.3811C5.05861 10.427 5.09214 10.8 5.3495 10.8H8H12C12.9941 10.8 13.8 9.99412 13.8 9.00001V7.00001Z\",\n fill: \"currentColor\"\n}));\nvar SSID_default = SvgSsid;\nvar SvgSwitch = (props) => /* @__PURE__ */ React91.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M4.40005 5C4.06868 5 3.80005 5.26863 3.80005 5.6C3.80005 5.93137 4.06868 6.2 4.40005 6.2H5.60005C5.93142 6.2 6.20005 5.93137 6.20005 5.6C6.20005 5.26863 5.93142 5 5.60005 5H4.40005Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M7.40005 5C7.06868 5 6.80005 5.26863 6.80005 5.6C6.80005 5.93137 7.06868 6.2 7.40005 6.2H8.60005C8.93142 6.2 9.20005 5.93137 9.20005 5.6C9.20005 5.26863 8.93142 5 8.60005 5H7.40005Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M10.4 5C10.0687 5 9.80005 5.26863 9.80005 5.6C9.80005 5.93137 10.0687 6.2 10.4 6.2H11.6C11.9314 6.2 12.2 5.93137 12.2 5.6C12.2 5.26863 11.9314 5 11.6 5H10.4Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M3.80005 10.8C3.80005 10.4686 4.06868 10.2 4.40005 10.2H5.60005C5.93142 10.2 6.20005 10.4686 6.20005 10.8C6.20005 11.1314 5.93142 11.4 5.60005 11.4H4.40005C4.06868 11.4 3.80005 11.1314 3.80005 10.8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M6.80005 10.8C6.80005 10.4686 7.06868 10.2 7.40005 10.2H8.60005C8.93142 10.2 9.20005 10.4686 9.20005 10.8C9.20005 11.1314 8.93142 11.4 8.60005 11.4H7.40005C7.06868 11.4 6.80005 11.1314 6.80005 10.8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n d: \"M9.80005 10.8C9.80005 10.4686 10.0687 10.2 10.4 10.2H11.6C11.9314 10.2 12.2 10.4686 12.2 10.8C12.2 11.1314 11.9314 11.4 11.6 11.4H10.4C10.0687 11.4 9.80005 11.1314 9.80005 10.8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React91.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.6 2.2H3.4C2.07452 2.2 1 3.27451 1 4.6V6.2C1 6.91681 1.31425 7.56023 1.81251 8C1.31425 8.43976 1 9.08318 1 9.8V11.4C1 12.7255 2.07451 13.8 3.4 13.8H12.6C13.9255 13.8 15 12.7255 15 11.4V9.8C15 9.08318 14.6857 8.43976 14.1875 8C14.6857 7.56023 15 6.91681 15 6.2V4.6C15 3.27451 13.9255 2.2 12.6 2.2ZM2.2 4.6C2.2 3.93726 2.73726 3.4 3.4 3.4H12.6C13.2627 3.4 13.8 3.93726 13.8 4.6V6.2C13.8 6.86274 13.2627 7.4 12.6 7.4H3.4C2.73726 7.4 2.2 6.86274 2.2 6.2V4.6ZM2.2 9.8C2.2 9.13726 2.73726 8.6 3.4 8.6H12.6C13.2627 8.6 13.8 9.13726 13.8 9.8V11.4C13.8 12.0627 13.2627 12.6 12.6 12.6H3.4C2.73726 12.6 2.2 12.0627 2.2 11.4V9.8Z\",\n fill: \"currentColor\"\n}));\nvar Switch_default = SvgSwitch;\nvar SvgTag = (props) => /* @__PURE__ */ React92.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React92.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.1717 10.0705L10.0705 14.1717C9.36756 14.8747 8.22786 14.8747 7.52492 14.1717L2.42791 9.07473C1.87185 8.51866 1.54001 7.77732 1.49573 6.99217L1.30448 3.60105C1.26957 2.98193 1.50029 2.37728 1.93878 1.93879C2.37726 1.50031 2.98191 1.26958 3.60104 1.3045L6.99215 1.49575C7.7773 1.54002 8.51865 1.87186 9.07471 2.42793L14.1717 7.52494C14.8747 8.22788 14.8747 9.36758 14.1717 10.0705ZM9.22198 13.3232C8.98766 13.5575 8.60776 13.5575 8.37345 13.3232L3.27644 8.2262C2.9289 7.87866 2.7215 7.41532 2.69383 6.9246L2.50258 3.53349C2.48691 3.25557 2.59048 2.98415 2.78731 2.78732C2.98414 2.59049 3.25555 2.48692 3.53347 2.5026L6.92459 2.69384C7.4153 2.72152 7.87865 2.92891 8.22619 3.27645L13.3232 8.37346C13.5575 8.60778 13.5575 8.98768 13.3232 9.22199L9.22198 13.3232Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React92.createElement(\"path\", {\n d: \"M4.06006 5.7572C3.59143 5.28858 3.59143 4.52878 4.06006 4.06015C4.52869 3.59152 5.28849 3.59152 5.75712 4.06015C6.22575 4.52878 6.22575 5.28858 5.75712 5.7572C5.28849 6.22583 4.52869 6.22583 4.06006 5.7572Z\",\n fill: \"currentColor\"\n}));\nvar Tag_default = SvgTag;\nvar SvgTrafficShaping = (props) => /* @__PURE__ */ React93.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React93.createElement(\"path\", {\n opacity: 0.2,\n d: \"M10.4242 8.06481C10.769 7.46765 11.6309 7.46765 11.9757 8.06481L15.0786 13.4392C15.4234 14.0364 14.9924 14.7828 14.3029 14.7828H8.09703C7.40749 14.7828 6.97652 14.0364 7.32129 13.4392L10.4242 8.06481Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React93.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.00189 13.7584C3.04479 13.2305 0.800049 10.6459 0.800049 7.53704C0.800049 4.0466 3.62961 1.21704 7.12005 1.21704C10.6105 1.21704 13.44 4.0466 13.44 7.53704C13.44 7.744 13.4301 7.94864 13.4107 8.15051L13.0148 7.46486C12.7861 7.06867 12.46 6.78483 12.0919 6.61333C11.7658 4.84688 10.5214 3.40227 8.87235 2.79294C8.73378 2.74174 8.61955 2.89777 8.69892 3.02235C9.27668 3.92925 9.90551 5.22189 10.0769 6.73944C9.80403 6.91199 9.56447 7.1538 9.38488 7.46486L8.77444 8.52216C8.78437 8.46314 8.7935 8.40372 8.80178 8.34392C8.81468 8.25077 8.7413 8.16905 8.64726 8.16905H5.58225C5.48951 8.16905 5.41657 8.24864 5.42696 8.34079C5.60868 9.95251 6.30662 11.1401 6.85439 11.8478L6.28195 12.8393C6.1103 13.1366 6.02084 13.4497 6.00189 13.7584ZM7.20044 13.8565C7.2051 13.7167 7.2434 13.5742 7.32129 13.4392L10.0134 8.77636C10.0134 8.77629 10.0134 8.77622 10.0134 8.77615L7.32118 13.4393C7.24329 13.5742 7.205 13.7167 7.20033 13.8565C7.20037 13.8565 7.2004 13.8565 7.20044 13.8565ZM10.364 8.16905H10.364L10.4242 8.06481C10.5272 7.88638 10.6764 7.76127 10.8442 7.68947C10.6764 7.76126 10.5271 7.88639 10.4241 8.06486L10.364 8.16905ZM4.15366 8.31539C4.14607 8.23303 4.07751 8.16905 3.9948 8.16905H2.28209C2.18708 8.16905 2.11336 8.2524 2.12845 8.34621C2.41365 10.1192 3.62077 11.5839 5.24245 12.2329C5.38223 12.2889 5.50073 12.1294 5.41981 12.0025C4.86137 11.1264 4.29829 9.88568 4.15366 8.31539ZM8.64726 6.90505C8.7413 6.90505 8.81468 6.82334 8.80178 6.73018C8.56892 5.04844 7.6668 3.66816 7.09499 2.94356C7.09265 2.9406 7.08836 2.94057 7.08589 2.94342C6.52485 3.59129 5.6356 4.8827 5.42695 6.73331C5.41657 6.82546 5.48951 6.90505 5.58224 6.90505H8.64726ZM3.9948 6.90505C4.07751 6.90505 4.14607 6.84107 4.15366 6.75871C4.29828 5.18842 4.86137 3.94766 5.4198 3.07162C5.50073 2.94466 5.38223 2.78522 5.24245 2.84115C3.62077 3.49015 2.41364 4.95486 2.12845 6.72789C2.11336 6.8217 2.18707 6.90505 2.28209 6.90505H3.9948Z\",\n fill: \"currentColor\"\n}));\nvar TrafficShaping_default = SvgTrafficShaping;\nvar SvgUpload = (props) => /* @__PURE__ */ React94.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React94.createElement(\"path\", {\n d: \"M8.8862 11.1C8.8862 11.5971 8.48326 12 7.98621 12C7.48915 12 7.0862 11.5971 7.0862 11.1V3.07463L4.94566 5.21517C4.59419 5.56664 4.02434 5.56664 3.67287 5.21517C3.3214 4.86369 3.3214 4.29385 3.67287 3.94237L7.31645 0.298799C7.48121 0.115372 7.72024 0 7.98621 0C8.25207 0 8.49101 0.115282 8.65577 0.298586L12.2996 3.94237C12.651 4.29384 12.651 4.86369 12.2996 5.21516C11.9481 5.56663 11.3782 5.56663 11.0268 5.21516L8.8862 3.07461V11.1Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React94.createElement(\"path\", {\n d: \"M14.8002 14.8105C13.8002 15.8134 10.2188 16 8.00946 16C5.80015 16 2.21878 15.8134 1.21877 14.8105C0.7982 14.3887 0.513376 13.5998 0.324504 12.6241C0.26008 12.2913 0.500301 11.9813 0.83708 11.9427C1.15904 11.9059 1.44982 12.1316 1.51312 12.4494C1.57909 12.7806 1.65467 13.0713 1.73907 13.3167C1.87494 13.7118 2.00268 13.8972 2.06853 13.9632C2.10927 14.0041 2.29318 14.1327 2.74663 14.2734C3.16864 14.4043 3.70613 14.5105 4.31845 14.5918C5.5404 14.7539 6.92902 14.8 8.00946 14.8C9.08991 14.8 10.4785 14.7539 11.7005 14.5918C12.3128 14.5105 12.8503 14.4043 13.2723 14.2734C13.7258 14.1327 13.9097 14.004 13.9504 13.9632C14.0127 13.9007 14.1376 13.7199 14.2694 13.3262C14.3512 13.0818 14.4237 12.792 14.4863 12.4613C14.5467 12.1429 14.8353 11.9145 15.1576 11.9484C15.4947 11.9838 15.7378 12.2916 15.6765 12.625C15.4972 13.6002 15.2206 14.3888 14.8002 14.8105Z\",\n fill: \"currentColor\"\n}));\nvar Upload_default = SvgUpload;\nvar SvgUser = (props) => /* @__PURE__ */ React95.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React95.createElement(\"path\", {\n opacity: 0.2,\n d: \"M5.88402 8.51589C4.05932 9.25077 2.70049 10.9079 2.37694 12.9143C2.31489 13.2991 2.62893 13.6244 3.01636 13.6244H12.9836C13.371 13.6244 13.6851 13.2991 13.623 12.9143C13.2994 10.9078 11.9406 9.25074 10.1159 8.51587C9.53387 8.97804 8.79892 9.25385 7.99994 9.25385C7.20097 9.25385 6.46602 8.97804 5.88402 8.51589Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React95.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.1159 8.51585C10.5684 8.6981 10.9923 8.93708 11.3789 9.22404C12.551 10.0942 13.3797 11.4054 13.623 12.9143C13.6851 13.2991 13.371 13.6244 12.9836 13.6244H3.01638C2.62896 13.6244 2.31492 13.2991 2.37696 12.9143C2.62028 11.4055 3.44902 10.0942 4.62107 9.22408C5.00761 8.93712 5.4315 8.69813 5.88404 8.51588C5.50937 8.21836 5.19809 7.84361 4.97392 7.41551C4.72355 6.93739 4.58185 6.39272 4.58185 5.81474C4.58185 3.91538 6.11218 2.37564 7.99995 2.37564C9.88771 2.37564 11.418 3.91538 11.418 5.81474C11.418 6.3927 11.2763 6.93736 11.026 7.41547C10.8018 7.84358 10.4906 8.21833 10.1159 8.51585ZM12.1997 8.12392C12.5727 7.43858 12.7853 6.65152 12.7853 5.81474C12.7853 3.15563 10.6428 1 7.99995 1C5.35708 1 3.21461 3.15563 3.21461 5.81474C3.21461 6.65155 3.42724 7.43863 3.80023 8.12398C2.35272 9.20226 1.32886 10.8244 1.02737 12.694C0.811676 14.0315 1.90762 15 3.01638 15H12.9836C14.0924 15 15.1883 14.0315 14.9726 12.694C14.6711 10.8244 13.6472 9.2022 12.1997 8.12392Z\",\n fill: \"currentColor\"\n}));\nvar User_default = SvgUser;\nvar SvgVersion = (props) => /* @__PURE__ */ React96.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React96.createElement(\"path\", {\n d: \"M3.34375 3H2.62C2.00144 3 1.5 3.51168 1.5 4.14286V11.8571C1.5 12.4883 2.00144 13 2.62 13H3.34375V12H2.62C2.54268 12 2.48 11.936 2.48 11.8571V4.14286C2.48 4.06396 2.54268 4 2.62 4H3.34375V3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React96.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5 6.56273C14.5 6.35056 14.4157 6.14708 14.2657 5.99705L9.50295 1.23431C9.35292 1.08429 9.14944 1 8.93727 1H6.1C5.21634 1 4.5 1.71635 4.5 2.6V13.4C4.5 14.2837 5.21634 15 6.1 15H12.9C13.7837 15 14.5 14.2837 14.5 13.4V6.56273ZM8.68918 2.59956C8.68894 2.48927 8.59947 2.4 8.48918 2.4H6.1C5.98954 2.4 5.9 2.48954 5.9 2.6V13.4C5.9 13.5105 5.98954 13.6 6.1 13.6H12.9C13.0105 13.6 13.1 13.5105 13.1 13.4V7.21329C13.1 6.99238 12.9209 6.81329 12.7 6.81329H9.29063C8.95926 6.81329 8.69063 6.54466 8.69063 6.21329V3.25391L8.68918 2.59956Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React96.createElement(\"path\", {\n d: \"M8.9387 11.4565C8.99966 11.5145 9.09827 11.5145 9.15925 11.4565L12.154 8.60566C12.2153 8.5473 12.2153 8.45245 12.154 8.39411L11.7858 8.04353C11.7248 7.98549 11.6262 7.98549 11.5652 8.04353L9.04897 10.4388L7.83481 9.28301C7.77385 9.22497 7.67523 9.22496 7.61426 9.283L7.24599 9.63358C7.18468 9.69195 7.18469 9.78679 7.24598 9.84514L8.9387 11.4565Z\",\n fill: \"currentColor\"\n}));\nvar Version_default = SvgVersion;\nvar SvgVlan = (props) => /* @__PURE__ */ React97.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React97.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.70349 0.797376C9.95349 1.04811 10 1.81779 10 2.5C10 3.18221 9.95349 3.95189 9.70349 4.20262C9.53237 4.37425 9.05888 4.45025 8.6 4.48113L8.6 6.9H11C12.4359 6.9 13.6 8.06406 13.6 9.5L13.6 11.5189C14.0589 11.5498 14.5324 11.6258 14.7035 11.7974C14.9535 12.0481 15 12.8178 15 13.5C15 14.1822 14.9535 14.9519 14.7035 15.2026C14.4535 15.4534 13.5581 15.5 13.0058 15.5C12.4535 15.5 11.5581 15.4534 11.3081 15.2026C11.0581 14.9519 11 14.1822 11 13.5C11 12.8178 11.0581 12.0481 11.3081 11.7974C11.4778 11.6272 11.9448 11.551 12.4 11.5197L12.4 9.5C12.4 8.7268 11.7732 8.1 11 8.1H8.6L8.6 11.5189C9.05888 11.5498 9.53237 11.6258 9.70349 11.7974C9.95349 12.0481 10 12.8178 10 13.5C10 14.1822 9.95349 14.9519 9.70349 15.2026C9.45349 15.4534 8.55814 15.5 8.00581 15.5C7.45349 15.5 6.55814 15.4534 6.30814 15.2026C6.05814 14.9519 6 14.1822 6 13.5C6 12.8178 6.05814 12.0481 6.30814 11.7974C6.47782 11.6272 6.94478 11.551 7.4 11.5197L7.4 8.1H5C4.2268 8.1 3.6 8.7268 3.6 9.5L3.6 11.5189C4.05888 11.5498 4.53237 11.6258 4.70349 11.7974C4.95349 12.0481 5 12.8178 5 13.5C5 14.1822 4.95349 14.9519 4.70349 15.2026C4.45349 15.4534 3.55814 15.5 3.00581 15.5C2.45349 15.5 1.55814 15.4534 1.30814 15.2026C1.05814 14.9519 1 14.1822 1 13.5C1 12.8178 1.05814 12.0481 1.30814 11.7974C1.47782 11.6272 1.94478 11.551 2.4 11.5197L2.4 9.5C2.4 8.06406 3.56406 6.9 5 6.9H7.4L7.4 4.48033C6.94478 4.44896 6.47782 4.3728 6.30814 4.20262C6.05814 3.95189 6 3.18221 6 2.5C6 1.81779 6.05814 1.04811 6.30814 0.797376C6.55814 0.546647 7.45349 0.5 8.00581 0.5C8.55814 0.5 9.45349 0.546647 9.70349 0.797376Z\",\n fill: \"currentColor\"\n}));\nvar VLAN_default = SvgVlan;\nvar SvgWarning = (props) => /* @__PURE__ */ React98.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React98.createElement(\"path\", {\n opacity: 0.2,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.11579 13.6277L7.03086 1.52418C7.43017 0.825272 8.56983 0.825272 8.96914 1.52418L15.8842 13.6277C16.2444 14.2582 15.7205 15 14.9151 15H1.08493C0.279452 15 -0.244431 14.2582 0.11579 13.6277Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React98.createElement(\"path\", {\n d: \"M8.02201 4.20001C8.44544 4.20001 8.78584 4.54933 8.77578 4.97352L8.66847 9.49879C8.65984 9.86289 8.36281 10.1535 7.99936 10.1535C7.63642 10.1535 7.33962 9.86368 7.33028 9.50011L7.21403 4.97501C7.20312 4.55026 7.54376 4.20001 7.96777 4.20001H8.02201Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React98.createElement(\"path\", {\n d: \"M8.00589 12.7C7.75491 12.7 7.53922 12.6175 7.35883 12.4524C7.18628 12.2795 7.10001 12.0673 7.10001 11.8158C7.10001 11.5643 7.18628 11.356 7.35883 11.191C7.53922 11.0181 7.75491 10.9316 8.00589 10.9316C8.24903 10.9316 8.45687 11.0181 8.62942 11.191C8.80981 11.356 8.90001 11.5643 8.90001 11.8158C8.90001 12.0673 8.80981 12.2795 8.62942 12.4524C8.45687 12.6175 8.24903 12.7 8.00589 12.7Z\",\n fill: \"currentColor\"\n}));\nvar Warning_default = SvgWarning;\nvar SvgWidth = (props) => /* @__PURE__ */ React99.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React99.createElement(\"path\", {\n opacity: 0.75,\n d: \"M9.52024 9.3C9.79763 9.3 10.0251 9.0306 9.99776 8.70084C9.7461 5.66845 7.60458 3.3 5 3.3C2.39542 3.3 0.253902 5.66845 0.00223672 8.70084C-0.0251303 9.0306 0.202372 9.3 0.479757 9.3H9.52024Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n opacity: 0.5,\n d: \"M15.5202 9.3C15.7976 9.3 16.0251 9.0306 15.9978 8.70084C15.7461 5.66845 13.6046 3.3 11 3.3C8.39542 3.3 6.2539 5.66845 6.00224 8.70084C5.97487 9.0306 6.20237 9.3 6.47976 9.3H15.5202Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n d: \"M0 12.3C0 11.6373 0.537258 11.1 1.2 11.1C1.86274 11.1 2.4 11.6373 2.4 12.3C2.4 12.9627 1.86274 13.5 1.2 13.5C0.537258 13.5 0 12.9627 0 12.3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n d: \"M3.39999 12.3C3.39999 11.6373 3.93725 11.1 4.59999 11.1C5.26274 11.1 5.79999 11.6373 5.79999 12.3C5.79999 12.9627 5.26274 13.5 4.59999 13.5C3.93725 13.5 3.39999 12.9627 3.39999 12.3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n d: \"M7.99999 11.1C7.33725 11.1 6.79999 11.6373 6.79999 12.3C6.79999 12.9627 7.33725 13.5 7.99999 13.5C8.66273 13.5 9.19999 12.9627 9.19999 12.3C9.19999 11.6373 8.66273 11.1 7.99999 11.1Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n d: \"M10.2 12.3C10.2 11.6373 10.7373 11.1 11.4 11.1C12.0628 11.1 12.6 11.6373 12.6 12.3C12.6 12.9627 12.0628 13.5 11.4 13.5C10.7373 13.5 10.2 12.9627 10.2 12.3Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React99.createElement(\"path\", {\n d: \"M14.8 11.1C14.1373 11.1 13.6 11.6373 13.6 12.3C13.6 12.9627 14.1373 13.5 14.8 13.5C15.4627 13.5 16 12.9627 16 12.3C16 11.6373 15.4627 11.1 14.8 11.1Z\",\n fill: \"currentColor\"\n}));\nvar Width_default = SvgWidth;\nvar SvgWiFi = (props) => /* @__PURE__ */ React100.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React100.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00016 2.5C6.15262 2.5 4.45646 3.22195 3.25139 3.91077C2.64321 4.2584 2.14588 4.6058 1.79927 4.86732C1.62569 4.99829 1.48914 5.1083 1.39457 5.18683C1.34727 5.22611 1.31041 5.25757 1.28461 5.27989L1.25427 5.30638L1.24545 5.31419L1.24266 5.31668L1.24094 5.31822C1.24094 5.31822 1.24153 5.31909 1.29814 5.38642C1.35543 5.45457 1.47002 5.59086 1.69915 5.86357L1.24094 5.31822C0.949087 5.58037 0.918027 6.03752 1.17157 6.33928C1.42499 6.6409 1.86725 6.67275 2.15911 6.41101L2.16285 6.4077L2.18311 6.39002C2.20203 6.37366 2.23161 6.34838 2.27127 6.31545C2.35061 6.24956 2.47 6.15326 2.62455 6.03665C2.93421 5.80301 3.38189 5.49021 3.92874 5.17763C5.03371 4.54604 6.48762 3.94757 8.00016 3.94757C9.51269 3.94757 10.9666 4.54604 12.0716 5.17763C12.6184 5.49021 13.0661 5.80301 13.3758 6.03665C13.5303 6.15326 13.6497 6.24956 13.729 6.31545C13.7687 6.34838 13.7983 6.37366 13.8172 6.39002L13.8375 6.4077L13.8417 6.4115C14.1336 6.67313 14.5754 6.64087 14.8287 6.33928C15.0823 6.03752 15.0505 5.57972 14.7586 5.31757L14.7577 5.31668L14.7549 5.31419L14.746 5.30638L14.7157 5.27989C14.6899 5.25757 14.653 5.22611 14.6057 5.18683C14.5112 5.1083 14.3746 4.99829 14.201 4.86732C13.8544 4.6058 13.3571 4.2584 12.7489 3.91077C11.5438 3.22195 9.84769 2.5 8.00016 2.5ZM14.3003 5.86461C14.7594 5.31822 14.7586 5.31757 14.7586 5.31757L14.3003 5.86461Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React100.createElement(\"path\", {\n d: \"M4.88475 7.04064C5.66205 6.59634 6.77485 6.11892 8.00016 6.11892C9.22546 6.11892 10.3383 6.59634 11.1156 7.04064C11.5098 7.26601 11.8322 7.49115 12.0572 7.66098C12.1701 7.7461 12.2592 7.81791 12.3216 7.86969C12.3528 7.8956 12.3773 7.91655 12.3948 7.93171L12.4158 7.95001L12.4223 7.95573L12.4245 7.95769L12.4257 7.95877C12.7175 8.22092 12.7489 8.67835 12.4954 8.98012C12.2421 9.28156 11.8006 9.31393 11.5088 9.05268L11.4963 9.04184C11.4857 9.03264 11.4684 9.01787 11.4449 8.99831C11.3977 8.95916 11.3258 8.90107 11.232 8.83031C11.0438 8.68836 10.7712 8.49782 10.4382 8.30751C9.76102 7.92043 8.89045 7.56648 8.00016 7.56648C7.10986 7.56648 6.23929 7.92043 5.56211 8.30751C5.22915 8.49782 4.95647 8.68836 4.76834 8.83031C4.67456 8.90107 4.60257 8.95916 4.55543 8.99831C4.53188 9.01787 4.5146 9.03264 4.50396 9.04184L4.49307 9.05134C4.20121 9.31323 3.75842 9.28179 3.50495 8.98012C3.25141 8.67835 3.28247 8.2212 3.57433 7.95905L3.57584 7.95769L3.57804 7.95573L3.58449 7.95001L3.60546 7.93171C3.62298 7.91655 3.64753 7.8956 3.67873 7.86969C3.74109 7.81791 3.83025 7.7461 3.94307 7.66098C4.16815 7.49115 4.49047 7.26601 4.88475 7.04064Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React100.createElement(\"path\", {\n d: \"M6.51805 10.1705C6.86756 9.97074 7.39702 9.73783 8.00008 9.73783C8.60315 9.73783 9.13261 9.97074 9.48212 10.1705C9.66251 10.2736 9.80983 10.3765 9.91338 10.4546C9.96543 10.4939 10.0072 10.5275 10.0373 10.5525C10.0524 10.5651 10.0647 10.5755 10.0739 10.5835L10.0855 10.5937L10.0896 10.5973L10.0912 10.5987L10.0922 10.5996C10.0922 10.5996 10.0923 10.5997 10.0813 10.6129L10.0922 10.5996C10.2947 10.7815 10.372 11.0576 10.3154 11.3102C10.1938 12.2363 8.8604 13.5 8.00008 13.5C7.098 13.5 5.66673 12.1106 5.66673 11.1779L5.66686 11.1625C5.66246 10.9549 5.74411 10.7468 5.90764 10.5999L5.90895 10.5987L5.91056 10.5973L5.91464 10.5937L5.92624 10.5835C5.93548 10.5755 5.94773 10.5651 5.96282 10.5525C5.99298 10.5275 6.03474 10.4939 6.08679 10.4546C6.19034 10.3765 6.33766 10.2736 6.51805 10.1705Z\",\n fill: \"currentColor\"\n}));\nvar WiFi_default = SvgWiFi;\nvar SvgWired = (props) => /* @__PURE__ */ React101.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React101.createElement(\"path\", {\n d: \"M11.2665 11.8426C11.0445 11.6327 11.0445 11.2924 11.2665 11.0825L14.3487 8.1689C14.4474 8.07562 14.4474 7.92438 14.3487 7.83109L11.2665 4.91749C11.0445 4.7076 11.0445 4.3673 11.2665 4.15742C11.4886 3.94753 11.8486 3.94753 12.0706 4.15742L15.7335 7.61996C15.8167 7.69867 15.8688 7.79572 15.8896 7.89735C15.9243 8.06674 15.8723 8.24885 15.7335 8.38003L12.0706 11.8426C11.8485 12.0525 11.4886 12.0525 11.2665 11.8426Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React101.createElement(\"path\", {\n d: \"M4.73348 4.15742C4.95551 4.3673 4.95551 4.7076 4.73348 4.91749L1.65128 7.8311C1.5526 7.92438 1.5526 8.07562 1.65128 8.16891L4.73348 11.0825C4.95551 11.2924 4.95551 11.6327 4.73348 11.8426C4.51145 12.0525 4.15146 12.0525 3.92943 11.8426L0.266528 8.38004C0.183264 8.30133 0.131229 8.20428 0.110414 8.10265C0.0757214 7.93326 0.127761 7.75115 0.266527 7.61997L3.92943 4.15742C4.15146 3.94753 4.51145 3.94753 4.73348 4.15742Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React101.createElement(\"path\", {\n d: \"M5 7C5.55229 7 6 7.44771 6 8C6 8.55228 5.55229 9 5 9C4.44772 9 4 8.55228 4 8C4 7.44771 4.44772 7 5 7Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React101.createElement(\"path\", {\n d: \"M8.99999 8C8.99999 7.44771 8.55228 7 7.99999 7C7.44771 7 6.99999 7.44771 6.99999 8C6.99999 8.55228 7.44771 9 7.99999 9C8.55228 9 8.99999 8.55228 8.99999 8Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React101.createElement(\"path\", {\n d: \"M11 7C11.5523 7 12 7.44771 12 8C12 8.55228 11.5523 9 11 9C10.4477 9 9.99999 8.55228 9.99999 8C9.99999 7.44771 10.4477 7 11 7Z\",\n fill: \"currentColor\"\n}));\nvar Wired_default = SvgWired;\nvar SvgWrench = (props) => /* @__PURE__ */ React102.createElement(\"svg\", __spreadValues({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React102.createElement(\"path\", {\n d: \"M7.47157 4.77587C7.47157 2.69264 9.15343 1.00344 11.2294 1C11.2589 1.00005 11.2883 1.00044 11.3177 1.00117C11.703 1.01075 11.8352 1.46539 11.5627 1.73796L10.4174 2.88338C10.1201 3.18074 9.95342 3.58426 9.95421 4.00476C9.955 4.42318 10.1215 4.82424 10.4174 5.12014L10.8893 5.59215C11.1861 5.88899 11.5895 6.05438 12.0092 6.0513C12.4209 6.04827 12.8149 5.88339 13.106 5.59227L14.2561 4.44218C14.5313 4.167 14.9902 4.30049 14.999 4.68955C14.9996 4.71548 14.9999 4.74141 15 4.76735L14.9999 4.80313C14.9931 5.75879 14.6266 6.71184 13.8972 7.4412C12.9635 8.37526 11.6619 8.71568 10.4591 8.46614L10.4549 8.47038C10.1857 8.41341 9.92706 8.32758 9.68242 8.21626L3.29185 14.6068C2.76755 15.1311 1.91751 15.1311 1.39322 14.6068C0.868928 14.0825 0.868927 13.2325 1.39322 12.7082L7.79407 6.30735C7.58677 5.83928 7.47157 5.32107 7.47157 4.77587Z\",\n fill: \"currentColor\"\n}));\nvar Wrench_default = SvgWrench;\nvar IconSVG = {\n AccessControl: AccessControl_default,\n AccessPoint: AccessPoint_default,\n Area: Area_default,\n ArrowDown: ArrowDown_default,\n ArrowLeft: ArrowLeft_default,\n ArrowRight: ArrowRight_default,\n ArrowRotate: ArrowRotate_default,\n ArrowsDiagonal: ArrowsDiagonal_default,\n ArrowsMove: ArrowsMove_default,\n ArrowsVertical: ArrowsVertical_default,\n ArrowUp: ArrowUp_default,\n Attention: Attention_default,\n Bell: Bell_default,\n BellFilled: BellFilled_default,\n Bookmark: Bookmark_default,\n BookmarkFilled: BookmarkFilled_default,\n Calendar: Calendar_default,\n Changelog: Changelog_default,\n Channel: Channel_default,\n Chat: Chat_default,\n Checkmark: Checkmark_default,\n CheckmarkCircle: CheckmarkCircle_default,\n ChevronDown: ChevronDown_default,\n ChevronLeft: ChevronLeft_default,\n ChevronRight: ChevronRight_default,\n ChevronsVertical: ChevronsVertical_default,\n ChevronUp: ChevronUp_default,\n Client: Client_default,\n Clock: Clock_default,\n Cog: Cog_default,\n Company: Company_default,\n Connection: Connection_default,\n ContentFilter: ContentFilter_default,\n Controller: Controller_default,\n Copy: Copy_default,\n Cross: Cross_default,\n CrossCircle: CrossCircle_default,\n Delete: Delete_default,\n Device: Device_default,\n Document: Document_default,\n Download: Download_default,\n DrawerClose: DrawerClose_default,\n DrawerOpen: DrawerOpen_default,\n Email: Email_default,\n EyeClosed: EyeClosed_default,\n EyeOpen: EyeOpen_default,\n Filter: Filter_default,\n Floorplan: Floorplan_default,\n Fullscreen: Fullscreen_default,\n Globe: Globe_default,\n Home: Home_default,\n Information: Information_default,\n Internet: Internet_default,\n Location: Location_default,\n Log: Log_default,\n Megaphone: Megaphone_default,\n Menu: Menu_default,\n Minus: Minus_default,\n MinusCircle: MinusCircle_default,\n Noise: Noise_default,\n Onboarding: Onboarding_default,\n OverflowHorizontal: OverflowHorizontal_default,\n OverflowVertical: OverflowVertical_default,\n Padlock: Padlock_default,\n PaneLeft: PaneLeft_default,\n PaneRight: PaneRight_default,\n Pencil: Pencil_default,\n Phone: Phone_default,\n Placeholder: Placeholder_default,\n Plus: Plus_default,\n PlusCircle: PlusCircle_default,\n Portforwarding: Portforwarding_default,\n Power: Power_default,\n Pulse: Pulse_default,\n QRCode: QRCode_default,\n Question: Question_default,\n Reporting: Reporting_default,\n Search: Search_default,\n SearchScoped: SearchScoped_default,\n Secure: Secure_default,\n Settings: Settings_default,\n Share: Share_default,\n Sort: Sort_default,\n SpeedHigh: SpeedHigh_default,\n SpeedLow: SpeedLow_default,\n SpeedMedium: SpeedMedium_default,\n SSID: SSID_default,\n Switch: Switch_default,\n Tag: Tag_default,\n TrafficShaping: TrafficShaping_default,\n Upload: Upload_default,\n User: User_default,\n Version: Version_default,\n VLAN: VLAN_default,\n Warning: Warning_default,\n Width: Width_default,\n WiFi: WiFi_default,\n Wired: Wired_default,\n Wrench: Wrench_default\n};\nvar SvgApple = (props) => /* @__PURE__ */ React103.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React103.createElement(\"g\", {\n style: {\n mixBlendMode: \"multiply\"\n }\n}, /* @__PURE__ */ React103.createElement(\"path\", {\n d: \"M14.9866 18.0619C14.0223 18.9977 12.9584 18.8518 11.9443 18.4106C10.8661 17.9605 9.88047 17.932 8.74183 18.4106C7.32386 19.0226 6.57129 18.8447 5.71731 18.0619C0.895864 13.0981 1.60752 5.53679 7.08724 5.25212C8.41625 5.32329 9.34673 5.98691 10.1296 6.04206C11.2931 5.80543 12.4068 5.12759 13.6522 5.21654C15.1485 5.33752 16.2676 5.92819 17.0148 6.99034C13.9369 8.84063 14.6663 12.8971 17.4934 14.0357C16.9276 15.5213 16.2017 16.9891 14.9848 18.0743L14.9866 18.0619ZM10.0228 5.19875C9.87869 2.99263 11.6667 1.17791 13.7234 1C14.0063 3.54416 11.4105 5.44783 10.0228 5.19875Z\",\n fill: \"#D3D6E0\"\n}), /* @__PURE__ */ React103.createElement(\"path\", {\n d: \"M14.9866 18.0619C14.0223 18.9977 12.9584 18.8518 11.9443 18.4106C10.8661 17.9605 9.88047 17.932 8.74183 18.4106C7.32386 19.0226 6.57129 18.8447 5.71731 18.0619C0.895864 13.0981 1.60752 5.53679 7.08724 5.25212C8.41625 5.32329 9.34673 5.98691 10.1296 6.04206C11.2931 5.80543 12.4068 5.12759 13.6522 5.21654C15.1485 5.33752 16.2676 5.92819 17.0148 6.99034C13.9369 8.84063 14.6663 12.8971 17.4934 14.0357C16.9276 15.5213 16.2017 16.9891 14.9848 18.0743L14.9866 18.0619ZM10.0228 5.19875C9.87869 2.99263 11.6667 1.17791 13.7234 1C14.0063 3.54416 11.4105 5.44783 10.0228 5.19875Z\",\n fill: \"url(#paint0_linear_1_80)\",\n fillOpacity: 0.2\n})), /* @__PURE__ */ React103.createElement(\"defs\", null, /* @__PURE__ */ React103.createElement(\"linearGradient\", {\n id: \"paint0_linear_1_80\",\n x1: 6.09121,\n y1: 18.7778,\n x2: 14.4822,\n y2: 6.15754,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React103.createElement(\"stop\", {\n stopColor: \"#D6D6D8\"\n}), /* @__PURE__ */ React103.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FEFEFE\"\n}))));\nvar Apple_default = SvgApple;\nvar SvgChrome = (props) => /* @__PURE__ */ React104.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M2.40999 5.08688V11.9055H6.39173L9.8892 5.85048H17.8096C16.3353 2.96816 13.3436 1 9.8892 1C6.74686 1 3.99192 2.624 2.40999 5.08688Z\",\n fill: \"#DB4437\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M2.40999 5.08688V11.9055H6.39173L9.8892 5.85048H17.8096C16.3353 2.96816 13.3436 1 9.8892 1C6.74686 1 3.99192 2.624 2.40999 5.08688Z\",\n fill: \"url(#paint0_linear_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M2.40999 5.08673L6.40249 11.9161L6.48858 11.8623L2.47456 4.97918C2.45303 5.0222 2.43151 5.05447 2.40999 5.08673V5.08673Z\",\n fill: \"#3E2723\",\n fillOpacity: 0.15\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.46927 18.7571L13.3864 14.8423V11.9062H6.39149L2.40975 5.08754C1.51655 6.46418 1 8.12044 1 9.88425C1 14.6487 4.75575 18.542 9.46927 18.7571Z\",\n fill: \"#0F9D58\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.46927 18.7571L13.3864 14.8423V11.9062H6.39149L2.40975 5.08754C1.51655 6.46418 1 8.12044 1 9.88425C1 14.6487 4.75575 18.542 9.46927 18.7571Z\",\n fill: \"url(#paint1_linear_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.36166 18.7563C9.39394 18.7563 9.43699 18.7563 9.46927 18.7671L13.3111 12.0452L13.225 11.9914L9.36166 18.7563V18.7563Z\",\n fill: \"#263238\",\n fillOpacity: 0.15\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.46896 18.7569L13.3861 14.8421V11.906L9.46896 18.7569V18.7569Z\",\n fill: \"#FFCD40\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.46896 18.7569L13.3861 14.8421V11.906L9.46896 18.7569V18.7569Z\",\n fill: \"url(#paint2_linear_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88865 5.85056L13.3861 11.9056L9.46896 18.7565C9.60885 18.7673 9.74875 18.7673 9.88865 18.7673C14.7959 18.7673 18.7776 14.7879 18.7776 9.88366C18.7776 8.43174 18.4225 7.05511 17.8091 5.85056H9.88865V5.85056Z\",\n fill: \"#FFCD40\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88865 5.85056L13.3861 11.9056L9.46896 18.7565C9.60885 18.7673 9.74875 18.7673 9.88865 18.7673C14.7959 18.7673 18.7776 14.7879 18.7776 9.88366C18.7776 8.43174 18.4225 7.05511 17.8091 5.85056H9.88865V5.85056Z\",\n fill: \"url(#paint3_linear_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M17.8096 5.85056H9.88912V7.95853L17.8096 5.85056Z\",\n fill: \"url(#paint4_radial_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M2.40999 5.08754L6.39173 11.9062L8.19966 10.863L2.40999 5.08754Z\",\n fill: \"url(#paint5_radial_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M13.3861 11.9059L11.589 10.8627L9.46896 18.7568L13.3861 11.9059Z\",\n fill: \"url(#paint6_radial_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88942 13.9168C12.1182 13.9168 13.925 12.1111 13.925 9.88366C13.925 7.65624 12.1182 5.85056 9.88942 5.85056C7.66065 5.85056 5.85387 7.65624 5.85387 9.88366C5.85387 12.1111 7.66065 13.9168 9.88942 13.9168Z\",\n fill: \"#F1F1F1\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88943 13.1109C11.6724 13.1109 13.1179 11.6663 13.1179 9.88438C13.1179 8.10245 11.6724 6.6579 9.88943 6.6579C8.10642 6.6579 6.661 8.10245 6.661 9.88438C6.661 11.6663 8.10642 13.1109 9.88943 13.1109Z\",\n fill: \"#4285F4\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M17.756 5.74305H9.88936C7.66174 5.74305 5.85381 7.54988 5.85381 9.77616V9.87295C5.85381 7.64668 7.66174 5.83985 9.88936 5.83985H17.799C17.7883 5.80758 17.7775 5.77532 17.756 5.74305Z\",\n fill: \"#3E2723\",\n fillOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.9535 13.9174H9.88893C8.39309 13.9174 7.09096 13.1 6.39146 11.8954L2.40973 5.08754C2.39896 5.0983 2.3882 5.11981 2.37744 5.13056L6.39146 12.003C7.09096 13.2075 8.39309 14.0249 9.88893 14.0249C11.0081 14.0249 12.0305 13.5624 12.7622 12.8203C12.0412 13.4979 11.0619 13.9174 9.99655 13.9174C9.97503 13.9281 9.96426 13.9174 9.9535 13.9174V13.9174Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M11.2984 13.6696C11.32 13.6588 11.3415 13.6481 11.363 13.6481C11.3415 13.6481 11.32 13.6588 11.2984 13.6696Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M11.5031 13.583C11.5677 13.5615 11.6215 13.5292 11.686 13.4969C11.6215 13.5292 11.5677 13.5615 11.5031 13.583Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M11.1055 13.7348C11.1175 13.7348 11.1295 13.7228 11.1414 13.7228C11.1295 13.7228 11.1175 13.7348 11.1055 13.7348Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M11.7616 13.4656C11.8154 13.4441 11.8584 13.4118 11.9122 13.3795C11.8584 13.4118 11.8046 13.4333 11.7616 13.4656Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M13.9135 10.2062V10.1416C13.9242 10.1524 13.9242 10.1739 13.9135 10.2062Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M12.7622 12.8198L13.0205 12.5615L13.0636 12.4861C12.9667 12.6045 12.8698 12.7121 12.7622 12.8198V12.8198Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M13.8168 8.91657C13.9137 9.27148 13.9675 9.63715 13.9675 10.0243C13.9675 10.6374 13.8276 11.2074 13.5801 11.7344C13.8599 11.1859 14.0321 10.5513 14.0321 9.88451C14.0321 7.65824 12.2241 5.85141 9.99652 5.85141H9.94271C11.8152 5.87292 13.3864 7.17427 13.8168 8.91657V8.91657Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M13.8919 10.4432C13.8919 10.4217 13.8919 10.4109 13.9027 10.3894C13.8919 10.4109 13.8919 10.4324 13.8919 10.4432Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M11.1379 13.7233C11.1918 13.7018 11.2456 13.691 11.2886 13.6695C11.2456 13.691 11.1918 13.7018 11.1379 13.7233Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M11.3636 13.6484C11.4066 13.6269 11.4604 13.6161 11.5035 13.5946C11.4604 13.6053 11.4066 13.6269 11.3636 13.6484Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M11.9019 13.3797C11.9234 13.3689 11.9342 13.3582 11.9557 13.3474C11.9449 13.3582 11.9234 13.3689 11.9019 13.3797Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M11.6867 13.4975C11.7082 13.4867 11.7297 13.4759 11.762 13.4544C11.7297 13.4759 11.7082 13.4867 11.6867 13.4975Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M9.94271 13.9163H9.95347C10.3516 13.9056 10.7391 13.841 11.1049 13.7334C10.7391 13.8518 10.3516 13.9163 9.94271 13.9163Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M13.3863 11.9059C13.042 12.4975 12.5469 13.0029 11.955 13.3579C11.9335 13.3686 11.9228 13.3794 11.9012 13.3901C11.8474 13.4224 11.8044 13.4439 11.7506 13.4762C11.7291 13.4869 11.7075 13.4977 11.6752 13.5192C11.6214 13.5514 11.5569 13.573 11.4923 13.6052C11.4493 13.6267 11.3955 13.6482 11.3524 13.659C11.3309 13.6697 11.3094 13.6805 11.2878 13.6805C11.234 13.702 11.191 13.7128 11.1372 13.7343C11.1264 13.7343 11.1157 13.745 11.1049 13.745C10.739 13.8633 10.3516 13.9279 9.95341 13.9279H9.9857C11.0618 13.9279 12.0304 13.5084 12.7514 12.8309C12.859 12.7233 12.9559 12.605 13.0527 12.4867L13.3863 11.9059V11.9059Z\",\n fill: \"white\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n opacity: 0.1,\n d: \"M13.3863 11.9059C13.042 12.4975 12.5469 13.0029 11.955 13.3579C11.9335 13.3686 11.9228 13.3794 11.9012 13.3901C11.8474 13.4224 11.8044 13.4439 11.7506 13.4762C11.7291 13.4869 11.7075 13.4977 11.6752 13.5192C11.6214 13.5514 11.5569 13.573 11.4923 13.6052C11.4493 13.6267 11.3955 13.6482 11.3524 13.659C11.3309 13.6697 11.3094 13.6805 11.2878 13.6805C11.234 13.702 11.191 13.7128 11.1372 13.7343C11.1264 13.7343 11.1157 13.745 11.1049 13.745C10.739 13.8633 10.3516 13.9279 9.95341 13.9279H9.9857C11.0618 13.9279 12.0304 13.5084 12.7514 12.8309C12.859 12.7233 12.9559 12.605 13.0527 12.4867L13.3863 11.9059V11.9059Z\",\n fill: \"#3E2723\"\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M13.8165 8.91568C13.8058 8.87266 13.795 8.84039 13.7842 8.79737C13.8596 9.05549 13.9026 9.31361 13.9241 9.59324V9.61475C13.9349 9.70079 13.9349 9.79758 13.9349 9.88362C13.9349 9.96966 13.9349 10.0449 13.9241 10.131V10.1955C13.9241 10.26 13.9134 10.3246 13.9026 10.3891C13.9026 10.4106 13.9026 10.4214 13.8919 10.4429C13.8165 10.9699 13.6443 11.4538 13.3861 11.8948L13.0525 12.4756L13.0094 12.5508L9.4689 18.7457H9.58728L13.4291 12.0239C13.4829 11.9271 13.5367 11.8195 13.5905 11.712C13.8381 11.1957 13.978 10.615 13.978 10.0019C13.9672 9.63626 13.9134 9.27059 13.8165 8.91568Z\",\n fill: \"white\",\n fillOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88897 1.09679C14.7854 1.09679 18.7456 5.04386 18.7779 9.92661V9.87283C18.7779 4.97933 14.7962 1 9.88897 1C4.98174 1 1 4.97933 1 9.88359V9.93736C1.03228 5.05461 4.9925 1.09679 9.88897 1.09679Z\",\n fill: \"white\",\n fillOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88897 18.6703C14.7854 18.6703 18.7456 14.7232 18.7779 9.8405V9.89427C18.7779 14.7985 14.7962 18.7779 9.88897 18.7779C4.98174 18.7779 1 14.7878 1 9.88352V9.82974C1.03228 14.7125 4.9925 18.6703 9.88897 18.6703Z\",\n fill: \"#3E2723\",\n fillOpacity: 0.15\n}), /* @__PURE__ */ React104.createElement(\"path\", {\n d: \"M9.88897 18.7672C14.7982 18.7672 18.7779 14.7899 18.7779 9.88359C18.7779 4.97732 14.7982 1 9.88897 1C4.97973 1 1 4.97732 1 9.88359C1 14.7899 4.97973 18.7672 9.88897 18.7672Z\",\n fill: \"url(#paint7_radial_1_81)\"\n}), /* @__PURE__ */ React104.createElement(\"defs\", null, /* @__PURE__ */ React104.createElement(\"linearGradient\", {\n id: \"paint0_linear_1_81\",\n x1: 3.67726,\n y1: 8.65882,\n x2: 8.9793,\n y2: 5.55978,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#A52714\",\n stopOpacity: 0.6\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 0.66,\n stopColor: \"#A52714\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"linearGradient\", {\n id: \"paint1_linear_1_81\",\n x1: 11.8719,\n y1: 15.9828,\n x2: 5.98083,\n y2: 12.5299,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#055524\",\n stopOpacity: 0.4\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 0.33,\n stopColor: \"#055524\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"linearGradient\", {\n id: \"paint2_linear_1_81\",\n x1: 9.28666,\n y1: 5.95495,\n x2: 10.769,\n y2: 12.4498,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#EA6100\",\n stopOpacity: 0.3\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 0.66,\n stopColor: \"#EA6100\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"linearGradient\", {\n id: \"paint3_linear_1_81\",\n x1: 12.1763,\n y1: 5.29506,\n x2: 13.6586,\n y2: 11.7899,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#EA6100\",\n stopOpacity: 0.3\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 0.66,\n stopColor: \"#EA6100\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"radialGradient\", {\n id: \"paint4_radial_1_81\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(9.50429 5.84109) scale(8.4938 8.48867)\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#3E2723\",\n stopOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3E2723\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"radialGradient\", {\n id: \"paint5_radial_1_81\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(2.40246 5.09163) scale(7.88428 7.87951)\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#3E2723\",\n stopOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3E2723\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"radialGradient\", {\n id: \"paint6_radial_1_81\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(9.87359 9.89902) scale(8.87691 8.87154)\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"#263238\",\n stopOpacity: 0.2\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#263238\",\n stopOpacity: 0\n})), /* @__PURE__ */ React104.createElement(\"radialGradient\", {\n id: \"paint7_radial_1_81\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(3.6555 3.42449) scale(17.8558 17.845)\"\n}, /* @__PURE__ */ React104.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.1\n}), /* @__PURE__ */ React104.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n}))));\nvar Chrome_default = SvgChrome;\nvar SvgEcobee = (props) => /* @__PURE__ */ React105.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 20,\n viewBox: \"0 0 28 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React105.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.25792 8.33896C2.89433 8.33896 3.374 8.49987 3.69693 8.82187C4.01987 9.14387 4.18121 9.62447 4.18121 10.2636V10.6251H0.42504C0.434249 11.13 0.562053 11.5018 0.808329 11.7405C1.0546 11.9791 1.43074 12.0982 1.93754 12.0982H2.24392C2.6203 12.0982 2.92214 12.0404 3.14981 11.9245C3.37748 11.8086 3.5354 11.6372 3.62376 11.4104H4.06971C3.97675 11.7671 3.77708 12.0393 3.47044 12.2268C3.16381 12.4141 2.75968 12.5082 2.25798 12.5082H1.92329C1.28688 12.5082 0.807209 12.3473 0.484276 12.0253C0.161342 11.7033 0 11.2227 0 10.5833V10.2636C0 9.62441 0.161342 9.14387 0.484276 8.82187C0.807209 8.49987 1.28688 8.33896 1.92329 8.33896H2.25792V8.33896ZM7.01811 8.33896C7.58501 8.33896 8.02866 8.46751 8.34923 8.72455C8.66961 8.98159 8.86013 9.36488 8.92068 9.87436H8.49539C8.43503 9.49013 8.28284 9.20646 8.03893 9.02334C7.7952 8.84041 7.45024 8.74888 7.00404 8.74888H6.69741C6.18172 8.74888 5.80073 8.87395 5.55445 9.12414C5.30843 9.37428 5.18516 9.76123 5.18516 10.2845V10.5625C5.18516 11.0862 5.30843 11.4729 5.5547 11.7231C5.80073 11.9732 6.18172 12.0984 6.69766 12.0984H7.00404C7.45024 12.0984 7.79514 12.0068 8.03911 11.8239C8.28284 11.641 8.43503 11.3571 8.49539 10.9725H8.92043C8.86007 11.4822 8.66955 11.8655 8.34898 12.1228C8.0286 12.3798 7.5847 12.5083 7.01804 12.5083H6.68366C6.047 12.5083 5.56733 12.3474 5.24465 12.0254C4.92153 11.7034 4.76037 11.2228 4.76037 10.5834V10.2637C4.76037 9.62453 4.92147 9.14399 5.24465 8.82199C5.56733 8.49999 6.047 8.33908 6.68366 8.33908H7.01811V8.33896ZM11.7253 8.33896C12.3618 8.33896 12.8414 8.49987 13.1644 8.82187C13.4873 9.14387 13.6486 9.62447 13.6486 10.2636V10.5833C13.6486 11.2227 13.4873 11.7033 13.1644 12.0253C12.8417 12.3473 12.362 12.5082 11.7256 12.5082H11.3912C10.7546 12.5082 10.2749 12.3473 9.9522 12.0253C9.62926 11.7033 9.46792 11.2227 9.46792 10.5833V10.2636C9.46792 9.62441 9.62926 9.14387 9.9522 8.82187C10.2749 8.49987 10.7546 8.33896 11.3912 8.33896H11.7256H11.7253V8.33896ZM14.72 7V8.97836C14.8639 8.76512 15.0601 8.6054 15.3087 8.49868C15.5572 8.39222 15.8604 8.33896 16.218 8.33896H16.5526C17.189 8.33896 17.6687 8.49987 17.9916 8.82187C18.3146 9.14387 18.4759 9.62447 18.4759 10.2636V10.5833C18.4759 11.2227 18.3146 11.7033 17.9916 12.0253C17.6687 12.3473 17.189 12.5082 16.5526 12.5082H16.218C15.5816 12.5082 15.1019 12.3473 14.779 12.0253C14.456 11.7033 14.2947 11.2227 14.2947 10.5833V7H14.72ZM21.3163 8.33896C21.9527 8.33896 22.4324 8.49987 22.7553 8.82187C23.0782 9.14387 23.2396 9.62447 23.2396 10.2636V10.6251H19.4839C19.4931 11.13 19.6207 11.5018 19.8672 11.7405C20.1132 11.9791 20.4896 12.0982 20.9961 12.0982H21.3028C21.6792 12.0982 21.981 12.0404 22.2087 11.9245C22.4363 11.8086 22.5943 11.6372 22.6826 11.4104H23.1286C23.0356 11.7671 22.8359 12.0393 22.5293 12.2268C22.2224 12.4141 21.818 12.5082 21.3163 12.5082H20.982C20.3453 12.5082 19.8656 12.3473 19.5429 12.0253C19.22 11.7033 19.0587 11.2226 19.0587 10.5833V10.2636C19.0587 9.62435 19.22 9.1438 19.5429 8.8218C19.8656 8.4998 20.3453 8.3389 20.982 8.3389H21.3163V8.33896ZM26.0767 8.33896C26.7129 8.33896 27.1928 8.49987 27.5157 8.82187C27.8384 9.14387 28 9.62447 28 10.2636V10.6251H24.2439C24.2531 11.13 24.3809 11.5018 24.6272 11.7405C24.8735 11.9791 25.2496 12.0982 25.7561 12.0982H26.0628C26.4392 12.0982 26.741 12.0404 26.9687 11.9245C27.1963 11.8086 27.3543 11.6372 27.4426 11.4104H27.8886C27.7956 11.7671 27.5959 12.0393 27.2893 12.2268C26.9827 12.4143 26.5785 12.5082 26.0768 12.5082H25.7422C25.1055 12.5082 24.6261 12.3473 24.3032 12.0253C23.9803 11.7033 23.8189 11.2226 23.8189 10.5833V10.2636C23.8189 9.62435 23.9803 9.1438 24.3032 8.8218C24.6261 8.4998 25.1055 8.3389 25.7422 8.3389H26.0767V8.33896ZM11.7116 8.74882H11.405C10.8893 8.74882 10.5083 8.87388 10.262 9.12408C10.0157 9.37421 9.89246 9.76117 9.89246 10.2845V10.5624C9.89246 11.0861 10.0157 11.4728 10.262 11.723C10.5083 11.9732 10.8893 12.0983 11.405 12.0983H11.7116C12.227 12.0983 12.608 11.9732 12.8546 11.723C13.1006 11.4728 13.2236 11.0861 13.2236 10.5624V10.2847C13.2236 9.76117 13.1006 9.37428 12.8543 9.12408C12.608 8.87388 12.227 8.74882 11.7113 8.74882H11.7116V8.74882ZM16.5386 8.74882H16.232C15.7165 8.74882 15.3353 8.87388 15.089 9.12408C14.843 9.37421 14.72 9.76117 14.72 10.2845V10.5624C14.72 11.0861 14.843 11.4728 15.0893 11.723C15.3353 11.9732 15.7165 12.0983 16.2322 12.0983H16.5386C17.0543 12.0983 17.4353 11.9732 17.6816 11.723C17.9278 11.4728 18.0511 11.0861 18.0511 10.5624V10.2847C18.0511 9.76117 17.9278 9.37428 17.6816 9.12408C17.4353 8.87395 17.0543 8.74882 16.5386 8.74882ZM2.24392 8.74882H1.93729C1.43074 8.74882 1.0546 8.86816 0.808329 9.10684C0.562053 9.34553 0.434249 9.71482 0.42504 10.2151H3.75611C3.7469 9.71482 3.61909 9.34528 3.37282 9.10659C3.1266 8.86816 2.75022 8.74882 2.24392 8.74882ZM21.3023 8.74882H20.9959C20.4893 8.74882 20.113 8.86816 19.8667 9.10684C19.6204 9.34553 19.4928 9.71482 19.4834 10.2151H22.8145C22.8053 9.71482 22.6774 9.34528 22.4312 9.10659C22.1849 8.86816 21.8088 8.74882 21.3025 8.74882H21.3023V8.74882ZM26.0627 8.74882H25.7561C25.2495 8.74882 24.8734 8.86816 24.6269 9.10684C24.3808 9.34553 24.253 9.71482 24.2438 10.2151H27.5749C27.5655 9.71482 27.4379 9.34528 27.1916 9.10659C26.9453 8.86816 26.569 8.74882 26.0624 8.74882H26.0627V8.74882Z\",\n fill: \"#090B14\"\n}));\nvar Ecobee_default = SvgEcobee;\nvar SvgLenovo = (props) => /* @__PURE__ */ React106.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 20,\n viewBox: \"0 0 28 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React106.createElement(\"path\", {\n d: \"M11.7364 8.22856C11.2191 8.22856 10.6695 8.45488 10.3138 8.93986V8.32561H9.11755V12.7227H10.3138V10.2008C10.3138 9.74819 10.6695 9.26321 11.3161 9.26321C11.8011 9.26321 12.3184 9.61886 12.3184 10.2008V12.6904H13.5147V9.97451C13.547 8.97221 12.8034 8.22856 11.7364 8.22856ZM22.1149 8.29326L21.0156 11.3001L19.9163 8.29326H18.5584L20.369 12.6904H21.6945L23.4728 8.29326H22.1149ZM7.8243 11.3324C7.30697 11.7204 7.01596 11.7851 6.56333 11.7851C6.14304 11.7851 5.81969 11.6558 5.59337 11.4294L8.66487 10.1362C8.60023 9.65121 8.4062 9.23087 8.1476 8.90757C7.72726 8.42259 7.14529 8.19627 6.40171 8.19627C5.0761 8.19627 4.0738 9.16623 4.0738 10.4595C4.0738 11.7851 5.0761 12.7228 6.53098 12.7228C7.33926 12.7228 8.17989 12.3348 8.56788 11.8821L7.8243 11.3324ZM5.49639 9.61886C5.69041 9.32785 6.01366 9.16623 6.434 9.16623C6.85428 9.16623 7.20993 9.42489 7.37161 9.78054L5.27007 10.6535C5.20543 10.2332 5.33476 9.87752 5.49639 9.61886ZM3.97681 11.5911H1.22862V7H0V12.6904H3.97681V11.5911ZM25.6391 12.755C24.3135 12.755 23.2789 11.7851 23.2789 10.4918C23.2789 9.23081 24.3135 8.22856 25.6391 8.22856C26.9646 8.22856 27.9993 9.19852 27.9993 10.4918C28.0316 11.7851 26.997 12.755 25.6391 12.755ZM25.6391 9.26321C24.9601 9.26321 24.4751 9.78054 24.4751 10.4918C24.4751 11.1708 24.9924 11.7205 25.6391 11.7205C26.318 11.7205 26.803 11.2031 26.803 10.4918C26.8353 9.81283 26.318 9.26321 25.6391 9.26321ZM16.3598 12.755C15.0343 12.755 13.9996 11.7851 13.9996 10.4918C13.9996 9.23081 15.0343 8.22856 16.3598 8.22856C17.6854 8.22856 18.72 9.19852 18.72 10.4918C18.72 11.785 17.6855 12.755 16.3598 12.755ZM16.3598 9.26321C15.6809 9.26321 15.1958 9.78054 15.1958 10.4918C15.1958 11.1708 15.7132 11.7205 16.3598 11.7205C17.0388 11.7205 17.5238 11.2031 17.5238 10.4918C17.5561 9.81283 17.0388 9.26321 16.3598 9.26321Z\",\n fill: \"#E22319\"\n}));\nvar Lenovo_default = SvgLenovo;\nvar SvgLogitech = (props) => /* @__PURE__ */ React107.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React107.createElement(\"path\", {\n d: \"M10 1C5.03709 1 1 5.03748 1 10C1 14.9625 5.03709 19 10 19C10.2164 19 10.3913 18.8247 10.3913 18.6087V15.4783C10.3913 15.2623 10.2164 15.087 10 15.087C7.19513 15.087 4.91304 12.8049 4.91304 10C4.91304 7.19513 7.19513 4.91304 10 4.91304C10.2164 4.91304 10.3913 4.73774 10.3913 4.52174V1.3913C10.3913 1.1753 10.2164 1 10 1ZM10 8.04348C9.78361 8.04348 9.6087 8.21878 9.6087 8.43478V11.9565C9.6087 12.1725 9.78361 12.3478 10 12.3478H13.913V16.2609C13.913 16.4769 14.088 16.6522 14.3043 16.6522H17.8261C18.0425 16.6522 18.2174 16.4769 18.2174 16.2609V8.43478C18.2174 8.21878 18.0425 8.04348 17.8261 8.04348H10Z\",\n fill: \"#090B14\"\n}));\nvar Logitech_default = SvgLogitech;\nvar SvgMicrosoft = (props) => /* @__PURE__ */ React108.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React108.createElement(\"g\", {\n clipPath: \"url(#clip0_1_87)\"\n}, /* @__PURE__ */ React108.createElement(\"path\", {\n d: \"M9.5487 9.55383H0.999992V1.00512H9.5487V9.55383Z\",\n fill: \"#F1511B\"\n}), /* @__PURE__ */ React108.createElement(\"path\", {\n d: \"M18.9874 9.55332H10.4389V1.00461H18.9874V9.55332Z\",\n fill: \"#80CC28\"\n}), /* @__PURE__ */ React108.createElement(\"path\", {\n d: \"M9.54845 18.9953H0.999992V10.4467H9.54845V18.9953Z\",\n fill: \"#00ADEF\"\n}), /* @__PURE__ */ React108.createElement(\"path\", {\n d: \"M18.9874 18.9953H10.4389V10.4467H18.9874V18.9953Z\",\n fill: \"#FBBC09\"\n})), /* @__PURE__ */ React108.createElement(\"defs\", null, /* @__PURE__ */ React108.createElement(\"clipPath\", {\n id: \"clip0_1_87\"\n}, /* @__PURE__ */ React108.createElement(\"rect\", {\n width: 18,\n height: 18,\n fill: \"white\",\n transform: \"translate(1 1)\"\n}))));\nvar Microsoft_default = SvgMicrosoft;\nvar SvgNest = (props) => /* @__PURE__ */ React109.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React109.createElement(\"path\", {\n d: \"M16.4972 3.39171V6.36723L20 9.22976L18.3239 11.2448L16.516 9.75706V19.4557H14.0301V13.8249C14.0301 11.6215 12.2222 9.83239 10.0188 9.83239C7.79661 9.83239 6.00753 11.6215 6.00753 13.8249V19.4557H3.48399V9.75706L1.67608 11.2448L0 9.22976L9.98117 1L14.4256 4.65348V3.39171H16.4972Z\",\n fill: \"#00C3E8\"\n}), /* @__PURE__ */ React109.createElement(\"path\", {\n d: \"M10.0188 11.6591C11.2053 11.6591 12.1846 12.6384 12.1846 13.8249V19.4557H7.85311V13.8249C7.85311 12.6196 8.81356 11.6591 10.0188 11.6591Z\",\n fill: \"#00C3E8\"\n}));\nvar Nest_default = SvgNest;\nvar SvgSamsung = (props) => /* @__PURE__ */ React110.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 20,\n viewBox: \"0 0 28 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React110.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.80567 6.68472C9.79747 6.74462 9.79045 6.80315 9.7845 6.86033C9.71524 7.38887 9.7319 7.82801 9.83488 8.33615C10.1252 9.75908 11.6038 10.6003 12.9201 11.3492C13.8937 11.9032 14.7785 12.4066 15.028 13.0575C15.132 13.3283 15.107 13.6825 15.0498 13.9227C14.9267 14.4451 14.5704 14.7006 13.9603 14.7006C13.3164 14.7006 12.8435 14.3272 12.8435 13.6507L12.8419 12.4473H9.67091L9.66873 13.4133C9.66873 14.8457 10.2697 16.002 11.6661 16.5648C5.32122 17.5429 0.347427 16.4798 0.0172403 13.8467C-0.17828 12.2843 1.30151 10.4748 3.83115 8.83022L4.8584 8.20519C6.32741 7.36577 8.06525 6.58643 9.98288 5.92817C9.90295 6.15623 9.84355 6.40786 9.80567 6.68472ZM16.1292 4.39024C16.5721 4.57278 16.9173 4.81842 17.1755 5.12515C17.5954 5.6168 17.8073 6.27016 17.8073 7.07096V7.952H14.8493V7.17408C14.8493 6.5259 14.4756 6.12419 13.8137 6.12419C13.2575 6.12419 12.9149 6.38539 12.8043 6.89985C12.7673 7.10322 12.7713 7.31239 12.8163 7.51403C12.9495 8.08014 13.804 8.556 14.7849 9.10226C16.1357 9.85446 17.7261 10.7401 18.0029 12.1787C18.0655 12.4983 18.1505 13.1822 18.0165 14.1607C17.9695 14.5038 17.881 14.8109 17.7556 15.0841C19.9178 14.3612 21.8608 13.4834 23.4587 12.5354L24.2783 12.0226C26.7415 10.3967 28.1757 8.61638 27.9827 7.0767C27.6493 4.41567 22.5717 3.35754 16.1292 4.39024Z\",\n fill: \"#2D4F9E\"\n}));\nvar Samsung_default = SvgSamsung;\nvar SvgShure = (props) => /* @__PURE__ */ React111.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\"\n}, props), /* @__PURE__ */ React111.createElement(\"path\", {\n d: \"M1 1H19V19H1V1Z\",\n fill: \"url(#pattern0)\"\n}), /* @__PURE__ */ React111.createElement(\"defs\", null, /* @__PURE__ */ React111.createElement(\"pattern\", {\n id: \"pattern0\",\n patternContentUnits: \"objectBoundingBox\",\n width: 1,\n height: 1\n}, /* @__PURE__ */ React111.createElement(\"use\", {\n xlinkHref: \"#image0_1_78\",\n transform: \"translate(0.00298211) scale(0.000994036)\"\n})), /* @__PURE__ */ React111.createElement(\"image\", {\n id: \"image0_1_78\",\n width: 1e3,\n height: 1006,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPuCAYAAACb+jf5AAAAAXNSR0IArs4c6QAAIABJREFUeF7s3ftVHEm27/FfclZT/HdoC0ayYMCCFhYMWNBgQQsLJFkgZAHIAjEWNG1BMxaIsaDr/leF1qm8a1cmasSr8hGZuSPiW2vddebOZMbjswPErngV4oMAAggggAACvQV2pDf3CymlvULaffDf/VMP/rt7//sP7/duUPsCrp55ZV5I/3nQD/vvru//dwvpuffbt4Q3EEAAAQQQyFSgyLTfdBsBBBBAAIHnBHZ3pD37H1fS7lb9n0vpf1X/5/pFe+aHBBzS7wJz/ZjAXxfS/6tNr7ck+9+1qJ5Z/2c+CCCAAAIIICCRoDMKEEAAAQRyEfieeKue7V5J/yikVzXA1DPYucThuX6uZ+BL6WZL+m/90Pq/I5HPfWjQfwQQQCAfARL0fGJNTxFAAIGkBX6S9v5H2r1bWn4v+bYE/C4JT9ogg87dSLq5S+JLab3U/v+k+bcHS+4zsKCLCCCAAAIJCpCgJxhUuoQAAgikKmD7vO+Wnd9LwFlqnmrA2/drvbT+LoFfSevl9MzAt4fkDQQQQACBaQRI0Kdxp1YEEEAAgWcEbCbclp3b3m+ScIZJQIFHybsl8sy8BxSmKAQQQACB3gIk6L0JKQABBBBAoItAfer5evl5Kf1SL0NnKXoXTN7pK7BeOl9If9j/tf/HqfR9SXkfAQQQQKCLAAl6FzXeQQABBBBoLHB/RpxEvDEbD/oQ+J6423J5Ztx9BIVWIIAAAikLkKCnHF36hgACCIwsYLPidkhbKf2zPh2dk9FHjgHVjSJwZcm63Q9vh9Qx2z6KOZUggAACWQiQoGcRZjqJAAIIBBe4u7LMEvJ/1veDszw9ODMFRiRgs+123/t/JF1xMF1EkaOpCCCAgCMBEnRHwaApCCCAgFeBBzPjdmq6/T8+CCDwsoAti18n7cy0M1QQQAABBJoIkKA3UeIZBBBAICOBnerO8Psz4yxTzyj+dHVwgWubYb83024z73wQQAABBBBYC5CgMxAQQACBzAXuZsdVnaRuyfhu5iR0H4ExBez6tytJfzDLPiY7dSGAAAI+BUjQfcaFViGAAAJDCdzfO36XkA9VF+UigEA3AZthtyvf2MvezY+3EEAAgWgFSNCjDR0NRwABBBoJ7G5Lb4q/Z8fZO96IjYcQcCWwXhZfSn/cVrPtNuvOBwEEEEAgQQES9ASDSpcQQCBrARLyrMNP5zMRIGHPJNB0EwEE8hMgQc8v5vQYAQQSE7A95PWhbixZTyy2dAeBhgL3l8TbDDsfBBBAAIFIBUjQIw0czUYAgXwF7JT1UjrkULd8xwA9R+AFgfuHzl0uJE6JZ7gggAACEQmQoEcULJqKAALZCqyXrUv6V1H9X7sGjQ8CCCDQROCmrPat/5v96024eAYBBBCYVoAEfVp/akcAAQSeFPhJ2tuqk/L66jOkEEAAgRAC62R9JV19k2wvOx8EEEAAAUcCJOiOgkFTEEAgb4Ft6bA+bd2WrzNLnvdwoPcIjCFgy98v69PhL8eokDoQQAABBF4WIEFnhCCAAALTCdid5Iel9K96lnx3uqZQMwIIZC6w3rteSP9eSJasc5Vb5gOC7iOAwDQCJOjTuFMrAghkKnDvgLdfJXEneabjgG4jEIGALX//XEgcNBdBsGgiAgikI0CCnk4s6QkCCDgVqPeTW0JuB7yRlDuNE81CAIFnBdb3rq+kz+xbZ5QggAACwwqQoA/rS+kIIJCpwL2knP3kmY4Buo1AogLrfesk64lGl24hgMDkAiTok4eABiCAQCoCJOWpRJJ+IIBAQwGS9YZQPIYAAgg0FSBBbyrFcwgggMATAiTlDAsEEEBgLUCyzkBAAAEEAgiQoAdApAgEEMhLoD7o7TdJLF/PK/T0FgEEmgmsk/VC+rSoEnc+CCCAAAINBUjQG0LxGAII5C3A6et5x5/eI4BAZwFOg+9Mx4sIIJCjAAl6jlGnzwgg0FTg7p7yuxPYm77HcwgggAACjwXsnvXP3LPO0EAAAQSeFyBBZ3QggAACDwS2q6Xr/yqkY3AQ6CEwl2Szh98/pXSzJf33iTJtGXCjpcCLqkwru9Fnp7rer8nnlST7fz98VtI/isf/vV0XuNukUJ5B4CmBUrqQ9O9b6RIhBBBAAIG/BUjQGQ0IIICAJA57Yxi8IHA/0Z4X0n/uPXt195//T5rneke0/fz8z48J+/cvBUrpn/eSeRJ7ftQeCtjP1wXXtjEwEEAAgUqABJ2RgAACOQvcLWG3A98sceCTl8D3xLuQ/qi7/n0meyF9T77zYhmnt/dm9r/P3JfSL3XtJPLjhMFbLdf1wXI2q954lYi3TtAeBBBAoI8ACXofPd5FAIEoBSwxWEm/soQ9yvC1afTdUnD7o///raTrreqP/htOlm7DON2zdjijLbtfSbtb0l4p/W/9ZZotr+dLtelCM3jNtgR+q9qvzhdlg2tTAQIIeBIgQfcUDdqCAAKDCdR/6B+Xkh349mif7WAVU/CQAusZ8Lt93XcJeNs92kM2kLIHF7BVMHt3Cfy9/fLMwA9OP1oFN3awnC2D54u10cypCAEEJhQgQZ8Qn6oRQGB4ATvwraiScjv4jU+cAjYTbn+k297v9RJ0ZtXiDOTYra6X0a9n4eu98PafmXkfOxDh6rsspc8cLBcOlJIQQMCfAAm6v5jQIgQQ6CnAbHlPwOlev7p3yrkta2Up+nSxSLrmu6Xzqra73J1S3/S0+6RtIukcs+qRBIpmIoBAewES9PZmvIEAAk4F2FvuNDCPm2Wz4LYv/D+2LN2S8lxPP48mYpk01E6jtyvl6v3udvq8zbazJcZx/Nmr7jg4NA0BBDoJkKB3YuMlBBBwJHB3Evs7/pB2FJW/m2IJ+DoZL6Rrlqa7jBGN2iBgX/6V1SF1/yyqpJ1l8v5Gjc2qf1hU96pzAry/+NAiBBBoKECC3hCKxxBAwJeALVFdSe+Kam+5nejMZ3oBkvHpY0ALRhIgaR8Jun0181K63KqSdVutwwcBBBCISoAEPapw0VgEEKgPfbN7y9kvOu1wWC9Tl/QHM+PTBoLa/QjcJe2q7nNnefz0obFzLT5xqNz0gaAFCCDQXIAEvbkVTyKAwHQCLGOfzv6uZju0zWbI/9iqlqozMzV9TGiBc4F6pY/ta79L2PlicZqY2e+rT0vpguXv0wSAWhFAoLkACXpzK55EAIGRBeyP21Ky2fJjlrGPim/7Ny0hZ3Z8VHYqy0HgwSy7Jexs0Rkv8Pa77aKQPvEl43jo1IQAAu0ESNDbefE0AgiMIMBp7CMg/1jF94R8JV1xovro/lSYsYCdHL9VbdmxWXYS9pHGAqe/jwRNNQgg0FqABL01GS8ggMBQAuwvH0r2Ubkk5KNRUxEC7QRI2Nt5BXiafeoBECkCAQTCCZCgh7OkJAQQ6CiwIx2XEtekdfRr8BoJeQMkHkHAowAJ+2hRubumzfap80EAAQQmEyBBn4yeihHIXsAOfntbSr9yf/kgY8HuHv+37SXn7vFBfCkUgUkEbAuQLYUvpX9xH/sgIbBE/fNCOuNAuUF8KRQBBDYIkKAzRBBAYGyBu8TcDn/jcKRw+jdldbDbv2+r/2uz5nwQQCBtgd3tKmH/V1H931dpd3fU3s3rw+RI1EdlpzIEECBBZwwggMAoAvV1Q++K6kR2PmEE1gk5B7uFwaQUBGIXuLcc3mbXudItUEDrA+U+cPJ7IFCKQQCBFwVI0BkgCCAwqACJeVDeeSldbkl/LKRLZsmD2lIYAqkJ2Gqlw5X0SyEdsmKpf3hJ1PsbUgICCGwWIEHfbMQTCCDQQYDEvAPa06/cSLpcSZ+5/iyYKQUhkJ1APbtuZ35Yss5S+B4jgES9Bx6vIoDARgES9I1EPIAAAm0ESMzbaD377LWkz4V0yZLKIJ4UggAC9wTs93RZJeqWsO+B002ARL2bG28hgMDLAiTojBAEEAgiQGLem9GWrP9BUt7bkQIQQKCFwL1k/Zd6dr3F2zxqAiTqjAMEEAgpQIIeUpOyEMhQgMS8V9Av7So09pP3MuRlBBAIJ7Det15f4WYz7HxaCJCot8DiUQQQeFaABJ3BgQACnQRIzDux2Usk5Z3peBEBBEYUIFnviE2i3hGO1xBAYC1Ags5AQACBVgIk5q247h4mKe/ExksIIOBEgGS9QyBI1Dug8QoCCJCgMwYQQKCZAIl5M6d7T3HQW2syXkAAAe8CHDDXPkIk6u3NeAOBnAWYQc85+vQdgWYCuzPpnaS3zR7P+qmbQvos6YLT17MeB3QegSwELFmXdFxWp8FzddvmqJ8tpQ+S5psf5QkEEMhVgAQ918jTbwQ2C9iSxrel9Juk3c2PZ/vEvJQuS+kT95RnOwboOALZC9g964X0W1Fd38a/Gc+PiHkhfVpIZyTq2f/YAIDAkwIk6AwMBBB4JDCrZstt1pw/sp4fH5aUf76V7Ho0PggggAACtcC2dFhUs+qcBP9Coi7pw7JK1PkggAAC3wVI0BkMCCDwXWCnWqpoiTlLFZ8eF+t95UvpgpkPfnAQQACBjQK2RepYVbK+t/HpPB+wrVEfFtW/K3wQQAABDoljDCCAgLQjvakT8zd4PBJgCTuDAgEEEOgpwBL4jYBXdaJ+tfFJHkAAgaQFmEFPOrx0DoGXBerTeM8lkZg/prI/lj4zq8FPEQIIIBBWoF6tZbPq/Nvz9L89Jxw0GnbMURoCMQmQoMcULdqKQDiB3W3pY1EtPeTzt4CdrHtRH+BzAwwCCCCAwHAC9ZfEdhCp/VvEmSf3qO1qtlvplO1Uw40/SkbAqwAJutfI0C4EBhLYkd5zMvsjXGbLBxpvFIsAAgg0EWBW/UmluxPf3zcx5BkEEEhDgAQ9jTjSCwQ2CtSn6n7kALjvVOu95VvV4TzMlm8cQTyAAAIIDC9gs+or6R3Xtf1gfVNKp9waMvz4owYEPAiQoHuIAm1AYEABO5hnS7LEnL1+lfPdibl2PZotaeeDAAIIIOBPYHdHOuRmkR8Cc7WSTr9JdqMIHwQQSFSABD3RwNItBGw/H/vM/x4Htp9vqzr0jRNy+fFAAAEEIhKwm0ZW0q+cm1IFjf3pEQ1emopABwES9A5ovIKAd4GZ9FbVfea5H7qz3r9nB7+xjN37qKV9CCCAwMsCtvzdDpTjHJW1k60A+7CUzhg3CCCQlgAJelrxpDeZC9T3mdu1afZHTM4flrHnHH36jgACqQuw/P3vCNu/d3YtG6vDUh/19C8bARL0bEJNR1MWqK+qsX3mhyn3s0Hf7DR2O/SNP1QaYPEIAgggELtA/cW0rRjL/ZyVy0I6ZbVY7COa9iMgkaAzChCIXIBr06r9eJzGHvlApvkIIIBAD4F7p7/bneq5friWLdfI0++kBEjQkwonnclJgOXsYn95TgOeviKAAAINBNinvkZi2XuDscIjCHgVIEH3GhnahcDzArmfzm5/eNhp7HYwDtek8ZOCAAIIIPCUgO1Tf1tKv+Z6LgunvfODgUCcAiToccaNVmcqkPnp7HcHv11kGn66jQACCCDQQWCnOvnd9qnneIAqp713GDO8gsCUAiToU+pTNwINBX6S9rYkOwQux0Nw7OA3mzEnMW84XngMAQQQQOCxQJ2o24x6lv+WrqTTb9I1YwMBBHwLkKD7jg+tQ2B3Vn3rb/ea5/bhRPbcIk5/EUAAgREEMj/5/WwpfWCL2AgDjSoQ6ChAgt4RjtcQGFog40PgSMyHHlyUjwACCCCgjBN1DpFj/CPgWIAE3XFwaFq2AjZrfp7hneYk5tkOeTqOAAIITCeQcaJ+uZROmE2fbuxRMwJPCZCgMy4QcCRQ74+zvea7jpo1dFNIzIcWpnwEEEAAgY0CmSbqdmXpKee8bBwePIDAaAIk6KNRUxECzwvYva1lNWue08E1JOb8UCCAAAIIuBPINFG3f5NPFtKNu4DQIAQyEyBBzyzgdNefQIZXp5GY+xuGtAgBBBBA4IFAhok6V7LxU4CAAwESdAdBoAl5CmQ4a05inudQp9cIIIBA1AIZJurMpkc9Yml87AIk6LFHkPZHKZDZrDmJeZSjlEYjgAACCNwXyCxRZzad4Y/ARAIk6BPBU22eApnNmts1Lh84eCbPsU6vEUAAgVQF6gNd30l6lWof7/WL2fQMgkwXfQmQoPuKB61JWCCjWXMS84THMV1DAAEEEKgEMkrUmU1n0CMwogAJ+ojYVJWnQEaz5nZVy6eFdMadqnmOdXqNAAIIZCiwuyO9LaXfMrgildn0DAc4XR5fgAR9fHNqzEggl1nzeik7iXlGY5uuIoAAAgj8IHCXqNvS95Q/zKanHF365kKABN1FGGhEggK7s+pe88ME+/a9S6V0sVXtM+fe1JQDTd8QQAABBBoJ2Kq5lfSukI4bvRDvQ5dL6YQVc/EGkJb7FSBB9xsbWhapwLZ0WFTJ+W6kXWjSbE5mb6LEMwgggAACWQpkcuL7vJRObqXLLINMpxEYSIAEfSBYis1SYHdb+pj4t+Y3pXTKP8ZZjm86jQACCCDQUqD+0v5jyie+22q6W+mU2fSWg4PHEXhGgASdoYFAAIH6m3KbNU/1ypW7A+DeB+CiCAQQQAABBLIS2JHeJ36QnN3gcrKQrrIKLJ1FYAABEvQBUCkyL4H6H91kD4Xhm/G8xjO9RQABBBAYTCD5lXb1obF8mT/YEKLgHARI0HOIMn0cRKC+Pu2LpL1BKpi+0KuVdPpNup6+KbQAAQQQQACBNAR+kva2JFv2/iaNHj3qxXUhHXGAbKLRpVuDC5CgD05MBSkK7EjHZfWPa4oHwbHPPMVBS58QQAABBFwJJL4/3bbGnS6kC1foNAaBCARI0CMIEk10JZD08jTuM3c11mgMAggggED6Aknfn842ufQHMD0ML0CCHt6UEhMVqJek2ZL2FA+Cu6y/6eY+80THL91CAAEEEPArUG+bs5V5h35b2bllNyvpiC1znf14MTMBEvTMAk53uwnMpLeqlrSn9uHU1dQiSn8QQAABBKIVSPxWmNOldBZtcGg4AiMJkKCPBE010QrsziS7Pi25b7RZzh7tmKThCCCAAAJpC6S87P1yKZ1wZ3raA5je9RMgQe/nx9sJCyS8pP2qvquU5ewJj1+6hgACCCAQt0C97N0mCVI77Z0l73EPTVo/sAAJ+sDAFB+nQKJL2ueldHIrXcYZFVqNAAIIIIBAfgL1ae+WqKd2cwxL3vMbzvS4gQAJegMkHslKINUl7WdL6QNLyrIay3QWAQQQQCAdAfv75J2qM3FS+rDkPaVo0pcgAiToQRgpJAWBRJe0X9ens1+lECP6gAACCCCAQM4C9SFydmjtXkIOLHlPKJh0pb8ACXp/Q0pIQCDBJe3zQvq0kN4nEB66gAACCCCAAAL3BHak96X0W2LL3lnyzihHQBIJOsMgd4HdbeljIR0nBMEhcAkFk64ggAACCCDwlECKh8iV0sWtdMqWPMZ8zgIk6DlHP/O+10va7dCVVJaJzSV94I7RzAc23UcAAQQQyEqgXgVo+9NTOUTueiWdfJOuswoknUWgFiBBZyhkKZDgiaiX9V5zrk7LckTTaQQQQACBnAXq2XTbm36YiAM3zyQSSLrRXoAEvb0Zb0QuMJPsH7BUTkHlH7DIxyPNRwABBBBAIJRAghMQdguNLXnng0A2AiTo2YSajtrSr5n0RdKbRDS4miSRQNINBBBAAAEEAgqkdmXs1VI6Yl96wBFCUa4FSNBdh4fGhRJI7Ao1Zs1DDQzKQQABBBBAIFGBxGbTuYot0XFKtx4LkKAzKpIX2JGOy2pZewqHpzBrnvyIpYMIIIAAAggEE0hpNt2ukD1dSBfBdCgIAYcCJOgOg0KTwgkktN+cWfNww4KSEEAAAQQQyEogsdl09qVnNXrz6ywJen4xz6XHKe03Z+9VLqOWfiKAAAIIIDCcAH8bDWdLyQgEEyBBD0ZJQV4EErrfnHvNvQwq2oEAAggggEAiAgndm8596YmMSbrxowAJOiMiKYGUlnCV0sWW9N+kAkRnYhW4knSzkG5i7QDtRmBqAbunWtX/S+UmkalJqb+HwEr6RyEd9yjCy6tsAfQSCdoRTIAEPRglBU0tUH8jbIfB8UEAgWEE7A+hyy3pDw7pGQaYUtMSsENKV9IvhXSYyEGlaQWI3qQkcLqUzlLqEH3JV4AEPd/YJ9Xzbek8kW+Ck4oLnUlawLZgXBTSJ2bWk44znWspYDPlpfSbqtnJFG4PaSnA4whMI2ArD2+lk2lqp1YEwgmQoIezpKRpBOzAk98l7U1TPbUigIAkO1H3gyRL2vkgkKuA/Xv0TtLbXAHoNwIOBK6X0gH/HjmIBE3oLECC3pmOF6cWqA+D+1Lv6Zu6OdSPQO4C7APMfQRk3P+Uzj/JOIx0PR2Bm5V09E26TqdL9CQnARL0nKKdUF93pDelZMk5ywcTiitdiV+AJYbxx5AetBNgi1U7L55GYCSBeSEdLSQ75JQPAlEJkKBHFS4aawJ26E4pnaOBAAJuBVhi6DY0NCygAFusAmJSFAJDCBTSCYeaDiFLmUMKkKAPqUvZwQVmkp3Szv6+4LIUiEBwAZL04KQU6EiA5NxRMGgKAhsE7JyUU5QQiEWABD2WSNHO3W3pIye1MxAQiEqAJD2qcNHYhgIk5w2heAwBLwL19itL0jnM1EtQaMezAiToDI4YBPhjKIYo0UYEnha4XEpH4CCQisCsOv/E7jXngwACcQnwpXFc8cq2tSTo2YY+jo7XJ7XbfnOuUYsjZLQSgacETpfSGTQIxC4wq7ZY2VYrPgggEKfA9Uo64YT3OIOXS6tJ0HOJdIT9rJNzu+Ock9ojjB9NRuC+wEra5w8ixkTMAvW/SX/G3AfajgACa4H5Sjrg3yRGg1cBEnSvkcm8XfVJ7TZLQXKe+Vig+8kIXC2lg2R6Q0eyE5hJ9oXxm+w6TocRSFPArmE75YT3NIMbe69I0GOPYILt5xq1BINKlxCQVEgH3EnLUIhRYFs6LKq953wQQCAhAa5hSyiYCXWFBD2hYKbQlR3pfSm9S6Ev9AEBBB4JMIvOoIhSYCbZ0nbOQokyejQagZcFCunDQnqPEwJeBEjQvUSCdmhbOucaNQYCAmkLMIuednxT7N2O9KaslrfzQQCBRAXqa9hOEu0e3YpMgAQ9soAl2lzuOE80sHQLgYcC/BHEmIhNgC+PY4sY7UWgmwB3pXdz463wAiTo4U0psZ0Ad5y38+JpBGIXmC+ln2PvBO3PR2Am/cWBpfnEm55mL8Bd6dkPgekBSNCnj0HOLSA5zzn69D1bAZa5Zxv66DrO8vboQkaDEQghQJIeQpEyOguQoHem48U+AvV9succutNHkXcRiFOAA3nijFuOrebg0hyjTp8RWAtcr6QT7kpnNEwhQII+hXrmddbJuR24wx3nmY8Fup+twOVSOsq293Q8GoFZdbXaYTQNpqEIIBBSYL6SDkjSQ5JSVhMBEvQmSjwTTIDkPBglBSEQswDXrcUcvYzaPqtOb3+TUZfpKgII/ChAks6IGF2ABH108nwrJDnPN/b0HIGHAkuJf38YFu4FZlLpvpE0EAEEhhYgSR9amPJ/EOAPJAbEKAI70nEp2Z5zPggggIBI0BkEMQiQoMcQJdqIwDgChXSykC7GqY1achYgQc85+iP1neR8JGiqQSAiARL0iIKVcVNJ0DMOPl1H4AkBknSGxRgCJOhjKGdcB8l5xsGn6wi8IECCzvCIQYAEPYYo0UYExhUgSR/XO8faSNBzjPpIfSY5HwmaahCIUIAEPcKgZdhkEvQMg06XEWggQJLeAIlHOguQoHem48WXBEjOGR8IIPCSAAk64yMGARL0GKJEGxGYRoAkfRr3HGolQc8hyiP3keR8ZHCqQyBCARL0CIOWYZNJ0DMMOl1GoIUASXoLLB5tLECC3piKB5sIzKSPkt42eZZnEEAgXwES9HxjH1PPSdBjihZtRWAygbOldDpZ7VScnAAJenIhna5D29J5IR1P1wJqRgCBWARI0GOJVN7tJEHPO/70HoGmAqV0cSudNH2e5xB4SYAEnfERRIDkPAgjhSCQjQAJejahjrqjJOhRh4/GIzCqAEn6qNxJV0aCnnR4x+kcyfk4ztSCQEoCJOgpRTPdvpCgpxtbeobAEAIk6UOo5lcmCXp+MQ/aY5LzoJwUhkA2AiTo2YQ66o6SoEcdPhqPwCQCJOmTsCdVKQl6UuEctzMk5+N6UxsCKQmQoKcUzXT7QoKebmzpGQJDCpCkD6mbftkk6OnHeJAekpwPwkqhCGQjQIKeTaij7igJetTho/EITCpAkj4pf9SVk6BHHb5pGk9yPo07tSKQkgAJekrRTLcvJOjpxpaeITCGAEn6GMrp1UGCnl5MB+3RrLrj3O4654MAAgh0FiBB70zHiyMKkKCPiE1VCKQrcLqUztLtHj0LLUCCHlo04fJ2pONSOk+4i3QNAQRGEiBBHwmaanoJkKD34uNlBBCoBQrpZCFdAIJAEwES9CZKPCOScwYBAgiEFCBBD6lJWUMJkKAPJUu5COQnQJKeX8y79pgEvatcRu+RnGcUbLqKwEgCJOgjQVNNLwES9F58vIwAAg8ESNIZEk0ESNCbKGX8DMl5xsGn6wgMKECCPiAuRQcTIEEPRklBCCBQC5CkMxQ2CZCgbxLK+H8nOc84+HQdgYEFSNAHBqb4IAIk6EEYKQQBBJhJZwy0ECBBb4GV06Pb0mEhfcmpz/QVAQTGEyBBH8+amroLkKB3t+NNBBB4WaCUjm6lS5wQeChAgs6YeCTwk7S3Jf0uaRceBBBAYAgBEvQhVCkztAAJemhRykMAgXsC85V08E26RgWB+wIk6IyHHwRIzhkQCCAwhgAJ+hjK1NFXgAS9ryDvI4DABgGSdIbIIwESdAbFdwGScwYDAgiMJUCCPpY09fQRIEHvo8e7CCDQUIAkvSFULo+RoOcS6c393J1JX1nWvhmKJxBAoL8ACXoWqp8cAAAgAElEQVR/Q0oYXoAEfXhjakAAgbXAfCm9tv+LBwIk6IwBE7Dk3Pac78GBAAIIjCFAgj6GMnX0FSBB7yvI+wgg0ELgeikdkKS3EEv0URL0RAPbolsk5y2weBQBBMIIkKCHcaSUYQVI0If1pXQEEHgkQJLOoBAJeuaDoJ45f5M5A91HAIGRBUjQRwanuk4CJOid2HgJAQT6CVzVM+n9SuHtaAVI0KMNXf+Gb0vnhXTcvyRKQAABBNoJkKC38+LpaQRI0Kdxp1YEchcopYtb6SR3h1z7T4KeaeRJzjMNPN1GwIkACbqTQNCMFwVI0BkgCCAwlQBJ+lTy09dLgj59DEZvwUx6K+nj6BVTIQIIIFALkKAzFGIQIEGPIUq0EYGkBU6X0lnSPaRzjwRI0DMbFDvScSmdZ9ZtuosAAs4ESNCdBYTmPClAgs7AQACBqQUK6WQhXUzdDuofT4AEfTzryWvakd6U1XVqfBBAAIFJBUjQJ+Wn8oYCJOgNoXgMAQQGFSikg4V0NWglFO5GgATdTSiGbchP0t5WlZzvDlsTpSOAAAKbBUjQNxvxxPQCJOjTx4AWIIDAWmC+kg6+Sdd4pC9Agp5+jK2Hdtf5V5LzPIJNLxGIQYAEPYYo0UYSdMYAAgg4EpgvpdeWrDtqE00ZQIAEfQBUZ0Vacm4z53vO2kVzEEAgYwES9IyDH1HXSdAjChZNRSAPgev6jnSS9ITjTYKecHCta3Vy/ibxbtI9BBCITIAEPbKAZdpcEvRMA0+3EfAtcFUn6b5bSes6C5Cgd6bz/yJ3nfuPES1EIFcBEvRcIx9Xv0nQ44oXrUUgFwHuSE870iToicaXu84TDSzdQiARARL0RAKZeDdI0BMPMN1DIG4B7kiPO37Ptp4EPcHActd5gkGlSwgkJkCCnlhAE+0OCXqigaVbCCQiwB3piQTyQTdI0BOLK9epJRZQuoNAogIk6IkGNrFukaAnFlC6g0B6Aly/ll5MRYKeUFB3pFel9CfXqSUUVLqCQKICJOiJBjaxbpGgJxZQuoNAmgLzQtpfSDdpdi+/XpGgpxNzrlNLJ5b0BIHkBUjQkw9xEh0kQU8ijHQCgRwEuH4toSiToCcSzJn0RdJhIt2hGwggkLgACXriAU6keyToiQSSbiCQh8DlUjrKo6tp95IEPYH4zqSPkt4m0BW6gAACmQiQoGcS6Mi7SYIeeQBpPgL5CZwtpdP8up1Wj0nQI48nJ7ZHHkCaj0CmAiTomQY+sm6ToEcWMJqLAAJ2wNjJQrqAIl4BEvR4Y6f6xHY7FI4PAgggEJUACXpU4cq2sSTo2YaejiMQtcBK2v8mXUfdiYwbT4IeafA5sT3SwNFsBBBYC5CgMxBiECBBjyFKtBEBBJ4Q4GT3iIcFCXqcwePE9jjjRqsRQKAWIEFnKMQgQIIeQ5RoIwIIPCPAye6RDg0S9AgDty2dF9JxhE2nyQgggAAz6IyBaARI0KMJFQ1FAIEnBErp4lY6AScuARL0uOKlWXVau53azgcBBBCIVoAZ9GhDl1XDSdCzCjedRSBVgdOldJZq51LsFwl6RFHdkd6U0u8RNZmmIoAAAk8KkKAzMGIQIEGPIUq0EQEENgkU0sFCutr0HP+7DwESdB9x2NgKDoXbSMQDCCAQkQAJekTByripJOgZB5+uI5CWAIfGRRRPEvQ4gsWhcHHEiVYigEBDARL0hlA8NqkACfqk/FSOAAJhBTg0LqznYKWRoA9GG65gDoULZ0lJCCDgQ4AE3UccaMXLAiTojBAEEEhJgEPj4ogmCbrzOHEonPMA0TwEEOgkQILeiY2XRhYgQR8ZnOoQQGAMAQ6NG0O5Rx0k6D3whn6VQ+GGFqZ8BBCYSoAEfSp56m0jQILeRotnEUAgFgEOjfMdKRJ0v/GxfedfJe36bSItQwABBLoJkKB3c+OtcQVI0Mf1pjYEEBhNYL6UXkuaj1YjFTUWIEFvTDXugzPpT0l749ZKbQgggMA4AiTo4zhTSz8BEvR+fryNAAKuBezQuH3XLcy0cSToDgM/kz5KeuuwaTQJAQQQCCJAgh6EkUIGFiBBHxiY4hFAYGqBs6V0OnUjqP9HARJ0ZyNiWzospC/OmkVzEEAAgaACJOhBOSlsIAES9IFgKRYBBNwIlNLRrXTppkE0RCTojgbBT9LelvQ7+84dBYWmIIDAIAIk6IOwUmhgARL0wKAUhwACHgXmK+ngm3TtsXE5tokE3U/U7VA4S87Zd+4nJrQEAQQGEiBBHwiWYoMKkKAH5aQwBBDwK2D70Q84NM5HgEjQfcRB29J5IR07aQ7NQAABBAYVIEEflJfCAwmQoAeCpBgEEHAvUEoXt9KJ+4Zm0EASdAdB3pGOS+ncQVNoAgIIIDCKAAn6KMxU0lOABL0nIK8jgEBUAoV0spAuomp0go0lQZ84qOw7nzgAVI8AApMIkKBPwk6lLQVI0FuC8TgCCMQuwH50BxEkQZ82COw7n9af2hFAYCIBEvSJ4Km2lQAJeisuHkYAgTQE2I8+cRxJ0CcMAPedT4hP1QggMKkACfqk/FTeUIAEvSEUjyGAQGoC3I8+YURJ0CfC577zieCpFgEEXAiQoLsIA43YIECCzhBBAIFcBbgffbrIk6BPYL8jvSqlP7nvfAJ8qkQAARcCJOguwkAjSNAZAwgggMBzAvNC2l9INxCNK0CCPq73urZZlZxz3/kE9lSJAAI+BEjQfcSBVrwswAw6IwQBBDIXsP3o+5kbjN59EvSRyXek96X0buRqqQ4BBBBwJUCC7iocNOYZARJ0hgYCCOQuUEgfFtL73B3G7D8J+ojaO9KbUvp9xCqpCgEEEHApQILuMiw06oEACTpDAgEEEJAK6WAhXWExjgAJ+jjOVotdqWZL21+NVyU1IYAAAj4FSNB9xoVW/ShAgs6IQAABBNYCN/VS9zkewwuQoA9vvK5hJn2RdDhSdVSDAAIIuBYgQXcdHhpXC5CgMxQQQACB7wKXS+kIj+EFSNCHN9aOdFxK5yNURRUIIIBAFAIk6FGEKftGkqBnPwQAQACBewKFdLKQLkAZVoAEfVhfS865Um1gY4pHAIH4BEjQ44tZji0mQc8x6vQZAQReEODqtRGGBwn6wMhcqTYwMMUjgECUAiToUYYtu0aToGcXcjqMAAKbBbh6bbNRrydI0HvxvfwyV6oNiEvRCCAQtQAJetThy6bxJOjZhJqOIoBACwGuXmuB1eFREvQOaE1e+Una26pObeeDAAIIIPBAgASdIRGDAAl6DFGijQggMIXAStr/Jl1PUXfqdZKgDxNhu1LN7jvfG6Z4SkUAAQTiFiBBjzt+ubSeBD2XSNNPBBDoIGBL3Q8kcfVaB7yXXiFBDwxqxc2kj5LeDlA0RSKAAAJJCJCgJxHG5DtBgp58iOkgAgj0EzhbSqf9iuDthwIk6IHHxI70pqxmz/kggAACCDwjQILO0IhBgAQ9hijRRgQQmFKgkA4W0tWUbUitbhL0sBG1pe227/xV2GIpDQEEEEhLgAQ9rXim2hsS9FQjS78QQCCgwM1S2mepezhREvRwlixtD2hJUQggkLYACXra8U2ldyToqUSSfiCAwMACLHUPCEyCHghzWzospC+BiqMYBBBAIGkBEvSkw5tM50jQkwklHUEAgYEFSunoVrocuJosiidBDxNmW9r+VdJumOIoBQEEEEhbgAQ97fim0jsS9FQiST8QQGAEgflSes1S9/7SJOj9DW1pu82cHwYoiiIQQACBLARI0LMIc/SdJEGPPoR0AAEExhW4XEpH41aZXm0k6D1jytL2noC8jgACWQqQoGcZ9ug6TYIeXchoMAIITCzAUvf+ASBB72fI0vZ+fryNAAKZCpCgZxr4yLpNgh5ZwGguAgh4EGCpe88okKD3AJxJHyW97VEEryKAAAJZCpCgZxn26DpNgh5dyGgwAgj4EOBU9x5xIEHviLcjvSml3zu+zmsIIIBA1gIk6FmHP5rOk6BHEyoaigACzgQK6WAhXTlrVhTNIUHvFiZb2v6npFfdXuctBBBAIG8BEvS84x9L70nQY4kU7UQAAYcCN0tpn1Pd20eGBL29mZ3aztL2Dm68ggACCNQCtj/tZzQQ8C4wk/7iClXvUaJ9CCDgWICl7h2CQ4LeEo2l7S3BeBwBBBB4LHC1lA6AQcC7wKzayvbGeztpHwIIIOBVgKXu7SNDgt7SrF7avtfyNR5HAAEEEKgFSuniVjoBBAHvAtvSeSEde28n7UMAAQQcC1zXS90dN9FX00jQW8RjR3pfSu9avMKjCCCAAAIPBArpZCFdAIOAd4Ed6biUzr23k/YhgAACngUK6cNCeu+5jZ7aRoLeMBo70qtS+trwcR5DAAEEEHhGoJBeL6QbgBDwLsC//d4jRPsQQCAWAf7tbx4pEvSGVuxDawjFYwgggMDLAix1Y4REJcDWtqjCRWMRQMCvAOfPNIwNCXoDKJa4NUDiEQQQQKCZwOlSOmv2KE8hML3ATHqr6vYWPggggAACPQTY4tYMjwR9s5PdeW5L23c3P8oTCCCAAAIvCbDEjfERmwDL3GOLGO1FAAHHAnbN6mvuRn85QiToG0YwJ7g6/hGnaQggEJUAp7dHFS4ae0+AvwUYDggggEAYAf4W2OxIgv6CEXeebx5APIEAAgg0FWD2vKkUz3kTYBbdW0RoDwIIxCzA3ejMoHcev/XS9ledC+BFBBBAAIG1AFesMBBiF+Cq1dgjSPsRQMCRwE291N1Rk/w0hRn0Z2LBP8R+BiktQQCB6AXsH+J99pxFH8fcO2Bn0vwpiS/ucx8J9B8BBHoL8MX984Qk6E/Y1EvZ7B9hDobr/eNHAQggkLvAStr/Jl3n7kD/4xf4SdrbqpJ0PggggAAC/QTmhbS/kG76FZPe2yToT8R0Jn2RdJheuOkRAgggMK4AV6qM601twwtw9erwxtSAAALZCFwupaNsetuwoyToD6A4GK7hyOExBBBAYIMAy9cYIqkKsA0u1cjSLwQQGFuAA+Mei5OgPzDhYLixfyypDwEEEhU4W0qnifaNbiGgmfRR0lsoEEAAAQR6CXBg3AM+EvR7IHwj3uuHi5cRQACBtQDL2hkIuQiw3D2XSNNPBBAYUoAVdz/qkqDXHhwMN+SPHWUjgEAmAjcr6YgD4TKJNt1cC9QHx9nZNZzuzphAAAEEuglwYNw9NxL0GoOD4br9NPEWAgggUAvYkvYPXKXGeMhUwK5ge8eS90yjT7cRQCCEAAfG1Yok6JI4GC7EzxRlIIBApgJXK+mUWfNMo0+3fxCoZ9Ntb/obaBBAAAEE2glwYFzlRYIu2UEvX1ma1u4HiKcRQCBrgXkpXW5JH7i/NOtxQOefEbBtcyvpXVFd2boLFAIIIIBAIwEOjCNBXyfndgKrfdvNBwEEEEDgaYG5pOtC+kPS1UK6AgoBBJoJ2Co9m1EvpV8k7ZGwN3PjKQQQyFbgdCmdZdt7EnTZnjGbPffy7fZpIV3nPCDpOwII+BH4P2nO0nU/8aAl6QjYUvj/8fO3Rzqw9AQBBDoJlNWXh14mLOdL6XXOZ9pkvcTd2R2mV0vpoNNPFS8hgAACCCCAAAIIIIAAAh0FZtLvjs7PsINnTzt2JfrXsk3Q62vVbPbcxaeQXrOX00UoaAQCCCCAAAIIIIAAAlkJkBv5CXe2Cbqnb4mK6qCl936GBS1BAAEEEEAAAQQQQACBnAR2pPdldWWkh0+2q4uzTNCdXavGaYUefgXQBgQQQAABBBBAAAEEMhfwdLtVrteuZZmgM/Ay/81D9xFAAAEEEEAAAQQQQOCRABOZ0w+K7BL0Hem4lM6np1+34HIpHTlpC81AAAEEEEAAAQQQQACBzAVm0hdJhx4YCulkIV14aMtYbcgtQfd0rdq8kPY5GG6soU49CCCAAAIIIIAAAgggsEmgPjDuTydXUWd37VpWCbqngw84GG7Trwb+dwQQQAABBBBAAAEEEJhCgLxpCvWqzmwSdGffBHEw3HRjnpoRQAABBBBAAAEEEEBgg4Cjc7uyWnmcTYK+LZ0X0rGHn8RcTyT0YE8bEEAAAQQQQAABBBBAYLOApwPjSuniVjrZ3Or4n8giQa9nz786CRcHwzkJBM1AAAEEEEAAAQQQQACB5wWcHRj3Oofzu7JI0GfS75LeOPjhy2p5hgNvmoAAAggggAACCCCAAAIdBZxtE75aSgcduxLNa8kn6J6WZnAwXDQ/FzQUAQQQQAABBBBAAAEEJDk7MO5gIV2lHJjkE3RHs+d2MNy+pHnKA4q+IYAAAggggAACCCCAQFICdlW1Xbv2ykGvkp9FTzpB9zR7XkpHt9Klg0FNExBAAAEEEEAAAQQQQACBxgLb0mEhfWn8woAPpn7gdtIJuqOrAZL/pmfAn0GKRgABBBBAAAEEEEAAgYkFnK1Mfj0xx2DVJ5ug70jHpXQ+mFyLglfS/jfpusUrPIoAAggggAACCCCAAAIIuBH4Sdrbqpa6T/4ppJOFdDF5QwZoQLIJupfZ85zu7BtgfFIkAggggAACCCCAAAIIOBHYls4L6dhBc+x8ryRn0ZNM0B3Nns/rgcPBcA5+imkCAggggAACCCCAAAII9BKwA+O+StrtVUqAl1OdRU8yQfcye861agF+8igCAQQQQAABBBBAAAEE3Ag4unYtyVn05BJ0ZwOGa9Xc/CqhIQgggAACCCCAAAIIIBBAwM21aylOiKaWoLPkIsBPHEUggAACCCCAAAIIIIAAAs8JsKV4uLGRVILuaPb8einZ7DkfBBBAAAEEHgnsSG/sv1xJu1vS3t0DpfTPJ/b1rZ8N+Ll6UNa8kP5z99+tpOstaX12ykJ6+GzAZlAUAggggEDMArPqRPfv/4ZN1ZfUZtFTStA9zZ4f8EfNVD+i1IsAAghMK3CXfKtOwkvpl7pF9kfM5IfqdNSxhH19XWgh/VGXsU7e+feuoyivIYAAApEL2L93pfS7g24kdTB3Mgm6o9nzq6V04GCg0gQEEEAAgYEE7C7YQnpls98r6R/2n+8S8oGqjKFYS9jXs/E2C19KN9/qpD6GxtNGBBBAAIH2ArMqQQ+90qt1Q1KaRU8lQXcze76S9vmDpPXPFC8ggAACLgV2pFcrac8S8Xr5uSXiky/nc4n1fKNs5v3mLnHfkq4X0k1kfaC5CCCAAAJPCNgX1lvVUvepP8nMoieRoHuZPS+li1vpZOrRSf0IIIAAAu0FHiTjtiw95iXp7QHGfWO9ZN6Wy9d73knax/WnNgQQQCCYwLZ0XkjHwQrsWFAqs+gpJOhuZs8L6TWzAh1/ongNAQQQGFmg3itu++fsYDZbnhfr/vCR5QarzpL2q/rAuiv2tg/mTMEIIIBAUAH7gruUvgYttFthScyiR5+ge5k9l3S2lE67jSXeQgABBBAYWuBeQm6z45Pvlxu6v4mUbwm7HUpHwp5IQOkGAgikKTCTPkp6O3XvUphFjz1B9zJ7nsS3NVP/QFE/AgggEFKAhDykppuySNjdhIKGIIAAAj8IkJcFGhBRJ+heZs9T+KYm0HiiGAQQQGAyAVtiZzPjpfQvlqxPFoYxK75bEv/veoadg+fG1KcuBBBA4IEAuVmYIRF1gj6r9jrYH2RTfpg9n1KfuhFAIGuB+vTYX+uEnNPVsx4N63var1bSZ25TyXsg0HsEEJhMwMss+s1Sej2ZQs+Ko03Qd6TjUjrv2f/erzN73puQAhBAAIFWAtvSoaR/FdU+8qm/pG3Vdh4eTeCmlOxe9n/fSpej1UpFCCCAQOYCjmbRTxbSRYzhiDZBZ/Y8xuFGmxFAAIFuAveSckvOOW29G2Oub83LKkknWc91BNBvBBAYU4BZ9J7aUSbojmbPo/1mpue44XUEEEBgcAGS8sGJc6yAZD3HqNNnBBAYVYBcrR93lAm6k9nzqPc29Bs2vI0AAggMI3BvT7nNlLN8fRhmSq0E7FC5S/asMxwQQACB8ALka91No0vQbUalkL5073KYNwuJ2fMwlJSCAAII2HK4Y0l22BsHvTEephCwA+Y+L6v9inY6PB8EEEAAgR4CXmbRS+kotrNIokvQZ9Lv9Wm9PYZM71eZPe9NSAEIIJC7wL0l7Jac80HAhUBZJensV3cRDRqBAAIxCziZRb9aSgcxOUaVoO9U99tagj7ph9nzSfmpHAEE4hbY3ZHeltVsOUvY445l6q2/KaTPC+mMWfXUQ03/EEBgCAEvs+iFdLCobvaI4hNVgs7seRRjikYigAACjwTsC9aV9GtRLWXng0BUAjarvlUl69H8gRcVMI1FAIFkBZhFbx/aaBL0HelVKX1t38WwbzB7HtaT0hBAIG2B+tvz39hbnnacM+rddSF9ivVu3YziRFcRQMCJgKNZ9NeL6nBQ959oEvRt6dzBzAt7z90PaRqIAAIOBO6WsVtizp3lDgJCE4ILzOtEneXvwWkpEAEEUhPwMItuK6FupZMYbKNI0Jk9j2Eo0UYEEMhdwH5Xr6R3Dr5MzT0U9H9EgXr5+4dYZmZGpKEqBBBAYC3ALHq7gRBLgv6+lN6161rwp5k9D05KgQggkIKA3V1eSL+RmKcQTfrQVYB96l3leA8BBHIQ8DCLXkj2Zep7794xJOh2P67tPZ96meTpsjrJlQ8CCCCAQPWNuN2sYV+evgEEAQS+C1zVfwRyoByDAgEEEKgFZtJbSR8nBpkvpdfeb+Zwn6ATzImHMdUjgAACDwRIzBkSCDQSIFFvxMRDCCCQiQCTrg0DHUOCbrPnk96VG8tyiIYx5zEEEECgkwCJeSc2XkKARJ0xgAACCFQr79i23GAkuE7QnRwoEMVSiAax5hEEEECgkwCJeSc2XkLgoQCJOmMCAQRyF3Axi+792mzXCfpM+n3qvY3Mnuf+e4T+I5CvAKey5xt7ej6owGUhnXLq+6DGFI4AAk4FnMyiXy2lA6dEcpug26nAW9KfU8MtpZ+9HyQwtRH1I4BAcgK729JHTmVPLq50yJEA17M5CgZNQQCBMQVczKKvpP1v0vWYHW9al9sEfVs6n/qPw5gutG8acJ5DAAEEXhDY3ZHeltJvDm7OIFAI5CAwL6RPi+qWmHkOHaaPCCCAAHney2PAa4Ju36z8NfXwLaTXLEGbOgrUjwACYwjUZ37YlWmTHso5Rl+pAwGHApao27L3C4dto0kIIIBAUAHbQldW12hP+vG6Utplgu5hbwKz55P+vFA5AgiMJMABcCNBUw0CzQSu60SdO9SbefEUAghEKuBhFt3rWWMuE/RZ9Y3KpLM4nvclRPpzSLMRQMCXAPvMfcWD1iDwXaCeJDhl2TuDAgEEUhVwct7YzVJ67c3YXYLu5Go11yf7eRtEtAcBBOISmElvJdly9t24Wk5rEchKwPakf1hW+9P5IIAAAskJOLmx68Tb9iJ3CbqTQB0sJJaXJfdrgA4hkLdAvZz9o6S9vCXoPQJRCbDsPapw0VgEEGgqUP9dYtdqT/lxNzHrKkFnqcOUY5O6EUAgYQE7eNNmzG3mnA8CCMQpcLaUPrDsPc7g0WoEEHhagK3Nj11cJehODgtwt8yBH2gEEECgq8C2dFhI5yxn7yrIewi4EpiX0smtdOmqVTQGAQQQ6CjgYXuzt8PBPSXoHi6tn9fH7XccYryGAAIIuBGw36mWmB+6aRENQQCBUAKX9WnvN6EKpBwEEEBgKoH6eu0pz8WxHNAOi7OzPyb/uEnQ60OLbG/kZB+vR+1PBkLFCCAQpUD9bbT9Pp3yH7so7Wg0AhEJcIhcRMGiqQgg8LyAhyu2JZ16OZTTU4I++dVqXi+r5wcaAQQQaChgs+ZfJL1p+DyPIYBA/AJXhWTb85hNjz+W9ACBXAXs75e/Ju68myvXXCToHk7w87b3YOIBSvUIIBCZAHvNIwsYzUUgrMC8XvJ+EbZYSkMAAQTGEXByFpmLm7xcJOhOAvKab5/H+QGkFgQQCCrAXvOgnBSGQNQCl0vpxMs+yqglaTwCCIwqsCO9KiVbUT3Zx8uErYcE3cOSBnf33002MqkYAQSiEahXH9mSdvaaRxM1GorA4AI2m360kK4Gr4kKEEAAgYACM8nuRJ90m56HLc+TJ+geDocrpSOuLAn400VRCCAwuMBMskPguNd8cGkqQCBaAbs3/TTa1tNwBBDITqDermcTD1N+Jj8szkOCPvXhcG4OBJhyJFI3AgjEIfCTtLdVXZ+2F0eLaSUCCEwocL2STr5J1xO2gaoRQACBxgKzapn7q8YvhH9w8txw0gTdw+Fwno7UDz++KBEBBFIS4Pq0lKJJXxAYTYAD5EajpiIEEOgr4GF1dSFNeljcpAm6h8PhPOwz6DuQeR8BBJIX2N2WPhbScfI9pYMIIDCIQH34kS15t/vT+SCAAAJeBSY/n2zqw+KmTNAN35YwTHa40dT4Xn8qaBcCCPgRYEm7n1jQEgQSEGDJewJBpAsIpC7gYBJ3vpReT/WF5mQJer1U0/ZRTvZZSfvsy5qMn4oRQGCDAHebM0QQQGAAAZa8D4BKkQggEE6gnpz4M1yJ7UsqpJOFdNH+zf5vTJagzyRDn/KQo+ultN+fkBIQQACB8AKc0h7elBIRQOAHAU55Z0AggIBbgZxzxUkSdA8X0U/5rYjbnwQahgACHgRs+49dMTLpPaAeIGgDAggMLmCTFQdTLeMcvHdUgAAC0Qp4WG1dSK8X0s3YiJMk6A5mhibdVzB2kKkPAQTiEKiXdFlyPuX1InFg0UoEEAglMF9JB2z5C8VJOQggEEhg8vPKJE2y0miqBP2vKQ+Hmwo70GClGAQQSFCAK9QSDCpdQiAeAfalxxMrWopANgJOJnV/Hht89AS9PvTIZogm+9jp7VvSfydrABUjkLaALQW6WUhXaXczXO92pPel9C5ciZSEAAIIdBKYZLaoU0sdvLRTbUWyFU+senIQD5qQnsBK+sfUV8yW0tGtdDmm7ugJer238nDMTlIXAghMIjAvpfCuH4AAACAASURBVMst6TPJ+rP+3G8+ydCkUgQQeEHgcimdsC/9aSFLylfSr4Vkf8tOdlUwIxgBBEYTsN+JR6PVJmnsBH3yi+fHxKUuBBD4LnC1kk7Z4/jDiLDfh79PfJsFQxQBBBB4SoDD4x6o1GeEfOQAT35gEMhPYCnZMvf5WD0fNUH3cBrfWLDUgwACjwW4PaEy4TA4fjoQQCACAQ6Pq4PE368RjFaaiMCAAmP//Tpqgu7gPrsBQ0fRCCDQRMDOgLitlk9m+amTc5s5Z2lkliOATiMQlYAdHneU8zalbel86j2wUY0YGotAmgK2qmh/rK6NlqB7uPt8LFTqQQCBjQKnS+ls41OJPcAsTGIBpTsIZCIw9uyRF9aZ9FaSLWvngwACmQuMeSf6mAk6pxRnPrDpPgL3BQrpIKdZGZJzxj8CCEQukNUXq3YYXFmdE8IHAQQQsIPbPiyk92NQjJagz6SvXEMxRkipA4FoBEZdLjSlCkskp9SnbgQQCCWQ0xYltmWGGjWUg0AyAjdL6fUYvRklQa/3XP45RoeoAwEE4hHIYdkkyXk845GWIoDAZoEcknRWPG0eBzyBQI4CK2l/jBuJRknQZ9X+HdvHwwcBBBC4L5D0LDrJOYMdAQRSFKiT9NMxrx0a05HZ8zG1qQuBqATOlpL97hv0M1aCzvL2QcNI4QjEKzDmoRsjKtkd51+4L3dEcapCAIGxBZK8K51DjcceRtSHQFQCoyxzHzxB35YOi+oPVT4IIIDAI4EEl7lbcm4HC+0RbgQQQCBxgeSSdJa3Jz5i6R4CPQVK6ehWuuxZzIuvj5Ggc3/kkBGkbAQiFxjzVMwRqEjOR0CmCgQQcCWQVJK+I3HrkKvhRWMQ8CUwxjkcgyfoM+kvSbu+aGkNAgg4ErhcSkeO2tO1KSTnXeV4DwEEYhdIJkmvtycdxh4Q2o8AAoMJzJfSz4OVLtmVbsN9WN4+nC0lI5CQwNVSOoi8PyTnkQeQ5iOAQG+BJJL0eovSm94aFIAAAskKDL3MfegEneXtyQ5NOoZAMIHYZ9BJzoMNBQpCAIHIBaJP0plBj3wE0nwERhAYepn7oAk6y9tHGCFUgUDkApHvQSc5j3z80XwEEAguEHWSzh704OOBAhFIUWDQZe6DJegsb09xLNInBMILRHyKO8l5+OFAiQggkIZAtEk6p7inMQDpBQJDCwy5zH3IBJ3l7UOPDMpHIAGBSO9BJzlPYOzRBQQQGFQgyiSde9AHHRMUjkAyAkMucx8sQWd5ezLjj44gMKRAlAfEsUdxyCFB2QggkJCAJen7sfWHg+JiixjtRWASgcGWuQ+SoLO8fZJBQqUIRCcQ4/L2bYnVQdGNNBqMAAJTCQw5yzRUn1jmPpQs5SKQlsBQy9yHStD5Azat8UdvEBhC4GYpvR6i4KHKJDkfSpZyEUAgZYEYk/SZ9FXSq5TjQt8QQKCfwFC/2wZJ0Fne3i/YvI1ADgJDfes4lN1M+ijp7VDlUy4CCCCQssBQf8gOZcZq0KFkKReBpAQGWeYePEHfkd6U0u9J0dMZBBAILRDV3nOWO4YOP+UhgECOArFta2Iveo6jlD4j0E6gkA4W0lW7t15+OniCzixTyPBQFgJpCgzxy2woKZLzoWQpFwEEchSIKUln0inHEUqfEWgtcLaUTlu/9cILQyTo7NkJGSHKQiA9gWhmz3+S9raqFUG76YWBHiGAAALTCKyk/W/S9TS1t6uVWfR2XjyNQIYCwc9UCpqg13/M/plhYOgyAgg0FIjlDzOS84YB5TEEEECgvcB8JR3EkKTzt2374PIGArkJhP7bNmiCviO9L6V3uQWF/iKAQDOBiA4J2q1nTfaa9YynEEAAAQRaCtisk92RPm/53uiPc4PH6ORUiEBUAoX0YSG9D9XooAn6TLLZc/6gDRUdykEgLYF5Ie0vpBvv3eJ3mfcI0T4EEEhE4HopHXhP0nekV2X1Ny7bnRIZeHQDgcAC9rvMvnAM8gmWoNe/vGz/OR8EEEDgkUDobxeHImamZChZykUAAQQeC8SysopVooxeBBB4SaCQXoeahAqWoM+q+4HtnmA+CCCAwEOBKJYy8nuMgYsAAgiMLxDJF7i29clm0V+NL0SNCCAQgcDpUjoL0c6QCfoXSYchGkUZCCCQlkAM1+psS4eFZL/H+CCAAAIIjCwQw78TXLs58qCgOgTiErhcSkchmhwqQbdvFf8K0SDKQACB5ATcX6vGie3JjTk6hAAC8QlEcbI7167FN7BoMQJjCSyln0OcqREkQWfmaaywUw8C8QmEvnpiAAFObB8AlSIRQACBDgLut0Nx7VqHqPIKApkIlNLRrXTZt7uhEvTzQjru2xjeRwCB5ATOltKp517NqmXtbM/xHCTahgACOQm4X3U1q85csrOX+CCAAALfBUIdehkkQZ9Jdno7h2YwQBFA4L7AfCm9DrHUZyhWTuUdSpZyEUAAgV4C3r/ctZVX9rcv1671CjMvI5CcgK0Csr99e316J+gs9enlz8sIJCvg/cAftuYkO/ToGAIIJCAQaqnoUBQcGDeULOUiELdAiK2dvRN0riWKexDRegQGEnC9RHFHelVW1+Uw+zHQAKBYBBBAoKfAvJD2Q90r3LMtT77OgXFDqFImAtEL9L5uLUSC/rukN9FT0gEEEAgmUEivnf9RZcn5XrAOUxACCCCAwBAC10tpf4iCQ5RZf9lrS935IIAAAncCvSep+iboXK/GYEQAgR8ECunDQnrvlYXDfbxGhnYhgAACTwq43o/OWSaMWgQQeCjQ97q1Xgk6ezgZkAgg8EDA9WwHv7MYrwgggEB8At73o8+qLVOsyopvaNFiBAYR6Ps7q2+CzvVqg4SVQhGIU6CQDhbSlcfWs+/cY1RoEwIIINBIwPV+9B3pTSnZlk8+CCCAgPpet9YrQed6NUYgAgjcE3C9DJHDfBirCCCAQNQCrldosX0q6rFF4xEILdDrurXOCToHY4SOI+UhELWA/SKyg3zmHnvBHkGPUaFNCCCAQDsB52ec2LlMttT9Vbte8TQCCKQo0OfA5M4JOterpTiU6BMC3QQ8L23/Sdrbqv5o4oMAAgggELmA539vWOoe+eCi+QiEFeh83VqfBP2LpMOw/aA0BBCIUMDz0nZmNCIcUDQZAQQQeEHA9YotlrozdhFAoBa4XEpHXTT6JOh/SdrtUinvIIBAMgK2J/DA69J2/lBKZpzREQQQQOC7QN8DmAamtC+G7cA4TnUfGJriEXAuMK+vW2vdzE4JOkt4WjvzAgJJCqyk/W/StcfO8XvKY1RoEwIIIBBGoO81RmFa8XQpbK0aUpeyEYhHoOuWnK4J+vtSehcPDy1FAIHQAhEc1vOVVT6ho055CCCAgBsBm5167XUFF4eTuhknNASByQS6/q3cKUHnuqLJ4kzFCHgRuKqXtntpzw/tmEmckeEyMjQKAQQQCCrQeY9n0FY8Uxh/L4+hTB0IuBbo9Pdy1wS9dE1B4xBAYEiBeSHtL6SbISvpWva2dFhUCTofBBBAAIHEBTwvda+vJLZbRDizKfFxSPcQeE5gKbXOt1u/wL5OBiACeQt4/mPI/giaSSxtz3uI0nsEEMhLwPVSd740zmsw0lsEHgp02YfeJUFn/zljD4FMBZyfnCtObc90YNJtBBDIXcD1Uvdt6byQjnMPEv1HIEeBLvvQWyfo7KfJcWjRZwTWAq6vVGN1D6MUAQQQyFegyyzViFpcvTYiNlUh4Eyg9T70Lgk6+8+dRZ3mIDCCwHwlHXi9Us36Xy9tfzWCBVUggAACCPgTuFlK+15Pda+vXrP70dmP7m/s0CIEBhVouw+9VYLODNWgsaNwBNwKFNLJQrrw2kCus/EaGdqFAAIIjCfQZSnpeK2TdqTjUjofs07qQgCB6QXarvBpm6Cz/3z6GNMCBEYV8L7vvD4l1w6G44MAAgggkLnAStr3vNqL/eiZD1C6n6VA2y8PWyXo7D/PckzR6bwFXO87t9DweynvAUrvEUAAgQcCrfd7jizIfvSRwakOAQcCrX4vtU3Q2X/uIMI0AYGRBFzfd24GLBccaSRQDQIIIBCRQATbsl6VEvejRzSmaCoCfQXa7ENvnKCz/7xvWHgfgbgE2u6XmaB33Hk+ATpVIoAAAhEIuL4bvf6C+U0p2aFxfBBAIAOBNn9Xt0nQ2X+eweChiwjUAqdL6cyzBgfDeY7OqG2b2xWAVmMh/XGv5htJ9v/4IIDAMwKl9FHSXqJAZ0vp1HPfZtJbVTHggwACiQu02YfeOEGfSV8kHSZuR/cQyF7A+6FwFiAOhst2mFoifiXpv4V0vaj+Mx8EEOgokPr1lN4PjLOwcWhcx8HLawjEJ3C5lI6aNLtNgv4Xdzc2IeUZBKIWcH8onOlyMFzUY6xN49cJeSH9m2S8DRvPItBMYCalfrZQq4OZmqkFf4pD44KTUiACLgVs683PTVrWKEH/Sdrbqg6z4IMAAukKuN+zZ/Sch5HuAKx7Zkn550K6XLBEPflg08HpBHJZiVRKR7fS5XTSjWrmTJVGTDyEQNwCTVf1NErQOSk57sFA6xFoIDBfSQee746960PqSzIbxCrFR24K6bOkC5LyFMNLnzwKZPRl581Seu0xBvfbVE+G2aFxu97bSvsQQKCbQNMbJhol6OyP6RYE3kIgFoGmvzCm7g9fFk4dgeD1X5XSpwhmt4J3nAIRmFogs9+n7g8+tfGQWUym/hGgfgRGF2h6zlOjBJ0Zq9HjR4UIjCkQxR8uNqtQ/y5idmHM0TFAXfYP1Jb0mX3lA+BSJAINBTK7CSOKLVwWOk52bziAeQyBOAUarehpkqDbH8V2QBwfBBBITKDpN3keup3ZH5MeyIdow9VKOo1hK8UQnadMBDwJ5LY6ss0VR1PHKbfYTO1N/QiMKVAfFGdXxD772ZigZ7RHaczYUBcCHgQaX/fgoLHMnjsIQo8mXBfSKTPmPQR5FYHAAhnehjEvpP1YzrngeuPAA57iEHAiUEgHm/4eapKgvy+ld076RDMQQCCMQBTXqd11ldmEMEGfoBT7hvjDUjqboG6qRACBFwRy3L4Y06qxeluXHRq3x0BGAIF0BJqs5tmYoGf4DWs6I4CeIPC0QFTJeS5XASU4WO3+8pNYZqsS9KdLCLwokMEd6E/2v5BeR/R7iTvS+TlGID2Bq6V08FK3miTotv+cQ5nSGxz0KE+BqJb4WYiYPY9uoDJrHl3IaHCGAtmeLxTZLLqd7P6qlP7kb/EMf0rpcqoCdmjlz50TdGauUh0X9CtTgWjuOr+LD7+Dohupttf8KKLZqeiAaTACIQRyP18osll0cUd6iFFPGQj4Edj0O+jFGXTuY/QTSFqCQE+B6JJzZs97Rnzk12OblRqZh+oQcCWwLR0W0hdXjRqxMTH+viJJH3GAUBUCAwvUWwAvnqvmxQR9Jn2U9HbgNlI8AggMKxBlcs7s+bCDImTpm/6hCVkXZSGAQH8Brq2UNs1g9VcOXwJJenhTSkRgIoGzpXTaNUG30yPfTNRwqkUAgQACsSZP7D0PEPzhi4jyy5/hWagBAd8CTMBIMc6i26hidavvny1ah0BDgRcPits0g142rITHEEDAoUCsyTmz5w4H0+Mm3ayko2/SdRStpZEIIPBdgBt6KooYZ9FJ0vlBRiANgeX6V9DTn2f/h3oZjZ0ayQcBBCIUiDU5N2pmz90PuKiu6nOvSQMRGFlgVp0Knv392rHOopOkj/wDQ3UIDCCwkvafm+R4NkFnCc0AkaBIBEYSiDk5Z/Z8pEHSvRqS8+52vImAC4Fc70B/Cj/WWXSSdBc/SjQCgc4CL/2t/myCzv6kzt68iMCkAjEn5wbH755Jh8+myknONwnxvyPgXyDbO9CfCk3Ms+gk6f5/2GghAi8IPHtQ3EsJOgfEMaYQiEwg9uRckv3h+NX+b2T0OTSX5DyHKNPH5AVyvwP9qQAvpZ8lzWMNPqteY40c7c5c4NmD4l5K0DkgLvNRQ/ejEpgX0ulCevZOxRh6w9U/bqNEcu42NDQMgXYCud+B/pRWIX1YSO/bSfp6uk7S7XpkvuD2FRpag8CzAs8dFPdkgs4eUEYSAlEJJHPV1Uz6iz8u3I29ZMaXO1kahMAEAnwR+iT6fCm9jnkW3XrFPekT/EBRJQI9BJ47A+PJBJ1vV3tI8yoC4wokkzyxRG/cgdOwtmTGV8P+8hgCyQtwzsfTIU5gi9i6YyTpyf8I08GEBErp6Fa6fNil52bQ35fSu4T6T1cQSFEgqeSp3nv+KsVAxdqnVP5gjdWfdiMwhAB3oD+relPPog/BPmqZJOmjclMZAp0Fntte82SCPpO+SDrsXBsvIoDA0ALXK+nkufsTh648dPkcWhRaNEh5z54uGqR0CkEAgUkEuAP9efbnZrMmCVTPSusk/Zz77ntC8joCwwo8eVDccwm6naLMTNawAaF0BLoKJHdgF18Kdh0Kg7337Mmig9VIwQggMIoAd6C/yJza7z67GcVuZdobZXBRCQIItBV4cuXOcwk6J7i35eV5BMYRuFxKJ7EfZHOfikMpxxk4LWpJ4rCkFv3lUQRyEuAO9A3Rfu7QpogHicXcZtJZGRtxEGl6ugJPneT+KEFnqWm6A4CexS1QShe3VXKe1IcDi3yFM6Ulnr5kaQ0C0wvwN16jGCS5vWdbOi+k40YCPIQAAqMJFNLBQrq6X+GjBH0mvZVk9yjyQQABPwKnS+nMT3PCtYSr1cJZ9i0p1S+B+rrwPgKpCHBLT6NIJruKiL/xG8WfhxAYW+DR3/hPJeiWnFuSzgcBBKYXmBfS6UK6mL4p4VvA1WrhTXuUaPug9lPaPtHDglcRSFKAO9CbhTXlGyzqf3ftb/3dZho8hQACAws8WrXzVIJuh0m8GbghFI8AApsFkrpG7anuct3P5kEw1hMsbR9LmnoQmE6ALUWN7e0wVvvCMskP17AlGVY6Fa/Ao8Mpn0rQ/+JbtXgjTMuTEUjupPaHkeFwOFdj1Q4fPHLVIhqDAALBBfhStDnpStpP5SrTZ3rNCe/NhwNPIjCkgG2r+fl+BQ8TdE73HJKfshFoIFDvAz5NfakxMzkNBsM4j9g2iv2FdDNOddSCAAJTCXAHenP5TM7k2N2WPnJ4XPNxwZMIDCFQJ+jzu7J/SNA53XMIcspEoJVAsofBPVTgcLhW42Kwhwvpw0J6P1gFFIwAAm4EuAO9VSgezWq1ejuihzk8LqJg0dQkBR6e5P5Dgs4PaJIxp1NxCNgs5tHDaxbiaHr7VnKScHuzgd5I9rTigbwoFoGoBUjQ24Uv5cPiHkrUk3Rf2ObabozwNAKBBH6YoHuYoHOCeyBlikGghcB1nZxns8R4JtkfAYctjHh0AIGc/vgcgI8iEYhKgFWSncKV1fkc9dkw9u/zXictXkIAga4CP5zk/jBB5wT3rqy8h0A3gUdXK3QrJqq3OOvCR7jsWrXXPppCKxBAYGgBEvRuwoX0OrczOjgjpttY4S0Eegj8cJL7wwT9q6RXPQrnVQQQaCYwL6WTW+my2ePpPMVWGh+xZPbcRxxoBQJjCXAHemfpbM6GuS9Ub0U7Z8l753HDiwi0Efhh0uRhgl62KYlnEUCgk0B2S9rvK3GKcKcxE/olZs9Di1IeAs4FSNA7ByjpO9FfUmHJe+cxw4sItBZYSt/z8u//gaVPrR15AYEuAjkuaf/uxN3nXYZM+Hc4uT28KSUi4F2AO9C7RyiDO9FfxGHJe/exw5sINBW4f5L79wSdU5Wb8vEcAp0Esjql/Tkhlrd3GjuhX+Lk9tCilIdABAIk6L2ClPWX6ybHKe+9xg8vI7BRoJSO7ra+3p9Bf19K7za+zQMIINBWwE6BPZE0b/tias+zvH36iJbSxW01HvkggEBGAlyx1ivYbAuq+OyQV9uXzi0svYYTLyPwWOD+6sb7M+jnhXQMGAIIBBOwWfPThXQRrMSIC2J5u4/g5b5U00cUaAUC4wuQoPcz53fn33470nEp2dXMu/1UeRsBBO4E7k+gfE/QWfrEAEEgqMBVfUp2Nnebb9JjefsmoVH+92wPOxpFl0oQcCrAOUNBApP9Mvf7ivWX7jab/iaILoUggMD3q9buJ+h/8U0YIwOB3gK2jP3DUjrrXVJiBbC83UVAs7wuyIU8jUBgQgES9CD4LHN/grH+8t22yDKbHmSYUUjGAnZG0M/W//sJOlesZTwi6HoQAWbNn2FkeXuQ8dW7kEJ6vZBY1dFbkgIQiEuAK9bCxItl7k87MpseZnxRCgJ3V62tE3S+WWVAINBLgL3mG/hY3t5rfIV6meXtoSQpB4HIBEjQwwSMKypfdmRvephxRin5CtxdtbZO0LliLd+BQM/7CdQHOpxyQvvLjixv7zfOAr3N8vZAkBSDQGwCnDMULGJ80bmZcndb+sjB05uheAKBhwJ3V63dzaBzxRpjBIF2Ajf1IXBX7V7L8mm7lsXOuOAzoQDL27vj17OPv3QvgTcRmFxgjz3CYWLA79JmjvXqXDtE7lWzN3gKAQTuVumsE/RZdVXCW1gQQGCjgC1n/7SQ3m98kgfWAvWSN/tHms90Ahxu1NP+J2mvkH5jVqgnJK8jEL8Aq5FaxLD+gvM3viBqgcajOQusb4u4S9B/55qEnMcCfW8iYMvZt6QPHLLVROvvZ2bSF0mH7d7i6cACXA8UDnR3R3pbSr8yMxQOlZIQiEjgcikdRdTeyZtqh8itpHd8wTl5KGiAf4H1VWt3Cfqfkmz5Ex8EEHgsYKezW2LOcvYOo6Ne3s71Kx3sQr1yt6cpVHmUUwnUq0MsUeceYAYFAhkJ3J20nFGXg3S1XvZuV7LxOzOIKIUkKLA+5+IuQeeKtQQjTJd6C9g+c0vML3qXlGkB3BDhI/D1vZpzH61JrxUsf08vpvQIgZcE+NKz3/iov9y0RJ396f0oeTtBAfsC0BJ0DnBKMLh0qZfA3T7zM05n7+XI+Rb9+EK9zf7zUJKby2H5+2YjnkAgBQG2DfWP4t3vS/an97ekhIQEbFKlYIYroYjSld4C9Yw5iXlvyaoArlcLBNmvGPZL9vPr9DbL3zux8RICsQjwxWe4SNlEoc2mc1h1OFNKiljA7kIvuAM94gjS9GACHAAXjPJ7QXYoTCl9DV8yJbYRuLuyo807PBtOgOXv4SwpCQFPAly3FjYaHCQX1pPS4hWwLTQ2g84d6PHGkJb3FCAx7wn4wutcrzacbZuS7ZtYDjhsIzbYsyx/H4yWghEYX6CQTjijJrw7iXp4U0qMS8AmVkjQ44oZrQ0kQGIeCPKFYralc65UGd55Uw3M8mwSGv9/r7+8sn2X3J4yPj81IhBKgO1DoSSfKIdEfUBcinYtsE7QZxJ3oLsOE40LKUBiHlLz5bJm1fJ2Tmgdj/zJmrgOaOIAvFC9nQGzkn7liyy/MaJlCLwgMK9vyABpQAES9QFxKdqrwBUJutfQ0K6QAutT2SVdLKSbkAVT1tMC7D93MzLW92m6aQ0NeVLAfl4kHZcSpxkzRhCISGAl7X+TriNqcrRN5fdktKGj4e0F1gn6X3bVWvt3eQMB9wKWjH9aVveYcwf0iOFi//mI2C9XdbWUDty0hoZsFGD5+0YiHkDAk8DpUrKbX/iMJ2Cnvh+r+kKTVXrjuVPTeAJzS9DL8eqjJgRGEbgqpM8c3jKK9ZOVsP98Ovv7NduWjlvpxEdraEUbAZa/t9HiWQQmE2Af+mT0EtdZTohP1YMKkKAPykvhIwrMS+mylD6x3GxE9WeqYv/59DGwFnDFmo849GkFyzr76PEuAoMLcB/64MSbK7h3neUhq4I3e/GEfwESdP8xooUvC7CM3dkIYf+5n4CQoPuJRYiWsPw9hCJlIBBWgJsywnr2LI3l7z0Bed2HAAm6jzjQinYCzJa38xr16W3psJC+jFoplT0pQIKe5sBg+XuacaVXcQpwH7rPuDGr7jMutKqZAAl6Myee8iFwt7f8kkPffATkqVbMpI+S3vptYT4tI0FPO9b1ahU7KMkOTOKw17TDTe/8CpwtpVO/zcu+Zbs70mEp/SrpTfYaAEQhYAn6n5L2omgtjcxRwK4v+VxIl1yRFkf4Z9Lv/CPoI1aFdLCQrny0hlYMKHD3B+g7TjUeUJmiEXhagOssIxkZ9Zeatk/dknVyn0jilmEzry1BZ7Yrw8g77zJJufMAvdQ8bobwEzwSdD+xGKsltvy9vk/d/gjlgwACIwgs12dy8olJgGQ9pmhl19azwvZobFWz6HwQmFKApHxK/UB18/skEGSgYtgbGQgywmJY/h5h0GhytAJ8GRpt6NYNJ1mPO36ptX4l7a+/8WNJamqhjaY/l4X0b0lXLF+PJmYvNrQ+Zfo8jd7E3wv2oMcfwwA9YPl7AESKQGCDwOlSOkMpfoH6aktbifQvSaxEij+ksfXgaikdrBP0ekmc7Rvlg8CQAjZLflVKf9xKdtAbn8QE2DLjK6Ak6L7iMXVrWP4+dQSoP1WBUrq4lU5S7V/O/apvpvmlPluHfes5D4YR+n63Guf7nhn+sB5BPb8qbkrpakv6g1nyPILPahxfcSZB9xUPL61h+buXSNCOhAQ4KC6hYD7XlbvZ9ZX0S1GdCP8qg27TxfEEvt8Icf9Qi936j2u+HRovEKnV9H2GfEu6Ztl6auHd3B8OiNtsNPITXP8zMnhk1bH8PbKA0Vy/AhwU5zc2Q7XMEvaVtFdIzLAPhZxPufYl38HdNdIPT50kSc9nIPTt6Y0kS8j/KKpknKuc+opG/j4HxLkM4Hovk8uW0ShXAvXyd7umjXuCXUWGxsQiwEFxsURq2HbWv0ttstOSdvu/zLIPS55C6T8k59ahp66FsCTdDnniYIQUQt6/D/M6Ebdk/L8k4/1BUy2BA+JcRpYE3WVY/DaqnhF6V1R/A+z6bSktQ8CXALdm+IqHp9bcS9r/USftlrjz+9VTkKZry+WyOr/C8q3vn2fv1C/IHQAAIABJREFUbawPRbA70vnmZ7qgjVmzzYDPC+k/kmx2/GZRzZD/MGDGbBB1xSWwI70vJZuB4+NHYL6UfvbTHFoSkYB9WX8s6Tf+DogoajR1SgG2FE2pH1/dtsXobob9VSn9s07aWcUUXyy7tNjO6Tp97tDsZxP0u5rqWTGuGuhCP/07d7Pf65YU1WFt9lkn4P8nzb9VSTgfBHoLcEBcb8JBCmBf5CCsWRVaf2FviTp/OGYVeTrbUoAVSy3BePx5Ads2+D/VLLtNlK4nS8tq2fzdh1n4OAfQ+orphXTxUvM3Juj3X7YlGvX///tgea7wspqNJfkbcfCQcI+ITVWPBGbSV2ba/A0M9kX6i0msLWL5e6yRo90jCbBiaSRoqnkscC+hh2ckgbI6IPDFrQr38+E253W1StBH6i/VIIBAhAKc4O4zaOyL9BmXyFvF8vfIA0jzhxGotxSxNXAYXkpFIBsBEvRsQk1HERhOoD4A5ffhaqDkHgLsi+yBx6svC7D8nRGCwN8CrFhiNCCAQAgBEvQQipSBQOYC9R/pXzJn8Np9u75j32vjaFcaAix/TyOO9KKfACuW+vnxNgIIVAIk6IwEBBDoLcAJ7r0JBy2Ag+IG5aXwHwVY/s6IyFagkD4spPfZAtBxBBAIIkCCHoSRQhDIW2Am2ey53ZvMx6EAyy4dBiWDJtW3wPzK6e8ZBJsu3glwkjtjAQEEeguQoPcmpAAEEOCKNfdjgH3o7kOUbgPtdOFC+q2o7lXng0DKAiToKUeXviEwkgAJ+kjQVINAygIz6S9tuGoi5f5H0Df2oUcQpAyauLsjvS0lm1Vf3+vLB4HUBNhSlFpE6Q8C4wuQoI9vTo0IJCfAFWv+Q1pIrxfSjf+W0sIcBFj+nkOU8+wjV63lGXd6jUBIARL0kJqUhUCGAlyxFk3QT5fSWTStpaFZCLD8PYswZ9VJzvzIKtx0FoFBBEjQB2GlUATyESBBjybWLHOPJlRZNpTl71mGPb1Ol9LRrXSZXs/oEQIIjCVAgj6WNPUgkKjATHor6WOi3UuqWyxzTyqcyXaG5e/JhjaLjnHVWhZhppMIDCpAgj4oL4UjkL4Ad6DHE2P+cIwnVrRUYvk7oyBGAX7Pxhg12oyALwESdF/xoDUIRCfAHehRhexmKb2OqsU0NnuBnerE9+NS+o3bIrIfDjEAcNVaDFGijQg4FiBBdxwcmoZADALcgR5DlP5uYyGdLKSLuFpNaxGoBOrl75ao72GCgFMBEnSngaFZCMQiQIIeS6RoJwJOBWbSn/yx7DQ4TzeLw+KiCheNfUrADqdcSb8W0jFCCDgTYKWSs4DQHARiEyBBjy1itBcBZwLcge4sIA2awzVADZB4JAoBlr9HEabsGrmU+Ps6u6jTYQTCCfALJJwlJSGQpQAJepRhZwlmlGGj0S8JsPyd8eFFgATdSyRoBwJxCpCgxxk3Wo2ACwGbvSqlry4aQyNaCTCL3oqLhyMSYPl7RMFKtKn8fk00sHQLgZEESNBHgqYaBFIUsD+ES+n3FPuWQZ/YJ5lBkHPuIsvfc47+tH0nQZ/Wn9oRiF2ABD32CNJ+BCYUIEGfED9M1adL6SxMUZSCgF8Blr/7jU2KLSNBTzGq9AmB8QRI0MezpiYEkhPYlg4L6UtyHcunQ/P6XvR5Pl2mpzkL1F8q2jVthzk70PfBBfjyc3BiKkAgXQES9HRjS88QGFxgR3pfSu8Gr4gKhhS4XEpHQ1ZA2Qh4E6jPz7BE3a5p2/XWPtoTt0AhfVhI7+PuBa1HAIGpBEjQp5KnXgQSECBBTyCIkkrp6Fa6TKM39AKBVgK7O9Jh/UXjq1Zv8jACzwiQoDM0EECgjwAJeh893kUgcwES9GQGAEvdkwklHekqwPL3rnK891CABJ0xgQACfQRI0Pvo8S4CmQuQoCc1ALgbPalw0pmuAix/7yrHe/cE2DrEcEAAgc4CJOid6XgRAQRm1RVrb5BIQ4BZnzTiSC+CCbD8PRhldgXxhWd2IafDCIQTIEEPZ0lJCGQnQIKeXsjZj55eTOlRfwGWv/c3zKwEEvTMAk53EQgpQIIeUpOyEMhMgAQ9yYDPV9LBN+k6yd7RKQR6CLD8vQdeXq+SoOcVb3qLQFABEvSgnBSGQF4CJOjJxpskPdnQ0rFAAruz6oo2u6qN098DoSZUDAl6QsGkKwiMLUCCPrY49SGQkAAJekLBfNyVm6W0L2medC/pHAI9Bbalw6JK1DmPo6dlQq+ToCcUTLqCwNgCJOhji1MfAgkJkKAnFMynu3K9lA5I0pOPMx0MIGDL31fSu0I6lLQboEiKiFhgKfE3dsTxo+kITCnAL48p9akbgcgFZtJXlndGHsTNzb9eSSfsSd8MxRMI1AIsf2coiASdQYAAAl0FSNC7yvEeAghoJpUwZCHAnvQswkwnQwuw/D20aDzlkaDHEytaioA3ARJ0bxGhPQhEJECCHlGw+jd1Xkont9Jl/6IoAYG8BOpr2t6xTz2fuJOg5xNreopAaAES9NCilIdARgIk6BkFu+5qIX1YSO/z6zk9RqC/AIl6f8NYSiBBjyVStBMBfwIk6P5iQosQiEaABD2aUIVuqJ1QfMThcaFZKS8XgR3puJQ+cphcuhEnQU83tvQMgaEFSNCHFqZ8BBIWIEFPOLibu8aS981GPIHASwJ2mNy5qlPf+SQmQIKeWEDpDgIjCpCgj4hNVQikJkCCnlpEO/XncimdMJveyY6XEFB9kJwl6lzNltB4IEFPKJh0BYGRBUjQRwanOgRSEiBBTymavfoyl/RhKZ31KoWXEchUwO5QL6UvkvYyJUiu2yToyYWUDiEwmgAJ+mjUVIRAegIk6OnFtGePbkrplJPeeyryerYC29J5IR1nC5BQx0nQEwomXUFgZAES9JHBqQ6BlARI0FOKZtC+XJXSJxL1oKYUlonATHqr6gA5PhELkKBHHDyajsDEAiToEweA6hGIWYAEPebojdL2m/paNrs73ZbB80EAgQYC9Snvti+dT6QCJOiRBo5mI+BAgATdQRBoAgKxCsykr5Jexdp+2j2agJ34frlV3aF+M1qtVIRAxAIk6REHTxIJetzxo/UITClAgj6lPnUjELnATPpd0pvIu0HzxxW4KqTPC+li3GqpDYH4BEjS44vZXYtJ0OONHS1HYGoBEvSpI0D9CEQsQIIecfCmb7oteb8opE/Mqk8fDFrgV4Ak3W9sXmjZ1VI6iLLlNBoBBCYXIEGfPAQ0AIF4BUjQ442ds5ZzqJyzgNAcXwKz6tA4OzyOTxwCJOhxxIlWIuBSgATdZVhoFAJxCJCgxxGniFpph8p9tpl1ZtUjihpNHUVgVt2TfjhKZVTSV4AEva8g7yOQsQAJesbBp+sI9BUgQe8ryPsvCFzWy9+vUEIAgbXA7kz6k4M5oxgNJOhRhIlGIuBTgATdZ1xoFQJRCJCgRxGm2Btpp75/WlaHynFVW+zRpP29BH6S9raqJJ2PbwESdN/xoXUIuBYgQXcdHhqHgG8B9kX6jk9qrSuli63qBHhm1VMLLv1pLLAjvS+ld41f4MEpBEjQp1CnTgQSESBBTySQdAOBKQT4Q3EKdeqUZHvV7U71S2bVGQ85CtRL3fdy7HsMfa5/P72Poa20EQEE/AmQoPuLCS1CIBoBEvRoQpVqQ+eldFlKn75J16l2kn4h8FBgR3pTSr8j41OABN1nXGgVArEIkKDHEinaiYBDARJ0h0HJt0nX9aFyzKrnOway6vm2dF5Ix1l1OpLOkqBHEiiaiYBTARJ0p4GhWQjEILAtHRbV1T98EPAiYAfJXdTJuh0wxweBJAV2pFdldWDcbpIdjLtTp0vpLO4u0HoEEJhKgAR9KnnqRSABAZZZJhDEtLtwZfeqL6oT4PkgkJwAq5h8hrSQDjjM0mdsaBUCMQiQoMcQJdqIgFMBEnSngaFZDwWYVWdMpCpgd6N/ZRbdV3hJ0H3Fg9YgEJsACXpsEaO9CDgSqJdY2h+HfBCIRcAOlft8W50AzweB6AXYi+4vhCTo/mJCixCISYAEPaZo0VYEHArMpNJhs2gSApsE7Kq2z7ZffSGxV32TFv+7WwG+KPUXmqXE39f+wkKLEIhGgF8g0YSKhiLgU4AE3WdcaFVzgVK62Kr2ql81f4snEfAjMKuuXHvjp0V5t4QEPe/403sE+gqQoPcV5H0EMheYVacI72XOQPfTELCZ9E/L6lA527fOB4EoBHak41I6j6Kx6TdyvpR+Tr+b9BABBIYSIEEfSpZyEchEgJmbTAKdWTeZVc8s4PF3l8Pi/MTwaikd+GkOLUEAgdgESNBjixjtRcCZwKy6B/3QWbNoDgKhBK7rO9XtUDlm1UOpUk5wAQ6LC07atUAS9K5yvIcAAmsBEnQGAgII9BLgHt5efLwcj8C8lOwE+E/fpOt4mk1LcxFgmbuPSBfSh4X03kdraAUCCMQoQIIeY9RoMwKOBEjQHQWDpowlcDerbnvV+SDgRcCWuf/lpTG5toMEPdfI028EwgmQoIezpCQEshTYkd6U1QnCfBDITcCWvF/US+C5qi236DvsL4d2Th+UUjq6lWxLDB8EEECgkwAJeic2XkIAgTsBEnTGAgJrgSu7V31RnQDPB4FJBGbSR0lvJ6mcStcChXTAlY0MBgQQ6CNAgt5Hj3cRQGAtwF3oDAQEvgvMbUbdZtYXErPqDIxRBbalw6I6uJPPRAL1FWscKDmRP9UikIIACXoKUaQPCEwsUO973J24GVSPgDcBO1TuM8tdvYUl3fbsSK9K6Wu6PfTfsyUHMPsPEi1EwLkACbrzANE8BGIQ4C70/9/e/R63cWR7H/8Nb5ngu8uNYKUIloxgxQhMRWAyAosRSIpAdASiIhAdgekIzI3A3AiM5x1A1SWeOpyBDFEkAcxMd5/u/qJqy77XmP7zOU0SB/0vhyjRxoQCN93y93OuaksYhUqq5gvTpIG+nkuHSVtA5QggkL0ACXr2IaQDCKQX4C709DGgBXkILKSLnXav+lUeLaaVuQnwhWnSiHEHelJ+KkegDAES9DLiSC8QSCrAVWtJ+ak8TwHbn/7LvD1Ujv2qecbQZat3pY+NdOKycYU3iivWCg8w3UMgkgAJeiRoqkGgZAEOJio5uvQttIDNqi+kX75I16HrovzyBfjCNGmMz+aSbWXhhQACCPQWIEHvTceDCCCwFOCqNcYCAqMIXHd3qtsdysyqj0JaXyGT9po1u26NV2QBrliLDE51CBQqQIJeaGDpFgKxBbhqLbY49RUsMF1IdgI8s+oFBzlU1/jCNJTs+nK5Ym29Ee9AAIH1Alsl6PZL34pcSAeNtOmVSrbPjrtg18di8Dv+T5qyRHIwIwX0FJi0V/u86Pk4jyGAwOMCV90J8LZXnRcCawVI0NcShXrDtEvQQ5VPuQg8KfCDdPA/m+dmSA4TsM+6m37e/ZoHb3M47NoEfU86WUg/Sjoe1heeTiBgSyS/7mlspN+7NvQaLAnaT5UZCXBycEbBoqk5Ctjv84tuCTxfeucYwUhtJkGPBP19NZzgnoy+vIqXk6JdInifDC6kf6/09EAk5DkG/rKRfp21B8Q++XoyQe8OfbI9TJt+Q5AjEm3+W8Cu/Jk20n+6FQ83sza5Zx8ko2QjAQ4m2oiJNyEwhgCz6mMoFloGCXqywJ7PpbNktVNxbgL7e5Il2fezsQvpX13Cfb9amVfxAjcL6exWsjNnvns9lqDvT6SPzJgXPzA27eByFt6S9f820vU2SzQ2rYT35S/Qrbax3x28EEAgjsCNLX+3mfUZW8niiGdQy177Yd+2HPGKK8AJ7nG9s6mt+9LMkvF/qk3Kmf3OJnrBG3o5l04fTog+TNAtOf+tGzjBW0QFWQvYEktL2n8nac86jqM13vY/7Uh/jFYgBSGAwDYCdqjcp6e+jd+mIN6btwAJepr4cYJ7Gndvta4k47YcfTlD7q2ZtMeXwPVcOlpN0lcTdJJzX8HKsTWWsF8tpN932pl29knmGMUBbeYk9wF4PIrAOAL2e/eXebu/jS1K45hmVQpL3NOEay6tPdcpTcuoNZSAfRl21x6cbcm4LU23hJwXAn0EvknSv/4ymbR3ZtrdmbwQGEvA9ldc7bSH012RsI/F6recSTuDzh8ovyGiZRUJLKSLHekT25IqCrokEvQk8bYP14dJaqbSaAKWkFsifif9u2kTcs7piqZfRUVfz7G4T9D5ZV5F0D108usMO8swPYRj/DbsSh8b6WT8kikRAQQGCDCrPgAvt0f5TBc/YvZl2G27j5RXYQLdodnMkBcWV6/dWW6VuU/QuR7Ja5iKb9f9VQPMrpcT50m7CsdW4/BCAAF/AtOFZHvVf/mycgWnv2bSoiECJOhD9Ho/ywFxvel8PbicJeeKaV9xqag199c1NhzsVFHIfXfVZtc/NdIlS+F9B+q51vH7JN/Y0fLqBK67O9Xtihf2qhcUfm7UiB9MDoiLbz5mjd3BiseSfmKb3piylNVH4E46bNh73oeOZwILkKwHBg5ZPAfFhdSlbARGF7ifVd+R3vPl6Oi2SQrck94tpLdJKq+0Ug6Iyy/wJOX5xayiFp9bgs6hThVFPMOukqxnFjS2zGQWMJqLwN8CV3av+qw9AZ5XpgJMvEQPHAfERSfvVyFJeT83nooucG0J+iJ6tVSIQD+B5YdHlmT284vyFB8OozBTCQIhBWzJ+0W3BJ7rMkNKByibL0kDoD5TJAfExfXuUdv+nnS8aJev28nrvBBwL0CC7j5ENPARgeWSTK4Pcjg8uhNPPztsGk1CAIHtBa7sUDlu3tgeLtUTE+lPrn+Kp99Ip6w6iee9aU12WOKd9FMj2d7y/U2f430IeBAgQfcQBdowRIDrg4boBXi2W0JmHxB5IYBAOQI3tvzdZtbZq+47qKyMjBufRnrJz0Rc82dq25+0V73+zJdUbmJCQ3oIkKD3QOMRlwJcH+QoLMzgOAoGTUFgfAG7IvOXmXQ1ftGUOESAK9aG6PV6djqX/tHrSR4aTcBukGmkn5ktH42UghILkKAnDgDVBxHgoKMgrJsXuit9bNpvsXkhgEC5AqxgchbbifRG0gdnzSq5OZdz6XXJHfTct+5KQfaWew4SbeslYAn6X+zN6GXHQ/4F+PCYKEbcw5sInmoRSCRgB2XZXvUvkt28wSuRAF+ORoc/m0vn0Wutu0KWsdcd/xp6P7UE/TdONawh1lX3cWrLMdk7GW8MsA89jHXT3lX9LkzplIoAArkLcHVu3AjeSYd8KRXH3D5XSDpZtPvLOfQtDju1pBG4IkFPA0+tiQRslmenTXK4OihwDNiHPj4wCfr4ppSIQEECNrNoqyJ5xRFg/3kEZ0vM76S3bJuLgE0VXgSumj3p3UJ666VFtAOBGAIk6uGVWWo5vnEjHXEw1/iulIhACQJccRk9iuw/D0hOYh4Ql6JdC9hkDAm66xDRuNACJOrhhNmHPr4tCfr4ppSIQCkCk/ZwODskjlccAfafB3AmMQ+ASpFZCdwn6HzjmlXMaGwgARL18WHZhz6+6Vxqxi+VEhFAoAQBthXFjSL3n4/rTWI+riel5SuwkF7bDPqrRXtQHC8EEJDO59J7SVMwhgtwYNFww9USSNDH9aQ0BEoR4AvR6JG8mUsvo9daZoV2doJttWX1R5nxpVdbCthqSZuN4VCRLeF4e/EC96e+z9qrU0jUB4SbJZcD8L5/9HouHY5aIoUhgEARAtx/HjeMturuVjqNW2txte3vSW84lb24uNKhgQJz6R/3yyUn0mJgWTyOQIkCN92p2Rcldi5Gn9hCM6ry1Vw6GrVECkMAgSIEWK0UN4y2BPVWuoxbazm1dWfU2Ky5XZ3GCwEEVgRsteQyQf9D0gE6CCDwqMB1I51xena/0cEXgP3cHnnKtl+cjVYaBSGAQBECLG+PH0ab4WKF3fbu3bZaO8yQnGN7Pp6oQ+B+teQyQbc96K/q6De9RKCfAAfJ9XObSJ8lHfd7mqeWAtyBzlhAAIHHBFjeHn1ccL3aluQcALclGG+vWeB+teQyQedqjpqHAn3fRmC5P/3dNg/V/F6uWxsn+iypHMeRUhAoTYDl7dEjyvVqW5DvSe/YZ74FGG+tXeB+teR9gt798NheEF4IILCZgO1PP2XZ+3osll+uN9rkHdyBvokS70GgLoEfpIMdybYp8ookwPVqm0F3y9k/ss98My/ehYAJLFdL3ifoHOTEoECgn0B3kqvtC+a092cImeHpN75Wn2LP43BDSkCgNIFd6WMjnZTWL8f94TaN9cHZ35U+MC7XQ/EOBB4KLFdLLmfQuQudMYJAfwFb9m6HyHHa+xOG7JHsP7iWT3IH+nBDSkCgMAG7JvdPuy63sH557g6HdT4TnW5Lm22bZUx6HsW0za3AcrXkfYJuL05adhsrGpaPwFW37P0mnybHaSnL3Ac7M2szmJACEChLgC8+48fzTjr8Il3Hr9l3jd3feFvOzoHTvkNF65wLLCdjVhP0v/jGy3nUaF4OArbU/f1cOs+hsTHbyDL3QdrcgT6Ij4cRKE+gmz3nHul4ob2ZSy/jVZdHTd0XRXaOFbPmeYSMVvoVmHbbGW0vevuaSFy15jdgtCw/AWbTH8RsInFbRP9xzLLK/nY8iUBxAtyOkSSk/B5eYWfWPMkYpNKyBb5OxnxN0DlopOyI07skAuxNX2HntOH+Y5A70Pvb8SQCJQowex4/qixv/9ucvebxxx81li/QHTx9aj39mqBz1Vr5gaeHyQQu55L9wFV/0jsfKvuNQe5A7+fGUwiUKMDseZKosry9ZbeDCW2v+XGSKFApAgULrE7GrM6gHzfS54L7TdcQSClgs+mva783nUON+g1B7kDv58ZTCJQowBedSaJa/fL27l5zyxPYa55kCFJp6QKrkzGrM+hctVZ65OmfB4Gq/8hzmnu/Icgd6P3ceAqB0gT4kjNNRGtf3s4ZMmnGHbXWJbA6GfM1QTcCrlqrayDQ22QC191sepXXsXGa+/bjjjvQtzfjCQQKFODe8zRBrfaay+5LdZs1P0hDT60I1COw+lnvYYL+pySu7KhnLNDTdALThXR6K12ma0KampkB2tq92g+HW0vxAAIFCzCLmSy4ZzVenbor2dZX22/OkvZkQ4+KKxL45pyLhwk6V61VNBLoqguBGpe82yzQXy7082gEd6DnESdaiUAwAW7BCEa7tuBGejmTqlrxxpdBa4cFb0BgbIFvPus9TNC5p3hsbspDYL1AdUveJ+2BlJwCu35saPXajQ3ezlsQQKBAgYnEBEqauNotLK/TVB2/Vpa0xzenRgQ6gW8m7B4m6G8kWZLOCwEE4gpUdcp7t3SOWyM2GGPcgb4BEm9BoGABtgWlC24jnc6ki3QtiFczp7THs6YmBB4R+GYrzTcJevfDad/S8kIAgTQC1ex165a5s7dtzTir6QNimh85akXAr0A3o/kH+4CTxGja3aCRpPKYlfIlUExt6kLge4GH1+l+k6DbHwD2hjJsEEgr0C1pPpM0TduSsLWzx20zX+5A38yJdyFQogBL29NFtZLtRfu70odGOkknTc0IIPDwOt2HCbpdtWaHNzGrxVhBIK2Andx9VHKSzp3omw2wGg8o2kyGdyFQtgCzmmnjW8Hd5zYpZ6tmuUIt7VCjdgS+W63zWILOQSQMFAR8CEzvpKMv0rWP5ozfCmaH1ptyB/p6I96BQGkCnNqePKJFX2/ZjS/7vM+EXPKhRgMQ0He39TyWoHOSOyMFAT8CdnjcWamH1OxJJ4v2nlVejwt8cy8mSAggUIWAzWzavvMXVfTWYSdLPvuj+7trn/VJzh2OPZpUpcB3Vy4/lqBzknuVY4NOOxco9vA4ttU8O/K4A935DybNQ2BsAa6hHFt06/JsuenLEreYsW1i67HAAwjEEPjuM/53CTonuceIA3UgsL1AqQfWcFjc02Oh1JhvP/p5AoE6BPakdwvpbR299dnLUn/v7kofOQzO55ijVXULPHYY8HcJuhFNpEXdVPQeAbcCl3PptKRv9jks7umxxh3obn8OaRgCowuw5Wd00l4FFngwp22ZsK1kx71AeAgBBIIKPHbW0FMJ+p/sfQoaCwpHYIhAcSe8s6Tz8eFQ8j7IIT8APItAaQIc2uUmoqVtK+KkdjdDi4Yg8KjAo2cNPZWgf+abNoYRAq4Fru+k01JOeGdrzZMJ+tFMunI9EmkcAggMEiA5H8Q36sML6fWtdDlqoYkK68aVzZxzjVqiGFAtAhsI2MrY1w/f92iCzh6oDTh5CwLpBYq6hm0isXLnwZgqcKll+p8aWoCALwGb4bTffZyonT4uxdyawZc+6QcTLUBgE4GntjI+mqDvSseNZLPovBBAwLdAMUk6+y+/H2jcge77h4/WITBQgOXHAwHHfLyULUUk52OOCspCIKzAU6t2nppBf7Fov9HlhQAC/gWKSdK5cu2bwVbMbI7/HyFaiEB0AZLz6OTPVljE1Wok574GFa1BYJ3AUyslH03QrTBOcl9Hyn9HwJXAtJHOZtKFq1Zt2Ri213wDVtphRVuOBt6OQLECJOfOQlvCjRndKrQPbJdwNrhoDgLPCDy1UvK5BP03Sa9QRQCBfAQKWKLHfsxuuJV6F28+P020FIHxBZjhHN90jBLn0j9yvr6ULWJjjALKQCC6wJMTMc8l6PYt3JvoTaVCBBAYJJB7kr4rfWykk0EIBTxcwoxOAWGgCwiMJkByPhrlqAXl/mUoyfmow4HCEIgpcD6Xzh6r8MkEnR/4mPGhLgTGFcg5Sd+TOAOjHQ5nc+l83JFBaQggkEKA5ccp1DerM+fbMvisvlmMeRcCHgWe+6z+ZILefdP7h8cO0SYEEFgvkHOSziy61Ejcgb5+mPMOBNwLTNrViLYqkZczgZxnz0nOnQ0mmoPAlgJ30uEX6fqxx55M0O3NHBS3pTRvR8CZQK5JOrPo0nO/uJ0NM5qDAAKBRaCwAAAgAElEQVSPC+zvSh/YsuN3eOQ6e05y7ndM0TIENhV47irddQk6B8Vtqsz7EHAqkGuSXvssOnegO/2BolkIbCDQrUL8KOlgg7fzlgQCuc6ek5wnGCxUicD4As/e1LMuQeeguPEDQokIxBbI8p70ymfR7U5eO1WYFwIIZCbQLWl/y3VXvgOX4+w5Bw36HlO0DoEtBJ48IM7KeDZB51u6LZh5KwK+BbJM0iueRecOdN8/T7QOgccE7JpImzU/hse3QI6z5yTnvscUrUNgG4F1q1vXJeicpryNNu9FwLdAdkl6xbPol3Ppte/hROsQQGApsCsdN21yvo+Kf4HcZs9Jzv2PKVqIwDYC634HPZugW0UT6S/+4GxDznsRcC0wbaTDmXTjupUrjatxFp070HMZnbSzdoHuS0RLzF/VbpFL/3ObPe/GmN2qxJc/uQwy2onA8wJrtzFukqBzUBzDDIGyBK7n0pGkaQ7dqnQWnTvQcxictLFmgf096c1Csr3mvDISWDdz5awrtm3CPodz2KCzwNAcBAYIrN3GuDZB35Pe8QdoQAh4FAGfAlkl6bXNonMHus8fGlqFgAl05/PYIbrMaGY2JDKbPSc5z2x80VwENhHYZJXkJgn6q0X77R0vBBAoSyCnfc72QeXPWj4Qcwd6WT9o9KYMgS4xtxnzF2X0qL5e5DR7PpE+c+BgfWOUHpcvsMkkzNoE3T4Qd/vQyxejhwhUJpDTbEJNq3m4A72yH0S661qAxNx1eDZu3CazVhsXFviNta0aC8xJ8Qi4Euiu0X12m+kmCbodFGczV3xj7Cq8NAaB0QRy2e9cyyz62sNDRos8BSGAwKMCdvaFpJOF9HMtK3cKHwr2e/VlDmevTKQ3kmwLBS8EEChP4Kb7XfRszzZK0Pkmr7zRQY8QWBVYdx+jF61uJstOTC75tfbwkJI7T98QSCnQXZf2E0uLU0Zh/LpzmT2v5G/c+AGmRAQyEdh05epGCTq/MDKJOs1EoL9ANnekV7CiJ6ezAfqPOJ5EwImAJeWSfmzaf3Lwm5O4jNiMjWasRqyvV1Hcdd6LjYcQyEpg0wmxjRL07peG3cHICwEEyhXIYgngnlT0wZW5zPSU+2NAz0oX6Jav2++RH7v7y0nKCw76Qnp9K10672ItW7ich4HmIRBWYNNDgDdK0K2p3UFx/BELGzdKRyC1QBbXr3X3wr5KjRWo/lzOBAjUfYpFYFQBu6/c7pC2hPxf3X3SnKkzKrHrwnLYMsR1aq6HEI1DYDSBjc8Y2iZB57qH0eJDQQj4Fdh0f0zKHtgM2KI9vLLE11kjXZfYMfqEQCiBO2l/p03E1SXiNqFg/zcTC6HQMyh309mqlF3hnKeU+tSNQFSBjbcwbpyg13TFUdRQURkCPgXcz+JO2lNu7bRbXggggAACCDwUOJ9LZ55ZOLHdc3RoGwLjCmyzhXGbBL3ofZ/jhoDSEMhfoJGOZtKV456wZ89xcGgaAgggkFDA/ZkqpZ+nkjD2VI2AS4FtPldvnKBbTyf3K8d4IYBAJQLTRjqcSTde+8sNE14jQ7sQQACBdAKbnpScqoXdNi07fJktGKmCQL0IRBaYSxvn3Ru/sUvQf+tOPI3cJapDAIFEAu4PjSv8wLhEYadaBBBAIFsB7wfDcShctkOLhiPQW2Cr30tbJejsQ+8dFB5EIFsB74fGFX5gXLbjhoYjgAACKQS8HwzHoXApRgV1IpBWYJv959bSbRN09qGnjS+1I5BEIIPlgu8W0tskOFSKAAIIIOBFwPXBcGzL8jJMaAcCcQW22X++dYJuD7APPW5AqQ0BJwLTO+noi9/rv2zJoO3n435jJwOGZiCAAAKRBW7m0qGkaeR6N6ruB+lgR7Ktouw730iMNyFQjsA2+8/7JujsQy9nvNATBLYRcL0fnRNxtwkl70UAAQTKEth2hipy79l3Hhmc6hBwJLDV/vNeCTr70B2Fm6YgEFnA+3507kaPPCCoDgEEEPAhcDmXXvtoyvetYN+518jQLgTCC2y7/7xvgs4+9PCxpAYE3AospNe30qXTBnI3utPA0CwEEEAgkIDrO893peNG+hyo7xSLAALOBfqs7tnqkLhl/9mH7nwk0DwEwgq4vh+dD0Nhg0/pCCCAgCcBz18ac9+5p5FCWxBII7Dt/vNeM+j2EPcOpwkwtSLgSGDr/TQx2z5pZyuOY9ZJXQgggAAC0QVcL23n83L08UCFCHgT6PV5udcMOvvQvcWe9iAQX6DPnpqIrWSpe0RsqkIAAQQSCLhe2s5n5QQjgioRcCbQ97Ny3wSdfejOBgDNQSCFwJ106PXqNZa6pxgR1IkAAgjEEfC8tL27Us2u/uSFAAIVC/TZf25cvRJ0e3Ai/cVdjhWPOLqOQCvg+uo1TnVnmCKAAAJFCnhe2s6VakUOOTqFwNYCtsrnH1s/NTBBZ49nH3GeQaA8gfO5dOa0W/ZByWYxXjhtH81CAAEEENhO4GYuHUqabvdYnHfzxXAcZ2pBIAOB3l8kDplBfyPpQwY4NBEBBAIL9F3CE7hZ98Wz1DCGMnUggAACcQQ8/73Zk9gCGmcYUAsCOQiczaXzPg3tnaB3V0f82adSnkEAgeIEXM9ocFhPceONDiGAQIUCfQ9cikTFiq1I0FSDQA4CjfRyJt30aWvvBN0qm0iWoLN0tI88zyBQnoDnpe5cD1neeKNHCCBQl4CdeWJL212+WNruMiw0CoFUAjZx9bJv5YMS9F3pYyOd9K2c5xBAoCwB50sPXyza/ej7ZanTGwQQQKB4gWkjHfadjQqtw9L20MKUj0BeAgvp4lY67dvqoQn6cSPZYXG8EEAAARNwPcPB1WsMUgQQQCA/Ac9XqplmdxjpQX6ytBgBBEIIDP2dNShBt5mo7rq1EH2jTAQQyFDA+R5B+yBlh1vaIZe8EEAAAQScCwydiQrdPc44CS1M+QjkJ9Bdr9b7pomhCTr7OvMbM7QYgeACQw7GCN44ZjtiEFMHAgggMIaArco68nqlGgcmjxFiykCgOIGr7vdW746NkaBz3Vpvfh5EoFiBwb+cQsp0H6rYjx4SmbIRQACBYQKu951b1ybSb5JeDesmTyOAQGECva9XWzoMTtC5Y7iwIUV3EBhJoJFOZ9LFSMWNXgz70UcnpUAEEEBgNIGhezhHa8gTBe1JJwvpY+h6KB8BBPISuJMOv0jXQ1o9OEHvvkHkurUhUeBZBMoUmHZXTPTegxOahb2DoYUpHwEEEOgl4Prazu4MJvvsy60gvcLLQwgUKzDoerWlyigJOtetFTvI6BgCQwW8f8iyJYp2E8Xx0I7yPAIIIIDAKAKut0h1E1McNjpKqCkEgbIExjrUcqwEnevWyhpf9AaB0QTGWOozWmMeL8huo7B9hFyRExia4hFAAIE1Ajb7dOj1UDhrO1s7GcMIIPCUwFhbc0ZJ0LlujYGKAALPCLifDek+cFmSznJFhjICCCCQRmB6Jx0N3bsZuukcDBdamPIRyFdg6PVqy56PlaCzTDTfsUTLEQgu4P3AOAPg0Ljgw4AKEEAAgScFcvg7wcFwDGAEEHhG4HIuvR5DaMwEnevWxogIZSBQpoD7ZYvGPpH4PVbm+KNXCCDgWKCR3s+kd46baE2z7VB2PecL5+2keQggkEZg8PVqy2aPlqB39wrbiZa8EEAAge8EMvkAZjPpHxvphBAigAACCIQXGOtQpdAt5daP0MKUj0DeAo30cibdjNGL0RJ0a0z3zSIHLY0RGcpAoDyBaSMdjvXLKyQPv8tC6lI2Aggg8FXgei4deT4UzlraTULZ7DnnlDB4EUDgMQH7XWYHXI7yGjVB59vFUWJCIQgUK5DLTEm3lJGT3YsdiXQMAQQcCGSx9cmcWFnlYLTQBAQcC4y9SnTUBJ2rJxyPHJqGgBOBDK5du5fiZHcnA4ZmIIBAiQJZnNi+8rfAZs95IYAAAo8KjP3ZdtQE3Vo8kWwfOgdoMIARQOApAffXri0bzpeODGIEEEBgfIGxP8yO38K/S+RatZC6lI1AEQK2GujlmD0JkaB/UHsSMi8EEEDgUYFGOppJVznwcK1ODlGijQggkItADtepLS33pFcLybY78UIAAQSeEjifS2dj8oyeoPPLbMzwUBYCxQpkM4tuESBJL3Yc0jEEEIgokFNybizMnkccHFSFQKYCISadRk/Qu19of3HSZaajjGYjEElgIb2+lS4jVTe4monE6qDBihSAAAK1CmR0SOh9iPhittaRSr8R2EpgOpf+sdUTG7w5SILOaZcbyPMWBBAYfc9OaFJ+t4UWpnwEEChRILfkvJts4kylEgcjfUJgRIFQv9tCJejHjfR5xP5TFAIIFCiQ23JHCwFJeoEDkS4hgEAwgVAfYIM1mNnzkLSUjUBRAqFWgwZJ0LtvHlnmXtQQpDMIBBHIai/6UmDSfgF5HESEQhFAAIFyBK7n0mFu3ZlIdq3aQW7tpr0IIBBVIMjydutBsASdWaaoA4TKEMhWoJFezqSbzDqw3x0exAe4zAJHcxFAIJqAJedHkqbRahyhoj3pxaK9MpgXAggg8KRAyNVBIRN0lrkzqBFAYK1Ajsvcu06RpK+NLm9AAIFKBbJMzi1WHA5X6Yil2whsKRBqebs1I1iCboVPJJa5bxls3o5AbQKN9H4mvcu03yTpmQaOZiOAQDCBbJPzLkF/t5DeBtOhYAQQKEEg2PL24Ak6y9xLGH/0AYHgApdz6XXwWsJVQJIezpaSEUAgL4Gsk/NucokzRvIac7QWgegCIZe3x0jQWeYefchQIQLZCWR5UNwDZZL07IYdDUYAgZEFsk/OuwT9N0mvRrahOAQQKEgg5PL24Al694uOZe4FDUi6gkAAgdxn0JckJOkBBgdFIoBAFgJFJOfd51Zm0LMYcjQSgWQCQZe3R0nQWeaebPBQMQJZCGS+B/2hMUl6FqOORiKAwIgCxSTnZrInsQd9xMFBUQiUJhB6eXusBJ1l7qWNTPqDwIgCGZ/i/pQCSfqI44OiEEDAtUBRyXmXoJ8spI+u1WkcAggkEwi9vD1Kgm6VTNr7JF8kk6RiBBBwK5DpPejrPC1Jt2WS7GNcJ8V/RwCBXAWKS867BJ170HMdkbQbgfACN3PpZehqgl6ztmz8RPog6U3ozlA+AghkJ2Af8A6za/WGDWaLz4ZQvA0BBLIS6JZ4nkmaZtXwDRs7kf6QdLDh23kbAgjUI3A+l+x3X9BXlAT9B+lgp/1lxwsBBBD4KlDg8vbvokuSzoBHAIGSBGLsv0zttSexzD11EKgfAYcCd9LhF+k6dNOiJOjWCZa5hw4l5SOQnUDRs+er0SBJz25s0mAEEHhEoIbkfNltZtH5EUAAgQcCUZa3W53REnROxWSQI4DAqkAjHc2kq1pUmJGpJdL0E4FiBc7m0nmxvXvQsT3p1UKyO9F5IYAAApY0v59J72JQxEzQOXQjRkSpA4E8BKr6oLcMCUl6HoOTViKAwLcCNWxHeizmk/b8JDtHiRcCCFQuEPNQ42gJusWU5UKVj2y6j4CkmpZIPhbw7kwOm5XZZ0AggAACzgWmjfS6ptVOD+PBFiXnI5TmIRBHIOq2zKgJOrNHcUYQtSDgVaDWWZiH8eiSdLuGjesnvQ5W2oUAAtM76SjGgUjeqfn86j1CtA+BsAKxP79GTdBtxmgi/RWWkNIRQMChwNWddMYHvW8iY78PbSadq3wcDliahEDlAkXecT4kpt0Xq7bc/dWQcngWAQTyE5hL/4h5rWTsBN2Wudus0XF+oaHFCCCwpcB0IV3uSJ9qXh65xmx/V/rQSCdb2vJ2BBBAIJTA5Vw6jflhNFRHQpRrh8fdST817WdZtiqFQKZMBHwJ2O/E1zGbFD1B35WOmzZJT/ayPbA70n+TNYCKEShb4EbSDUn55kHmlovNrXgnAggEFTifS2dBayiocEvWu61KbFcqKK50xY/AnfTP1JMYC+n1rXQZUyV6gm6d65a5p/zWkT9AMUcZdSGAwFqBbo+jLZ9M+btxbTt5AwIIFClgh8GdzaSLIntHpxBAIEuBSXuLgt2mkOo17Za3R60/VYLuAfsly7eijjUqQwCBNQIcHscQQQCBBAIcBpcAnSoRQGCtgJ3V82fiiYskk7pJEvQ9Kfmd6LFP41s7BHkDAggg0ArYHyTbBsRBRIwIBBAILcBhcKGFKR8BBHoJeLg9Iebd56tISRJ0a4CDO9Gj3mfXa2TyEAIIVCvgYFlXtfZ0HIFKBJLMDFViSzcRQGCgQM25YrIE3cO3InfSIdc+Dfzp4XEEEAgm0B2q+THx8q5g/aNgBBBIIsB+8yTsVIoAApsKdFv+/tj0/SHel3K1dbIEvVvGmXRfgZ3mftteJcILAQQQcCnQ/ZGyJJ370l1GiEYhkJXA9Z10yuREVjGjsQhUJ7ArfUx8ersdDpfsvLKUCboc4Cv2xfPV/YTRYQQQGEOA+9LHUKQMBCoW6CYl7Aq1acUMdB0BBPwL2Fk8f6VsZupJ3KQJut0fuZB+SxmARno/k96lbAN1I4AAApsIcBXbJkq8BwEEHgiwpJ0hgQAC2QhM2mvV7MavZK9GOppJV6kakDRBt053x+e/SAUg6aZbwpCwCVSNAAIIbCbAkvfNnHgXAgjcC7CknYGAAAJZCZAbSh4S9OTfkiyk17fSZVajl8YigEDVApzyXnX46TwCmwhwSvsmSrwHAQTcCHSH49pVsylfZ3PpPGUDkifo3WFxSfcZSLqaS0cpA0HdCCCAwLYC3TYh+0O2v+2zvB8BBIoVsCXtr1MuzyxWlo4hgEBQgUm79flV0ErWFO7hfDIPCbqLw+K4ci3ljwJ1I4DAAAE7TMVOeT8eUAaPIoBAGQKX8/Z2Gg6CKyOe9AKBagT2pBcLyW74SvZKfTjcsuMuEnQPh8V5CUiyEUnFCCCQtQB3pmcdPhqPwFCB6UI6ZbveUEaeRwCBVAIebvdKfTicqwTdGuPgQACuXEv1E0m9CCAwlgCz6WNJUg4C+QhcNdLpTLrJp8m0FAEEEPhGIPnVap4ODncxg94l6MkPi+PKNX5VIIBACQJcx1ZCFOkDAmsFbBn7+9SHGa1tJW9AAAEE1gjsSe8W0tvEUMkPh1v2302C3h0WZ/sOUh52NO0OBkg8PqgeAQQQGCzAbPpgQgpAwK3AZSOdMWvuNj40DAEEthCYSHZgeOoc8KWX8zs8JeguDovrloldbDGmeCsCCCDgVoC96W5DQ8MQ6CPAXvM+ajyDAAJuBbpVf3bYbbKXt7PIXCXoP0gHO9IfyaLTVnwzl+wbFF4IIIBAKQI2m25Lx2wrES8EEMhTwO41f+9lhidPQlqNAALeBDycQ+btNi9XCboNGA/333k5wc/bDxDtQQCBvAW6GzM+SDrIuye0HoGqBK675exXVfWaziKAQPECHm7yknQ1l448YbtL0D0sc/AYKE+DhrYggEDeApN2Jt1m1FPu98obkdYjEF6AQ+DCG1MDAggkFHAyMWu3YLja3uwuQe9m0e2wuBcJx4u8LXVIaUHdCCBQpMD+rvShkU6K7B2dQiBjgW4/5BnL2TMOIk1HAIFnBdja/DSPywTdw1H73g4L4GccAQQQCCHQLS+z2fRXIcqnTAQQ2EqA5exbcfFmBBDIVWBX+ph6ksDrFdsuE/TuyjU7bj/pq5FecoVJ0hBQOQIIRBLothdZop509VKk7lINAt4Ept0+c1fLLL0h0R4EEChDYE96sZBsxXTSV3e9tm0ncvXymqC7uHKNWXRXY5XGIIBAeIH9PenNQvqZ/enhsakBAVvC3ki/zKRzlrMzHhBAoBYBD7PnnvM8twm6k30J8vrNSi0/wPQTAQSSCLA/PQk7ldYkYB8Od6T3rNSrKer0FQEEvKyU9nzemNsE3Yavk5P97I/nO36cEEAAgdoEbAnanfQ29R6x2tzpb/ECl91y9pvie0oHEUAAgQcCHs4a835jl+sE3cmVa9O59JKlZ/x+QQCBWgU4SK7WyNPvkQWuugOJuM98ZFiKQwCBbAT2J+3e86TXvDaSu6vVViPoOkHvZtGTX7nm9YS/bH4UaSgCCBQhQKJeRBjpRHwBEvP45tSIAAIOBZzMnt90k68Ohdom5ZCgv5H0IbEgs+iJA0D1CCDgR4BE3U8saIlrARJz1+GhcQggEFnAxey5pLN5ezCn25f7BL07SCD5Uogcgul2lNEwBBAoUoBEvciw0qnhAiTmww0pAQEEChOYSEy6bhjTHBJ0sRxiw2jyNgQQQCCBgN260Ug/c5hcAnyqdCPQncr+aSaxx9xNVGgIAgh4Eej2nr9I2Z5cti3nkqC7uMze+4ECKQc8dSOAAAIrp74fpz4AhmggEEuA69JiSVMPAgjkKuDk4G/b2/0yh6sts0jQbTB6uNBekvtDBXL9waXdCCBQlMD+nvRmIf1Mol5UXOnM3wLTRvpl1u5jnAKDAAIIIPC0gIfZc/sy9VY6zSFO2SToNjOzaI/lT/piFj0pP5UjgEBmAt235paoH2TWdJqLwGMC111ifgEPAggggMB6AWbP1xs9fEc2Cbo1fCL9JunV9t0c9Qlm0UflpDAEEKhBwA6Uu5N+Yp96DdEur4/sLy8vpvQIAQTiCHiYPZd0NZeO4vR4eC1ZJejdicGWpCd9MYuelJ/KEUAgbwG7ZuVE7fL3pIfF5M1I6yMI3DSSHfrGMvYI2FSBAALlCTiaPT/K6QDPrBJ0G7bMopf3w0uPEECgTgFm1euMu/de22y5pF9vpUvvbaV9CCCAgGcBZs/7RSe7BH1XOm6kz/26O95TzKKPZ0lJCCBQvcByVv0n9qpXPxZSAVxL+jRvk3MOfUsVBepFAIFiBLzMni+k17l94Zpdgt7NotthcamXRrIXvZhfIXQEAQS8CNid6juSJep2VVvq3/NeWGhHGIEbSZd30qcvkiXovBBAAAEERhJwMnueZb6WZYLu5RsZSWfzdm8aLwQQQACBkQVsxZSkH5v2n/sjF09xdQpMF+3SdZaw1xl/eo0AAhEEJtIbSR8iVPVsFbmueM4yQbdIOPlWZjqXXrIcLvWPH/UjgEDpAiTrpUc4aP9IyoPyUjgCCCDwjYBtW7PVzqm/WM9y9twks03QvcyiN9L7mfSOH0wEEEAAgTgCK8m6XbvJMvg47LnVcrOQrpgpzy1stBcBBHIX2JPeLaS3qfuR6+x51gk6s+iphz31I4AAAukFVvasW7J+kL5FtCChgO0jv2JPecIIUDUCCNQuwOz5CCMg2xl067ujb2iYRR9hMFIEAgggMERgr51Nf7WQfrR/OlheN6Q7PLtewE5bv2qkX+2fM8kOfeOFAAIIIJBIgNxsHPisE3T78OVkjwN70ccZj5SCAAIIjCZg96x3Cfu/u4R9tLIpKJmAJeS/dwm5LWHnhQACCCDgQ4C8bKQ45J6gu5lFl3Q+l85GigvFIIAAAgiMLEDCPjJonOJIyOM4UwsCCCAwSGDSntpup7cnfZVwPlj2CbqjWXQ7ce8lS+yS/kxSOQIIILCxwErC/i+WxG/MFvKNyyXr/2GGPCQzZSOAAALjCtgWs0V7cnvqVxGrmktI0N3Moi+ki1vpNPXIpH4EEEAAge0F7APGnXSwIx0sJFsWb4fOpb4mZvuO5PGEJePXtlz9Trreka75gjuPwNFKBBBA4KHArvSxkU5Sy5Qwe26GRSTonmbR76TDL5KdJMsLAQQQQCBzgQdJu82020F0nBa/XVztb+JNI/2HZHw7ON6NAAIIeBfoblP5w0E7i5g9LylBdzOLbsvy5tKRg0FKExBAAAEEAgnYB5JGemGz7XfSP+3fmXHX1UK62ZH+a4m4/TtfWAcagBSLAAIIOBGYSL95OIi1lNnzohJ0T7PojXQ0kzhd1skvDpqBAAIIxBTo9rZblXaKvLrl8vavOS+Zv1+S3n1wsFPU7XX/d46/dzFHF3UhgAACfgTs792iTdBTv4qZPS8tQfc0i349lw5Tj1TqRwABBBDwKbBM4u+kfZuFX7ZyZTZ+teH3if6Ir4dfIE9t+flKG2xPuCXkJN8jolMUAgggUJrARLKl7cm3fZU0e15cgu5sFv10Jl2U9oNIfxBAAAEEEEAAAQQQQKBugT3pZCF9dKBQ1Ox5iQm6p1n0m24W/X4WghcCCCCAAAIIIIAAAgggUIDAfjd7buevJH2VNnteZIJunZq09/AxYJL+uFA5AggggAACCCCAAAIIlCawJ71bSG8d9MsmRF86aMeoTSjlmrVvUFhyMeoYoTAEEEAAAQQQQAABBBBAwFYrv1i0e8/3U3M0UpFbiotM0D3Noi+ki1vpNPUApn4EEEAAAQQQQAABBBBAYIjArvSxkU6GlDHSs0XOnptNsQm6o1l03UmH3AU70o8ixSCAAAIIIIAAAggggEB0gR+kg5129jz5q9TZ86ITdOucl73odlfsXDpKPpJpAAIIIIAAAggggAACCCDQQ2DS3nk+9tWfPVqiYmfPi0/Q7Z7ZRTuQkr8W0utb6TJ5Q2gAAggggAACCCCAAAIIILCFwK503Eift3gk2Fsb6WgmXQWrIHHBxS5xX7o6+6bnUBLXriUe9FSPAAIIIIAAAggggAACGwu4uVathpXJxSfonmbRS7ynb+Mfa96IAAIIIIAAAggggAAC2Qk4ulbNDlArevbcBkfxCbp10tEs+rSRDmfSTXY/mTQYAQQQQAABBBBAAAEEqhLwdK1aDbPn1STo3cD608lP0+Vceu2kLTQDAQQQQAABBBBAAAEEEHhUYNLuOz/2wNNIL2uY6KxiBt0GlKM7+6pYmuHhh5g2IIAAAggggAACCCCAQD8BT1uFF9LFrXTaryd5PVVNgu5seUbRVwPk9SNAaxFAAAEEEEAAAQQQQOChgKMrq6vaJlxNgm4DztkBB+9n0jt+FSCAAAIIIIAAAggggAACngTIm9JFo6oEXZJdEWB70ffTkX+tuapvghx40wQEEDTR+ZQAACAASURBVEAAAQQQQAABBBBYI+Bs5fF0Lr2s6arq2hJ0m0U/WUgfnfxkcmCck0DQDAQQQAABBBBAAAEEELi/AcvTwXCnM+miprhUl6BbcB3tp+DAuJp+2ugrAggggAACCCCAAAKOBTwdDCepynO7qkzQGXiOfyvQNAQQQAABBBBAAAEEEEgiwERmEvZvKq0yQe9m0X+T9Cp9CGSz6BwY5yEQtAEBBBBAAAEEEEAAgUoFPB0MJ+lqLh3VGIpqE/Tu8AM7MM7Fq5FezqQbF42hEQgggAACCCCAAAIIIFCNALmRn1BXm6BbCCbSB0lvnISj2m+JnPjTDAQQQAABBBBAAAEEqhSYSG5WF0s6n0tnVQZC96urq355unbNAnHWSNdVR4TOI4CAG4H/k6Zf+J3kJh40pByBH6SD//Fx5Ws5qPQEAQR6CyykA7UTlx5e1V2r9hC99gTdZtFtBt3LgPTwQ0EbEEAAgYcCU0nXjfS77QmbSVcQIYDAZgJ2MK2debOQ/q32Q/D+Zk/yLgQQQKBKgbO5dF5lz7tOV5+gm4On0wprHoz0HQEEshGYLqTLnfaAS87OyCZsNDSWgO3lvJPeNtIxCXksdepBAIECBK7n0mEB/RjUBRJ0Sc6uXRsUUB5GAAEEIgtc3UlnLIWPrE51LgVs6fpOuyrPxS0xLpFoFAIIIPCEQCMdsUqPPehfh8dE+qz2m25eCCCAAALbC9iBLu8l2XJ4XgjUJmBn2rx1dPBsbf70FwEE8he4nEuv8+/G8B4wg94ZdlcL/MFStOGDihIQQKBagZtGOuXb72rjX2XHu1V4HyW9qBKATiOAAALDBaaNdMi2uRaSBH1lQO1J7xbtN+C8EEAAAQR6CnRJ+kXPx3kMgWwE9qSThWTJOS8EEEAAgZ4CTXumzbuejxf3GAn6g5ByYFxxY5wOIYBAGoGq7zBNQ06tMQUm7V5zuwmGFwIIIIBAf4GbufSy/+PlPUmC/iCmHBhX3iCnRwggkEaAb8TTuFNreAFW3IU3pgYEEKhDgIPhvo8zCfojY58D4+r4hUAvEUAgvADL3cMbU0NcAZa1x/WmNgQQKFqAg+EeCS8J+iMoHBhX9C8COocAApEF7qRDrmGLjE51QQS6a9TsQFleCCCAAALDBDgY7gk/EvQnYFi+NuwnjqcRQACBFQHbX3bIFWyMicwF7Co1S845rT3zQNJ8BBBIL8A2uKdjQIL+zPjkwLj0P7y0AAEEyhDgD3EZcay5F3xxX3P06TsCCIwswMFwz4CSoD+Dw4FxI/8oUhwCCFQt0EgvueO06iGQbee7rW9/ZtsBGo4AAgg4EuBguOeDQYK+ZrDuSh8b6cTRmKYpCCCAQJYCC+niVjrNsvE0umoBPgtUHX46jwACIwrwWWA9Jgn6eiPbc2bfmu+vfyvvQAABBBB4ToBZdMZHbgLMnucWMdqLAAKOBabdnedTx21M3jQS9A1CwJUqGyDxFgQQQGAzgbO5dL7ZW3kXAukFJtIbSR/St4QWIIAAAnkLcPXqZvEjQd/MSRPpN0mvNnw7b0MAAQQQeFzgujvRHR8EshDoTm4/yKKxNBIBBBDwK3A1l478Ns9Py0jQN4wFS9w2hOJtCCCAwBoBlrkzRHIR4G9/LpGinQgg4F2Av/2bR4gEfXMrccXKFli8FQEEEHhCgCVuDI1cBNjilkukaCcCCHgW4KrV7aJDgr6dly11/0MSS922dOPtCCCAwIrA+Vw6QwQB7wKc3u49QrQPAQQyEGBr25ZBIkHfEoy70bcE4+0IIIDA9wLsQ2NUZCHA+TNZhIlGIoCAYwHuPN8+OCTo25vZLLqd5mqnuvJCAAEEENhewK5Z+cf2j/EEAnEFJtJfXLMa15zaEECgKAFWzPUIJwl6DzT7Y90tdX/R73GeQgABBOoWmEv8/al7CGTR+4m0yKKhNBIBBBDwJ3DT3drCnedbxoYPSFuCLd/OUveecDyGAAIISCJBZxjkIECCnkOUaCMCCHgUYGl7/6iQoPe3Y6n7ADseRQCBugVI0OuOfy69J0HPJVK0EwEEnAmwtH1AQEjQB+B1S93/ZH/aMESeRgCB+gRI0OuLeY49JkHPMWq0GQEEEguwtH1gAEjQBwLuSseN9HlgMTyOAAIIVCVAgl5VuLPtLAl6tqGj4QggkEhgIb2+lS4TVV9EtSToI4Rx0iboxyMURREIIIBAFQIk6FWEOftOkqBnH0I6gAACcQUu59LruFWWVxsJ+jgxtVPdWeo+jiWlIIBABQIk6BUEuYAukqAXEES6gAACsQTsCtWXkji1faA4CfpAwOXjLHUfCZJiEECgCgES9CrCnH0nSdCzDyEdQACBSAIsbR8PmgR9PEtOdR/RkqIQQKBsARL0suNbSu9I0EuJJP1AAIHAApzaPiIwCfqImN2p7n9IejFusZSGAAIIlCVAgl5WPEvtDQl6qZGlXwggMKIAp7aPiGlFkaCPDLonvVpIv41cLMUhgAACRQmQoBcVzmI7Q4JebGjpGAIIjCTQSEcz6Wqk4iiGBD3MGJhIHyS9CVM6pSKAAAL5C5Cg5x/DGnpAgl5DlOkjAggMEGBp+wC8px5lBj0AarfU3WbRD8IUT6kIIIBA3gIk6HnHr5bWk6DXEmn6iQACPQSu59IRp7b3kFvzCAn6+Kb3Jf4gHexIth+dFwIIIIDAAwESdIZEDgIk6DlEiTYigEAKgTvp8It0naLu0uskQQ8Y4T3p3UJ6G7AKikYAAQSyFCBBzzJs1TWaBL26kNNhBBDYQKCR3s+kdxu8lbf0ECBB74G2zSOTdhadpe7boPFeBBAoXoAEvfgQF9FBEvQiwkgnEEBgXAFb2n44bpGUtipAgh54POxJLxZtkr4fuCqKRwABBLIRIEHPJlRVN5QEverw03kEEPheYNpIhzPpBpxwAiTo4Wy/lrwnnSykjxGqogoEEEAgCwES9CzCVH0jSdCrHwIAIIDAikAjnc6kC1DCCpCgh/X9WvpE+izpOFJ1VIMAAgi4FiBBdx0eGtcJkKAzFBBAAIGvApdz6TUe4QVI0MMbL2vY7/ajv4hXJTUhgAACPgVI0H3GhVZ9K0CCzohAAAEE7gVuun3nUzzCC5Cghzf+WsOe9Goh2f3ovBBAAIGqBUjQqw5/Np0nQc8mVDQUAQQCCjTS0Uy6ClgFRa8IkKBHHg5cvRYZnOoQQMClAAm6y7DQqAcCJOgMCQQQqF2AK9XijwAS9Pjm4uq1BOhUiQACrgRI0F2Fg8Y8IUCCztBAAIHKBbhSLcEAIEFPgM7VawnQqRIBBFwJkKC7CgeNIUFnDCCAAAIPBbhSLdGYIEFPBL8rHTftye68EEAAgeoESNCrC3mWHWYGPcuw0WgEEBhBYCG9vpUuRyiKIrYUIEHfEmzMt0+kD5LejFkmZSGAAAI5CJCg5xAl2kiCzhhAAIFKBc7n0lmlfU/ebRL0tCGwq9fsVPeDtM2gdgQQQCCuAAl6XG9q6ydAgt7PjacQQCBrAdt3fiSJK9UShZEEPRH8stofpIOdNknfT9wUqkcAAQSiCZCgR6OmogECJOgD8HgUAQRyFJjeSUdfpOscG19Km0nQHURyTzpZSB8dNIUmIIAAAlEESNCjMFPJQAES9IGAPI4AAlkJNNLpTLrIqtEFNpYE3UlQd6WPjXTipDk0AwEEEAgqQIIelJfCRxIgQR8JkmIQQMC9wEK6uJVO3Te0ggaSoPsJMvvR/cSCliCAQGABEvTAwBQ/igAJ+iiMFIIAAv4F2HfuKEYk6I6Cwf3ojoJBUxBAIKgACXpQXgofSYAEfSRIikEAAc8C3HfuLDok6M4Cwv3ozgJCcxBAIIgACXoQVgodWYAEfWRQikMAAXcC3HfuLiQiQfcXE3E/usOg0CQEEBhVgAR9VE4KCyRAgh4IlmIRQMCLAPede4nESjtI0B0GxZo0kf7gfnSnwaFZCCAwWIAEfTAhBUQQIEGPgEwVCCCQSsD2nR+mqpx6nxYgQfc7OuzQuD+5H91vgGgZAgj0FyBB72/Hk/EESNDjWVMTAghEFZjOpZeSplFrpbKNBEjQN2JK86Y96dVC+i1N7dSKAAIIhBMgQQ9nS8njCZCgj2dJSQgg4EegkY5m0pWfFtGSVQESdOfjYSK9kfTBeTNpHgIIILCVAAn6Vly8OZEACXoieKpFAIGQAmdz6TxkBZQ9TIAEfZhflKd3pY+NdBKlMipBAAEEIgiQoEdAporBAiTogwkpAAEEHAkspItb6dRRk2jKIwIk6HkMC9uPbkvdD/JoLq1EAAEEnhcgQWeE5CBAgp5DlGgjAghsKGCHwh2x73xDrYRvI0FPiL9N1XvSi0V7svv+Ns/xXgQQQMCjAAm6x6jQpocCJOiMCQQQKERg2kiHM+mmkP4U3Q0S9IzCy6FxGQWLpiKAwLMCJOgMkBwESNBziBJtRACBdQIcCrdOyNd/J0H3FY+1reHQuLVEvAEBBDIQIEHPIEg0USToDAIEEChAgEPhMgsiCXpmAbPmcmhchkGjyQgg8I0ACToDIgcBEvQcokQbEUDgKQEOhctzbJCg5xk3Do3LM260GgEEOgESdIZCDgIk6DlEiTYigMATAhwKl+nQIEHPNHAcGpdp4Gg2AgjcC5CgMxByECBBzyFKtBEBBB4R4FC4jIcFCXrGwftBOthpT3bnhQACCGQlQIKeVbiqbSwJerWhp+MIZC1wJx1+ka6z7kTFjSdBzzz4e9LJQvqYeTdoPgIIVCZAgl5ZwDPtLgl6poGj2QhULNBIpzPpomKC7LtOgp59CGWnzH6Q9KaArtAFBBCoRIAEvZJAZ95NEvTMA0jzEahP4HwundXX7bJ6TIJeSDwn0mdJx4V0h24ggEDhAiTohQe4kO6RoBcSSLqBQB0Cl3PpdR1dLbuXJOjlxJeT3cuJJT1BoHgBEvTiQ1xEB0nQiwgjnUCgBgFObC8oyiToBQWTk90LCiZdQaBwARL0wgNcSPdI0AsJJN1AoGwBTmwvLL4k6IUFtDvZ/TdJ+4V1je4ggEBBAiToBQWz4K6QoBccXLqGQBkC0zvpiBPbywjmshck6GXF8743nOxeYFDpEgKFCZCgFxbQQrtDgl5oYOkWAoUIcGJ7IYF80A0S9DLjaie726nudro7LwQQQMCdAAm6u5DQoEcESNAZFggg4FjgbC6dO24fTespQILeEy6Hx3alj410kkNbaSMCCNQlQIJeV7xz7S0Jeq6Ro90IlC2wkC5updOye1lv70jQC4/9RLL96K8K7ybdQwCBzARI0DMLWKXNJUGvNPB0GwHfAldz6ch3E2ndEAES9CF6eTzL9Wt5xIlWIlCVAAl6VeHOtrMk6NmGjoYjUKoA16mVGtmVfpGgVxBkO9F9Iv3Jye51BJteIpCDAAl6DlGijSTojAEEEHAkMJ1LLyVNHbWJpgQQIEEPgOqxSK5f8xgV2oRAvQIk6PXGPqeek6DnFC3aikDRAlynVnR4v+0cCXpFwd6TXi3aPem8EEAAgaQCJOhJ+al8QwES9A2heBsCCAQVaKSjmXQVtBIKdyNAgu4mFHEawh3pcZypBQEEnhcgQWeE5CBAgp5DlGgjAmULcNd52fF9rHck6PXFnDvSK4w5XUbAmwAJureI0J7HBEjQGRcIIJBYgLvOEwcgRfUk6CnUHdTJHekOgkATEKhYgAS94uBn1HUS9IyCRVMRKEyAu84LC+gW3SFB3wKrtLeSpJcWUfqDQD4CJOj5xKrmlpKg1xx9+o5AOgGS83T2HmomQfcQhYRtmLSHxr1K2ASqRgCBCgVI0CsMeoZdJkHPMGg0GYH8Ba7m0lH+3aAHfQVI0PvKlfOc3ZFuSfpBOV2iJwgg4F2ABN17hGifCZCgMw4QQCCywHWXnHPXeWR4T9WRoHuKRrq2kKSns6dmBKoUIEGvMuzZdZoEPbuQ0WAEchYgOc85eiO2nQR9RMzMi7Ik/U9J+5n3g+YjgEAGAiToGQSJJjKDzhhAAIFYAtO59FISM+exxB3XQ4LuODixm/aDdLDTLncnSY+NT30IVCZAgl5ZwDPtLjPomQaOZiOQl8D0Tjr6Il3n1WxaG0qABD2UbKblkqRnGjiajUBmAiTomQWs0uaSoFcaeLqNQDwBkvN41tnURIKeTajiNZQkPZ41NSFQqwAJeq2Rz6vfJOh5xYvWIpCZAMl5ZgGL1VwS9FjSmdWzKx030ufMmk1zEUAgEwES9EwCVXkzSdArHwB0H4GAAgvp9a10GbAKis5UgAQ908DFaPaedLKQPsaoizoQQKAuARL0uuKda29J0HONHO1GwLdAI53OpAvfraR1qQRI0FPJZ1IvSXomgaKZCGQmQIKeWcAqbS4JeqWBp9sIBBQgOQ+IW0jRJOiFBDJkN0jSQ+pSNgJ1CpCg1xn33HpNgp5bxGgvAr4FSM59x8dL60jQvUTCeTtI0p0HiOYhkJkACXpmAau0uSTolQaebiMQQIDkPABqoUWSoBca2BDdIkkPoUqZCNQpQIJeZ9xz6zUJem4Ro70I+BQgOfcZF6+tIkH3Ghmn7ZpIbyR9cNo8moUAApkIkKBnEqjKm0mCXvkAoPsIjCNwNpfOxymKUmoQIEGvIcoj93FX+thIJyMXS3EIIFCRAAl6RcHOuKsk6BkHj6Yj4EBgIV3cSqcOmkITMhIgQc8oWJ6aSpLuKRq0BYH8BEjQ84tZjS0mQa8x6vQZgXEESM7HcayxFBL0GqM+Up9J0keCpBgEKhQgQa8w6Bl2mQQ9w6DRZAQcCJCcOwhCxk0gQc84eB6aTpLuIQq0AYH8BEjQ84tZjS0mQa8x6vQZgWECJOfD/HhaIkFnFAwWIEkfTEgBCFQnQIJeXciz7DAJepZho9EIJBMgOU9GX1TFJOhFhTNdZ0jS09lTMwI5CpCg5xi1+tpMgl5fzOkxAn0FSM77yvHcQwESdMbEaAIk6aNRUhACxQuQoBcf4iI6SIJeRBjpBALBBUjOgxNXVQEJelXhDt/ZSXtHut2VzgsBBBB4UoAEncGRgwAJeg5Roo0IJBc4n0tnyVtBA4oRIEEvJpR+OrInnSykj35aREsQQMCbAAm6t4jQnscESNAZFwgg8JxAI53OpAuUEBhTgAR9TE3K+ipAks5gQACB5wRI0BkfOQiQoOcQJdqIQBoBkvM07jXUSoJeQ5QT9ZEkPRE81SKQgQAJegZBookiQWcQIIDAYwIk54yLkAIk6CF1KVsk6QwCBBB4TIAEnXGRgwAJeg5Roo0IxBUgOY/rXWNtJOg1Rj1yn0nSI4NTHQIZCJCgZxAkmsgMOmMAAQS+ESA5Z0DEECBBj6FMHcykMwYQQOAbARJ0BkQOAsyg5xAl2ohAFIFpI51xIFwU6+orIUGvfgjEA/hBOtiRfpO0H69WakIAAY8CJOgeo0KbHgqQoDMmEEBA0vROOvoiXaOBQAwBEvQYytTxVYAkncGAAAKSrubSERIIeBeYtF8qv/LeTtqHAALBBEjOg9FS8FMCJOiMjegCJOnRyakQAW8Cl3PptbdG0R4EHgpMpM+SjpFBAIEqBUjOqwx7+k6ToKePQZUt6JL0j5IOqgSg0whULNBI72fSu4oJ6HomAnvSu4X0NpPm0kwEEBhP4PpOOmVZ+3iglLS5AAn65la8c3yB/W75IEn6+LaUiIBbgUY6mklXbhtIwxDoBPakV4t2mTsvBBCoR+C624Y1rafL9NSTAAm6p2jU2RaS9DrjTq/rFZjOpX/U2316npvARPqLw01zixrtRaC3AMl5bzoeHEuABH0sScoZIrC/K31opJMhhfAsAgj4F1hIF7fSqf+W0kIEWoFd6SN/nxgNCJQv0P19OrNT28vvLT30LECC7jk6lbWND0GVBZzuVinA8vYqw551p1nmnnX4aDwCGwnw5fFGTLwpkgAJeiRoqtlMgAN5NnPiXQhkKsD1apkGrvZmc91a7SOA/pcswMGlJUc3z76RoOcZt6JbvSedLCQ74Z0XAggUJMDseUHBrKwrzKJXFnC6W41AI53OpItqOkxHsxAgQc8iTPU1skvSP3AwT32xp8fFCjB7Xmxo6+gYs+h1xJleViMwbaQzkvNq4p1VR0nQswpXXY3t7kq362326+o5vUWgPIE76ZD7ZMuLa0096v4m/VFTn+krAoUKTO+kI/4mFRrdArpFgl5AEEvuQveByJa7c1d6yYGmb6ULnM2l89I7Sf/KF5hIbyTZ6i5eCCCQp8D1nXRKcp5n8GppNQl6LZHOu5/clZ53/Gh93QKXc+l13QT0viSBifRZ0nFJfaIvCFQiwB3nlQQ6926SoOcewXraz13p9cSanpYjwIehcmJJT/4W4EtjRgMCmQlwx3lmAau8uSTolQ+A3Lo/aZcW2hJDXggg4FuA5Nx3fGjdMAGS9GF+PI1ATIHzuXQWs0LqQmCIAAn6ED2eTSLANWxJ2KkUgW0ESM630eK9uQqQpOcaOdpdjQDXqFUT6qI6SoJeVDjr6Ux3J63tA+SE93rCTk8zEOiWEZ5m0FSaiMAoArvSx0Y6GaUwCkEAgbEE7Bq11zPpaqwCKQeBWAIk6LGkqWd0ge6Ed0vSX4xeOAUigMC2AtOFdHorXW77IO9HIHeBXem4kezGEb40zj2YtL8EgZs76TUntZcQyjr7QIJeZ9xL6jVLDEuKJn3JVcD2972XNM21A7QbgREE7O/RW85JGUGSIhDoL8AWq/52POlEgATdSSBoxjABlhgO8+NpBHoIWDJ+0Ui/zKSbHs/zCAJFCuxJLxbSz2qXvTOjXmSU6ZRHAbZYeYwKbeojQILeR41nXApM2tPd7ZR3XgggEEbAlrHbEvZfWcoeBphSyxKwpe+Sfmzaf5KslxVeeuNL4GwunftqEq1BoJ8ACXo/N55yKlDSPkD7JnhH+q9TappVl4AdsnPDTHldQae34wrYzHp3ZsqrcUumNAS2F7iT/lnI4Yacf7J9+HnCuQAJuvMA0bztBbrD4+ywnoPtn3b1hC0hfs83wq5iQmMQQAABBBDIWqBbcWjnJeS+quP6TjrlMLishyONf0SABJ1hUaqAHdZjJ7yXMFNxNZdecwBXqUOVfiGAAAIIIBBFgM9GUZipBIFhAiTow/x42rnApN2TbnvTc3+xhCv3CNJ+BBBAAAEEEgmUtAVQkt0ccpaIkmoRCC5Agh6cmApSC+xJJ4s2Uc99KZdRXs6lU2bTU48q6kcAAQQQQCALAZs1t21/dlBh7q9pI53NpIvcO0L7EXhOgASd8VGFQLcv3Za82yE9ub+YTc89grQfAQQQQACBwAKFzZrf3Emv2W8eeNBQvAsBEnQXYaARkQRK2ntlZMymRxo4VIMAAggggEBGAiXNmhs7Z/FkNPho6nABEvThhpSQmUBB+9JNntn0zMYfzUUAAQQQQCCUQGGz5sbEfvNQg4Vy3QqQoLsNDQ0LKVDgH7DLbl/WTUg3ykYAAQQQQAABfwJ70ovuvJ0S9pozAeFviNGiiAIk6BGxqcqXQEH3pS9huTfd1xCjNQgggAACCAQXKOhe86UV95sHHzVU4FmABN1zdGhbDIH9XelDI53EqCxSHVeNdDqTmE2PBE41CCCAAAIIxBboZs3thPZXsesOVd9Curhtr1CzSQdeCFQpQIJeZdjp9EOB7ttnu4qtlJddRfLLTHpXSofoBwIIIIAAAgi0AnvSu4X0tjCPs7l0Xlif6A4CWwuQoG9NxgOlChR2FdsyTNfd3vSrUuNGvxBAAAEEEKhFYE961e01Pyioz1yhVlAw6cpwARL04YaUUJZAaVeTLKNjp6C+Z8lYWYOV3iCAAAIIVCNgn09sxvxNYT3mytjCAkp3hguQoA83pIQCBQpc8m5R4kq2AscqXUIAAQQQKFugwJtnlgFjSXvZQ5fe9RQgQe8Jx2PlCxS65N0CxyFy5Q9feogAAgggkLlAiYfAdSFhSXvmY5PmhxUgQQ/rS+n5C5S65F2N9H7WHsbCSan5j1N6gAACCCBQjsD+nvSmwEPgLEIsaS9nnNKTQAIk6IFgKbYsgUKXvFuQbror2ThErqwhS28QQAABBDIU6A6Bs6vTXmTY/HVNZkn7OiH+OwKSTaLxQgCBTQQKXvJ+/412d9o7d6dvMhh4DwIIIIAAAiMKdMvZ7brX4xGL9VIUS9q9RIJ2ZCFAgp5FmGikI4H9XelDI504atNoTWHZ+2iUFIQAAggggMAmAiUvZ9dCuriVzthOt8lQ4D0ItAIk6IwEBHoI7Ekn3T2k+z0e9/7IzUI6u5UuvTeU9iGAAAIIIJCrQHc6u82al7icfdqtzLvINT60G4FUAiToqeSpN3uBbjnaZ0kH2Xfm8Q5c3UlnX6TrQvtHtxBAAAEEEIgu0G2Zs8T8VfTK41R43UivZxLb5uJ4U0thAiTohQWU7sQX2JPeFXrS6j0my9PijylqRAABBBAoUqDobXIWsW6r3Lsio0enEIgkQIIeCZpqyhYo/NRVC54tVftlJvFHt+yhTO8QQAABBAIIdF/m/yypxK1xJsatMAHGDUXWKUCCXmfc6XUYgeK/Gbc/wOxPDzN4KBUBBBBAoDyBwveZ3weMlXbljVt6lFaABD2tP7UXKND9MbY7TEv9ltyidtUtY+P+9ALHMF1CAAEEEBgm0K2se1vwPnMDmi6kUw6VHTZWeBqBhwIk6IwJBMII7E8kS9JLvM/0q5h9a74jvecgmDCDiFIRQAABBPISsANk76S3pV7HuhKNy7l0yvVpeY1PWpuHAAl6HnGilZkKTKQ3kuwb9JJn05eHwpzzhzrTgUqzEUAAAQSGChR9n/kKzlTS+7lkf/N5IYBAAAES9ACoFInAqkB3HZvNppd6ncqyu8uD5EjU+RFAAAEEEKhFYJmYl3wA3DKWtr3tlFVztQxt+plKgAQ9lTz1VidQy2x6d5KrLXu/qC7IdBgBBBBAoBqBPemku2b1ReGdZta88ADTPV8CXRA4AwAAEa5JREFUJOi+4kFrCheoaDbdImlXrpCoFz6m6R4CCCBQm0BFibmFllnz2gY4/U0uQIKePAQ0oEaBimbTl3/cLVHnxPcaBzt9RgABBAoR6E5m/yDpoJAuPdcNZs0rCDJd9ClAgu4zLrSqAoHKZtNJ1CsY03QRAQQQKFGgkivTVkPHrHmJA5k+ZSNAgp5NqGhoqQKVzaaTqJc6kOkXAgggUJhAhYk5s+aFjWG6k6cACXqecaPVhQlUOJtOol7YGKY7CCCAQCkCFSbmy7/JnNBeyiCmH1kLkKBnHT4aX5rArnTcSHYlW9H3pj+Imy2lY496aYOZ/iCAAAKZCVSamNsVqWfcvJLZYKW5RQuQoBcdXjqXqcD+pE3SjzNtf99mk6j3leM5BBBAAIHeApUm5uZ1OZdOJdnSdl4IIOBEgATdSSBoBgIPBboPDJaol36/6sOuk6jz44AAAgggEFyg4sTcrkG15ezcrhJ8lFEBAtsLkKBvb8YTCMQUsNn0t5LexKzUSV0k6k4CQTMQQACBkgQqTszVbSk7Z9a8pBFNX0oTIEEvLaL0p0iBH6SDHcnuXn1VZAef75Ql6p/YH1dh5OkyAgggMKLAnnSykH6u5B7zh3JXd9LZF+l6RFKKQgCBAAIk6AFQKRKBUAIVXsm2SmlL8uwwuYtQvpSLAAIIIFCeQJeY22q02raMWTC5Oq28IU2PChcgQS88wHSvSIH9XelDI50U2bv1nbJE3WbUWaK33op3IIAAArUK7O9JbxbST5Um5lpIF7fSGcvZa/0RoN+5CpCg5xo52l29QMWHyC1jb1fD/CLpYibdVD8gAEAAAQQQ0F47S75cyl7TlaWr0ecQOH4WEMhYgAQ94+DRdARMYE961+2pq/WDyP0swU67/J1EnR8LBBBAoEIBS8zvpLcVry6zqN9/cT2T3lU4BOgyAsUIkKAXE0o6UrOAfTBZtIfI1XZ3+sOwc/J7zT8I9B0BBKoTqPlE9gfBvmykM76oru5HgA4XKECCXmBQ6VK9Aix7/xr75YFyl+y9q/fngZ4jgECxAra//HjRXkNa48Fvq4FlOXuxw5yO1SpAgl5r5Ol30QKVn/a+Glv2qRc90ukcAgjUJNCtFrNr0uyQ1Gq3dXUx53T2mgY/fa1KgAS9qnDT2coEaj/t/WG4bfmf7c27qmwc0F0EEEAga4FudZgl5rVv47qPI6ezZz2caTwCawVI0NcS8QYE8hb4QTrYafenv8q7J6O1nuXvo1FSEAIIIBBMgGXs39Ne3UlnX6TrYOoUjAACyQVI0JOHgAYgEEdgVzpu2kS99v16S/DpQrrk9Pc4449aEEAAgU0EVk5jt9ny2pexL8luFtLZrWTnqvBCAIHCBUjQCw8w3UPgoQDXsj06Juz0908z6YIRgwACCCAQX2Cvvbv8J1Z7fWPPtWnxhyI1IpBcgAQ9eQhoAAJJBNif/ji7Hbpz0e1V5071JEOTShFAoBYBDn17OtLsM6/lp4B+IvC9AAk6owKBigW6D0cfmbFgVr3iHwO6jgACkQWYLX8W3FZ0nXKfeeRBSXUIOBIgQXcUDJqCQCqB7oRcu0+Wg+S+D8L9XvWF9AsH86QaodSLAAK5C9iBpY30c9OexM7e8u8Daon5e24ayX2k034EhguQoA83pAQEihHoZjUsUecgucejaifnfpq3e9VtOTwvBBBAAIGnBfYn7Z3ltrf8AKhHBZY3i3AGCgMEAQTuBUjQGQgIIPCdwER6I8kSdWY5nh4fNqv+iVN1+QFCAAEEvhXobg2xpJx7y58eHPYl7/u5dM74QQABBFYFSNAZDwgg8JSA3UH7ZiH9TKL+7CBhCTw/QwggUL0AS9g3HgLLk9ktMWcl1sZsvBGBegRI0OuJNT1FoK+ALVG02XSbVef1vIAtVfxkJ8FzwA9DBQEEShewg0b19/VobI1aH/DzufSexHw9FO9AoGYBEvSao0/fEdhCwD6I3Ulvm3Y/Ia/1Avf71RvpkmR9PRbvQACBPAS62z9s6Tr7yjcMmV2ZttMeAMf1nRua8TYEahYgQa85+vQdgR4CJOo90KTLRvp1Jl0yc9LLj4cQQCCtgG15Ol5IP7KvfPNAkJhvbsU7EUDgbwESdEYDAgj0EiBR78VmD5Gs96bjQQQQiChAUt4Tm8S8JxyPIYDAvQAJOgMBAQQGCZCoD+IjWR/Ex8MIIDCyAEn5AFAS8wF4PIoAAl8FSNAZDAggMIoAifpgRlv+/jt71gc7UgACCGwhsLKn/N8sX98CbuWtJOb93HgKAQQeFyBBZ2QggMCoAiTqo3BywNwojBSCAAKPCXDQ2zjjgsR8HEdKQQCBbwVI0BkRCCAQRIBEfTRWO/X38k769EWyxJ0XAgggsLWA3VO+0568biewcyXa1oJ/P0BiPgCPRxFAYK0ACfpaIt6AAAJDBEjUh+h99+x0IV3uSL9zIvyorhSGQIkC9/vJ76R/N21Svl9iJ2P2icQ8pjZ1IVCvAAl6vbGn5whEFSBRD8J9JenXO+mK2fUgvhSKQFYC3Sz5K7XXodk/eY0gQGI+AiJFIIDAxgIk6BtT8UYEEBhJwGZ13iykn5nRGUm0LeZmId0n7LftP6ejlk5hCCDgUWB/t03Ef2zaf7J0fbwoTRvpl5l0zu/T8VApCQEE1guQoK834h0IIBBGYJmo255IPlSOb3zdSL9Kupq1CTsvBBAoQGCvTcRfLdpZ8oMCuuStCzeN9InE3FtYaA8C9QiQoNcTa3qKgFuBPelkIb0lUQ8WIptNtyT9d5bDBzOmYASCCKwsW7dr0Cw5Zy95EGlZYv5+Jl2EKZ5SEUAAgc0ESNA3c+JdCCAQQWBXOm7ape/snQzrTcIe1pfSEegtQELem67vg1cL6Zdb6bJvATyHAAIIjClAgj6mJmUhgMAoAraE8076qZFORimQQtYJkLCvE+K/IxBIgIQ8EOyaYruD32wpO1uA0oSAWhFA4AkBEnSGBgIIuBWwk9+7w+QsUWdZZ7xIfU3YG+maD7Dx4KmpfIGVPeT/Ysl69Hjb77aL7vC3m+i1UyECCCCwgQAJ+gZIvAUBBJIL3N/nyz71pHGwWabrhfT7Tpu08+E2aTioPAeB7nrJg0ay/eN2oBvbd9IEbrm/3Jaxc8NFmhhQKwIIbChAgr4hFG9DAAEfAuxT9xEHu9bNEnY7eI5ZdjcxoSGJBWx2fNEm4suEnBsq0saE/eVp/akdAQR6CJCg90DjEQQQSC/QzUy9baRjlr+nj0fXAptht+vd/kPS7iYmNCSQwDIZX0j/atqknCvPAllvWex0IV3utCeys9JnSzzejgAC6QVI0NPHgBYggMAwAZa/D/ML/TRJe2hhyg8uQDIenHiMCljGPoYiZSCAQHIBEvTkIaABCCAwlgCnv48lGbyc++XxNtN+1+5rv/nSLpfnhUBSATtRvZFe7EgHNjPezYqzTD1pVJ6vnNPYHQeHpiGAQC8BEvRebDyEAAKeBWz5u6SThfST2n/nlYeA7Re92ZH+q/bqoxuWqOYRuNxa2f2OsN8NdqXjPy0p5wC3rKJos+Wf7ER2fkdkFTcaiwACGwiQoG+AxFsQQCBfge5QOUvUba86rzwFbHbdPpD/pzuczhJ37i7OM5ZRW91daWbJt13ZaDPi9u/sFY8ahVEru1xIn24lO42dFwIIIFCkAAl6kWGlUwgg8FCAWfUix4Rdl3S/RL6bdbel85a8W0LPVUpFhvy7TtkZFJZw3yfhK7Ph9v/br4Og+F4yW158iOkgAgisCpCgMx4QQKA6AfaqVxPyZaJu+93/n+1332kTd5bOZzIElkvR76T9bl/4/3Yz4JZ8MxOeSRz7NJO95X3UeAYBBEoQIEEvIYr0AQEE+gosT4D/mQ/7fQmzfu5+Bt560Ei/dz25n4W3f2cZfdjYdsvPrZL72W/7l0V7f7i9mAEPy++1dPsy7ZdZu4SdVTBeo0S7EEAgqAAJelBeCkcAgVwE7PTmnfZQOdurzsFyuQQuTju/JvKWNHR74Zc1f90L/3/StNbT6O3n53++XVL+agnU7f1eLjcn8Y4zZnOqxb4Qu7yTPtX685NTsGgrAgiEFyBBD29MDQggkJmAHSwn6cdGOsms6TTXl8BqYn/fspX98g9b+nXmfl0Xttxjv9yjva5Y++9fZ7JX37yyr3v1/02ivYko73lSwJawS/qVA98YJAgggMC3AiTojAgEEEDgaYHlEnibWf86IwgYAggggEAvgSu7Ho0l7L3seAgBBCoRIEGvJNB0EwEEhgnYYVWLdmbdknUOpxrGydMIIFCPgJ3z8KmRLrmzvJ6g01MEEOgvQILe344nEUCgUoEuWbeD5divXukYoNsIIPCswP2+8u7At/tDF3khgAACCGwmQIK+mRPvQgABBB4V4HA5BgYCCCBwL8BhbwwEBBBAYAQBEvQRECkCAQQQMAGSdcYBAghUJkBSXlnA6S4CCIQXIEEPb0wNCCBQoQDJeoVBp8sI1CFAUl5HnOklAggkEiBBTwRPtQggUI/ASrJuJ8FzwFw9oaenCJQiYAe9XXFXeSnhpB8IIOBZgATdc3RoGwIIFCfAafDFhZQOIVCqAKevlxpZ+oUAAq4FSNBdh4fGIYBA4QLLe9Z/7O5Z3y+8v3QPAQT8CkxtlryRfuWecr9BomUIIFC+AAl6+TGmhwggkInArnTcSP/m+rZMAkYzEchf4H4/+UL6/Va6zL879AABBBDIX4AEPf8Y0gMEEChQoNu3bnvWl7PrBfaSLiGAQAKBK0m/3klXXyRbxs4LAQQQQMCRAAm6o2DQFAQQQOAJgf1d6T5Zb9p/vkAKAQQQ2FDgZiHdJ+W37T9tKTsvBBBAAAGnAiToTgNDsxBAAIGnBFYOmrPl8Jaws3ed4YIAAkuB+73kkn5vpMuZZMvYeSGAAAIIZCJAgp5JoGgmAggg8EzCbkn6q0W7f93+nRcCCNQlYIe7/W6J+axNznkhgAACCGQqQIKeaeBoNgIIIPCEwP1y+O6wOe5dZ5ggUKbA/b3k3eFuLFsvM8b0CgEEKhUgQa808HQbAQSqESBhrybUdLRgARLygoNL1xBAAIFVARJ0xgMCCCBQl4DdvX7Akvi6gk5vsxNYXbJuyTkHu2UXQhqMAAII9BMgQe/nxlMIIIBAMQJ77f51S9o5dK6YqNKRjARWD3W7Zg95RpGjqQgggEAAARL0AKgUiQACCOQsYKfEdzPs/1I3255zf2g7As4EbM/4dSP9pzvUjVPWnQWI5iCAAAIpBUjQU+pTNwIIIJCJwHKWfSH9q2mTdvsfLwQQeF7getEl443E7DijBQEEEEBgrQAJ+loi3oAAAggg8IjA6l52m2m3WXeSdoZKzQK2V/xmZWacveM1jwb6jgACCPQUIEHvCcdjCCCAAALfCzyYab9fKo8TAgUK2BVn98k4M+MFRpcuIYAAAgkFSNAT4lM1AgggUIPAD9JBI73YkQ4W7UF0lrjb/3gh4F3A9odbIv77nWTL1W++SDYzzgsBBBBAAIEgAiToQVgpFAEEEEBgnYDNti+TdRL3dVr898ACXxNxS8jtf5ymHlic4hFAAAEEHhUgQWdgIIAAAgi4Elidcb+T/mmz793+9n1XDaUxuQnYdWb3s+A70n+ZEc8tfLQXAQQQqEOABL2OONNLBBBAoAgBm3W/k/ZtufxK8s6S+SKiO0on7me/V5PwHWnKbPgothSCAAIIIBBBgAQ9AjJVIIAAAgiEF7CZ9/+R9hftnvd9Evjw5glq+CYBX0hTO6Tt/6Qpe8MTRIMqEUAAAQRGFyBBH52UAhFAAAEEnAosr4az5t2fLr+SxNv/adfEsYw+TfDul59b1cvZ764ZV/bPWfvf7D28EEAAAQQQKFqABL3o8NI5BBBAAIEeAl8T+eVy+i5x/N8Hd72T0D+N+zXh7t5y3Uj/r/tS5NqWnZN49xiZPIIAAgggULwACXrxIaaDCCCAAAIxBLpT6b9WtVxqv1r3QvrXM7P0qe+Mv5+tfuRly8j/86Af90vLV/9/7POOMcqoAwEEEECgdIH/D6ZUEUU47nHVAAAAAElFTkSuQmCC\"\n})));\nvar Shure_default = SvgShure;\nvar SvgSonos = (props) => /* @__PURE__ */ React112.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 20,\n viewBox: \"0 0 28 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React112.createElement(\"path\", {\n d: \"M15.1673 7.1946H16.149V12.4488L12.8327 9.3618V12.2896H11.851V7.04865L15.1673 10.1402V7.1946V7.1946ZM10.2987 9.751C10.2987 11.2679 9.065 12.502 7.54845 12.502C6.03155 12.502 4.7978 11.2679 4.7978 9.751C4.7978 8.2341 6.03155 7 7.54845 7C9.065 7 10.2987 8.2341 10.2987 9.751V9.751ZM9.29075 9.751C9.29075 8.778 8.5078 7.9863 7.5439 7.9863C6.58 7.9863 5.8016 8.778 5.8016 9.751C5.8016 10.724 6.5842 11.5157 7.5439 11.5157C8.5078 11.5157 9.2904 10.724 9.2904 9.751H9.29075ZM3.122 9.7951C2.8609 9.59595 2.51615 9.43705 2.0076 9.27325C1.01255 8.95475 1.01255 8.7073 1.01255 8.5834C1.01255 8.30025 1.3265 8.00835 1.8571 8.00835C2.3037 8.00835 2.6488 8.22955 2.7769 8.32685L2.8476 8.38005L3.6393 7.84455L3.55075 7.74305C3.5245 7.7119 2.9141 7 1.8529 7C1.344 7 0.875699 7.1638 0.535149 7.4599C0.1946 7.75635 0 8.1634 0 8.5876C0 9.0391 0.199149 9.4192 0.588 9.71565C0.849099 9.91445 1.19385 10.0737 1.7024 10.2372C2.69745 10.5515 2.69745 10.8035 2.69745 10.9273C2.69745 11.2105 2.3835 11.5024 1.8529 11.5024C1.4063 11.5024 1.0612 11.2812 0.933099 11.1839L0.8624 11.1307L0.0706989 11.6662L0.159251 11.7677C0.185851 11.7985 0.796251 12.5062 1.8529 12.5062C2.36145 12.5062 2.8301 12.3427 3.17065 12.0463C3.5112 11.7499 3.70545 11.3386 3.70545 10.9186C3.70545 10.4717 3.5112 10.0961 3.122 9.7951V9.7951ZM17.71 9.77306C17.71 8.25616 18.9438 7.02206 20.4607 7.02206C21.9772 7.02206 23.2109 8.25616 23.2109 9.77306C23.2109 11.29 21.9772 12.5241 20.4607 12.5241C18.9438 12.5241 17.71 11.29 17.71 9.77306V9.77306ZM18.7138 9.77306C18.7138 10.7461 19.4964 11.5378 20.4561 11.5378C21.42 11.5378 22.1984 10.7461 22.1984 9.77306C22.1984 8.80006 21.4158 8.00801 20.4561 8.00801C19.4964 8.00801 18.7138 8.79971 18.7138 9.77271V9.77306ZM24.8826 9.72406C25.1433 9.92356 25.4881 10.0825 25.9969 10.2463C26.9917 10.5648 26.9917 10.8122 26.9917 10.9361C26.9917 11.2193 26.6777 11.5112 26.1471 11.5112C25.7005 11.5112 25.3558 11.29 25.2273 11.1927L25.1566 11.1398L24.3653 11.675L24.4535 11.7765C24.4801 11.8076 25.0905 12.515 26.1475 12.515C26.6557 12.515 27.1243 12.3515 27.4649 12.0551C27.8054 11.759 28 11.3519 28 10.9274C28 10.4762 27.8009 10.0958 27.412 9.79966C27.1509 9.60051 26.8062 9.44126 26.2976 9.27781C25.3026 8.95931 25.3026 8.71151 25.3026 8.58761C25.3026 8.30481 25.6165 8.01291 26.1471 8.01291C26.5937 8.01291 26.9388 8.23411 27.0669 8.33141L27.1376 8.38426L27.9293 7.84911L27.8408 7.74761C27.8142 7.71646 27.2037 7.00911 26.1471 7.00911C25.6385 7.00911 25.1699 7.17256 24.8293 7.46866C24.4888 7.76511 24.2946 8.17636 24.2946 8.59671C24.2988 9.04786 24.4934 9.42796 24.8826 9.72441V9.72406Z\",\n fill: \"#1E202E\"\n}));\nvar Sonos_default = SvgSonos;\nvar SvgUnknown = (props) => /* @__PURE__ */ React113.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React113.createElement(\"path\", {\n d: \"M11.2036 7.64033C11.6122 7.51774 12.0398 7.51508 12.4505 7.72209C12.8334 7.91511 13.04 8.24826 13.1247 8.62981C13.1619 8.797 13.1816 8.97125 13.1823 9.14282C13.1858 9.91461 13.1854 10.6866 13.1849 11.4577L13.1846 12.1635C13.1846 12.1832 13.1834 12.2019 13.1826 12.2139L13.1824 12.2158L13.1814 12.2328L13.1704 12.4434H12.011L12.011 11.4277C12.0111 10.7318 12.0112 10.0359 12.0106 9.34017C12.0105 9.17085 11.9962 9.031 11.9422 8.90667C11.9056 8.82239 11.8588 8.76927 11.8068 8.73462C11.7537 8.69927 11.6828 8.67485 11.5867 8.66827C11.3286 8.6886 11.2083 8.74065 11.0153 8.91848C10.8055 9.16091 10.6903 9.45213 10.6413 9.78079C10.6103 9.98876 10.5938 10.201 10.5912 10.4122C10.5862 10.8248 10.5872 11.2376 10.5881 11.6524L10.5881 11.6542C10.5885 11.8184 10.5889 11.9839 10.5889 12.1484V12.4424H9.42782L9.4168 12.2318L9.41536 12.2087L9.41521 12.2065C9.41402 12.1886 9.4123 12.163 9.4123 12.1362L9.41244 11.3887C9.41271 10.7254 9.41297 10.0626 9.41025 9.39991C9.40967 9.25853 9.40017 9.1234 9.37254 8.99999C9.34892 8.8779 9.32123 8.81446 9.1983 8.72691C9.07334 8.67936 8.99959 8.6631 8.85496 8.67196C8.62744 8.69728 8.46311 8.83026 8.31168 9.054C8.16013 9.27792 8.0716 9.53034 8.03502 9.8038C8.00599 10.0207 7.98927 10.2401 7.98659 10.4579C7.98165 10.8575 7.9826 11.2584 7.98356 11.6602C7.98394 11.8212 7.98433 11.9825 7.98433 12.1439V12.4442H6.81485V7.63911H7.98228V7.99799C8.19374 7.80337 8.45228 7.664 8.76547 7.59792C9.07721 7.53214 9.39819 7.54244 9.71001 7.66745C10.0026 7.78475 10.2104 7.97879 10.3504 8.22177C10.5668 7.95738 10.8432 7.74847 11.2036 7.64033Z\",\n fill: \"#343647\"\n}), /* @__PURE__ */ React113.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.44448 2C5.95356 2 5.55559 2.39797 5.55559 2.88889V3.77778H5.25928C4.44108 3.77778 3.77779 4.44106 3.77779 5.25926V5.55556H2.88889C2.39797 5.55556 2 5.95352 2 6.44444C2 6.93536 2.39797 7.33333 2.88889 7.33333H3.77779V9.1111H2.88889C2.39797 9.1111 2 9.50907 2 9.99999C2 10.4909 2.39797 10.8889 2.88889 10.8889H3.77779V12.6666H2.88889C2.39797 12.6666 2 13.0646 2 13.5555C2 14.0465 2.39797 14.4444 2.88889 14.4444H3.77779V14.7407C3.77779 15.5589 4.44108 16.2222 5.25928 16.2222H5.55559V17.1111C5.55559 17.602 5.95356 18 6.44448 18C6.9354 18 7.33337 17.602 7.33337 17.1111V16.2222H9.11113V17.1111C9.11113 17.602 9.5091 18 10 18C10.4909 18 10.8889 17.602 10.8889 17.1111V16.2222H12.6667V17.1111C12.6667 17.602 13.0646 18 13.5556 18C14.0465 18 14.4445 17.602 14.4445 17.1111V16.2222H14.7408C15.5589 16.2222 16.2222 15.5589 16.2222 14.7407L16.2222 14.4444H17.1111C17.602 14.4444 18 14.0465 18 13.5555C18 13.0646 17.602 12.6666 17.1111 12.6666H16.2222V10.8889H17.1111C17.602 10.8889 18 10.4909 18 9.99999C18 9.50907 17.602 9.1111 17.1111 9.1111H16.2222V7.33333H17.1111C17.602 7.33333 18 6.93536 18 6.44444C18 5.95352 17.602 5.55556 17.1111 5.55556H16.2222L16.2222 5.25926C16.2222 4.44106 15.5589 3.77778 14.7408 3.77778H14.4445V2.88889C14.4445 2.39797 14.0465 2 13.5556 2C13.0646 2 12.6667 2.39797 12.6667 2.88889V3.77778H10.8889V2.88889C10.8889 2.39797 10.4909 2 10 2C9.5091 2 9.11113 2.39797 9.11113 2.88889V3.77778H7.33337V2.88889C7.33337 2.39797 6.9354 2 6.44448 2ZM14.4445 6.14815C14.4445 5.82087 14.1791 5.55555 13.8519 5.55555H6.14816C5.82089 5.55555 5.55557 5.82087 5.55557 6.14815V13.8518C5.55557 14.1791 5.82088 14.4444 6.14816 14.4444H13.8519C14.1791 14.4444 14.4445 14.1791 14.4445 13.8518V6.14815Z\",\n fill: \"#343647\"\n}));\nvar Unknown_default = SvgUnknown;\nvar ManufacturerIconSVG = {\n Apple: Apple_default,\n Chrome: Chrome_default,\n Ecobee: Ecobee_default,\n Lenovo: Lenovo_default,\n Logitech: Logitech_default,\n Microsoft: Microsoft_default,\n Nest: Nest_default,\n Samsung: Samsung_default,\n Shure: Shure_default,\n Sonos: Sonos_default,\n Unknown: Unknown_default\n};\nvar SvgAttAdaptive = (props) => /* @__PURE__ */ React114.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 27,\n viewBox: \"0 0 64 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React114.createElement(\"path\", {\n d: \"M58.6206 18.4172C58.4511 18.4172 58.3344 18.3002 58.3344 18.1318V9.76815H55.4826C55.313 9.76815 55.1961 9.65159 55.1961 9.48303V8.32936C55.1961 8.16042 55.3131 8.04354 55.4826 8.04354H63.0735C63.2428 8.04354 63.3594 8.16054 63.3594 8.32936V9.48297C63.3594 9.6514 63.2428 9.76815 63.0735 9.76815H60.2219V18.1317C60.2219 18.3002 60.1046 18.4172 59.9357 18.4172H58.6206ZM36.7758 14.2416L35.2788 9.9629L33.7684 14.2416H36.7758ZM40.0959 18.0793C40.1614 18.2483 40.057 18.4172 39.8747 18.4172H38.5209C38.3254 18.4172 38.2081 18.3267 38.1428 18.1443L37.375 15.9407H33.1699L32.4008 18.1443C32.3362 18.3268 32.2185 18.4172 32.0236 18.4172H30.7481C30.5786 18.4172 30.4612 18.2482 30.5264 18.0793L34.0547 8.30342C34.12 8.12129 34.2371 8.04398 34.432 8.04398H36.1767C36.3722 8.04398 36.5025 8.12135 36.5675 8.30342L40.0959 18.0793ZM50.2095 17.0165C51.0424 17.0165 51.6025 16.6152 52.0583 15.9277L49.9494 13.6712C49.1418 14.1254 48.6208 14.5786 48.6208 15.4866C48.6209 16.3814 49.3497 17.0165 50.2095 17.0165ZM50.7953 9.41797C50.1184 9.41797 49.7279 9.84628 49.7279 10.4167C49.7279 10.8575 49.9617 11.2466 50.4958 11.8173C51.4201 11.2853 51.8109 10.9613 51.8109 10.3909C51.8109 9.85884 51.4725 9.41797 50.7953 9.41797ZM56.5635 18.0541C56.7326 18.2358 56.6287 18.4172 56.4198 18.4172H54.7663C54.545 18.4172 54.4278 18.3651 54.2847 18.1963L53.2952 17.1076C52.6313 17.9894 51.7061 18.6505 50.1701 18.6505C48.2693 18.6505 46.7716 17.5095 46.7716 15.5519C46.7716 14.0473 47.5793 13.2432 48.8033 12.5691C48.2039 11.8819 47.931 11.1557 47.931 10.5207C47.931 8.91235 49.0637 7.81036 50.769 7.81036C52.5137 7.81036 53.5815 8.8351 53.5815 10.3519C53.5815 11.6486 52.6443 12.3741 51.6544 12.9191L53.1129 14.4886L53.933 13.0617C54.0371 12.8934 54.1543 12.8283 54.3623 12.8283H55.625C55.8337 12.8283 55.9508 12.9713 55.821 13.1916L54.3625 15.6809L56.5635 18.0541ZM43.57 18.4172C43.7393 18.4172 43.857 18.3002 43.857 18.1318V9.76815H46.708C46.8772 9.76815 46.9943 9.65159 46.9943 9.48303V8.32936C46.9943 8.16042 46.8772 8.04354 46.708 8.04354H39.1171C38.9476 8.04354 38.8307 8.16054 38.8307 8.32936V9.48297C38.8307 9.6514 38.9477 9.76815 39.1171 9.76815H41.968V18.1317C41.968 18.3002 42.0856 18.4172 42.2547 18.4172H43.57Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React114.createElement(\"path\", {\n d: \"M5.03745 23.474C7.24551 25.177 10.017 26.2001 13.0239 26.2001C16.3145 26.2001 19.3144 24.983 21.6038 22.985C21.6316 22.9605 21.6179 22.9444 21.5905 22.9605C20.5632 23.6441 17.6351 25.1363 13.0241 25.1363C9.01688 25.1363 6.48451 24.2455 5.05442 23.4503C5.02706 23.4368 5.01692 23.4573 5.03745 23.474ZM13.908 24.1371C17.113 24.1371 20.6349 23.2666 22.7413 21.5436C23.3177 21.0741 23.8668 20.4493 24.3585 19.6096C24.6416 19.1264 24.9185 18.5524 25.144 17.9881C25.154 17.9606 25.1369 17.9472 25.1162 17.9782C23.1574 20.8501 17.4851 22.6414 11.6282 22.6414C7.4883 22.6414 3.03386 21.3224 1.28991 18.804C1.27274 18.7807 1.25558 18.7907 1.26603 18.8174C2.89064 22.2577 7.81933 24.1371 13.908 24.1371ZM10.4062 18.4298C3.74044 18.4298 0.597384 15.3368 0.0272373 13.226C0.0202063 13.1955 0 13.2022 0 13.2296C0 13.9402 0.0713871 14.8572 0.194208 15.4659C0.2528 15.7622 0.494832 16.2272 0.849677 16.5978C2.46377 18.274 6.48793 20.6228 13.4571 20.6228C22.9524 20.6228 25.1234 17.4715 25.5668 16.4352C25.8838 15.6941 26.0481 14.3548 26.0481 13.2297C26.0481 12.9574 26.0412 12.74 26.0309 12.5265C26.0309 12.4918 26.0107 12.489 26.0038 12.5227C25.5293 15.0585 17.4167 18.4298 10.4062 18.4298ZM1.25558 7.66526C0.873621 8.42047 0.450239 9.69456 0.324377 10.354C0.269206 10.6365 0.292706 10.7722 0.392154 10.983C1.19109 12.6719 5.23229 15.374 14.6588 15.374C20.4097 15.374 24.8771 13.9664 25.6009 11.3977C25.7341 10.9248 25.7413 10.4256 25.5701 9.75287C25.3788 9.00113 25.0205 8.12449 24.7173 7.50894C24.7073 7.48887 24.6896 7.49184 24.6932 7.51557C24.8058 10.8846 15.3756 13.056 10.6175 13.056C5.46361 13.056 1.16386 11.0102 1.16386 8.42691C1.16386 8.1787 1.21542 7.93044 1.27977 7.67207C1.28623 7.64847 1.26596 7.64456 1.25558 7.66526ZM21.6249 3.52872C21.6796 3.61417 21.7069 3.70536 21.7069 3.82811C21.7069 5.26924 17.2799 7.81867 10.2326 7.81867C5.05442 7.81867 4.08496 5.90486 4.08496 4.68776C4.08496 4.2527 4.25244 3.80753 4.62129 3.35543C4.64143 3.32854 4.62433 3.31819 4.60108 3.3382C3.92838 3.90617 3.31028 4.54526 2.76807 5.23516C2.509 5.56143 2.34817 5.85046 2.34817 6.02363C2.34817 8.54587 8.69611 10.3746 14.6316 10.3746C20.956 10.3746 23.7786 8.31767 23.7786 6.51C23.7786 5.86397 23.5261 5.48684 22.8804 4.75567C22.4613 4.28002 22.0648 3.89273 21.6452 3.51149C21.6249 3.49483 21.6108 3.5084 21.6249 3.52872ZM19.6861 2.0879C17.7342 0.922301 15.4676 0.259163 13.0241 0.259163C10.5635 0.259163 8.22858 0.945462 6.26971 2.14193C5.68215 2.50221 5.35144 2.79093 5.35144 3.16206C5.35144 4.2561 7.91776 5.43244 12.4708 5.43244C16.9765 5.43244 20.4712 4.14396 20.4712 2.9037C20.4712 2.60766 20.2115 2.40054 19.6861 2.0879Z\",\n fill: \"#009FDB\"\n}));\nvar ATTAdaptive_default = SvgAttAdaptive;\nvar SvgAttBrand = (props) => /* @__PURE__ */ React115.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 27,\n viewBox: \"0 0 64 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React115.createElement(\"path\", {\n d: \"M58.6206 18.4172C58.4511 18.4172 58.3344 18.3002 58.3344 18.1318V9.76815H55.4826C55.313 9.76815 55.1961 9.65159 55.1961 9.48303V8.32936C55.1961 8.16042 55.3131 8.04354 55.4826 8.04354H63.0735C63.2428 8.04354 63.3594 8.16054 63.3594 8.32936V9.48297C63.3594 9.6514 63.2428 9.76815 63.0735 9.76815H60.2219V18.1317C60.2219 18.3002 60.1046 18.4172 59.9357 18.4172H58.6206ZM36.7758 14.2416L35.2788 9.9629L33.7684 14.2416H36.7758ZM40.0959 18.0793C40.1614 18.2483 40.057 18.4172 39.8747 18.4172H38.5209C38.3254 18.4172 38.2081 18.3267 38.1428 18.1443L37.375 15.9407H33.1699L32.4008 18.1443C32.3362 18.3268 32.2185 18.4172 32.0236 18.4172H30.7481C30.5786 18.4172 30.4612 18.2482 30.5264 18.0793L34.0547 8.30342C34.12 8.12129 34.2371 8.04398 34.432 8.04398H36.1767C36.3722 8.04398 36.5025 8.12135 36.5675 8.30342L40.0959 18.0793ZM50.2095 17.0165C51.0424 17.0165 51.6025 16.6152 52.0583 15.9277L49.9494 13.6712C49.1418 14.1254 48.6208 14.5786 48.6208 15.4866C48.6209 16.3814 49.3497 17.0165 50.2095 17.0165ZM50.7953 9.41797C50.1184 9.41797 49.7279 9.84628 49.7279 10.4167C49.7279 10.8575 49.9617 11.2466 50.4958 11.8173C51.4201 11.2853 51.8109 10.9613 51.8109 10.3909C51.8109 9.85884 51.4725 9.41797 50.7953 9.41797ZM56.5635 18.0541C56.7326 18.2358 56.6287 18.4172 56.4198 18.4172H54.7663C54.545 18.4172 54.4278 18.3651 54.2847 18.1963L53.2952 17.1076C52.6313 17.9894 51.7061 18.6505 50.1701 18.6505C48.2693 18.6505 46.7716 17.5095 46.7716 15.5519C46.7716 14.0473 47.5793 13.2432 48.8033 12.5691C48.2039 11.8819 47.931 11.1557 47.931 10.5207C47.931 8.91235 49.0637 7.81036 50.769 7.81036C52.5137 7.81036 53.5815 8.8351 53.5815 10.3519C53.5815 11.6486 52.6443 12.3741 51.6544 12.9191L53.1129 14.4886L53.933 13.0617C54.0371 12.8934 54.1543 12.8283 54.3623 12.8283H55.625C55.8337 12.8283 55.9508 12.9713 55.821 13.1916L54.3625 15.6809L56.5635 18.0541ZM43.57 18.4172C43.7393 18.4172 43.857 18.3002 43.857 18.1318V9.76815H46.708C46.8772 9.76815 46.9943 9.65159 46.9943 9.48303V8.32936C46.9943 8.16042 46.8772 8.04354 46.708 8.04354H39.1171C38.9476 8.04354 38.8307 8.16054 38.8307 8.32936V9.48297C38.8307 9.6514 38.9477 9.76815 39.1171 9.76815H41.968V18.1317C41.968 18.3002 42.0856 18.4172 42.2547 18.4172H43.57Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React115.createElement(\"path\", {\n d: \"M5.03745 23.474C7.24551 25.177 10.017 26.2001 13.0239 26.2001C16.3145 26.2001 19.3144 24.983 21.6038 22.985C21.6316 22.9605 21.6179 22.9444 21.5905 22.9605C20.5632 23.6441 17.6351 25.1363 13.0241 25.1363C9.01688 25.1363 6.48451 24.2455 5.05442 23.4503C5.02706 23.4368 5.01692 23.4573 5.03745 23.474ZM13.908 24.1371C17.113 24.1371 20.6349 23.2666 22.7413 21.5436C23.3177 21.0741 23.8668 20.4493 24.3585 19.6096C24.6416 19.1264 24.9185 18.5524 25.144 17.9881C25.154 17.9606 25.1369 17.9472 25.1162 17.9782C23.1574 20.8501 17.4851 22.6414 11.6282 22.6414C7.4883 22.6414 3.03386 21.3224 1.28991 18.804C1.27274 18.7807 1.25558 18.7907 1.26603 18.8174C2.89064 22.2577 7.81933 24.1371 13.908 24.1371ZM10.4062 18.4298C3.74044 18.4298 0.597384 15.3368 0.0272373 13.226C0.0202063 13.1955 0 13.2022 0 13.2296C0 13.9402 0.0713871 14.8572 0.194208 15.4659C0.2528 15.7622 0.494832 16.2272 0.849677 16.5978C2.46377 18.274 6.48793 20.6228 13.4571 20.6228C22.9524 20.6228 25.1234 17.4715 25.5668 16.4352C25.8838 15.6941 26.0481 14.3548 26.0481 13.2297C26.0481 12.9574 26.0412 12.74 26.0309 12.5265C26.0309 12.4918 26.0107 12.489 26.0038 12.5227C25.5293 15.0585 17.4167 18.4298 10.4062 18.4298ZM1.25558 7.66526C0.873621 8.42047 0.450239 9.69456 0.324377 10.354C0.269206 10.6365 0.292706 10.7722 0.392154 10.983C1.19109 12.6719 5.23229 15.374 14.6588 15.374C20.4097 15.374 24.8771 13.9664 25.6009 11.3977C25.7341 10.9248 25.7413 10.4256 25.5701 9.75287C25.3788 9.00113 25.0205 8.12449 24.7173 7.50894C24.7073 7.48887 24.6896 7.49184 24.6932 7.51557C24.8058 10.8846 15.3756 13.056 10.6175 13.056C5.46361 13.056 1.16386 11.0102 1.16386 8.42691C1.16386 8.1787 1.21542 7.93044 1.27977 7.67207C1.28623 7.64847 1.26596 7.64456 1.25558 7.66526ZM21.6249 3.52872C21.6796 3.61417 21.7069 3.70536 21.7069 3.82811C21.7069 5.26924 17.2799 7.81867 10.2326 7.81867C5.05442 7.81867 4.08496 5.90486 4.08496 4.68776C4.08496 4.2527 4.25244 3.80753 4.62129 3.35543C4.64143 3.32854 4.62433 3.31819 4.60108 3.3382C3.92838 3.90617 3.31028 4.54526 2.76807 5.23516C2.509 5.56143 2.34817 5.85046 2.34817 6.02363C2.34817 8.54587 8.69611 10.3746 14.6316 10.3746C20.956 10.3746 23.7786 8.31767 23.7786 6.51C23.7786 5.86397 23.5261 5.48684 22.8804 4.75567C22.4613 4.28002 22.0648 3.89273 21.6452 3.51149C21.6249 3.49483 21.6108 3.5084 21.6249 3.52872ZM19.6861 2.0879C17.7342 0.922301 15.4676 0.259163 13.0241 0.259163C10.5635 0.259163 8.22858 0.945462 6.26971 2.14193C5.68215 2.50221 5.35144 2.79093 5.35144 3.16206C5.35144 4.2561 7.91776 5.43244 12.4708 5.43244C16.9765 5.43244 20.4712 4.14396 20.4712 2.9037C20.4712 2.60766 20.2115 2.40054 19.6861 2.0879Z\",\n fill: \"#009FDB\"\n}));\nvar ATTBrand_default = SvgAttBrand;\nvar SvgAttMono = (props) => /* @__PURE__ */ React116.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 27,\n viewBox: \"0 0 64 27\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React116.createElement(\"path\", {\n d: \"M58.6206 18.4172C58.4511 18.4172 58.3344 18.3002 58.3344 18.1318V9.76815H55.4826C55.3131 9.76815 55.1961 9.65159 55.1961 9.48303V8.32936C55.1961 8.16042 55.3131 8.04354 55.4826 8.04354H63.0735C63.2429 8.04354 63.3595 8.16054 63.3595 8.32936V9.48297C63.3595 9.6514 63.2429 9.76815 63.0735 9.76815H60.2219V18.1317C60.2219 18.3002 60.1046 18.4172 59.9357 18.4172H58.6206ZM36.7758 14.2416L35.2788 9.9629L33.7684 14.2416H36.7758ZM40.096 18.0793C40.1614 18.2483 40.057 18.4172 39.8747 18.4172H38.5209C38.3255 18.4172 38.2082 18.3267 38.1429 18.1443L37.375 15.9407H33.17L32.4008 18.1443C32.3362 18.3268 32.2186 18.4172 32.0237 18.4172H30.7481C30.5786 18.4172 30.4612 18.2482 30.5264 18.0793L34.0547 8.30342C34.12 8.12129 34.2372 8.04398 34.4321 8.04398H36.1768C36.3723 8.04398 36.5025 8.12135 36.5675 8.30342L40.096 18.0793ZM50.2095 17.0165C51.0424 17.0165 51.6025 16.6152 52.0583 15.9277L49.9495 13.6712C49.1419 14.1254 48.6208 14.5786 48.6208 15.4866C48.6209 16.3814 49.3497 17.0165 50.2095 17.0165ZM50.7953 9.41797C50.1185 9.41797 49.7279 9.84628 49.7279 10.4167C49.7279 10.8575 49.9618 11.2466 50.4958 11.8173C51.4201 11.2853 51.8109 10.9613 51.8109 10.3909C51.8109 9.85884 51.4725 9.41797 50.7953 9.41797ZM56.5636 18.0541C56.7326 18.2358 56.6287 18.4172 56.4198 18.4172H54.7663C54.545 18.4172 54.4279 18.3651 54.2847 18.1963L53.2952 17.1076C52.6313 17.9894 51.7062 18.6505 50.1702 18.6505C48.2694 18.6505 46.7716 17.5095 46.7716 15.5519C46.7716 14.0473 47.5793 13.2432 48.8034 12.5691C48.2039 11.8819 47.9311 11.1557 47.9311 10.5207C47.9311 8.91235 49.0637 7.81036 50.769 7.81036C52.5137 7.81036 53.5815 8.8351 53.5815 10.3519C53.5815 11.6486 52.6443 12.3741 51.6545 12.9191L53.1129 14.4886L53.933 13.0617C54.0371 12.8934 54.1543 12.8283 54.3624 12.8283H55.625C55.8337 12.8283 55.9509 12.9713 55.8211 13.1916L54.3626 15.6809L56.5636 18.0541ZM43.5701 18.4172C43.7393 18.4172 43.8571 18.3002 43.8571 18.1318V9.76815H46.708C46.8772 9.76815 46.9943 9.65159 46.9943 9.48303V8.32936C46.9943 8.16042 46.8772 8.04354 46.708 8.04354H39.1171C38.9476 8.04354 38.8307 8.16054 38.8307 8.32936V9.48297C38.8307 9.6514 38.9477 9.76815 39.1171 9.76815H41.9681V18.1317C41.9681 18.3002 42.0856 18.4172 42.2547 18.4172H43.5701Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React116.createElement(\"path\", {\n d: \"M5.03745 23.474C7.24551 25.177 10.017 26.2001 13.0239 26.2001C16.3145 26.2001 19.3144 24.983 21.6038 22.985C21.6316 22.9605 21.6179 22.9444 21.5905 22.9605C20.5632 23.6441 17.6351 25.1363 13.0241 25.1363C9.01688 25.1363 6.48451 24.2455 5.05442 23.4503C5.02706 23.4368 5.01692 23.4573 5.03745 23.474ZM13.908 24.1371C17.113 24.1371 20.6349 23.2666 22.7413 21.5436C23.3177 21.0741 23.8668 20.4493 24.3585 19.6096C24.6416 19.1264 24.9185 18.5524 25.144 17.9881C25.154 17.9606 25.1369 17.9472 25.1162 17.9782C23.1574 20.8501 17.4851 22.6414 11.6282 22.6414C7.4883 22.6414 3.03386 21.3224 1.28991 18.804C1.27274 18.7807 1.25558 18.7907 1.26603 18.8174C2.89064 22.2577 7.81933 24.1371 13.908 24.1371ZM10.4062 18.4298C3.74044 18.4298 0.597384 15.3368 0.0272373 13.226C0.0202063 13.1955 0 13.2022 0 13.2296C0 13.9402 0.0713871 14.8572 0.194208 15.4659C0.2528 15.7622 0.494832 16.2272 0.849677 16.5978C2.46377 18.274 6.48793 20.6228 13.4571 20.6228C22.9524 20.6228 25.1234 17.4715 25.5668 16.4352C25.8838 15.6941 26.0481 14.3548 26.0481 13.2297C26.0481 12.9574 26.0412 12.74 26.0309 12.5265C26.0309 12.4918 26.0107 12.489 26.0038 12.5227C25.5293 15.0585 17.4167 18.4298 10.4062 18.4298ZM1.25558 7.66526C0.873621 8.42047 0.450239 9.69456 0.324377 10.354C0.269206 10.6365 0.292706 10.7722 0.392154 10.983C1.19109 12.6719 5.23229 15.374 14.6588 15.374C20.4097 15.374 24.8771 13.9664 25.6009 11.3977C25.7341 10.9248 25.7413 10.4256 25.5701 9.75287C25.3788 9.00113 25.0205 8.12449 24.7173 7.50894C24.7073 7.48887 24.6896 7.49184 24.6932 7.51557C24.8058 10.8846 15.3756 13.056 10.6175 13.056C5.46361 13.056 1.16386 11.0102 1.16386 8.42691C1.16386 8.1787 1.21542 7.93044 1.27977 7.67207C1.28623 7.64847 1.26596 7.64456 1.25558 7.66526ZM21.6249 3.52872C21.6796 3.61417 21.7069 3.70536 21.7069 3.82811C21.7069 5.26924 17.2799 7.81867 10.2326 7.81867C5.05442 7.81867 4.08496 5.90486 4.08496 4.68776C4.08496 4.2527 4.25244 3.80753 4.62129 3.35543C4.64143 3.32854 4.62433 3.31819 4.60108 3.3382C3.92838 3.90617 3.31028 4.54526 2.76807 5.23516C2.509 5.56143 2.34817 5.85046 2.34817 6.02363C2.34817 8.54587 8.69611 10.3746 14.6316 10.3746C20.956 10.3746 23.7786 8.31767 23.7786 6.51C23.7786 5.86397 23.5261 5.48684 22.8804 4.75567C22.4613 4.28002 22.0648 3.89273 21.6452 3.51149C21.6249 3.49483 21.6108 3.5084 21.6249 3.52872ZM19.6861 2.0879C17.7342 0.922301 15.4676 0.259163 13.0241 0.259163C10.5635 0.259163 8.22858 0.945462 6.26971 2.14193C5.68215 2.50221 5.35144 2.79093 5.35144 3.16206C5.35144 4.2561 7.91776 5.43244 12.4708 5.43244C16.9765 5.43244 20.4712 4.14396 20.4712 2.9037C20.4712 2.60766 20.2115 2.40054 19.6861 2.0879Z\",\n fill: \"currentColor\"\n}));\nvar ATTMono_default = SvgAttMono;\nvar SvgCogentAdaptive = (props) => /* @__PURE__ */ React117.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M6.29508 5.28857C9.22847 5.28857 10.6831 7.00574 10.6831 7.00574L9.84847 8.2215C9.84847 8.2215 8.51295 6.76739 6.34308 6.76739C3.72004 6.76739 1.66923 8.72243 1.66923 11.5838C1.66923 14.3979 3.74404 16.4007 6.39084 16.4007C8.82283 16.4007 10.2301 14.7083 10.2301 14.7083L10.9694 15.972C10.9694 15.972 9.34777 17.8556 6.29508 17.8556C2.74216 17.8556 6.10352e-05 15.3043 6.10352e-05 11.5838C6.10352e-05 7.88762 2.76616 5.28857 6.29508 5.28857Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M22.8289 11.5288C22.8289 15.0194 19.9998 17.8486 16.5099 17.8486C13.0193 17.8486 10.1902 15.0194 10.1902 11.5288C10.1902 8.03897 13.0193 5.20981 16.5099 5.20981C19.9998 5.20981 22.8289 8.03897 22.8289 11.5288Z\",\n fill: \"#0071BC\"\n}), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M32.3599 11.3452C32.3599 7.84032 30.6907 6.76739 28.5686 6.76739C26.2319 6.76739 24.8727 8.45985 24.8727 11.3215C24.8727 14.1833 26.4225 16.0436 28.807 16.0436C30.6907 16.0436 32.3599 14.8749 32.3599 11.3452ZM28.1397 21.1231C30.4761 21.1231 32.3366 20.0261 32.3366 17.3553V16.2584C32.3366 15.8047 32.3839 15.3989 32.3839 15.3989H32.3366C31.6213 16.7353 30.4049 17.4977 28.5451 17.4977C25.3256 17.4977 23.2032 14.9466 23.2032 11.3452C23.2032 7.74503 25.1823 5.28857 28.402 5.28857C31.574 5.28857 32.3599 7.29162 32.3599 7.29162H32.4079C32.4079 7.29162 32.3839 7.14833 32.3839 6.88645V5.57445H33.9585V17.2833C33.9585 21.0988 31.1437 22.5772 28.211 22.5772C26.8282 22.5772 25.4454 22.2195 24.2764 21.6235L24.8966 20.288C24.8966 20.288 26.3745 21.1231 28.1397 21.1231Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M43.9258 10.3203C43.8302 7.81656 42.3044 6.6481 40.5154 6.6481C38.5131 6.6481 36.7719 7.91162 36.3903 10.3203H43.9258ZM40.5634 5.28857C43.8782 5.28857 45.5709 7.84032 45.5709 10.821C45.5709 11.1069 45.5229 11.6556 45.5229 11.6556H36.3185C36.3903 14.7316 38.4891 16.4007 40.9688 16.4007C43.1625 16.4007 44.6171 14.9466 44.6171 14.9466L45.3563 16.1871C45.3563 16.1871 43.6159 17.8556 40.9211 17.8556C37.3442 17.8556 34.6494 15.2803 34.6494 11.5838C34.6494 7.64927 37.3202 5.28857 40.5634 5.28857Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M46.2819 5.57445H47.879V7.36291C47.879 7.88762 47.8317 8.31726 47.8317 8.31726H47.879C48.3087 7.22033 49.8345 5.28857 52.6722 5.28857C55.6293 5.28857 56.6785 6.98174 56.6785 9.93866V17.5699H55.0573V10.3676C55.0573 8.48385 54.771 6.81398 52.4576 6.81398C50.4068 6.81398 48.6423 8.2215 48.0936 10.201C47.951 10.702 47.9028 11.2499 47.9028 11.8229V17.5699H46.2819V5.57445Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React117.createElement(\"path\", {\n d: \"M58.4951 7.07253H56.9219V5.71301H58.5193V2.25539H60.1177V5.71301H63.1212V7.07253H60.1177V13.0344C60.1177 15.8478 61.905 16.2054 62.8113 16.2054C63.1452 16.2054 63.3595 16.1574 63.3595 16.1574V17.6125C63.3595 17.6125 63.0979 17.6602 62.6683 17.6602C61.2852 17.6602 58.4951 17.2066 58.4951 13.201V7.07253Z\",\n fill: \"currentColor\"\n}));\nvar CogentAdaptive_default = SvgCogentAdaptive;\nvar SvgCogentBrand = (props) => /* @__PURE__ */ React118.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M6.29508 5.28857C9.22847 5.28857 10.6831 7.00574 10.6831 7.00574L9.84847 8.2215C9.84847 8.2215 8.51295 6.76739 6.34308 6.76739C3.72004 6.76739 1.66923 8.72243 1.66923 11.5838C1.66923 14.3979 3.74404 16.4007 6.39084 16.4007C8.82283 16.4007 10.2301 14.7083 10.2301 14.7083L10.9694 15.972C10.9694 15.972 9.34777 17.8556 6.29508 17.8556C2.74216 17.8556 6.10352e-05 15.3043 6.10352e-05 11.5838C6.10352e-05 7.88762 2.76616 5.28857 6.29508 5.28857Z\",\n fill: \"#808285\"\n}), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M22.8289 11.5288C22.8289 15.0194 19.9998 17.8486 16.5099 17.8486C13.0193 17.8486 10.1902 15.0194 10.1902 11.5288C10.1902 8.03897 13.0193 5.20981 16.5099 5.20981C19.9998 5.20981 22.8289 8.03897 22.8289 11.5288Z\",\n fill: \"#0071BC\"\n}), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M32.3599 11.3452C32.3599 7.84032 30.6907 6.76739 28.5686 6.76739C26.2319 6.76739 24.8727 8.45985 24.8727 11.3215C24.8727 14.1833 26.4225 16.0436 28.807 16.0436C30.6907 16.0436 32.3599 14.8749 32.3599 11.3452ZM28.1397 21.1231C30.4761 21.1231 32.3366 20.0261 32.3366 17.3553V16.2584C32.3366 15.8047 32.3839 15.3989 32.3839 15.3989H32.3366C31.6213 16.7353 30.4049 17.4977 28.5451 17.4977C25.3256 17.4977 23.2032 14.9466 23.2032 11.3452C23.2032 7.74503 25.1823 5.28857 28.402 5.28857C31.574 5.28857 32.3599 7.29162 32.3599 7.29162H32.4079C32.4079 7.29162 32.3839 7.14833 32.3839 6.88645V5.57445H33.9585V17.2833C33.9585 21.0988 31.1437 22.5772 28.211 22.5772C26.8282 22.5772 25.4454 22.2195 24.2764 21.6235L24.8966 20.288C24.8966 20.288 26.3745 21.1231 28.1397 21.1231Z\",\n fill: \"#808285\"\n}), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M43.9258 10.3203C43.8302 7.81656 42.3044 6.6481 40.5154 6.6481C38.5131 6.6481 36.7719 7.91162 36.3903 10.3203H43.9258ZM40.5634 5.28857C43.8782 5.28857 45.5709 7.84032 45.5709 10.821C45.5709 11.1069 45.5229 11.6556 45.5229 11.6556H36.3185C36.3903 14.7316 38.4891 16.4007 40.9688 16.4007C43.1625 16.4007 44.6171 14.9466 44.6171 14.9466L45.3563 16.1871C45.3563 16.1871 43.6159 17.8556 40.9211 17.8556C37.3442 17.8556 34.6494 15.2803 34.6494 11.5838C34.6494 7.64927 37.3202 5.28857 40.5634 5.28857Z\",\n fill: \"#808285\"\n}), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M46.2819 5.57445H47.879V7.36291C47.879 7.88762 47.8317 8.31726 47.8317 8.31726H47.879C48.3087 7.22033 49.8345 5.28857 52.6722 5.28857C55.6293 5.28857 56.6785 6.98174 56.6785 9.93866V17.5699H55.0573V10.3676C55.0573 8.48385 54.771 6.81398 52.4576 6.81398C50.4068 6.81398 48.6423 8.2215 48.0936 10.201C47.951 10.702 47.9028 11.2499 47.9028 11.8229V17.5699H46.2819V5.57445Z\",\n fill: \"#808285\"\n}), /* @__PURE__ */ React118.createElement(\"path\", {\n d: \"M58.4951 7.07253H56.9219V5.71301H58.5193V2.25539H60.1177V5.71301H63.1212V7.07253H60.1177V13.0344C60.1177 15.8478 61.905 16.2054 62.8113 16.2054C63.1452 16.2054 63.3595 16.1574 63.3595 16.1574V17.6125C63.3595 17.6125 63.0979 17.6602 62.6683 17.6602C61.2852 17.6602 58.4951 17.2066 58.4951 13.201V7.07253Z\",\n fill: \"#808285\"\n}));\nvar CogentBrand_default = SvgCogentBrand;\nvar SvgCogentMono = (props) => /* @__PURE__ */ React119.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M6.29505 5.28857C9.22844 5.28857 10.683 7.00574 10.683 7.00574L9.84844 8.2215C9.84844 8.2215 8.51292 6.76739 6.34305 6.76739C3.72001 6.76739 1.6692 8.72243 1.6692 11.5838C1.6692 14.3979 3.74401 16.4007 6.39081 16.4007C8.8228 16.4007 10.2301 14.7083 10.2301 14.7083L10.9694 15.972C10.9694 15.972 9.34774 17.8556 6.29505 17.8556C2.74213 17.8556 3.05176e-05 15.3043 3.05176e-05 11.5838C3.05176e-05 7.88762 2.76613 5.28857 6.29505 5.28857Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M22.829 11.5288C22.829 15.0194 19.9998 17.8486 16.5099 17.8486C13.0194 17.8486 10.1902 15.0194 10.1902 11.5288C10.1902 8.03897 13.0194 5.20981 16.5099 5.20981C19.9998 5.20981 22.829 8.03897 22.829 11.5288Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M32.3599 11.3452C32.3599 7.84032 30.6907 6.76739 28.5686 6.76739C26.2319 6.76739 24.8726 8.45985 24.8726 11.3215C24.8726 14.1833 26.4225 16.0436 28.807 16.0436C30.6907 16.0436 32.3599 14.8749 32.3599 11.3452ZM28.1397 21.1231C30.4761 21.1231 32.3366 20.0261 32.3366 17.3553V16.2584C32.3366 15.8047 32.3839 15.3989 32.3839 15.3989H32.3366C31.6213 16.7353 30.4048 17.4977 28.5451 17.4977C25.3256 17.4977 23.2032 14.9466 23.2032 11.3452C23.2032 7.74503 25.1823 5.28857 28.402 5.28857C31.574 5.28857 32.3599 7.29162 32.3599 7.29162H32.4079C32.4079 7.29162 32.3839 7.14833 32.3839 6.88645V5.57445H33.9585V17.2833C33.9585 21.0988 31.1436 22.5772 28.211 22.5772C26.8281 22.5772 25.4453 22.2195 24.2764 21.6235L24.8966 20.288C24.8966 20.288 26.3745 21.1231 28.1397 21.1231Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M43.9258 10.3203C43.8302 7.81656 42.3044 6.6481 40.5154 6.6481C38.5131 6.6481 36.7719 7.91162 36.3903 10.3203H43.9258ZM40.5634 5.28857C43.8782 5.28857 45.5709 7.84032 45.5709 10.821C45.5709 11.1069 45.5229 11.6556 45.5229 11.6556H36.3185C36.3903 14.7316 38.4891 16.4007 40.9688 16.4007C43.1625 16.4007 44.6171 14.9466 44.6171 14.9466L45.3563 16.1871C45.3563 16.1871 43.6159 17.8556 40.9211 17.8556C37.3442 17.8556 34.6494 15.2803 34.6494 11.5838C34.6494 7.64927 37.3202 5.28857 40.5634 5.28857Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M46.2819 5.57445H47.8791V7.36291C47.8791 7.88762 47.8318 8.31726 47.8318 8.31726H47.8791C48.3087 7.22033 49.8346 5.28857 52.6722 5.28857C55.6294 5.28857 56.6785 6.98174 56.6785 9.93866V17.5699H55.0574V10.3676C55.0574 8.48385 54.771 6.81398 52.4576 6.81398C50.4068 6.81398 48.6423 8.2215 48.0936 10.201C47.9511 10.702 47.9028 11.2499 47.9028 11.8229V17.5699H46.2819V5.57445Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React119.createElement(\"path\", {\n d: \"M58.4951 7.07253H56.9219V5.71301H58.5193V2.25539H60.1177V5.71301H63.1212V7.07253H60.1177V13.0344C60.1177 15.8478 61.9049 16.2054 62.8113 16.2054C63.1452 16.2054 63.3595 16.1574 63.3595 16.1574V17.6125C63.3595 17.6125 63.0979 17.6602 62.6682 17.6602C61.2852 17.6602 58.4951 17.2066 58.4951 13.201V7.07253Z\",\n fill: \"currentColor\"\n}));\nvar CogentMono_default = SvgCogentMono;\nvar SvgComcastBusinessAdaptive = (props) => /* @__PURE__ */ React120.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 24,\n viewBox: \"0 0 64 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M14.258 9.33873C12.1879 9.33873 10.498 7.64885 10.498 5.57875C10.498 3.50864 12.1879 1.81876 14.258 1.81876C16.3281 1.81876 18.018 3.50864 18.018 5.57875C18.0074 7.65941 16.3281 9.33873 14.258 9.33873ZM14.258 0.910451C11.681 0.910451 9.57916 3.01224 9.57916 5.58931C9.57916 8.16638 11.681 10.2682 14.258 10.2682C16.8351 10.2682 18.9369 8.16638 18.9369 5.58931C18.9369 3.01224 16.8351 0.910451 14.258 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M54.5834 5.642C54.3299 5.51526 52.809 4.72312 52.5872 4.60694C51.7845 4.19504 51.4993 3.83593 51.4993 3.22335C51.4993 2.36785 52.1964 1.81864 53.2843 1.81864C53.918 1.81864 54.5411 2.09324 54.9002 2.30448C54.9636 2.33617 55.0481 2.35729 55.122 2.35729C55.3755 2.35729 55.5867 2.15662 55.5867 1.90313C55.5867 1.73414 55.4917 1.58628 55.3544 1.50179C54.9002 1.2483 54.1292 0.899766 53.2948 0.899766C51.7 0.899766 50.591 1.85032 50.591 3.22335C50.591 4.44852 51.3937 5.02941 52.1858 5.43076C52.4076 5.54694 53.9496 6.33907 54.182 6.46581C54.7946 6.78267 55.1326 7.26851 55.1326 7.81772C55.1326 8.55704 54.5094 9.33861 53.3476 9.33861C52.2175 9.33861 51.3409 8.57817 51.1085 8.34581L51.0346 8.27187L50.3481 8.89502L50.4326 8.96895C50.7389 9.26468 51.8373 10.2469 53.3476 10.2469C55.0375 10.2469 56.0514 9.00063 56.0514 7.79659C56.0409 6.91997 55.5128 6.12784 54.5834 5.642Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M4.6683 1.82946C5.67166 1.82946 6.61166 2.22025 7.32986 2.92789C7.49885 3.09687 7.8157 3.09687 7.98469 2.92789C8.06918 2.84339 8.12199 2.72721 8.12199 2.60047C8.12199 2.47373 8.07974 2.35755 7.98469 2.27306L7.93188 2.22025C7.05525 1.37531 5.90402 0.910591 4.67886 0.910591C2.10179 0.910591 0 3.01238 0 5.58945C0 8.16652 2.10179 10.2683 4.67886 10.2683C6.04132 10.2683 7.26649 9.68741 8.12199 8.74741L7.46716 8.09258C6.78065 8.85303 5.77728 9.33887 4.67886 9.33887C2.60875 9.33887 0.918873 7.64899 0.918873 5.57889C0.908311 3.51934 2.59819 1.82946 4.6683 1.82946Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M36.3748 1.82932C37.3781 1.82932 38.3181 2.22011 39.0258 2.92775C39.1948 3.09673 39.5116 3.09673 39.6806 2.92775C39.7651 2.84325 39.8179 2.72707 39.8179 2.60033C39.8179 2.47359 39.7651 2.35741 39.6806 2.27292L39.6278 2.22011C38.7512 1.37517 37.5999 0.910451 36.3748 0.910451C33.7977 0.910451 31.6959 3.01224 31.6959 5.58931C31.6959 8.16638 33.7977 10.2682 36.3748 10.2682C37.7372 10.2682 38.9624 9.68727 39.8179 8.74727L39.1631 8.09244C38.4766 8.85289 37.4838 9.33873 36.3748 9.33873C34.3047 9.33873 32.6148 7.64885 32.6148 5.57875C32.6148 3.5192 34.3047 1.82932 36.3748 1.82932Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M28.4533 0.910451C28.2843 0.910451 28.147 1.02663 28.0731 1.16393C27.9992 1.3118 25.3165 7.92346 25.3165 7.92346C25.3165 7.92346 22.6338 1.30124 22.5599 1.16393C22.4859 1.01607 22.3486 0.910451 22.1796 0.910451C21.979 0.910451 21.8205 1.05832 21.7677 1.24843C21.7149 1.43854 20.2046 9.77177 20.2046 9.77177C20.2046 9.80345 20.194 9.82457 20.194 9.85626C20.194 10.0886 20.3841 10.2682 20.6059 10.2682C20.8066 10.2682 20.9756 10.1203 21.0178 9.93019L22.3275 2.801C22.3275 2.801 24.8518 9.03244 24.9257 9.18031C24.9996 9.32817 25.1369 9.44435 25.3165 9.44435C25.4855 9.44435 25.6333 9.32817 25.7073 9.18031C25.7812 9.03244 28.3055 2.801 28.3055 2.801L29.6679 10.2154H30.5129C30.5129 10.2154 28.918 1.43854 28.8652 1.24843C28.8019 1.05832 28.654 0.910451 28.4533 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M43.6937 5.84279L45.0879 2.42078L46.482 5.84279H43.6937ZM45.0773 0.910451C44.8978 0.910451 44.771 1.02663 44.6866 1.17449C44.6126 1.32236 41.2223 9.68727 41.2223 9.68727C41.2012 9.74008 41.1906 9.79289 41.1906 9.8457C41.1906 10.0781 41.3702 10.2576 41.6025 10.2576C41.7821 10.2576 41.9299 10.152 41.9933 9.99356L43.3135 6.76167H46.8517L48.2564 10.2048H49.1542C49.1542 10.2048 45.5526 1.3118 45.4787 1.16393C45.3942 1.02663 45.2569 0.910451 45.0773 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M63.2852 1.41712C63.2852 1.16364 63.074 0.952405 62.8205 0.952405H57.6241C57.3707 0.952405 57.1594 1.15308 57.1594 1.41712C57.1594 1.67061 57.3601 1.87128 57.6241 1.87128H59.8104V10.2045H60.6554V1.87128H62.8311C63.0846 1.88184 63.2852 1.67061 63.2852 1.41712Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M27.9672 13.4048C27.5025 13.4048 27.2173 13.7322 27.2173 14.1335V22.7625H28.7171V14.1335C28.7171 13.7322 28.4319 13.4048 27.9672 13.4048Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M10.952 19.0659V14.1335C10.952 13.7322 10.6562 13.4048 10.2021 13.4048C9.73738 13.4048 9.45221 13.7322 9.45221 14.1335V19.0131C9.45221 21.1043 10.9203 22.8048 13.2756 22.8048C15.6203 22.8048 17.0989 21.1043 17.0989 19.0131V13.447H15.5886V19.0553C15.5886 20.2911 14.7648 21.3895 13.2756 21.3895C11.7758 21.4 10.952 20.3016 10.952 19.0659Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M47.274 14.926C47.7704 14.926 48.0662 14.6091 48.0662 14.1972C48.0662 13.7853 47.7599 13.4685 47.274 13.4685H42.6797C42.2572 13.4685 41.9509 13.7747 41.9509 14.1972V22.0552C41.9509 22.4671 42.2572 22.7734 42.6797 22.7734H48.0134V21.3158H43.4507V18.612H46.8938C47.4113 18.612 47.7071 18.3057 47.7071 17.8833C47.7071 17.4608 47.4219 17.1545 46.8938 17.1545H43.4507V14.926H47.274Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M4.43567 21.3261H2.09096V18.5483H4.43567C5.51296 18.5483 6.03049 19.1715 6.03049 19.9425C6.03049 20.7029 5.49184 21.3261 4.43567 21.3261ZM2.09096 14.9151H4.34061C5.18555 14.9151 5.59746 15.422 5.59746 16.0452C5.59746 16.6683 5.1433 17.1753 4.34061 17.1753H2.09096V14.9151ZM6.17835 17.7245C6.43184 17.5661 7.11835 17.0274 7.11835 15.8128C7.11835 14.387 6.09386 13.447 4.53072 13.447H1.31995C0.886916 13.447 0.591187 13.7427 0.591187 14.1758V22.7519H4.72083C6.38959 22.7519 7.55138 21.5373 7.55138 19.9742C7.55138 18.3265 6.4424 17.8513 6.17835 17.7245Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M32.4247 13.4048C31.9705 13.4048 31.6748 13.7322 31.6748 14.123V22.0865C31.6748 22.4879 32.0233 22.8047 32.4247 22.8047C32.8155 22.8047 33.164 22.4879 33.164 22.0865V16.341C33.164 16.341 36.8184 21.0092 37.7795 22.245C38.0224 22.5513 38.1914 22.8153 38.6244 22.8153C39.0575 22.8153 39.3532 22.4985 39.3532 22.0971V13.4682H37.8746V19.9108C37.8746 19.9108 33.8083 14.6933 33.2379 13.9646C32.9739 13.6266 32.7732 13.4048 32.4247 13.4048Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M18.8425 21.4317C19.0326 21.6746 19.9093 22.8153 21.8421 22.8153C23.7432 22.8153 25.0317 21.7274 25.0317 20.196C25.0317 19.1926 24.6409 18.3899 23.1517 17.6717C22.7504 17.4816 21.6414 16.943 21.6414 16.943C21.0499 16.6578 20.7859 16.3198 20.7859 15.8551C20.7859 15.3693 21.1872 14.8412 22.1695 14.8412C22.7293 14.8412 23.1623 15.0207 23.3841 15.1264C23.5003 15.1792 23.7643 15.3059 24.0178 15.3059C24.3452 15.3059 24.7043 15.0735 24.7043 14.5983C24.7043 14.1969 24.4191 13.9857 24.1656 13.8695C23.7643 13.6794 23.1412 13.4048 22.0955 13.4048C20.4374 13.4048 19.2122 14.4504 19.2122 15.9079C19.2122 17.2387 20.1099 17.9041 21.1872 18.4216C21.3879 18.5167 22.1906 18.9075 22.4124 19.0131C23.0989 19.3405 23.458 19.6573 23.458 20.2277C23.458 20.8508 22.8771 21.3684 22.0005 21.3684C20.7436 21.3684 20.0677 20.5445 19.9515 20.4072L18.8425 21.4317Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M49.5562 21.4317C49.7463 21.6746 50.6334 22.8153 52.5662 22.8153C54.4568 22.8153 55.7453 21.7274 55.7453 20.196C55.7453 19.1926 55.3546 18.3899 53.8654 17.6717C53.4746 17.4816 52.355 16.943 52.355 16.943C51.7636 16.6578 51.4995 16.3198 51.4995 15.8551C51.4995 15.3693 51.9009 14.8412 52.8831 14.8412C53.4429 14.8412 53.8653 15.0207 54.0977 15.1264C54.2139 15.1792 54.4779 15.3059 54.7314 15.3059C55.0588 15.3059 55.4179 15.0735 55.4179 14.5983C55.4179 14.1969 55.1328 13.9857 54.8793 13.8695C54.4779 13.6794 53.8442 13.4048 52.8092 13.4048C51.151 13.4048 49.9258 14.4504 49.9258 15.9079C49.9258 17.2387 50.8236 17.9041 51.9009 18.4216C52.1121 18.5167 52.9148 18.9075 53.1366 19.0131C53.8125 19.3405 54.1716 19.6573 54.1716 20.2277C54.1716 20.8508 53.5907 21.3684 52.7141 21.3684C51.4467 21.3684 50.7813 20.5445 50.6651 20.4072L49.5562 21.4317Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React120.createElement(\"path\", {\n d: \"M57.1702 21.4317C57.3603 21.6746 58.2369 22.8153 60.1697 22.8153C62.0603 22.8153 63.3594 21.7274 63.3594 20.196C63.3594 19.1926 62.958 18.3899 61.4794 17.6717C61.078 17.4816 59.9585 16.943 59.9585 16.943C59.3776 16.6578 59.1135 16.3198 59.1135 15.8551C59.1135 15.3693 59.5149 14.8412 60.4866 14.8412C61.0463 14.8412 61.4794 15.0207 61.7117 15.1264C61.8173 15.1792 62.0814 15.3059 62.3349 15.3059C62.6623 15.3059 63.0214 15.0735 63.0214 14.5983C63.0214 14.1969 62.7362 13.9857 62.4827 13.8695C62.0814 13.6794 61.4582 13.4048 60.4126 13.4048C58.7544 13.4048 57.5293 14.4504 57.5293 15.9079C57.5293 17.2387 58.4165 17.9041 59.5043 18.4216C59.705 18.5167 60.5077 18.9075 60.7295 19.0131C61.416 19.3405 61.7751 19.6573 61.7751 20.2277C61.7751 20.8508 61.1942 21.3684 60.3176 21.3684C59.0607 21.3684 58.3848 20.5445 58.2686 20.4072L57.1702 21.4317Z\",\n fill: \"#008BCD\"\n}));\nvar ComcastBusinessAdaptive_default = SvgComcastBusinessAdaptive;\nvar SvgComcastBusinessBrand = (props) => /* @__PURE__ */ React121.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 24,\n viewBox: \"0 0 64 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M14.258 9.33873C12.1879 9.33873 10.498 7.64885 10.498 5.57875C10.498 3.50864 12.1879 1.81876 14.258 1.81876C16.3281 1.81876 18.018 3.50864 18.018 5.57875C18.0074 7.65941 16.3281 9.33873 14.258 9.33873ZM14.258 0.910451C11.681 0.910451 9.57916 3.01224 9.57916 5.58931C9.57916 8.16638 11.681 10.2682 14.258 10.2682C16.8351 10.2682 18.9369 8.16638 18.9369 5.58931C18.9369 3.01224 16.8351 0.910451 14.258 0.910451Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M54.5834 5.642C54.3299 5.51526 52.809 4.72312 52.5872 4.60694C51.7845 4.19504 51.4993 3.83593 51.4993 3.22335C51.4993 2.36785 52.1964 1.81864 53.2843 1.81864C53.918 1.81864 54.5411 2.09324 54.9002 2.30448C54.9636 2.33617 55.0481 2.35729 55.122 2.35729C55.3755 2.35729 55.5867 2.15662 55.5867 1.90313C55.5867 1.73414 55.4917 1.58628 55.3544 1.50179C54.9002 1.2483 54.1292 0.899766 53.2948 0.899766C51.7 0.899766 50.591 1.85032 50.591 3.22335C50.591 4.44852 51.3937 5.02941 52.1858 5.43076C52.4076 5.54694 53.9496 6.33907 54.182 6.46581C54.7946 6.78267 55.1326 7.26851 55.1326 7.81772C55.1326 8.55704 54.5094 9.33861 53.3476 9.33861C52.2175 9.33861 51.3409 8.57817 51.1085 8.34581L51.0346 8.27187L50.3481 8.89502L50.4326 8.96895C50.7389 9.26468 51.8373 10.2469 53.3476 10.2469C55.0375 10.2469 56.0514 9.00063 56.0514 7.79659C56.0409 6.91997 55.5128 6.12784 54.5834 5.642Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M4.6683 1.82946C5.67166 1.82946 6.61166 2.22025 7.32986 2.92789C7.49885 3.09687 7.8157 3.09687 7.98469 2.92789C8.06918 2.84339 8.12199 2.72721 8.12199 2.60047C8.12199 2.47373 8.07974 2.35755 7.98469 2.27306L7.93188 2.22025C7.05525 1.37531 5.90402 0.910591 4.67886 0.910591C2.10179 0.910591 0 3.01238 0 5.58945C0 8.16652 2.10179 10.2683 4.67886 10.2683C6.04132 10.2683 7.26649 9.68741 8.12199 8.74741L7.46716 8.09258C6.78065 8.85303 5.77728 9.33887 4.67886 9.33887C2.60875 9.33887 0.918873 7.64899 0.918873 5.57889C0.908311 3.51934 2.59819 1.82946 4.6683 1.82946Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M36.3748 1.82932C37.3781 1.82932 38.3181 2.22011 39.0258 2.92775C39.1948 3.09673 39.5116 3.09673 39.6806 2.92775C39.7651 2.84325 39.8179 2.72707 39.8179 2.60033C39.8179 2.47359 39.7651 2.35741 39.6806 2.27292L39.6278 2.22011C38.7512 1.37517 37.5999 0.910451 36.3748 0.910451C33.7977 0.910451 31.6959 3.01224 31.6959 5.58931C31.6959 8.16638 33.7977 10.2682 36.3748 10.2682C37.7372 10.2682 38.9624 9.68727 39.8179 8.74727L39.1631 8.09244C38.4766 8.85289 37.4838 9.33873 36.3748 9.33873C34.3047 9.33873 32.6148 7.64885 32.6148 5.57875C32.6148 3.5192 34.3047 1.82932 36.3748 1.82932Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M28.4533 0.910451C28.2843 0.910451 28.147 1.02663 28.0731 1.16393C27.9992 1.3118 25.3165 7.92346 25.3165 7.92346C25.3165 7.92346 22.6338 1.30124 22.5599 1.16393C22.4859 1.01607 22.3486 0.910451 22.1796 0.910451C21.979 0.910451 21.8205 1.05832 21.7677 1.24843C21.7149 1.43854 20.2046 9.77177 20.2046 9.77177C20.2046 9.80345 20.194 9.82457 20.194 9.85626C20.194 10.0886 20.3841 10.2682 20.6059 10.2682C20.8066 10.2682 20.9756 10.1203 21.0178 9.93019L22.3275 2.801C22.3275 2.801 24.8518 9.03244 24.9257 9.18031C24.9996 9.32817 25.1369 9.44435 25.3165 9.44435C25.4855 9.44435 25.6333 9.32817 25.7073 9.18031C25.7812 9.03244 28.3055 2.801 28.3055 2.801L29.6679 10.2154H30.5129C30.5129 10.2154 28.918 1.43854 28.8652 1.24843C28.8019 1.05832 28.654 0.910451 28.4533 0.910451Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M43.6937 5.84279L45.0879 2.42078L46.482 5.84279H43.6937ZM45.0773 0.910451C44.8978 0.910451 44.771 1.02663 44.6866 1.17449C44.6126 1.32236 41.2223 9.68727 41.2223 9.68727C41.2012 9.74008 41.1906 9.79289 41.1906 9.8457C41.1906 10.0781 41.3702 10.2576 41.6025 10.2576C41.7821 10.2576 41.9299 10.152 41.9933 9.99356L43.3135 6.76167H46.8517L48.2564 10.2048H49.1542C49.1542 10.2048 45.5526 1.3118 45.4787 1.16393C45.3942 1.02663 45.2569 0.910451 45.0773 0.910451Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M63.2852 1.41712C63.2852 1.16364 63.074 0.952405 62.8205 0.952405H57.6241C57.3707 0.952405 57.1594 1.15308 57.1594 1.41712C57.1594 1.67061 57.3601 1.87128 57.6241 1.87128H59.8104V10.2045H60.6554V1.87128H62.8311C63.0846 1.88184 63.2852 1.67061 63.2852 1.41712Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M27.9672 13.4048C27.5025 13.4048 27.2173 13.7322 27.2173 14.1335V22.7625H28.7171V14.1335C28.7171 13.7322 28.4319 13.4048 27.9672 13.4048Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M10.952 19.0659V14.1335C10.952 13.7322 10.6562 13.4048 10.2021 13.4048C9.73738 13.4048 9.45221 13.7322 9.45221 14.1335V19.0131C9.45221 21.1043 10.9203 22.8048 13.2756 22.8048C15.6203 22.8048 17.0989 21.1043 17.0989 19.0131V13.447H15.5886V19.0553C15.5886 20.2911 14.7648 21.3895 13.2756 21.3895C11.7758 21.4 10.952 20.3016 10.952 19.0659Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M47.274 14.926C47.7704 14.926 48.0662 14.6091 48.0662 14.1972C48.0662 13.7853 47.7599 13.4685 47.274 13.4685H42.6797C42.2572 13.4685 41.9509 13.7747 41.9509 14.1972V22.0552C41.9509 22.4671 42.2572 22.7734 42.6797 22.7734H48.0134V21.3158H43.4507V18.612H46.8938C47.4113 18.612 47.7071 18.3057 47.7071 17.8833C47.7071 17.4608 47.4219 17.1545 46.8938 17.1545H43.4507V14.926H47.274Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M4.43567 21.3261H2.09096V18.5483H4.43567C5.51296 18.5483 6.03049 19.1715 6.03049 19.9425C6.03049 20.7029 5.49184 21.3261 4.43567 21.3261ZM2.09096 14.9151H4.34061C5.18555 14.9151 5.59746 15.422 5.59746 16.0452C5.59746 16.6683 5.1433 17.1753 4.34061 17.1753H2.09096V14.9151ZM6.17835 17.7245C6.43184 17.5661 7.11835 17.0274 7.11835 15.8128C7.11835 14.387 6.09386 13.447 4.53072 13.447H1.31995C0.886916 13.447 0.591187 13.7427 0.591187 14.1758V22.7519H4.72083C6.38959 22.7519 7.55138 21.5373 7.55138 19.9742C7.55138 18.3265 6.4424 17.8513 6.17835 17.7245Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M32.4247 13.4048C31.9705 13.4048 31.6748 13.7322 31.6748 14.123V22.0865C31.6748 22.4879 32.0233 22.8047 32.4247 22.8047C32.8155 22.8047 33.164 22.4879 33.164 22.0865V16.341C33.164 16.341 36.8184 21.0092 37.7795 22.245C38.0224 22.5513 38.1914 22.8153 38.6244 22.8153C39.0575 22.8153 39.3532 22.4985 39.3532 22.0971V13.4682H37.8746V19.9108C37.8746 19.9108 33.8083 14.6933 33.2379 13.9646C32.9739 13.6266 32.7732 13.4048 32.4247 13.4048Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M18.8425 21.4317C19.0326 21.6746 19.9093 22.8153 21.8421 22.8153C23.7432 22.8153 25.0317 21.7274 25.0317 20.196C25.0317 19.1926 24.6409 18.3899 23.1517 17.6717C22.7504 17.4816 21.6414 16.943 21.6414 16.943C21.0499 16.6578 20.7859 16.3198 20.7859 15.8551C20.7859 15.3693 21.1872 14.8412 22.1695 14.8412C22.7293 14.8412 23.1623 15.0207 23.3841 15.1264C23.5003 15.1792 23.7643 15.3059 24.0178 15.3059C24.3452 15.3059 24.7043 15.0735 24.7043 14.5983C24.7043 14.1969 24.4191 13.9857 24.1656 13.8695C23.7643 13.6794 23.1412 13.4048 22.0955 13.4048C20.4374 13.4048 19.2122 14.4504 19.2122 15.9079C19.2122 17.2387 20.1099 17.9041 21.1872 18.4216C21.3879 18.5167 22.1906 18.9075 22.4124 19.0131C23.0989 19.3405 23.458 19.6573 23.458 20.2277C23.458 20.8508 22.8771 21.3684 22.0005 21.3684C20.7436 21.3684 20.0677 20.5445 19.9515 20.4072L18.8425 21.4317Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M49.5562 21.4317C49.7463 21.6746 50.6334 22.8153 52.5662 22.8153C54.4568 22.8153 55.7453 21.7274 55.7453 20.196C55.7453 19.1926 55.3546 18.3899 53.8654 17.6717C53.4746 17.4816 52.355 16.943 52.355 16.943C51.7636 16.6578 51.4995 16.3198 51.4995 15.8551C51.4995 15.3693 51.9009 14.8412 52.8831 14.8412C53.4429 14.8412 53.8653 15.0207 54.0977 15.1264C54.2139 15.1792 54.4779 15.3059 54.7314 15.3059C55.0588 15.3059 55.4179 15.0735 55.4179 14.5983C55.4179 14.1969 55.1328 13.9857 54.8793 13.8695C54.4779 13.6794 53.8442 13.4048 52.8092 13.4048C51.151 13.4048 49.9258 14.4504 49.9258 15.9079C49.9258 17.2387 50.8236 17.9041 51.9009 18.4216C52.1121 18.5167 52.9148 18.9075 53.1366 19.0131C53.8125 19.3405 54.1716 19.6573 54.1716 20.2277C54.1716 20.8508 53.5907 21.3684 52.7141 21.3684C51.4467 21.3684 50.7813 20.5445 50.6651 20.4072L49.5562 21.4317Z\",\n fill: \"#008BCD\"\n}), /* @__PURE__ */ React121.createElement(\"path\", {\n d: \"M57.1702 21.4317C57.3603 21.6746 58.2369 22.8153 60.1697 22.8153C62.0603 22.8153 63.3594 21.7274 63.3594 20.196C63.3594 19.1926 62.958 18.3899 61.4794 17.6717C61.078 17.4816 59.9585 16.943 59.9585 16.943C59.3776 16.6578 59.1135 16.3198 59.1135 15.8551C59.1135 15.3693 59.5149 14.8412 60.4866 14.8412C61.0463 14.8412 61.4794 15.0207 61.7117 15.1264C61.8173 15.1792 62.0814 15.3059 62.3349 15.3059C62.6623 15.3059 63.0214 15.0735 63.0214 14.5983C63.0214 14.1969 62.7362 13.9857 62.4827 13.8695C62.0814 13.6794 61.4582 13.4048 60.4126 13.4048C58.7544 13.4048 57.5293 14.4504 57.5293 15.9079C57.5293 17.2387 58.4165 17.9041 59.5043 18.4216C59.705 18.5167 60.5077 18.9075 60.7295 19.0131C61.416 19.3405 61.7751 19.6573 61.7751 20.2277C61.7751 20.8508 61.1942 21.3684 60.3176 21.3684C59.0607 21.3684 58.3848 20.5445 58.2686 20.4072L57.1702 21.4317Z\",\n fill: \"#008BCD\"\n}));\nvar ComcastBusinessBrand_default = SvgComcastBusinessBrand;\nvar SvgComcastBusinessMono = (props) => /* @__PURE__ */ React122.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 24,\n viewBox: \"0 0 64 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M14.258 9.33873C12.1879 9.33873 10.498 7.64885 10.498 5.57875C10.498 3.50864 12.1879 1.81876 14.258 1.81876C16.3281 1.81876 18.018 3.50864 18.018 5.57875C18.0074 7.65941 16.3281 9.33873 14.258 9.33873ZM14.258 0.910451C11.681 0.910451 9.57916 3.01224 9.57916 5.58931C9.57916 8.16638 11.681 10.2682 14.258 10.2682C16.8351 10.2682 18.9369 8.16638 18.9369 5.58931C18.9369 3.01224 16.8351 0.910451 14.258 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M54.5833 5.642C54.3298 5.51526 52.8089 4.72312 52.5871 4.60694C51.7845 4.19504 51.4993 3.83593 51.4993 3.22335C51.4993 2.36785 52.1964 1.81864 53.2842 1.81864C53.9179 1.81864 54.5411 2.09324 54.9002 2.30448C54.9635 2.33617 55.048 2.35729 55.122 2.35729C55.3755 2.35729 55.5867 2.15662 55.5867 1.90313C55.5867 1.73414 55.4916 1.58628 55.3543 1.50179C54.9002 1.2483 54.1292 0.899766 53.2948 0.899766C51.7 0.899766 50.591 1.85032 50.591 3.22335C50.591 4.44852 51.3937 5.02941 52.1858 5.43076C52.4076 5.54694 53.9496 6.33907 54.182 6.46581C54.7946 6.78267 55.1325 7.26851 55.1325 7.81772C55.1325 8.55704 54.5094 9.33861 53.3476 9.33861C52.2175 9.33861 51.3409 8.57817 51.1085 8.34581L51.0346 8.27187L50.3481 8.89502L50.4325 8.96895C50.7388 9.26468 51.8373 10.2469 53.3476 10.2469C55.0375 10.2469 56.0514 9.00063 56.0514 7.79659C56.0408 6.91997 55.5128 6.12784 54.5833 5.642Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M4.6683 1.82946C5.67166 1.82946 6.61166 2.22025 7.32986 2.92789C7.49885 3.09687 7.8157 3.09687 7.98469 2.92789C8.06918 2.84339 8.12199 2.72721 8.12199 2.60047C8.12199 2.47373 8.07974 2.35755 7.98469 2.27306L7.93188 2.22025C7.05525 1.37531 5.90402 0.910591 4.67886 0.910591C2.10179 0.910591 0 3.01238 0 5.58945C0 8.16652 2.10179 10.2683 4.67886 10.2683C6.04132 10.2683 7.26649 9.68741 8.12199 8.74741L7.46716 8.09258C6.78065 8.85303 5.77728 9.33887 4.67886 9.33887C2.60875 9.33887 0.918873 7.64899 0.918873 5.57889C0.908311 3.51934 2.59819 1.82946 4.6683 1.82946Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M36.3747 1.82932C37.3781 1.82932 38.3181 2.22011 39.0258 2.92775C39.1947 3.09673 39.5116 3.09673 39.6806 2.92775C39.7651 2.84325 39.8179 2.72707 39.8179 2.60033C39.8179 2.47359 39.7651 2.35741 39.6806 2.27292L39.6278 2.22011C38.7511 1.37517 37.5999 0.910451 36.3747 0.910451C33.7977 0.910451 31.6959 3.01224 31.6959 5.58931C31.6959 8.16638 33.7977 10.2682 36.3747 10.2682C37.7372 10.2682 38.9624 9.68727 39.8179 8.74727L39.1631 8.09244C38.4765 8.85289 37.4837 9.33873 36.3747 9.33873C34.3046 9.33873 32.6148 7.64885 32.6148 5.57875C32.6148 3.5192 34.3046 1.82932 36.3747 1.82932Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M28.4533 0.910451C28.2843 0.910451 28.147 1.02663 28.0731 1.16393C27.9992 1.3118 25.3165 7.92346 25.3165 7.92346C25.3165 7.92346 22.6338 1.30124 22.5599 1.16393C22.4859 1.01607 22.3486 0.910451 22.1796 0.910451C21.979 0.910451 21.8205 1.05832 21.7677 1.24843C21.7149 1.43854 20.2046 9.77177 20.2046 9.77177C20.2046 9.80345 20.194 9.82457 20.194 9.85626C20.194 10.0886 20.3841 10.2682 20.6059 10.2682C20.8066 10.2682 20.9756 10.1203 21.0178 9.93019L22.3275 2.801C22.3275 2.801 24.8518 9.03244 24.9257 9.18031C24.9996 9.32817 25.1369 9.44435 25.3165 9.44435C25.4855 9.44435 25.6333 9.32817 25.7073 9.18031C25.7812 9.03244 28.3055 2.801 28.3055 2.801L29.6679 10.2154H30.5129C30.5129 10.2154 28.918 1.43854 28.8652 1.24843C28.8019 1.05832 28.654 0.910451 28.4533 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M43.6937 5.84279L45.0879 2.42078L46.482 5.84279H43.6937ZM45.0773 0.910451C44.8978 0.910451 44.771 1.02663 44.6866 1.17449C44.6126 1.32236 41.2223 9.68727 41.2223 9.68727C41.2012 9.74008 41.1906 9.79289 41.1906 9.8457C41.1906 10.0781 41.3702 10.2576 41.6025 10.2576C41.7821 10.2576 41.9299 10.152 41.9933 9.99356L43.3135 6.76167H46.8517L48.2564 10.2048H49.1542C49.1542 10.2048 45.5526 1.3118 45.4787 1.16393C45.3942 1.02663 45.2569 0.910451 45.0773 0.910451Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M63.2852 1.41712C63.2852 1.16364 63.074 0.952405 62.8205 0.952405H57.6241C57.3707 0.952405 57.1594 1.15308 57.1594 1.41712C57.1594 1.67061 57.3601 1.87128 57.6241 1.87128H59.8104V10.2045H60.6554V1.87128H62.8311C63.0846 1.88184 63.2852 1.67061 63.2852 1.41712Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M27.9672 13.4048C27.5025 13.4048 27.2173 13.7322 27.2173 14.1335V22.7625H28.7171V14.1335C28.7171 13.7322 28.4319 13.4048 27.9672 13.4048Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M10.9519 19.0659V14.1335C10.9519 13.7322 10.6562 13.4048 10.2021 13.4048C9.73735 13.4048 9.45218 13.7322 9.45218 14.1335V19.0131C9.45218 21.1043 10.9203 22.8048 13.2755 22.8048C15.6202 22.8048 17.0989 21.1043 17.0989 19.0131V13.447H15.5886V19.0553C15.5886 20.2911 14.7647 21.3895 13.2755 21.3895C11.7758 21.4 10.9519 20.3016 10.9519 19.0659Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M47.2741 14.926C47.7705 14.926 48.0662 14.6091 48.0662 14.1972C48.0662 13.7853 47.7599 13.4685 47.2741 13.4685H42.6797C42.2572 13.4685 41.951 13.7747 41.951 14.1972V22.0552C41.951 22.4671 42.2572 22.7734 42.6797 22.7734H48.0134V21.3158H43.4507V18.612H46.8939C47.4114 18.612 47.7071 18.3057 47.7071 17.8833C47.7071 17.4608 47.4219 17.1545 46.8939 17.1545H43.4507V14.926H47.2741Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M4.43563 21.3261H2.09093V18.5483H4.43563C5.51293 18.5483 6.03046 19.1715 6.03046 19.9425C6.03046 20.7029 5.49181 21.3261 4.43563 21.3261ZM2.09093 14.9151H4.34058C5.18552 14.9151 5.59743 15.422 5.59743 16.0452C5.59743 16.6683 5.14327 17.1753 4.34058 17.1753H2.09093V14.9151ZM6.17832 17.7245C6.43181 17.5661 7.11832 17.0274 7.11832 15.8128C7.11832 14.387 6.09383 13.447 4.53069 13.447H1.31992C0.886885 13.447 0.591156 13.7427 0.591156 14.1758V22.7519H4.7208C6.38956 22.7519 7.55135 21.5373 7.55135 19.9742C7.55135 18.3265 6.44237 17.8513 6.17832 17.7245Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M32.4247 13.4048C31.9705 13.4048 31.6748 13.7322 31.6748 14.123V22.0865C31.6748 22.4879 32.0233 22.8047 32.4247 22.8047C32.8154 22.8047 33.164 22.4879 33.164 22.0865V16.341C33.164 16.341 36.8184 21.0092 37.7795 22.245C38.0224 22.5513 38.1914 22.8153 38.6244 22.8153C39.0574 22.8153 39.3532 22.4985 39.3532 22.0971V13.4682H37.8745V19.9108C37.8745 19.9108 33.8083 14.6933 33.2379 13.9646C32.9739 13.6266 32.7732 13.4048 32.4247 13.4048Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M18.8425 21.4317C19.0326 21.6746 19.9092 22.8153 21.842 22.8153C23.7431 22.8153 25.0317 21.7274 25.0317 20.196C25.0317 19.1926 24.6409 18.3899 23.1517 17.6717C22.7503 17.4816 21.6414 16.943 21.6414 16.943C21.0499 16.6578 20.7859 16.3198 20.7859 15.8551C20.7859 15.3693 21.1872 14.8412 22.1694 14.8412C22.7292 14.8412 23.1623 15.0207 23.3841 15.1264C23.5002 15.1792 23.7643 15.3059 24.0178 15.3059C24.3452 15.3059 24.7043 15.0735 24.7043 14.5983C24.7043 14.1969 24.4191 13.9857 24.1656 13.8695C23.7643 13.6794 23.1411 13.4048 22.0955 13.4048C20.4373 13.4048 19.2122 14.4504 19.2122 15.9079C19.2122 17.2387 20.1099 17.9041 21.1872 18.4216C21.3879 18.5167 22.1906 18.9075 22.4124 19.0131C23.0989 19.3405 23.458 19.6573 23.458 20.2277C23.458 20.8508 22.8771 21.3684 22.0005 21.3684C20.7436 21.3684 20.0677 20.5445 19.9515 20.4072L18.8425 21.4317Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M49.5562 21.4317C49.7463 21.6746 50.6335 22.8153 52.5663 22.8153C54.4568 22.8153 55.7454 21.7274 55.7454 20.196C55.7454 19.1926 55.3546 18.3899 53.8654 17.6717C53.4746 17.4816 52.355 16.943 52.355 16.943C51.7636 16.6578 51.4995 16.3198 51.4995 15.8551C51.4995 15.3693 51.9009 14.8412 52.8831 14.8412C53.4429 14.8412 53.8654 15.0207 54.0977 15.1264C54.2139 15.1792 54.478 15.3059 54.7314 15.3059C55.0589 15.3059 55.418 15.0735 55.418 14.5983C55.418 14.1969 55.1328 13.9857 54.8793 13.8695C54.478 13.6794 53.8443 13.4048 52.8092 13.4048C51.151 13.4048 49.9258 14.4504 49.9258 15.9079C49.9258 17.2387 50.8236 17.9041 51.9009 18.4216C52.1121 18.5167 52.9148 18.9075 53.1366 19.0131C53.8126 19.3405 54.1717 19.6573 54.1717 20.2277C54.1717 20.8508 53.5908 21.3684 52.7141 21.3684C51.4467 21.3684 50.7813 20.5445 50.6652 20.4072L49.5562 21.4317Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React122.createElement(\"path\", {\n d: \"M57.1702 21.4317C57.3603 21.6746 58.2369 22.8153 60.1697 22.8153C62.0603 22.8153 63.3594 21.7274 63.3594 20.196C63.3594 19.1926 62.958 18.3899 61.4794 17.6717C61.078 17.4816 59.9585 16.943 59.9585 16.943C59.3776 16.6578 59.1135 16.3198 59.1135 15.8551C59.1135 15.3693 59.5149 14.8412 60.4866 14.8412C61.0463 14.8412 61.4794 15.0207 61.7117 15.1264C61.8173 15.1792 62.0814 15.3059 62.3349 15.3059C62.6623 15.3059 63.0214 15.0735 63.0214 14.5983C63.0214 14.1969 62.7362 13.9857 62.4827 13.8695C62.0814 13.6794 61.4582 13.4048 60.4126 13.4048C58.7544 13.4048 57.5293 14.4504 57.5293 15.9079C57.5293 17.2387 58.4165 17.9041 59.5043 18.4216C59.705 18.5167 60.5077 18.9075 60.7295 19.0131C61.416 19.3405 61.7751 19.6573 61.7751 20.2277C61.7751 20.8508 61.1942 21.3684 60.3176 21.3684C59.0607 21.3684 58.3848 20.5445 58.2686 20.4072L57.1702 21.4317Z\",\n fill: \"currentColor\"\n}));\nvar ComcastBusinessMono_default = SvgComcastBusinessMono;\nvar SvgLumenAdaptive = (props) => /* @__PURE__ */ React123.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M49.08 8.00327C49.364 8.00327 49.5942 8.23351 49.5942 8.51753L49.5942 8.94585C49.5942 9.22987 49.364 9.46011 49.08 9.46011L40.8106 9.46011C40.7633 9.46011 40.7249 9.42174 40.7249 9.3744L40.7249 8.51753C40.7249 8.23351 40.9552 8.00327 41.2392 8.00327L49.08 8.00327Z\",\n fill: \"#50ACDC\"\n}), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M47.1379 11.8175C47.4503 11.8175 47.7035 12.0709 47.7035 12.3834V12.7084C47.7035 13.021 47.4503 13.2743 47.1379 13.2743H42.2403C42.2072 13.2743 42.1803 13.3012 42.1803 13.3343V15.2947C42.1803 15.4367 42.2954 15.5518 42.4374 15.5518H49.0278C49.3402 15.5518 49.5935 15.8052 49.5935 16.1177V16.4427C49.5935 16.7553 49.3402 17.0086 49.0278 17.0086H41.2812C40.9736 17.0086 40.7241 16.7592 40.7241 16.4515V11.8175H47.1379Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M35.089 8.28966L30.973 12.1672L26.8743 8.29082C26.679 8.10616 26.4205 8.00327 26.1517 8.00327C25.5709 8.00327 25.1002 8.47407 25.1002 9.05482V16.4427C25.1002 16.7552 25.3558 17.0086 25.6712 17.0086H25.9992C26.3145 17.0086 26.5702 16.7552 26.5702 16.4427V10.1564C26.5702 10.1037 26.6332 10.0766 26.6714 10.1128L30.5574 13.7879C30.6736 13.8978 30.8243 13.9495 30.973 13.944C31.1218 13.9495 31.2725 13.8978 31.3887 13.7879L35.2917 10.0966C35.33 10.0604 35.393 10.0875 35.393 10.1402V16.4427C35.393 16.7552 35.6486 17.0086 35.964 17.0086H36.292C36.6073 17.0086 36.863 16.7552 36.863 16.4427V9.05567C36.863 8.47445 36.3918 8.00328 35.8106 8.00328C35.5424 8.00328 35.2842 8.10572 35.089 8.28966Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M0.565641 8.00287C0.253245 8.00287 0 8.25623 0 8.56877L2.14969e-05 16.4526C2.23359e-05 16.7603 0.249451 17.0097 0.557136 17.0097H8.14785C8.46024 17.0097 8.71349 16.7563 8.71349 16.4438V16.1188C8.71349 15.8062 8.46024 15.5529 8.14785 15.5529H1.71331C1.5713 15.5529 1.45618 15.4377 1.45618 15.2957V8.56877C1.45618 8.25623 1.20293 8.00287 0.890535 8.00287H0.565641Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M10.8223 8.56917C10.8223 8.25663 11.0755 8.00327 11.3879 8.00327H11.7128C12.0252 8.00327 12.2784 8.25663 12.2784 8.56917V14.1226C12.2784 15.022 13.0075 15.7511 13.9069 15.7511H18.173C19.0724 15.7511 19.8015 15.022 19.8015 14.1226V8.56917C19.8015 8.25663 20.0547 8.00327 20.3671 8.00327H20.692C21.0044 8.00327 21.2577 8.25663 21.2577 8.56917L21.2577 14.6367C21.2577 16.0567 20.1065 17.208 18.6864 17.208H13.3936C11.9735 17.208 10.8223 16.0568 10.8223 14.6367L10.8223 8.56917Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React123.createElement(\"path\", {\n d: \"M52.6761 8.92549V16.4959C52.6761 16.7799 52.9063 17.0102 53.1903 17.0102H53.6082C53.8922 17.0102 54.1224 16.7799 54.1224 16.4959V10.3797C54.1224 10.3065 54.2084 10.267 54.264 10.3147L61.7973 16.782C61.9688 16.9292 62.1874 17.0102 62.4134 17.0102C62.9358 17.0102 63.3593 16.5867 63.3593 16.0643V8.50979C63.3593 8.22577 63.1291 7.99553 62.845 7.99553H62.4137C62.1297 7.99553 61.8994 8.22577 61.8994 8.50979V14.5C61.8994 14.5729 61.8143 14.6125 61.7585 14.5656L54.2046 8.21372C54.037 8.07279 53.825 7.99553 53.606 7.99553C53.0924 7.99553 52.6761 8.41189 52.6761 8.92549Z\",\n fill: \"currentColor\"\n}));\nvar LumenAdaptive_default = SvgLumenAdaptive;\nvar SvgLumenBrand = (props) => /* @__PURE__ */ React124.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M49.08 8.00327C49.364 8.00327 49.5942 8.23351 49.5942 8.51753L49.5942 8.94585C49.5942 9.22987 49.364 9.46011 49.08 9.46011L40.8106 9.46011C40.7633 9.46011 40.7249 9.42174 40.7249 9.3744L40.7249 8.51753C40.7249 8.23351 40.9552 8.00327 41.2392 8.00327L49.08 8.00327Z\",\n fill: \"#50ACDC\"\n}), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M47.1379 11.8175C47.4503 11.8175 47.7035 12.0709 47.7035 12.3834V12.7084C47.7035 13.021 47.4503 13.2743 47.1379 13.2743H42.2403C42.2072 13.2743 42.1803 13.3012 42.1803 13.3343V15.2947C42.1803 15.4367 42.2954 15.5518 42.4374 15.5518H49.0278C49.3402 15.5518 49.5935 15.8052 49.5935 16.1177V16.4427C49.5935 16.7553 49.3402 17.0086 49.0278 17.0086H41.2812C40.9736 17.0086 40.7241 16.7592 40.7241 16.4515V11.8175H47.1379Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M35.089 8.28966L30.973 12.1672L26.8743 8.29082C26.679 8.10616 26.4205 8.00327 26.1517 8.00327C25.5709 8.00327 25.1002 8.47407 25.1002 9.05482V16.4427C25.1002 16.7552 25.3558 17.0086 25.6712 17.0086H25.9992C26.3145 17.0086 26.5702 16.7552 26.5702 16.4427V10.1564C26.5702 10.1037 26.6332 10.0766 26.6714 10.1128L30.5574 13.7879C30.6736 13.8978 30.8243 13.9495 30.973 13.944C31.1218 13.9495 31.2725 13.8978 31.3887 13.7879L35.2917 10.0966C35.33 10.0604 35.393 10.0875 35.393 10.1402V16.4427C35.393 16.7552 35.6486 17.0086 35.964 17.0086H36.292C36.6073 17.0086 36.863 16.7552 36.863 16.4427V9.05567C36.863 8.47445 36.3918 8.00328 35.8106 8.00328C35.5424 8.00328 35.2842 8.10572 35.089 8.28966Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M0.565641 8.00287C0.253245 8.00287 0 8.25623 0 8.56877L2.14969e-05 16.4526C2.23359e-05 16.7603 0.249451 17.0097 0.557136 17.0097H8.14785C8.46024 17.0097 8.71349 16.7563 8.71349 16.4438V16.1188C8.71349 15.8062 8.46024 15.5529 8.14785 15.5529H1.71331C1.5713 15.5529 1.45618 15.4377 1.45618 15.2957V8.56877C1.45618 8.25623 1.20293 8.00287 0.890535 8.00287H0.565641Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M10.8223 8.56917C10.8223 8.25663 11.0755 8.00327 11.3879 8.00327H11.7128C12.0252 8.00327 12.2784 8.25663 12.2784 8.56917V14.1226C12.2784 15.022 13.0075 15.7511 13.9069 15.7511H18.173C19.0724 15.7511 19.8015 15.022 19.8015 14.1226V8.56917C19.8015 8.25663 20.0547 8.00327 20.3671 8.00327H20.692C21.0044 8.00327 21.2577 8.25663 21.2577 8.56917L21.2577 14.6367C21.2577 16.0567 20.1065 17.208 18.6864 17.208H13.3936C11.9735 17.208 10.8223 16.0568 10.8223 14.6367L10.8223 8.56917Z\",\n fill: \"black\"\n}), /* @__PURE__ */ React124.createElement(\"path\", {\n d: \"M52.6761 8.92549V16.4959C52.6761 16.7799 52.9063 17.0102 53.1903 17.0102H53.6082C53.8922 17.0102 54.1224 16.7799 54.1224 16.4959V10.3797C54.1224 10.3065 54.2084 10.267 54.264 10.3147L61.7973 16.782C61.9688 16.9292 62.1874 17.0102 62.4134 17.0102C62.9358 17.0102 63.3593 16.5867 63.3593 16.0643V8.50979C63.3593 8.22577 63.1291 7.99553 62.845 7.99553H62.4137C62.1297 7.99553 61.8994 8.22577 61.8994 8.50979V14.5C61.8994 14.5729 61.8143 14.6125 61.7585 14.5656L54.2046 8.21372C54.037 8.07279 53.825 7.99553 53.606 7.99553C53.0924 7.99553 52.6761 8.41189 52.6761 8.92549Z\",\n fill: \"black\"\n}));\nvar LumenBrand_default = SvgLumenBrand;\nvar SvgLumenMono = (props) => /* @__PURE__ */ React125.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M49.08 8.00327C49.364 8.00327 49.5942 8.23351 49.5942 8.51753L49.5942 8.94585C49.5942 9.22987 49.364 9.46011 49.08 9.46011L40.8106 9.46011C40.7633 9.46011 40.7249 9.42174 40.7249 9.3744L40.7249 8.51753C40.7249 8.23351 40.9552 8.00327 41.2392 8.00327L49.08 8.00327Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M47.1379 11.8175C47.4503 11.8175 47.7035 12.0709 47.7035 12.3834V12.7084C47.7035 13.021 47.4503 13.2743 47.1379 13.2743H42.2403C42.2072 13.2743 42.1803 13.3012 42.1803 13.3343V15.2947C42.1803 15.4367 42.2954 15.5518 42.4374 15.5518H49.0278C49.3402 15.5518 49.5935 15.8052 49.5935 16.1177V16.4427C49.5935 16.7553 49.3402 17.0086 49.0278 17.0086H41.2812C40.9736 17.0086 40.7241 16.7592 40.7241 16.4515V11.8175H47.1379Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M35.089 8.28966L30.973 12.1672L26.8743 8.29082C26.679 8.10616 26.4205 8.00327 26.1517 8.00327C25.5709 8.00327 25.1002 8.47407 25.1002 9.05482V16.4427C25.1002 16.7552 25.3558 17.0086 25.6712 17.0086H25.9992C26.3145 17.0086 26.5702 16.7552 26.5702 16.4427V10.1564C26.5702 10.1037 26.6332 10.0766 26.6714 10.1128L30.5574 13.7879C30.6736 13.8978 30.8243 13.9495 30.973 13.944C31.1218 13.9495 31.2725 13.8978 31.3887 13.7879L35.2917 10.0966C35.33 10.0604 35.393 10.0875 35.393 10.1402V16.4427C35.393 16.7552 35.6486 17.0086 35.964 17.0086H36.292C36.6073 17.0086 36.863 16.7552 36.863 16.4427V9.05567C36.863 8.47445 36.3918 8.00328 35.8106 8.00328C35.5424 8.00328 35.2842 8.10572 35.089 8.28966Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M0.565641 8.00287C0.253245 8.00287 0 8.25623 0 8.56877L2.14969e-05 16.4526C2.23359e-05 16.7603 0.249451 17.0097 0.557136 17.0097H8.14785C8.46024 17.0097 8.71349 16.7563 8.71349 16.4438V16.1188C8.71349 15.8062 8.46024 15.5529 8.14785 15.5529H1.71331C1.5713 15.5529 1.45618 15.4377 1.45618 15.2957V8.56877C1.45618 8.25623 1.20293 8.00287 0.890535 8.00287H0.565641Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M10.8223 8.56917C10.8223 8.25663 11.0755 8.00327 11.3879 8.00327H11.7128C12.0252 8.00327 12.2784 8.25663 12.2784 8.56917V14.1226C12.2784 15.022 13.0075 15.7511 13.9069 15.7511H18.173C19.0724 15.7511 19.8015 15.022 19.8015 14.1226V8.56917C19.8015 8.25663 20.0547 8.00327 20.3671 8.00327H20.692C21.0044 8.00327 21.2577 8.25663 21.2577 8.56917L21.2577 14.6367C21.2577 16.0567 20.1065 17.208 18.6864 17.208H13.3936C11.9735 17.208 10.8223 16.0568 10.8223 14.6367L10.8223 8.56917Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React125.createElement(\"path\", {\n d: \"M52.6761 8.92549V16.4959C52.6761 16.7799 52.9064 17.0102 53.1904 17.0102H53.6082C53.8922 17.0102 54.1225 16.7799 54.1225 16.4959V10.3797C54.1225 10.3065 54.2084 10.267 54.264 10.3147L61.7974 16.782C61.9689 16.9292 62.1874 17.0102 62.4135 17.0102C62.9359 17.0102 63.3593 16.5867 63.3593 16.0643V8.50979C63.3593 8.22577 63.1291 7.99553 62.8451 7.99553H62.4137C62.1297 7.99553 61.8994 8.22577 61.8994 8.50979V14.5C61.8994 14.5729 61.8143 14.6125 61.7586 14.5656L54.2046 8.21372C54.037 8.07279 53.825 7.99553 53.6061 7.99553C53.0925 7.99553 52.6761 8.41189 52.6761 8.92549Z\",\n fill: \"currentColor\"\n}));\nvar LumenMono_default = SvgLumenMono;\nvar SvgSonicAdaptive = (props) => /* @__PURE__ */ React126.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React126.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /* @__PURE__ */ React126.createElement(\"path\", {\n d: \"M59.1057 15.8762C58.1563 17.0504 56.7045 17.8009 55.0782 17.8009C52.2196 17.8009 49.901 15.4836 49.901 12.625C49.901 9.76517 52.2196 7.44787 55.0782 7.44787C56.6385 7.44787 58.0374 8.13891 58.9868 9.23041L60.2101 8.08728C58.9546 6.66892 57.1217 5.77507 55.0782 5.77507C51.2961 5.77507 48.2296 8.84159 48.2296 12.625C48.2296 16.4071 51.2961 19.4736 55.0782 19.4736C57.2276 19.4736 59.1444 18.4841 60.4013 16.9354L59.1057 15.8762ZM28.421 6.07982V19.1751L30.0796 19.1714V7.73728H34.089C36.5458 7.73728 38.6203 9.77689 38.6203 12.1911V19.1766L40.2724 19.1729V12.2326C40.2724 8.84189 37.4965 6.08282 34.0852 6.08282L28.421 6.07982ZM0.0319824 17.5008C1.53163 18.7279 3.33486 19.3738 5.27114 19.3738C8.04441 19.3738 9.83599 17.9012 9.83599 15.6214V15.5826C9.83599 13.6347 8.70836 12.6375 5.67413 11.8986C3.19151 11.3057 2.0832 10.7955 2.0832 9.3359V9.29599C2.0832 8.09596 3.17342 7.25762 4.73638 7.25762C5.9635 7.25762 7.16993 7.67357 8.41254 8.52868L9.2741 7.31445C7.94625 6.33792 6.50727 5.88195 4.7764 5.88195C2.21626 5.88195 0.428525 7.37519 0.428525 9.51425V9.55416C0.428525 11.8521 1.88299 12.6245 4.74926 13.3169C7.34689 13.9163 8.18267 14.5246 8.18267 15.8215V15.8603C8.18267 17.1391 7.03687 17.9981 5.33185 17.9981C3.75469 17.9981 2.40355 17.4879 0.996866 16.3537L0.0319824 17.5008ZM43.5802 19.1759H45.2336V6.07934H43.5802V19.1759Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React126.createElement(\"path\", {\n d: \"M18.6511 17.8007C15.7926 17.8007 13.474 15.4834 13.474 12.6248C13.474 9.76502 15.7926 7.44771 18.6511 7.44771C21.5097 7.44771 23.827 9.76502 23.827 12.6248C23.827 15.4834 21.5097 17.8007 18.6511 17.8007ZM18.6511 5.77495C14.869 5.77495 11.8012 8.84147 11.8012 12.6248C11.8012 16.4083 14.869 19.4747 18.6511 19.4747C22.4346 19.4747 25.501 16.4083 25.501 12.6248C25.501 8.84143 22.4345 5.77495 18.6511 5.77495ZM63.9681 18.3263C63.9681 18.8946 63.5069 19.3558 62.9386 19.3558C62.3689 19.3558 61.9091 18.8946 61.9091 18.3263C61.9091 17.758 62.369 17.2968 62.9386 17.2968C63.5069 17.2968 63.9681 17.758 63.9681 18.3263Z\",\n fill: \"#52AEE5\"\n})), /* @__PURE__ */ React126.createElement(\"defs\", null, /* @__PURE__ */ React126.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /* @__PURE__ */ React126.createElement(\"rect\", {\n width: 64,\n height: 13.7836,\n fill: \"white\",\n transform: \"translate(0 5.71286)\"\n}))));\nvar SonicAdaptive_default = SvgSonicAdaptive;\nvar SvgSonicBrand = (props) => /* @__PURE__ */ React127.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React127.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /* @__PURE__ */ React127.createElement(\"path\", {\n d: \"M59.1057 15.8762C58.1563 17.0504 56.7045 17.8009 55.0782 17.8009C52.2196 17.8009 49.901 15.4836 49.901 12.625C49.901 9.76517 52.2196 7.44787 55.0782 7.44787C56.6385 7.44787 58.0374 8.13891 58.9868 9.23041L60.2101 8.08728C58.9546 6.66892 57.1217 5.77507 55.0782 5.77507C51.2961 5.77507 48.2296 8.84159 48.2296 12.625C48.2296 16.4071 51.2961 19.4736 55.0782 19.4736C57.2276 19.4736 59.1444 18.4841 60.4013 16.9354L59.1057 15.8762ZM28.421 6.07982V19.1751L30.0796 19.1714V7.73728H34.089C36.5458 7.73728 38.6203 9.77689 38.6203 12.1911V19.1766L40.2724 19.1729V12.2326C40.2724 8.84189 37.4965 6.08282 34.0852 6.08282L28.421 6.07982ZM0.0319824 17.5008C1.53163 18.7279 3.33486 19.3738 5.27114 19.3738C8.04441 19.3738 9.83599 17.9012 9.83599 15.6214V15.5826C9.83599 13.6347 8.70836 12.6375 5.67413 11.8986C3.19151 11.3057 2.0832 10.7955 2.0832 9.3359V9.29599C2.0832 8.09596 3.17342 7.25762 4.73638 7.25762C5.9635 7.25762 7.16993 7.67357 8.41254 8.52868L9.2741 7.31445C7.94625 6.33792 6.50727 5.88195 4.7764 5.88195C2.21626 5.88195 0.428525 7.37519 0.428525 9.51425V9.55416C0.428525 11.8521 1.88299 12.6245 4.74926 13.3169C7.34689 13.9163 8.18267 14.5246 8.18267 15.8215V15.8603C8.18267 17.1391 7.03687 17.9981 5.33185 17.9981C3.75469 17.9981 2.40355 17.4879 0.996866 16.3537L0.0319824 17.5008ZM43.5802 19.1759H45.2336V6.07934H43.5802V19.1759Z\",\n fill: \"#505256\"\n}), /* @__PURE__ */ React127.createElement(\"path\", {\n d: \"M18.6511 17.8007C15.7926 17.8007 13.474 15.4834 13.474 12.6248C13.474 9.76502 15.7926 7.44771 18.6511 7.44771C21.5097 7.44771 23.827 9.76502 23.827 12.6248C23.827 15.4834 21.5097 17.8007 18.6511 17.8007ZM18.6511 5.77495C14.869 5.77495 11.8012 8.84147 11.8012 12.6248C11.8012 16.4083 14.869 19.4747 18.6511 19.4747C22.4346 19.4747 25.501 16.4083 25.501 12.6248C25.501 8.84143 22.4345 5.77495 18.6511 5.77495ZM63.9681 18.3263C63.9681 18.8946 63.5069 19.3558 62.9386 19.3558C62.3689 19.3558 61.9091 18.8946 61.9091 18.3263C61.9091 17.758 62.369 17.2968 62.9386 17.2968C63.5069 17.2968 63.9681 17.758 63.9681 18.3263Z\",\n fill: \"#52AEE5\"\n})), /* @__PURE__ */ React127.createElement(\"defs\", null, /* @__PURE__ */ React127.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /* @__PURE__ */ React127.createElement(\"rect\", {\n width: 64,\n height: 13.7836,\n fill: \"white\",\n transform: \"translate(0 5.71286)\"\n}))));\nvar SonicBrand_default = SvgSonicBrand;\nvar SvgSonicMono = (props) => /* @__PURE__ */ React128.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React128.createElement(\"g\", {\n clipPath: \"url(#clip0)\"\n}, /* @__PURE__ */ React128.createElement(\"path\", {\n d: \"M59.1057 15.8762C58.1563 17.0504 56.7044 17.8009 55.0781 17.8009C52.2196 17.8009 49.901 15.4836 49.901 12.625C49.901 9.76517 52.2196 7.44787 55.0781 7.44787C56.6385 7.44787 58.0374 8.13891 58.9868 9.23041L60.2101 8.08728C58.9546 6.66892 57.1216 5.77507 55.0781 5.77507C51.296 5.77507 48.2295 8.84159 48.2295 12.625C48.2295 16.4071 51.296 19.4736 55.0781 19.4736C57.2275 19.4736 59.1444 18.4841 60.4013 16.9354L59.1057 15.8762ZM28.421 6.07982V19.1751L30.0796 19.1714V7.73728H34.089C36.5458 7.73728 38.6203 9.77689 38.6203 12.1911V19.1766L40.2724 19.1729V12.2326C40.2724 8.84189 37.4965 6.08282 34.0851 6.08282L28.421 6.07982ZM0.0319519 17.5008C1.5316 18.7279 3.33483 19.3738 5.27111 19.3738C8.04438 19.3738 9.83596 17.9012 9.83596 15.6214V15.5826C9.83596 13.6347 8.70833 12.6375 5.6741 11.8986C3.19148 11.3057 2.08317 10.7955 2.08317 9.3359V9.29599C2.08317 8.09596 3.17339 7.25762 4.73635 7.25762C5.96347 7.25762 7.1699 7.67357 8.41251 8.52868L9.27407 7.31445C7.94622 6.33792 6.50724 5.88195 4.77637 5.88195C2.21623 5.88195 0.428494 7.37519 0.428494 9.51425V9.55416C0.428494 11.8521 1.88296 12.6245 4.74923 13.3169C7.34686 13.9163 8.18264 14.5246 8.18264 15.8215V15.8603C8.18264 17.1391 7.03684 17.9981 5.33182 17.9981C3.75466 17.9981 2.40352 17.4879 0.996836 16.3537L0.0319519 17.5008ZM43.5802 19.1759H45.2336V6.07934H43.5802V19.1759Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React128.createElement(\"path\", {\n d: \"M18.6511 17.8007C15.7925 17.8007 13.4739 15.4834 13.4739 12.6248C13.4739 9.76502 15.7925 7.44771 18.6511 7.44771C21.5096 7.44771 23.8269 9.76502 23.8269 12.6248C23.8269 15.4834 21.5096 17.8007 18.6511 17.8007ZM18.6511 5.77495C14.869 5.77495 11.8012 8.84147 11.8012 12.6248C11.8012 16.4083 14.869 19.4747 18.6511 19.4747C22.4345 19.4747 25.501 16.4083 25.501 12.6248C25.501 8.84143 22.4345 5.77495 18.6511 5.77495ZM63.968 18.3263C63.968 18.8946 63.5069 19.3558 62.9386 19.3558C62.3689 19.3558 61.909 18.8946 61.909 18.3263C61.909 17.758 62.3689 17.2968 62.9386 17.2968C63.5069 17.2968 63.968 17.758 63.968 18.3263Z\",\n fill: \"currentColor\"\n})), /* @__PURE__ */ React128.createElement(\"defs\", null, /* @__PURE__ */ React128.createElement(\"clipPath\", {\n id: \"clip0\"\n}, /* @__PURE__ */ React128.createElement(\"rect\", {\n width: 64,\n height: 13.7836,\n fill: \"white\",\n transform: \"translate(0 5.71286)\"\n}))));\nvar SonicMono_default = SvgSonicMono;\nvar SvgSpectrumAdaptive = (props) => /* @__PURE__ */ React129.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M59.1172 10.2905V16.7288L63.3593 13.5105L59.1172 10.2905Z\",\n fill: \"#0076BC\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M10.5303 18.6539C10.5303 19.1738 10.1256 19.6462 9.53766 19.6462H8.54535V12.3794C8.66089 10.4462 9.36381 8.90538 12.3005 8.80029C13.5707 8.81624 14.4923 9.32126 15.0369 9.95821C15.6205 10.7172 15.8709 11.6603 15.8709 12.8464C15.8709 14.072 15.5789 15.0644 14.9949 15.8233C14.4112 16.5628 13.6623 16.9323 12.7479 16.9323C11.3763 16.9323 10.7101 16.3613 10.5289 16.2541C10.529 16.3204 10.5303 18.6539 10.5303 18.6539ZM13.8569 12.934C13.8569 12.1754 13.7178 10.5701 12.1643 10.5701C10.6891 10.5701 10.5303 12.1363 10.5303 12.934C10.5303 14.9538 11.6781 15.2103 12.2226 15.2103C13.633 15.2104 13.8569 13.7145 13.8569 12.934Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M1.16116 16.0792C1.81875 16.6407 2.80631 16.9208 4.12289 16.9208C5.40073 16.9208 6.38829 16.6505 7.08494 16.1082C7.78166 15.5274 8.13056 14.7144 8.13056 13.6692C8.13056 13.1855 8.03566 12.7392 7.81104 12.3331C7.60528 11.9614 7.25594 11.6107 6.8336 11.3992C6.56555 11.2654 6.4024 11.2071 6.07275 11.1056C5.71702 10.9966 3.94531 10.5133 3.7664 10.4662C2.77953 10.2257 2.15277 9.89708 2.1484 9.31305C2.19949 8.1838 3.25188 8.09358 3.833 8.09358C4.43222 8.09358 4.90717 8.21963 5.25537 8.4711C5.88067 8.95769 5.8111 9.57572 5.8111 9.57572H7.7816C7.74285 8.60766 7.39434 7.82294 6.73642 7.22264C6.0977 6.68065 5.18731 6.40924 4.00697 6.40924C2.74838 6.40924 1.79045 6.67083 1.13216 7.19326C0.47387 7.73563 0.144915 8.48085 0.144915 9.42935C0.147827 10.6477 0.725335 11.3662 1.24852 11.6944C1.56621 11.8845 2.28831 12.1762 3.22301 12.3621L4.00805 12.5331C5.36958 12.865 6.15107 13.2853 6.12676 13.9594C6.11194 14.3656 5.97209 14.676 5.66194 14.8888C5.37857 15.0825 4.89672 15.2075 4.2975 15.2075C3.61927 15.2075 3.08747 15.0727 2.70052 14.8014C2.33244 14.5692 2.10921 14.1627 2.03242 13.5819H0C0.0579913 14.6851 0.444874 15.518 1.16116 16.0792Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M19.8757 10.5135C21.1238 10.4965 21.3176 11.5591 21.3564 12.0819H18.3947C18.3947 12.0819 18.3697 10.5414 19.8757 10.5135ZM19.963 15.1889C19.4599 15.1635 18.5019 15.065 18.4142 13.3886L23.4461 13.3897C23.4468 13.3382 23.4461 12.7865 23.4475 12.7857C23.4127 11.5224 23.1095 10.5812 22.5178 9.87472C21.8787 9.17768 20.9788 8.82954 19.8173 8.82954C18.7145 8.82954 17.8526 9.18787 17.2335 9.90371C16.6332 10.6004 16.3328 11.5688 16.3328 12.8075C16.3328 14.1048 16.6422 15.1015 17.2625 15.7982C17.882 16.5147 18.7435 16.8727 19.8463 16.8727C20.7568 16.8727 21.5114 16.6506 22.1113 16.205C22.7113 15.7793 23.1207 15.1577 23.3338 14.3443L21.5853 14.3447C21.3282 15.0744 20.6706 15.2244 19.963 15.1889Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M53.6622 16.7381H51.6489V11.7769C51.6489 11.2048 51.4137 10.4342 50.2773 10.4342C49.1622 10.4342 48.935 11.3102 48.935 11.7769V16.7381H46.8917V12.1855C46.8917 10.8628 47.2841 10.0546 47.9278 9.52997C48.5654 9.01008 49.3817 8.83946 50.2186 8.80033C50.666 8.80033 51.1044 8.84927 51.532 8.94601C51.9602 9.0442 52.3493 9.23799 52.6996 9.53004C52.9919 9.2775 53.3365 9.09713 53.7356 8.98988C54.1342 8.88333 54.5469 8.80261 54.9759 8.8004C57.4677 8.78735 58.4676 9.92819 58.5506 10.2941C58.5506 10.2996 58.5513 16.7382 58.5513 16.7382H57.3981C57.1065 16.7382 56.4062 16.54 56.4062 15.7462V11.7769C56.4112 11.2146 56.2141 10.4342 55.0341 10.4342C53.8661 10.4342 53.6622 11.3102 53.6622 11.7769V16.7381V16.7381Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M28.9956 14.3471H30.9045C30.9045 14.3471 30.3863 16.8727 27.5026 16.8727C24.6194 16.8727 23.9097 14.5591 23.9097 13.0385C23.9097 11.5184 24.1796 8.92109 27.3905 8.83012C30.3574 8.78555 30.8465 11.356 30.8465 11.356H28.8137C28.8137 11.356 28.617 10.4872 27.4069 10.5145C26.1972 10.542 25.8809 11.6781 25.8809 12.7578C25.8809 13.8378 26.1497 15.1888 27.4931 15.1888C28.7702 15.2278 28.8829 14.537 28.9956 14.3471Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M39.5862 9.00169H41.6187V13.9379C41.6187 13.9379 41.5455 15.273 42.9549 15.2737C44.2837 15.2744 44.3177 14.0792 44.3189 13.9948V9.95962C44.3189 9.95962 44.3874 9.00175 45.2685 9.00175H46.3235C46.3235 9.00175 46.3224 13.5427 46.3235 13.5862C46.3089 13.8361 46.5893 16.8729 42.9549 16.8606C39.354 16.8606 39.6091 13.7884 39.5862 13.6076V9.00169V9.00169Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M33.3675 11.0677H34.5612L34.56 9.03272H33.3699V7.72563C33.3699 7.3673 33.1703 6.73839 32.4116 6.73839H31.3664V15.2762C31.3664 16.1663 31.7117 16.6989 32.4594 16.6989C32.4678 16.6989 33.3363 16.6996 33.3678 16.6996L33.3675 11.0677Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React129.createElement(\"path\", {\n d: \"M36.6887 16.7135V12.7352C36.6887 12.1548 36.8235 11.7288 37.0953 11.4577C37.366 11.1868 37.7818 11.0509 38.3437 11.0509H39.011V8.98943C39.011 8.98943 37.9598 8.96335 37.1964 9.19266C36.7062 9.3401 36.2722 9.54117 35.9048 9.831C35.5164 10.1411 35.2122 10.5527 34.9897 11.0653C34.7672 11.5783 34.6561 12.2123 34.6561 12.9673V16.7134H36.6887V16.7135Z\",\n fill: \"currentColor\"\n}));\nvar SpectrumAdaptive_default = SvgSpectrumAdaptive;\nvar SvgSpectrumBrand = (props) => /* @__PURE__ */ React130.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M59.1172 10.2905V16.7288L63.3593 13.5105L59.1172 10.2905Z\",\n fill: \"#0076BC\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M10.5303 18.6539C10.5303 19.1738 10.1256 19.6462 9.53766 19.6462H8.54535V12.3794C8.66089 10.4462 9.36381 8.90538 12.3005 8.80029C13.5707 8.81624 14.4923 9.32126 15.0369 9.95821C15.6205 10.7172 15.8709 11.6603 15.8709 12.8464C15.8709 14.072 15.5789 15.0644 14.9949 15.8233C14.4112 16.5628 13.6623 16.9323 12.7479 16.9323C11.3763 16.9323 10.7101 16.3613 10.5289 16.2541C10.529 16.3204 10.5303 18.6539 10.5303 18.6539ZM13.8569 12.934C13.8569 12.1754 13.7178 10.5701 12.1643 10.5701C10.6891 10.5701 10.5303 12.1363 10.5303 12.934C10.5303 14.9538 11.6781 15.2103 12.2226 15.2103C13.633 15.2104 13.8569 13.7145 13.8569 12.934Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M1.16116 16.0792C1.81875 16.6407 2.80631 16.9208 4.12289 16.9208C5.40073 16.9208 6.38829 16.6505 7.08494 16.1082C7.78166 15.5274 8.13056 14.7144 8.13056 13.6692C8.13056 13.1855 8.03566 12.7392 7.81104 12.3331C7.60528 11.9614 7.25594 11.6107 6.8336 11.3992C6.56555 11.2654 6.4024 11.2071 6.07275 11.1056C5.71702 10.9966 3.94531 10.5133 3.7664 10.4662C2.77953 10.2257 2.15277 9.89708 2.1484 9.31305C2.19949 8.1838 3.25188 8.09358 3.833 8.09358C4.43222 8.09358 4.90717 8.21963 5.25537 8.4711C5.88067 8.95769 5.8111 9.57572 5.8111 9.57572H7.7816C7.74285 8.60766 7.39434 7.82294 6.73642 7.22264C6.0977 6.68065 5.18731 6.40924 4.00697 6.40924C2.74838 6.40924 1.79045 6.67083 1.13216 7.19326C0.47387 7.73563 0.144915 8.48085 0.144915 9.42935C0.147827 10.6477 0.725335 11.3662 1.24852 11.6944C1.56621 11.8845 2.28831 12.1762 3.22301 12.3621L4.00805 12.5331C5.36958 12.865 6.15107 13.2853 6.12676 13.9594C6.11194 14.3656 5.97209 14.676 5.66194 14.8888C5.37857 15.0825 4.89672 15.2075 4.2975 15.2075C3.61927 15.2075 3.08747 15.0727 2.70052 14.8014C2.33244 14.5692 2.10921 14.1627 2.03242 13.5819H0C0.0579913 14.6851 0.444874 15.518 1.16116 16.0792Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M19.8757 10.5135C21.1238 10.4965 21.3176 11.5591 21.3564 12.0819H18.3947C18.3947 12.0819 18.3697 10.5414 19.8757 10.5135ZM19.963 15.1889C19.4599 15.1635 18.5019 15.065 18.4142 13.3886L23.4461 13.3897C23.4468 13.3382 23.4461 12.7865 23.4475 12.7857C23.4127 11.5224 23.1095 10.5812 22.5178 9.87472C21.8787 9.17768 20.9788 8.82954 19.8173 8.82954C18.7145 8.82954 17.8526 9.18787 17.2335 9.90371C16.6332 10.6004 16.3328 11.5688 16.3328 12.8075C16.3328 14.1048 16.6422 15.1015 17.2625 15.7982C17.882 16.5147 18.7435 16.8727 19.8463 16.8727C20.7568 16.8727 21.5114 16.6506 22.1113 16.205C22.7113 15.7793 23.1207 15.1577 23.3338 14.3443L21.5853 14.3447C21.3282 15.0744 20.6706 15.2244 19.963 15.1889Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M53.6622 16.7381H51.6489V11.7769C51.6489 11.2048 51.4137 10.4342 50.2773 10.4342C49.1622 10.4342 48.935 11.3102 48.935 11.7769V16.7381H46.8917V12.1855C46.8917 10.8628 47.2841 10.0546 47.9278 9.52997C48.5654 9.01008 49.3817 8.83946 50.2186 8.80033C50.666 8.80033 51.1044 8.84927 51.532 8.94601C51.9602 9.0442 52.3493 9.23799 52.6996 9.53004C52.9919 9.2775 53.3365 9.09713 53.7356 8.98988C54.1342 8.88333 54.5469 8.80261 54.9759 8.8004C57.4677 8.78735 58.4676 9.92819 58.5506 10.2941C58.5506 10.2996 58.5513 16.7382 58.5513 16.7382H57.3981C57.1065 16.7382 56.4062 16.54 56.4062 15.7462V11.7769C56.4112 11.2146 56.2141 10.4342 55.0341 10.4342C53.8661 10.4342 53.6622 11.3102 53.6622 11.7769V16.7381V16.7381Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M28.9956 14.3471H30.9045C30.9045 14.3471 30.3863 16.8727 27.5026 16.8727C24.6194 16.8727 23.9097 14.5591 23.9097 13.0385C23.9097 11.5184 24.1796 8.92109 27.3905 8.83012C30.3574 8.78555 30.8465 11.356 30.8465 11.356H28.8137C28.8137 11.356 28.617 10.4872 27.4069 10.5145C26.1972 10.542 25.8809 11.6781 25.8809 12.7578C25.8809 13.8378 26.1497 15.1888 27.4931 15.1888C28.7702 15.2278 28.8829 14.537 28.9956 14.3471Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M39.5862 9.00169H41.6187V13.9379C41.6187 13.9379 41.5455 15.273 42.9549 15.2737C44.2837 15.2744 44.3177 14.0792 44.3189 13.9948V9.95962C44.3189 9.95962 44.3874 9.00175 45.2685 9.00175H46.3235C46.3235 9.00175 46.3224 13.5427 46.3235 13.5862C46.3089 13.8361 46.5893 16.8729 42.9549 16.8606C39.354 16.8606 39.6091 13.7884 39.5862 13.6076V9.00169V9.00169Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M33.3675 11.0677H34.5612L34.56 9.03272H33.3699V7.72563C33.3699 7.3673 33.1703 6.73839 32.4116 6.73839H31.3664V15.2762C31.3664 16.1663 31.7117 16.6989 32.4594 16.6989C32.4678 16.6989 33.3363 16.6996 33.3678 16.6996L33.3675 11.0677Z\",\n fill: \"#77787B\"\n}), /* @__PURE__ */ React130.createElement(\"path\", {\n d: \"M36.6887 16.7135V12.7352C36.6887 12.1548 36.8235 11.7288 37.0953 11.4577C37.366 11.1868 37.7818 11.0509 38.3437 11.0509H39.011V8.98943C39.011 8.98943 37.9598 8.96335 37.1964 9.19266C36.7062 9.3401 36.2722 9.54117 35.9048 9.831C35.5164 10.1411 35.2122 10.5527 34.9897 11.0653C34.7672 11.5783 34.6561 12.2123 34.6561 12.9673V16.7134H36.6887V16.7135Z\",\n fill: \"#77787B\"\n}));\nvar SpectrumBrand_default = SvgSpectrumBrand;\nvar SvgSpectrumMono = (props) => /* @__PURE__ */ React131.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M59.1172 10.2905V16.7288L63.3593 13.5105L59.1172 10.2905Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M10.5303 18.6539C10.5303 19.1738 10.1256 19.6462 9.53763 19.6462H8.54532V12.3794C8.66086 10.4462 9.36378 8.90538 12.3004 8.80029C13.5706 8.81624 14.4923 9.32126 15.0369 9.95821C15.6205 10.7172 15.8708 11.6603 15.8708 12.8464C15.8708 14.072 15.5789 15.0644 14.9948 15.8233C14.4112 16.5628 13.6623 16.9323 12.7479 16.9323C11.3763 16.9323 10.7101 16.3613 10.5289 16.2541C10.5289 16.3204 10.5303 18.6539 10.5303 18.6539ZM13.8569 12.934C13.8569 12.1754 13.7178 10.5701 12.1643 10.5701C10.689 10.5701 10.5303 12.1363 10.5303 12.934C10.5303 14.9538 11.6781 15.2103 12.2226 15.2103C13.633 15.2104 13.8569 13.7145 13.8569 12.934Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M1.16116 16.0792C1.81875 16.6407 2.80631 16.9208 4.12289 16.9208C5.40073 16.9208 6.38829 16.6505 7.08494 16.1082C7.78166 15.5274 8.13056 14.7144 8.13056 13.6692C8.13056 13.1855 8.03566 12.7392 7.81104 12.3331C7.60528 11.9614 7.25594 11.6107 6.8336 11.3992C6.56555 11.2654 6.4024 11.2071 6.07275 11.1056C5.71702 10.9966 3.94531 10.5133 3.7664 10.4662C2.77953 10.2257 2.15277 9.89708 2.1484 9.31305C2.19949 8.1838 3.25188 8.09358 3.833 8.09358C4.43222 8.09358 4.90717 8.21963 5.25537 8.4711C5.88067 8.95769 5.8111 9.57572 5.8111 9.57572H7.7816C7.74285 8.60766 7.39434 7.82294 6.73642 7.22264C6.0977 6.68065 5.18731 6.40924 4.00697 6.40924C2.74838 6.40924 1.79045 6.67083 1.13216 7.19326C0.47387 7.73563 0.144915 8.48085 0.144915 9.42935C0.147827 10.6477 0.725335 11.3662 1.24852 11.6944C1.56621 11.8845 2.28831 12.1762 3.22301 12.3621L4.00805 12.5331C5.36958 12.865 6.15107 13.2853 6.12676 13.9594C6.11194 14.3656 5.97209 14.676 5.66194 14.8888C5.37857 15.0825 4.89672 15.2075 4.2975 15.2075C3.61927 15.2075 3.08747 15.0727 2.70052 14.8014C2.33244 14.5692 2.10921 14.1627 2.03242 13.5819H0C0.0579913 14.6851 0.444874 15.518 1.16116 16.0792Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M19.8757 10.5135C21.1239 10.4965 21.3176 11.5591 21.3565 12.0819H18.3947C18.3947 12.0819 18.3697 10.5414 19.8757 10.5135ZM19.9631 15.1889C19.4599 15.1635 18.502 15.065 18.4143 13.3886L23.4461 13.3897C23.4469 13.3382 23.4461 12.7865 23.4476 12.7857C23.4127 11.5224 23.1095 10.5812 22.5179 9.87472C21.8788 9.17768 20.9788 8.82954 19.8173 8.82954C18.7146 8.82954 17.8527 9.18787 17.2335 9.90371C16.6332 10.6004 16.3328 11.5688 16.3328 12.8075C16.3328 14.1048 16.6422 15.1015 17.2625 15.7982C17.882 16.5147 18.7435 16.8727 19.8463 16.8727C20.7568 16.8727 21.5114 16.6506 22.1113 16.205C22.7113 15.7793 23.1207 15.1577 23.3338 14.3443L21.5854 14.3447C21.3282 15.0744 20.6706 15.2244 19.9631 15.1889Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M53.6622 16.7381H51.6489V11.7769C51.6489 11.2048 51.4137 10.4342 50.2773 10.4342C49.1622 10.4342 48.935 11.3102 48.935 11.7769V16.7381H46.8917V12.1855C46.8917 10.8628 47.2841 10.0546 47.9278 9.52997C48.5654 9.01008 49.3817 8.83946 50.2186 8.80033C50.666 8.80033 51.1044 8.84927 51.532 8.94601C51.9602 9.0442 52.3493 9.23799 52.6996 9.53004C52.9919 9.2775 53.3365 9.09713 53.7356 8.98988C54.1342 8.88333 54.5469 8.80261 54.9759 8.8004C57.4677 8.78735 58.4676 9.92819 58.5506 10.2941C58.5506 10.2996 58.5513 16.7382 58.5513 16.7382H57.3981C57.1065 16.7382 56.4062 16.54 56.4062 15.7462V11.7769C56.4112 11.2146 56.2141 10.4342 55.0341 10.4342C53.8661 10.4342 53.6622 11.3102 53.6622 11.7769V16.7381V16.7381Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M28.9956 14.3471H30.9045C30.9045 14.3471 30.3863 16.8727 27.5026 16.8727C24.6194 16.8727 23.9097 14.5591 23.9097 13.0385C23.9097 11.5184 24.1796 8.92109 27.3905 8.83012C30.3574 8.78555 30.8465 11.356 30.8465 11.356H28.8137C28.8137 11.356 28.617 10.4872 27.4069 10.5145C26.1972 10.542 25.8809 11.6781 25.8809 12.7578C25.8809 13.8378 26.1497 15.1888 27.4931 15.1888C28.7702 15.2278 28.8829 14.537 28.9956 14.3471Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M39.5863 9.00169H41.6188V13.9379C41.6188 13.9379 41.5456 15.273 42.9549 15.2737C44.2838 15.2744 44.3178 14.0792 44.3189 13.9948V9.95962C44.3189 9.95962 44.3874 9.00175 45.2685 9.00175H46.3235C46.3235 9.00175 46.3224 13.5427 46.3235 13.5862C46.309 13.8361 46.5894 16.8729 42.9549 16.8606C39.3541 16.8606 39.6091 13.7884 39.5863 13.6076V9.00169V9.00169Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M33.3675 11.0677H34.5612L34.5601 9.03272H33.3699V7.72563C33.3699 7.3673 33.1704 6.73839 32.4116 6.73839H31.3664V15.2762C31.3664 16.1663 31.7118 16.6989 32.4595 16.6989C32.4679 16.6989 33.3363 16.6996 33.3678 16.6996L33.3675 11.0677Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React131.createElement(\"path\", {\n d: \"M36.6887 16.7135V12.7352C36.6887 12.1548 36.8235 11.7288 37.0953 11.4577C37.366 11.1868 37.7818 11.0509 38.3437 11.0509H39.011V8.98943C39.011 8.98943 37.9598 8.96335 37.1964 9.19266C36.7062 9.3401 36.2722 9.54117 35.9048 9.831C35.5164 10.1411 35.2122 10.5527 34.9897 11.0653C34.7672 11.5783 34.6561 12.2123 34.6561 12.9673V16.7134H36.6887V16.7135Z\",\n fill: \"currentColor\"\n}));\nvar SpectrumMono_default = SvgSpectrumMono;\nvar SvgVerizonAdaptive = (props) => /* @__PURE__ */ React132.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React132.createElement(\"path\", {\n d: \"M61.9613 3.57377L58.5003 10.9498L57.1988 8.15495H55.7912L57.9315 12.7265H59.0691L63.3592 3.57377H61.9613Z\",\n fill: \"#D52B1E\"\n}), /* @__PURE__ */ React132.createElement(\"path\", {\n d: \"M47.1145 17.2684H49.9007V12.1878C49.9007 11.0257 50.5756 10.2093 51.5782 10.2093C52.5423 10.2093 53.0436 10.8816 53.0436 11.8516V17.2684H55.8298V11.3234C55.8298 9.30654 54.615 7.88513 52.6483 7.88513C51.395 7.88513 50.5177 8.42296 49.8621 9.40258H49.8043V8.15405H47.1049L47.1145 17.2684ZM41.6385 7.90434C38.727 7.90434 36.7796 9.98844 36.7796 12.7352C36.7796 15.4628 38.727 17.5661 41.6385 17.5661C44.5501 17.5661 46.4975 15.4628 46.4975 12.7352C46.5071 9.98844 44.5501 7.90434 41.6385 7.90434ZM41.6193 15.5108C40.2985 15.5108 39.5947 14.4063 39.5947 12.7352C39.5947 11.0449 40.2888 9.95962 41.6193 9.95962C42.94 9.95962 43.6727 11.0449 43.6727 12.7352C43.6824 14.4063 42.9497 15.5108 41.6193 15.5108ZM28.8356 17.2684H36.6639V15.0786H32.2291V15.021L36.4711 10.2862V8.14444H28.8356V10.3438H33.1257V10.4014L28.8356 15.1747V17.2684ZM25.2588 17.2684H28.0643V8.15405H25.2588V17.2684ZM18.7513 17.2684H21.5471V13.081C21.5471 11.1794 22.6944 10.3342 24.4394 10.5743H24.4972V8.17325C24.3526 8.11563 24.1887 8.10603 23.9284 8.10603C22.839 8.10603 22.1063 8.60544 21.4796 9.6715H21.4218V8.15405H18.7513V17.2684ZM13.6224 15.5204C12.3884 15.5204 11.6364 14.7233 11.4918 13.494H18.0861C18.1054 11.5347 17.5848 9.96923 16.4953 8.98961C15.7241 8.2789 14.7118 7.88513 13.4199 7.88513C10.6627 7.88513 8.75378 9.96923 8.75378 12.6968C8.75378 15.4436 10.5759 17.5373 13.6031 17.5373C14.7504 17.5373 15.6566 17.23 16.4086 16.7209C17.2088 16.1735 17.7872 15.3668 17.9415 14.5696H15.2613C15.001 15.1651 14.4419 15.5204 13.6224 15.5204ZM13.4778 9.87319C14.4611 9.87319 15.136 10.6031 15.2517 11.6692H11.511C11.7328 10.5935 12.3209 9.87319 13.4778 9.87319ZM3.1814 17.2684H6.1122L9.29367 8.15405H6.48819L4.70465 14.0126H4.66608L2.88254 8.15405H-6.10352e-05L3.1814 17.2684ZM25.2588 4.90784H28.0643V7.38571H25.2588V4.90784Z\",\n fill: \"currentColor\"\n}));\nvar VerizonAdaptive_default = SvgVerizonAdaptive;\nvar SvgVerizonBrand = (props) => /* @__PURE__ */ React133.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React133.createElement(\"path\", {\n d: \"M61.9613 3.57377L58.5003 10.9498L57.1988 8.15495H55.7912L57.9315 12.7265H59.0691L63.3592 3.57377H61.9613Z\",\n fill: \"#D52B1E\"\n}), /* @__PURE__ */ React133.createElement(\"path\", {\n d: \"M47.1145 17.2684H49.9007V12.1878C49.9007 11.0257 50.5756 10.2093 51.5782 10.2093C52.5423 10.2093 53.0436 10.8816 53.0436 11.8516V17.2684H55.8298V11.3234C55.8298 9.30654 54.615 7.88513 52.6483 7.88513C51.395 7.88513 50.5177 8.42296 49.8621 9.40258H49.8043V8.15405H47.1049L47.1145 17.2684ZM41.6385 7.90434C38.727 7.90434 36.7796 9.98844 36.7796 12.7352C36.7796 15.4628 38.727 17.5661 41.6385 17.5661C44.5501 17.5661 46.4975 15.4628 46.4975 12.7352C46.5071 9.98844 44.5501 7.90434 41.6385 7.90434ZM41.6193 15.5108C40.2985 15.5108 39.5947 14.4063 39.5947 12.7352C39.5947 11.0449 40.2888 9.95962 41.6193 9.95962C42.94 9.95962 43.6727 11.0449 43.6727 12.7352C43.6824 14.4063 42.9497 15.5108 41.6193 15.5108ZM28.8356 17.2684H36.6639V15.0786H32.2291V15.021L36.4711 10.2862V8.14444H28.8356V10.3438H33.1257V10.4014L28.8356 15.1747V17.2684ZM25.2588 17.2684H28.0643V8.15405H25.2588V17.2684ZM18.7513 17.2684H21.5471V13.081C21.5471 11.1794 22.6944 10.3342 24.4394 10.5743H24.4972V8.17325C24.3526 8.11563 24.1887 8.10603 23.9284 8.10603C22.839 8.10603 22.1063 8.60544 21.4796 9.6715H21.4218V8.15405H18.7513V17.2684ZM13.6224 15.5204C12.3884 15.5204 11.6364 14.7233 11.4918 13.494H18.0861C18.1054 11.5347 17.5848 9.96923 16.4953 8.98961C15.7241 8.2789 14.7118 7.88513 13.4199 7.88513C10.6627 7.88513 8.75378 9.96923 8.75378 12.6968C8.75378 15.4436 10.5759 17.5373 13.6031 17.5373C14.7504 17.5373 15.6566 17.23 16.4086 16.7209C17.2088 16.1735 17.7872 15.3668 17.9415 14.5696H15.2613C15.001 15.1651 14.4419 15.5204 13.6224 15.5204ZM13.4778 9.87319C14.4611 9.87319 15.136 10.6031 15.2517 11.6692H11.511C11.7328 10.5935 12.3209 9.87319 13.4778 9.87319ZM3.1814 17.2684H6.1122L9.29367 8.15405H6.48819L4.70465 14.0126H4.66608L2.88254 8.15405H-6.10352e-05L3.1814 17.2684ZM25.2588 4.90784H28.0643V7.38571H25.2588V4.90784Z\",\n fill: \"black\"\n}));\nvar VerizonBrand_default = SvgVerizonBrand;\nvar SvgVerizonMono = (props) => /* @__PURE__ */ React134.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React134.createElement(\"path\", {\n d: \"M61.9613 3.57377L58.5003 10.9498L57.1988 8.15495H55.7912L57.9315 12.7265H59.0691L63.3592 3.57377H61.9613Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React134.createElement(\"path\", {\n d: \"M47.1145 17.2684H49.9007V12.1878C49.9007 11.0257 50.5756 10.2093 51.5782 10.2093C52.5423 10.2093 53.0436 10.8816 53.0436 11.8516V17.2684H55.8298V11.3234C55.8298 9.30654 54.615 7.88513 52.6483 7.88513C51.395 7.88513 50.5177 8.42296 49.8621 9.40258H49.8043V8.15405H47.1049L47.1145 17.2684ZM41.6385 7.90434C38.727 7.90434 36.7796 9.98844 36.7796 12.7352C36.7796 15.4628 38.727 17.5661 41.6385 17.5661C44.5501 17.5661 46.4975 15.4628 46.4975 12.7352C46.5071 9.98844 44.5501 7.90434 41.6385 7.90434ZM41.6193 15.5108C40.2985 15.5108 39.5947 14.4063 39.5947 12.7352C39.5947 11.0449 40.2888 9.95962 41.6193 9.95962C42.94 9.95962 43.6727 11.0449 43.6727 12.7352C43.6824 14.4063 42.9497 15.5108 41.6193 15.5108ZM28.8356 17.2684H36.6639V15.0786H32.2291V15.021L36.4711 10.2862V8.14444H28.8356V10.3438H33.1257V10.4014L28.8356 15.1747V17.2684ZM25.2588 17.2684H28.0643V8.15405H25.2588V17.2684ZM18.7513 17.2684H21.5471V13.081C21.5471 11.1794 22.6944 10.3342 24.4394 10.5743H24.4972V8.17325C24.3526 8.11563 24.1887 8.10603 23.9284 8.10603C22.839 8.10603 22.1063 8.60544 21.4796 9.6715H21.4218V8.15405H18.7513V17.2684ZM13.6224 15.5204C12.3884 15.5204 11.6364 14.7233 11.4918 13.494H18.0861C18.1054 11.5347 17.5848 9.96923 16.4953 8.98961C15.7241 8.2789 14.7118 7.88513 13.4199 7.88513C10.6627 7.88513 8.75378 9.96923 8.75378 12.6968C8.75378 15.4436 10.5759 17.5373 13.6031 17.5373C14.7504 17.5373 15.6566 17.23 16.4086 16.7209C17.2088 16.1735 17.7872 15.3668 17.9415 14.5696H15.2613C15.001 15.1651 14.4419 15.5204 13.6224 15.5204ZM13.4778 9.87319C14.4611 9.87319 15.136 10.6031 15.2517 11.6692H11.511C11.7328 10.5935 12.3209 9.87319 13.4778 9.87319ZM3.1814 17.2684H6.1122L9.29367 8.15405H6.48819L4.70465 14.0126H4.66608L2.88254 8.15405H-6.10352e-05L3.1814 17.2684ZM25.2588 4.90784H28.0643V7.38571H25.2588V4.90784Z\",\n fill: \"currentColor\"\n}));\nvar VerizonMono_default = SvgVerizonMono;\nvar SvgZayoAdaptive = (props) => /* @__PURE__ */ React135.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React135.createElement(\"path\", {\n d: \"M15.9911 8.73905C16.2213 7.48469 16.5457 5.92187 18.6912 4.81144C20.3762 3.95806 22.5112 3.81412 24.0811 3.81412C31.2083 3.81412 31.2083 7.43328 31.2083 9.20173V17.2317C31.2083 18.1982 31.3025 18.4553 31.7316 19.0516H25.8498V17.9103C25.0963 18.4244 23.7043 19.3909 20.889 19.3909C17.1214 19.3909 15.4678 17.1392 15.4678 14.6408C15.4678 13.7565 15.6666 12.533 16.7446 11.474C18.1051 10.1065 19.7273 9.88032 22.3647 9.54103C24.0183 9.31483 24.6567 9.17088 25.5568 8.91384C25.5254 7.91652 25.2428 7.23793 23.5264 7.23793C22.1659 7.23793 21.7891 7.57722 21.5798 8.60539L15.9911 8.73905ZM23.7567 12.7489C23.2648 12.862 22.7415 12.9751 22.2182 13.1499C21.0565 13.6023 21.0042 14.2912 21.0042 14.4557C21.0042 14.8567 21.3495 15.5969 22.4798 15.5969C23.3171 15.5969 24.709 15.052 25.2323 13.921C25.5254 13.2938 25.5254 12.6975 25.5254 12.1834C24.9393 12.3788 24.3637 12.5844 23.7567 12.7489Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React135.createElement(\"path\", {\n d: \"M30.6757 4.29722H36.9028L38.3785 10.641C38.6924 12.3786 38.7866 12.7796 39.0797 14.9696C39.3413 12.6665 39.4564 12.1833 39.8018 10.4662L41.3089 4.28694H47.5151L42.0415 19.8843C41.6333 20.9947 41.2356 22.1874 40.2728 23.1025C38.9959 24.326 37.9598 24.3568 36.0969 24.3568C34.7678 24.3568 34.1294 24.2951 32.9363 24.1615V19.9768C33.4282 20.0077 34.0666 20.0591 34.6213 20.0591C35.4376 20.0591 35.8981 19.8843 35.8981 19.3496C35.8981 19.0926 35.5527 18.1775 35.4376 17.8382L30.6757 4.29722Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React135.createElement(\"path\", {\n d: \"M61.0151 5.79845C62.4384 7.13507 63.3594 9.35591 63.3594 11.6899C63.3594 16.3269 60.0836 19.6068 54.4007 19.6068C48.341 19.6068 45.8502 15.7306 45.8502 11.7721C45.8502 6.92943 49.1783 3.62901 54.7147 3.65985C57.7707 3.70098 59.8534 4.71887 61.0151 5.79845ZM51.7947 11.6076C51.7947 13.0368 52.1401 15.5147 54.5786 15.5147C56.6613 15.5147 57.3311 13.777 57.3311 11.5562C57.3311 10.672 57.2683 7.71084 54.5472 7.7931C52.2866 7.85479 51.7947 9.96254 51.7947 11.6076Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React135.createElement(\"path\", {\n d: \"M15.1021 7.64851L9.31517 13.4273L4.79137 17.8715H6.37849L9.67825 14.6298H15.0393V19.0406H0.957967L15.1021 5.14526V7.64851Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React135.createElement(\"path\", {\n d: \"M14.3788 4.29668H0.900056V8.67668H5.50598L8.85677 5.38482H10.4439L7.0931 8.67668H7.12719L0 15.7916V18.4225L14.3788 4.29668Z\",\n fill: \"#FF7C00\"\n}));\nvar ZayoAdaptive_default = SvgZayoAdaptive;\nvar SvgZayoBrand = (props) => /* @__PURE__ */ React136.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React136.createElement(\"path\", {\n d: \"M15.9911 8.73905C16.2213 7.48469 16.5457 5.92187 18.6912 4.81144C20.3762 3.95806 22.5112 3.81412 24.0811 3.81412C31.2083 3.81412 31.2083 7.43328 31.2083 9.20173V17.2317C31.2083 18.1982 31.3025 18.4553 31.7316 19.0516H25.8498V17.9103C25.0963 18.4244 23.7043 19.3909 20.889 19.3909C17.1214 19.3909 15.4678 17.1392 15.4678 14.6408C15.4678 13.7565 15.6666 12.533 16.7446 11.474C18.1051 10.1065 19.7273 9.88032 22.3647 9.54103C24.0183 9.31483 24.6567 9.17088 25.5568 8.91384C25.5254 7.91652 25.2428 7.23793 23.5264 7.23793C22.1659 7.23793 21.7891 7.57722 21.5798 8.60539L15.9911 8.73905ZM23.7567 12.7489C23.2648 12.862 22.7415 12.9751 22.2182 13.1499C21.0565 13.6023 21.0042 14.2912 21.0042 14.4557C21.0042 14.8567 21.3495 15.5969 22.4798 15.5969C23.3171 15.5969 24.709 15.052 25.2323 13.921C25.5254 13.2938 25.5254 12.6975 25.5254 12.1834C24.9393 12.3788 24.3637 12.5844 23.7567 12.7489Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React136.createElement(\"path\", {\n d: \"M30.6757 4.29722H36.9028L38.3785 10.641C38.6924 12.3786 38.7866 12.7796 39.0797 14.9696C39.3413 12.6665 39.4564 12.1833 39.8018 10.4662L41.3089 4.28694H47.5151L42.0415 19.8843C41.6333 20.9947 41.2356 22.1874 40.2728 23.1025C38.9959 24.326 37.9598 24.3568 36.0969 24.3568C34.7678 24.3568 34.1294 24.2951 32.9363 24.1615V19.9768C33.4282 20.0077 34.0666 20.0591 34.6213 20.0591C35.4376 20.0591 35.8981 19.8843 35.8981 19.3496C35.8981 19.0926 35.5527 18.1775 35.4376 17.8382L30.6757 4.29722Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React136.createElement(\"path\", {\n d: \"M61.0151 5.79845C62.4384 7.13507 63.3594 9.35591 63.3594 11.6899C63.3594 16.3269 60.0836 19.6068 54.4007 19.6068C48.341 19.6068 45.8502 15.7306 45.8502 11.7721C45.8502 6.92943 49.1783 3.62901 54.7147 3.65985C57.7707 3.70098 59.8534 4.71887 61.0151 5.79845ZM51.7947 11.6076C51.7947 13.0368 52.1401 15.5147 54.5786 15.5147C56.6613 15.5147 57.3311 13.777 57.3311 11.5562C57.3311 10.672 57.2683 7.71084 54.5472 7.7931C52.2866 7.85479 51.7947 9.96254 51.7947 11.6076Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React136.createElement(\"path\", {\n d: \"M15.1021 7.64851L9.31517 13.4273L4.79137 17.8715H6.37849L9.67825 14.6298H15.0393V19.0406H0.957967L15.1021 5.14526V7.64851Z\",\n fill: \"#FF7C00\"\n}), /* @__PURE__ */ React136.createElement(\"path\", {\n d: \"M14.3788 4.29668H0.900056V8.67668H5.50598L8.85677 5.38482H10.4439L7.0931 8.67668H7.12719L0 15.7916V18.4225L14.3788 4.29668Z\",\n fill: \"#FF7C00\"\n}));\nvar ZayoBrand_default = SvgZayoBrand;\nvar SvgZayoMono = (props) => /* @__PURE__ */ React137.createElement(\"svg\", __spreadValues({\n width: 64,\n height: 25,\n viewBox: \"0 0 64 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n role: \"img\"\n}, props), /* @__PURE__ */ React137.createElement(\"path\", {\n d: \"M15.9911 8.73905C16.2213 7.48469 16.5458 5.92187 18.6913 4.81144C20.3762 3.95806 22.5113 3.81412 24.0811 3.81412C31.2083 3.81412 31.2083 7.43328 31.2083 9.20173V17.2317C31.2083 18.1982 31.3025 18.4553 31.7316 19.0516H25.8498V17.9103C25.0963 18.4244 23.7044 19.3909 20.8891 19.3909C17.1214 19.3909 15.4678 17.1392 15.4678 14.6408C15.4678 13.7565 15.6667 12.533 16.7446 11.474C18.1052 10.1065 19.7274 9.88032 22.3647 9.54103C24.0183 9.31483 24.6567 9.17088 25.5568 8.91384C25.5254 7.91652 25.2428 7.23793 23.5264 7.23793C22.1659 7.23793 21.7891 7.57722 21.5798 8.60539L15.9911 8.73905ZM23.7567 12.7489C23.2648 12.862 22.7415 12.9751 22.2182 13.1499C21.0565 13.6023 21.0042 14.2912 21.0042 14.4557C21.0042 14.8567 21.3496 15.5969 22.4799 15.5969C23.3171 15.5969 24.7091 15.052 25.2324 13.921C25.5254 13.2938 25.5254 12.6975 25.5254 12.1834C24.9393 12.3788 24.3637 12.5844 23.7567 12.7489Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React137.createElement(\"path\", {\n d: \"M30.6757 4.29722H36.9028L38.3785 10.641C38.6924 12.3786 38.7866 12.7796 39.0797 14.9696C39.3413 12.6665 39.4564 12.1833 39.8018 10.4662L41.3089 4.28694H47.5151L42.0415 19.8843C41.6333 20.9947 41.2356 22.1874 40.2728 23.1025C38.9959 24.326 37.9598 24.3568 36.0969 24.3568C34.7678 24.3568 34.1294 24.2951 32.9363 24.1615V19.9768C33.4282 20.0077 34.0666 20.0591 34.6213 20.0591C35.4376 20.0591 35.8981 19.8843 35.8981 19.3496C35.8981 19.0926 35.5527 18.1775 35.4376 17.8382L30.6757 4.29722Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React137.createElement(\"path\", {\n d: \"M61.0151 5.79845C62.4384 7.13507 63.3594 9.35591 63.3594 11.6899C63.3594 16.3269 60.0836 19.6068 54.4007 19.6068C48.341 19.6068 45.8502 15.7306 45.8502 11.7721C45.8502 6.92943 49.1783 3.62901 54.7147 3.65985C57.7707 3.70098 59.8534 4.71887 61.0151 5.79845ZM51.7947 11.6076C51.7947 13.0368 52.1401 15.5147 54.5786 15.5147C56.6613 15.5147 57.3311 13.777 57.3311 11.5562C57.3311 10.672 57.2683 7.71084 54.5472 7.7931C52.2866 7.85479 51.7947 9.96254 51.7947 11.6076Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React137.createElement(\"path\", {\n d: \"M15.1021 7.64851L9.31517 13.4273L4.79137 17.8715H6.37849L9.67825 14.6298H15.0393V19.0406H0.957967L15.1021 5.14526V7.64851Z\",\n fill: \"currentColor\"\n}), /* @__PURE__ */ React137.createElement(\"path\", {\n d: \"M14.3788 4.29668H0.900056V8.67668H5.50598L8.85677 5.38482H10.4439L7.0931 8.67668H7.12719L0 15.7916V18.4225L14.3788 4.29668Z\",\n fill: \"currentColor\"\n}));\nvar ZayoMono_default = SvgZayoMono;\nvar ProviderIconSVG = {\n ATTAdaptive: ATTAdaptive_default,\n ATTBrand: ATTBrand_default,\n ATTMono: ATTMono_default,\n CogentAdaptive: CogentAdaptive_default,\n CogentBrand: CogentBrand_default,\n CogentMono: CogentMono_default,\n ComcastBusinessAdaptive: ComcastBusinessAdaptive_default,\n ComcastBusinessBrand: ComcastBusinessBrand_default,\n ComcastBusinessMono: ComcastBusinessMono_default,\n LumenAdaptive: LumenAdaptive_default,\n LumenBrand: LumenBrand_default,\n LumenMono: LumenMono_default,\n SonicAdaptive: SonicAdaptive_default,\n SonicBrand: SonicBrand_default,\n SonicMono: SonicMono_default,\n SpectrumAdaptive: SpectrumAdaptive_default,\n SpectrumBrand: SpectrumBrand_default,\n SpectrumMono: SpectrumMono_default,\n VerizonAdaptive: VerizonAdaptive_default,\n VerizonBrand: VerizonBrand_default,\n VerizonMono: VerizonMono_default,\n ZayoAdaptive: ZayoAdaptive_default,\n ZayoBrand: ZayoBrand_default,\n ZayoMono: ZayoMono_default\n};\nvar SvgLarge2 = (props) => /* @__PURE__ */ React138.createElement(\"svg\", __spreadValues({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React138.createElement(\"g\", {\n filter: \"url(#filter0_ddd_15_10543)\"\n}, /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 0.625,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 0.625,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"url(#paint0_linear_15_10543)\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M8.73889 5.56084C8.73862 5.55725 8.73835 5.55365 8.73815 5.55005H8.73323C8.73113 5.55179 8.72908 5.55361 8.72703 5.55543C8.72265 5.55932 8.71827 5.56322 8.71336 5.56631C8.69648 5.57697 8.67962 5.58766 8.66275 5.59836C8.60331 5.63605 8.54386 5.67375 8.48344 5.70985C8.4607 5.72346 8.45388 5.73837 8.45411 5.76395C8.45508 5.87297 8.45494 5.98199 8.45481 6.09101V6.09143C8.45476 6.12952 8.45472 6.16761 8.45472 6.2057V6.23567H8.16233V6.4888H8.45472V6.52013C8.45472 6.59766 8.4546 6.6752 8.45449 6.75273C8.45418 6.96245 8.45386 7.17217 8.45583 7.38185C8.45653 7.45487 8.46381 7.52929 8.4802 7.60034C8.51626 7.7569 8.61135 7.86704 8.76636 7.92162C8.86434 7.95613 8.96514 7.95531 9.06636 7.93982C9.12298 7.93113 9.17738 7.9153 9.22755 7.88417L9.21387 7.83498C9.19603 7.7708 9.17822 7.70675 9.15988 7.64088C9.10261 7.67717 9.04181 7.69319 8.9773 7.69566C8.86837 7.69981 8.78841 7.64648 8.75847 7.54286C8.7459 7.49927 8.74112 7.45217 8.74088 7.40666C8.73972 7.17393 8.7399 6.9412 8.74007 6.70847C8.74012 6.64424 8.74017 6.58001 8.74019 6.51578C8.74019 6.51312 8.74027 6.51045 8.7404 6.5077C8.74068 6.5016 8.74121 6.4951 8.74163 6.48731H9.18675V6.23383H8.74014V6.20285C8.74014 5.99653 8.74014 5.7902 8.74005 5.58388C8.74005 5.57626 8.73946 5.56845 8.73889 5.56084Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6747 7.13485H9.44642C9.44697 7.13806 9.44752 7.14126 9.44806 7.14446C9.45079 7.16071 9.45332 7.17679 9.45581 7.1927C9.46233 7.23421 9.46869 7.27471 9.47816 7.31433C9.50216 7.41453 9.54755 7.50434 9.61948 7.57843C9.68497 7.64585 9.76596 7.67992 9.8578 7.6904C9.93498 7.69923 10.0108 7.69281 10.0855 7.67234C10.1947 7.64242 10.2684 7.56689 10.3273 7.4736C10.3414 7.45124 10.3541 7.42789 10.3671 7.40388C10.373 7.39296 10.379 7.38191 10.3853 7.37075C10.4653 7.40608 10.5456 7.44146 10.6288 7.47814C10.6259 7.4839 10.6231 7.4896 10.6204 7.49522C10.6194 7.49735 10.6183 7.49947 10.6173 7.50159L10.6162 7.50392C10.6145 7.50734 10.6128 7.51074 10.6111 7.51411C10.6089 7.5187 10.6065 7.52324 10.6042 7.52775C10.5436 7.64382 10.4689 7.74802 10.3626 7.82587C10.2791 7.88697 10.1847 7.92008 10.0843 7.9361C9.97485 7.95362 9.86481 7.95666 9.75561 7.9334C9.57395 7.89474 9.42832 7.79942 9.32473 7.6417C9.23228 7.50101 9.18406 7.3445 9.17028 7.17645C9.15394 6.97828 9.18118 6.78774 9.26713 6.60777C9.35958 6.41424 9.50262 6.27891 9.71031 6.22544C9.92737 6.16955 10.1367 6.1917 10.3312 6.31023C10.4693 6.39435 10.5559 6.52172 10.6142 6.67119C10.6578 6.78292 10.6743 6.89961 10.6747 7.01916C10.6748 7.02904 10.6748 7.03893 10.6748 7.04888C10.6748 7.06367 10.6748 7.07862 10.6748 7.09398C10.6747 7.10725 10.6747 7.12082 10.6747 7.13485ZM10.3785 6.87712C10.3449 6.67717 10.2075 6.43296 9.88453 6.45497C9.76962 6.46274 9.671 6.50608 9.59498 6.59599C9.52657 6.67693 9.48707 6.77157 9.46786 6.87712H10.3785Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M11.8072 6.30906C11.8007 6.33463 11.7942 6.3602 11.7877 6.38578C11.7845 6.39848 11.7813 6.41119 11.7781 6.42389C11.7738 6.4413 11.7697 6.45875 11.7656 6.47678C11.7642 6.48257 11.7629 6.48842 11.7615 6.49435L11.759 6.50478C11.752 6.5027 11.7465 6.5015 11.7415 6.49947C11.5439 6.41964 11.3834 6.45888 11.247 6.6195C11.1628 6.71863 11.1194 6.83528 11.0906 6.9583C11.0664 7.06139 11.0551 7.16607 11.0549 7.27167C11.0546 7.41724 11.0547 7.56282 11.0547 7.7084C11.0547 7.77701 11.0547 7.84562 11.0547 7.91424V7.94546H10.7609V6.22915H11.0541V6.51458C11.0612 6.50476 11.0676 6.49531 11.0739 6.48623C11.0867 6.46749 11.0985 6.4503 11.112 6.4346C11.2378 6.289 11.3927 6.19773 11.5943 6.19923C11.6728 6.19986 11.7493 6.2139 11.8192 6.25208V6.26197L11.8072 6.30906Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.2442 7.13489H7.02077C7.02671 7.25285 7.0502 7.36351 7.1064 7.4653C7.14163 7.52901 7.18497 7.58567 7.24619 7.62635C7.33061 7.68243 7.4244 7.6987 7.52303 7.69363C7.63539 7.68784 7.73865 7.65878 7.82001 7.57312C7.8699 7.52056 7.90963 7.46115 7.94086 7.39566C7.94247 7.39227 7.9441 7.38889 7.94582 7.38537L7.948 7.3809C7.94966 7.37749 7.95141 7.37389 7.9533 7.36998C7.99508 7.3884 8.03646 7.40665 8.07821 7.42506L8.19974 7.47867C8.19528 7.48707 8.19092 7.49544 8.18661 7.50376C8.18527 7.50634 8.18394 7.50892 8.1826 7.5115C8.1703 7.53528 8.15821 7.55865 8.14493 7.58127C8.07847 7.69445 7.99651 7.79271 7.88192 7.85883C7.80005 7.90603 7.71094 7.93055 7.61845 7.9416C7.5221 7.95309 7.42542 7.95473 7.32973 7.9346C7.13257 7.8931 6.97951 7.78687 6.87472 7.61091C6.79642 7.47944 6.75354 7.33629 6.74027 7.18364C6.72286 6.98311 6.74941 6.79006 6.83666 6.60767C6.92925 6.41414 7.07233 6.27881 7.28016 6.22539C7.4982 6.16935 7.7083 6.19184 7.90341 6.31158C8.04046 6.39571 8.1266 6.52268 8.18442 6.67133C8.22722 6.78142 8.2448 6.89638 8.2442 7.01443C8.24402 7.05328 8.2442 7.09218 8.2442 7.13489ZM7.94996 6.87751C7.89872 6.61988 7.73833 6.43292 7.44534 6.4555C7.33242 6.46419 7.23579 6.5098 7.16181 6.59908C7.09521 6.67949 7.05623 6.77283 7.03729 6.87751H7.94996Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M4.31916 7.95005H4.60152V7.91921C4.60152 7.85597 4.60138 7.79273 4.60123 7.72949C4.60086 7.57058 4.60049 7.41166 4.60245 7.25275C4.60352 7.16308 4.61029 7.07297 4.62204 6.98407C4.63782 6.86448 4.67643 6.75164 4.74391 6.65063C4.81032 6.55121 4.89382 6.47577 5.01759 6.46182C5.15961 6.4458 5.27851 6.50212 5.31318 6.65931C5.32585 6.71665 5.32975 6.77693 5.32998 6.83591C5.33102 7.09628 5.33092 7.35664 5.33082 7.61701C5.33079 7.71673 5.33075 7.81645 5.33077 7.91617C5.33077 7.92374 5.33127 7.93134 5.33176 7.93887C5.33199 7.94237 5.33222 7.94586 5.3324 7.94932H5.61592V7.92099C5.61592 7.85586 5.61577 7.79073 5.61563 7.72559C5.61526 7.56197 5.61489 7.39834 5.61685 7.23475C5.61787 7.14759 5.6246 7.05984 5.63727 6.97365C5.65825 6.83127 5.70842 6.69976 5.80314 6.5889C5.88055 6.49826 5.97755 6.45174 6.09697 6.46004C6.19536 6.46689 6.26873 6.51289 6.30892 6.60671C6.33714 6.67249 6.34266 6.74228 6.34271 6.81264C6.34295 7.08324 6.34291 7.35383 6.34288 7.62442C6.34286 7.72299 6.34285 7.82156 6.34285 7.92012V7.94971H6.62572C6.62614 7.94136 6.62684 7.93417 6.62684 7.92693C6.62685 7.83453 6.6269 7.74213 6.62695 7.64972C6.62713 7.34489 6.62731 7.04003 6.62595 6.73523C6.62567 6.67384 6.61871 6.61129 6.60558 6.5514C6.57694 6.42075 6.50974 6.31433 6.38852 6.25241C6.25258 6.18301 6.10968 6.18238 5.96674 6.22587C5.80606 6.27471 5.69268 6.38412 5.60752 6.52654C5.60241 6.53509 5.59726 6.54363 5.59016 6.55541C5.58785 6.54728 5.58616 6.54115 5.58462 6.5358C5.58369 6.53253 5.58281 6.52955 5.5819 6.52659C5.54036 6.39088 5.46086 6.28798 5.32799 6.23398C5.22496 6.19213 5.11775 6.18793 5.01017 6.21091C4.83269 6.24889 4.70655 6.35666 4.61781 6.51318C4.61534 6.51753 4.61289 6.52188 4.61045 6.52624C4.6088 6.52917 4.60716 6.5321 4.60551 6.53504C4.60468 6.53471 4.60386 6.53437 4.60302 6.53402C4.60226 6.53371 4.6015 6.53341 4.60073 6.53311V6.22905H4.31916V7.95005Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.5865 6.10615V4.75H19.0771V6.10615H18.5039V6.44519H18.3161V6.5808H17.3475V6.44519H17.1598V6.10615H16.5865Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M13.8192 6.10618V4.75003H16.3097V6.10618H15.7365V6.44522H15.5487V6.58083H14.5802V6.44522H14.3924V6.10618H13.8192Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.3538 4.75V6.10615H19.927V6.44519H20.1148V6.5808H21.0834V6.44519H21.2712V6.10615H21.8444V4.75H19.3538Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M22.1211 6.10615V4.75H24.6117V6.10615H24.0385V6.44519H23.8507V6.5808H22.8821V6.44519H22.6943V6.10615H22.1211Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.8884 4.75V6.10615H25.4616V6.44519H25.6494V6.5808H26.618V6.44519H26.8057V6.10615H27.379V4.75H24.8884Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.6557 6.10615V4.75H30.1463V6.10615H29.573V6.44519H29.3853V6.5808H28.4167V6.44519H28.2289V6.10615H27.6557Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.423 4.75V6.10615H30.9962V6.44519H31.184V6.5808H32.1525V6.44519H32.3403V6.10615H32.9135V4.75H30.423Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M33.1903 6.10615V4.75H35.6808V6.10615H35.1076V6.44519H34.9198V6.5808H33.9513V6.44519H33.7635V6.10615H33.1903Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.3097 8.75V7.39385H15.7365V7.05481H15.5487V6.9192H14.5802V7.05481H14.3924V7.39385H13.8192V8.75H16.3097Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.0771 7.39382V8.74997H16.5865V7.39382H17.1598V7.05478H17.3475V6.91917H18.3161V7.05478H18.5039V7.39382H19.0771Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M21.8444 8.74997V7.39382H21.2712V7.05478H21.0834V6.91917H20.1148V7.05478H19.927V7.39382H19.3538V8.74997H21.8444Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.6117 7.39382V8.74997H22.1211V7.39382H22.6943V7.05478H22.8821V6.91917H23.8507V7.05478H24.0385V7.39382H24.6117Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.379 8.74997V7.39382H26.8057V7.05478H26.618V6.91917H25.6494V7.05478H25.4616V7.39382H24.8884V8.74997H27.379Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.1463 7.39382V8.74997H27.6557V7.39382H28.2289V7.05478H28.4167V6.91917H29.3853V7.05478H29.573V7.39382H30.1463Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M32.9135 8.74997V7.39382H32.3403V7.05478H32.1525V6.91917H31.184V7.05478H30.9962V7.39382H30.423V8.74997H32.9135Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M35.6808 7.39382V8.74997H33.1903V7.39382H33.7635V7.05478H33.9513V6.91917H34.9198V7.05478H35.1076V7.39382H35.6808Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React138.createElement(\"g\", {\n filter: \"url(#filter1_ddd_15_10543)\"\n}, /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 13.875,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 13.875,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"url(#paint1_linear_15_10543)\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M8.73889 18.8108C8.73862 18.8072 8.73835 18.8037 8.73815 18.8H8.73323C8.73113 18.8018 8.72908 18.8036 8.72703 18.8054C8.72265 18.8093 8.71827 18.8132 8.71336 18.8163C8.69648 18.827 8.67962 18.8377 8.66275 18.8484C8.60331 18.8861 8.54386 18.9238 8.48344 18.9598C8.4607 18.9735 8.45388 18.9884 8.45411 19.0139C8.45508 19.123 8.45494 19.232 8.45481 19.341V19.3414C8.45476 19.3795 8.45472 19.4176 8.45472 19.4557V19.4857H8.16233V19.7388H8.45472V19.7701C8.45472 19.8477 8.4546 19.9252 8.45449 20.0027C8.45418 20.2125 8.45386 20.4222 8.45583 20.6319C8.45653 20.7049 8.46381 20.7793 8.4802 20.8503C8.51626 21.0069 8.61135 21.117 8.76636 21.1716C8.86434 21.2061 8.96514 21.2053 9.06636 21.1898C9.12298 21.1811 9.17738 21.1653 9.22755 21.1342L9.21387 21.085C9.19603 21.0208 9.17822 20.9567 9.15988 20.8909C9.10261 20.9272 9.04181 20.9432 8.9773 20.9457C8.86837 20.9498 8.78841 20.8965 8.75847 20.7929C8.7459 20.7493 8.74112 20.7022 8.74088 20.6567C8.73972 20.4239 8.7399 20.1912 8.74007 19.9585C8.74012 19.8942 8.74017 19.83 8.74019 19.7658C8.74019 19.7631 8.74027 19.7604 8.7404 19.7577C8.74068 19.7516 8.74121 19.7451 8.74163 19.7373H9.18675V19.4838H8.74014V19.4528C8.74014 19.2465 8.74014 19.0402 8.74005 18.8339C8.74005 18.8263 8.73946 18.8184 8.73889 18.8108Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6747 20.3848H9.44642C9.44697 20.3881 9.44752 20.3913 9.44806 20.3945C9.45079 20.4107 9.45332 20.4268 9.45581 20.4427C9.46233 20.4842 9.46869 20.5247 9.47816 20.5643C9.50216 20.6645 9.54755 20.7543 9.61948 20.8284C9.68497 20.8958 9.76596 20.9299 9.8578 20.9404C9.93498 20.9492 10.0108 20.9428 10.0855 20.9223C10.1947 20.8924 10.2684 20.8169 10.3273 20.7236C10.3414 20.7012 10.3541 20.6779 10.3671 20.6539C10.373 20.643 10.379 20.6319 10.3853 20.6208C10.4653 20.6561 10.5456 20.6915 10.6288 20.7281C10.6259 20.7339 10.6231 20.7396 10.6204 20.7452C10.6194 20.7474 10.6183 20.7495 10.6173 20.7516L10.6162 20.7539C10.6145 20.7573 10.6128 20.7607 10.6111 20.7641C10.6089 20.7687 10.6065 20.7732 10.6042 20.7777C10.5436 20.8938 10.4689 20.998 10.3626 21.0759C10.2791 21.137 10.1847 21.1701 10.0843 21.1861C9.97485 21.2036 9.86481 21.2067 9.75561 21.1834C9.57395 21.1447 9.42832 21.0494 9.32473 20.8917C9.23228 20.751 9.18406 20.5945 9.17028 20.4264C9.15394 20.2283 9.18118 20.0377 9.26713 19.8578C9.35958 19.6642 9.50262 19.5289 9.71031 19.4754C9.92737 19.4195 10.1367 19.4417 10.3312 19.5602C10.4693 19.6444 10.5559 19.7717 10.6142 19.9212C10.6578 20.0329 10.6743 20.1496 10.6747 20.2692C10.6748 20.279 10.6748 20.2889 10.6748 20.2989C10.6748 20.3137 10.6748 20.3286 10.6748 20.344C10.6747 20.3572 10.6747 20.3708 10.6747 20.3848ZM10.3785 20.1271C10.3449 19.9272 10.2075 19.683 9.88453 19.705C9.76962 19.7127 9.671 19.7561 9.59498 19.846C9.52657 19.9269 9.48707 20.0216 9.46786 20.1271H10.3785Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M11.8072 19.5591C11.8007 19.5846 11.7942 19.6102 11.7877 19.6358C11.7845 19.6485 11.7813 19.6612 11.7781 19.6739C11.7738 19.6913 11.7697 19.7088 11.7656 19.7268C11.7642 19.7326 11.7629 19.7384 11.7615 19.7443L11.759 19.7548C11.752 19.7527 11.7465 19.7515 11.7415 19.7495C11.5439 19.6696 11.3834 19.7089 11.247 19.8695C11.1628 19.9686 11.1194 20.0853 11.0906 20.2083C11.0664 20.3114 11.0551 20.4161 11.0549 20.5217C11.0546 20.6672 11.0547 20.8128 11.0547 20.9584C11.0547 21.027 11.0547 21.0956 11.0547 21.1642V21.1955H10.7609V19.4792H11.0541V19.7646C11.0612 19.7548 11.0676 19.7453 11.0739 19.7362C11.0867 19.7175 11.0985 19.7003 11.112 19.6846C11.2378 19.539 11.3927 19.4477 11.5943 19.4492C11.6728 19.4499 11.7493 19.4639 11.8192 19.5021V19.512L11.8072 19.5591Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.2442 20.3849H7.02077C7.02671 20.5028 7.0502 20.6135 7.1064 20.7153C7.14163 20.779 7.18497 20.8357 7.24619 20.8763C7.33061 20.9324 7.4244 20.9487 7.52303 20.9436C7.63539 20.9378 7.73865 20.9088 7.82001 20.8231C7.8699 20.7706 7.90963 20.7111 7.94086 20.6457C7.94247 20.6423 7.9441 20.6389 7.94582 20.6354L7.948 20.6309C7.94966 20.6275 7.95141 20.6239 7.9533 20.62C7.99508 20.6384 8.03646 20.6567 8.07821 20.6751L8.19974 20.7287C8.19528 20.7371 8.19092 20.7454 8.18661 20.7538C8.18527 20.7563 8.18394 20.7589 8.1826 20.7615C8.1703 20.7853 8.15821 20.8087 8.14493 20.8313C8.07847 20.9444 7.99651 21.0427 7.88192 21.1088C7.80005 21.156 7.71094 21.1805 7.61845 21.1916C7.5221 21.2031 7.42542 21.2047 7.32973 21.1846C7.13257 21.1431 6.97951 21.0369 6.87472 20.8609C6.79642 20.7294 6.75354 20.5863 6.74027 20.4336C6.72286 20.2331 6.74941 20.0401 6.83666 19.8577C6.92925 19.6641 7.07233 19.5288 7.28016 19.4754C7.4982 19.4194 7.7083 19.4418 7.90341 19.5616C8.04046 19.6457 8.1266 19.7727 8.18442 19.9213C8.22722 20.0314 8.2448 20.1464 8.2442 20.2644C8.24402 20.3033 8.2442 20.3422 8.2442 20.3849ZM7.94996 20.1275C7.89872 19.8699 7.73833 19.6829 7.44534 19.7055C7.33242 19.7142 7.23579 19.7598 7.16181 19.8491C7.09521 19.9295 7.05623 20.0228 7.03729 20.1275H7.94996Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M4.31916 21.2H4.60152V21.1692C4.60152 21.106 4.60138 21.0427 4.60123 20.9795C4.60086 20.8206 4.60049 20.6617 4.60245 20.5028C4.60352 20.4131 4.61029 20.323 4.62204 20.2341C4.63782 20.1145 4.67643 20.0016 4.74391 19.9006C4.81032 19.8012 4.89382 19.7258 5.01759 19.7118C5.15961 19.6958 5.27851 19.7521 5.31318 19.9093C5.32585 19.9666 5.32975 20.0269 5.32998 20.0859C5.33102 20.3463 5.33092 20.6066 5.33082 20.867C5.33079 20.9667 5.33075 21.0664 5.33077 21.1662C5.33077 21.1737 5.33127 21.1813 5.33176 21.1889C5.33199 21.1924 5.33222 21.1959 5.3324 21.1993H5.61592V21.171C5.61592 21.1059 5.61577 21.0407 5.61563 20.9756C5.61526 20.812 5.61489 20.6483 5.61685 20.4847C5.61787 20.3976 5.6246 20.3098 5.63727 20.2236C5.65825 20.0813 5.70842 19.9498 5.80314 19.8389C5.88055 19.7483 5.97755 19.7017 6.09697 19.71C6.19536 19.7169 6.26873 19.7629 6.30892 19.8567C6.33714 19.9225 6.34266 19.9923 6.34271 20.0626C6.34295 20.3332 6.34291 20.6038 6.34288 20.8744C6.34286 20.973 6.34285 21.0716 6.34285 21.1701V21.1997H6.62572C6.62614 21.1914 6.62684 21.1842 6.62684 21.1769C6.62685 21.0845 6.6269 20.9921 6.62695 20.8997C6.62713 20.5949 6.62731 20.29 6.62595 19.9852C6.62567 19.9238 6.61871 19.8613 6.60558 19.8014C6.57694 19.6708 6.50974 19.5643 6.38852 19.5024C6.25258 19.433 6.10968 19.4324 5.96674 19.4759C5.80606 19.5247 5.69268 19.6341 5.60752 19.7765C5.60241 19.7851 5.59726 19.7936 5.59016 19.8054C5.58785 19.7973 5.58616 19.7911 5.58462 19.7858C5.58369 19.7825 5.58281 19.7796 5.5819 19.7766C5.54036 19.6409 5.46086 19.538 5.32799 19.484C5.22496 19.4421 5.11775 19.4379 5.01017 19.4609C4.83269 19.4989 4.70655 19.6067 4.61781 19.7632C4.61534 19.7675 4.61289 19.7719 4.61045 19.7762C4.6088 19.7792 4.60716 19.7821 4.60551 19.785C4.60468 19.7847 4.60386 19.7844 4.60302 19.784C4.60226 19.7837 4.6015 19.7834 4.60073 19.7831V19.4791H4.31916V21.2Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.5865 19.3562V18H19.0771V19.3562H18.5039V19.6952H18.3161V19.8308H17.3475V19.6952H17.1598V19.3562H16.5865Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M13.8192 19.3562V18H16.3097V19.3562H15.7365V19.6952H15.5487V19.8308H14.5802V19.6952H14.3924V19.3562H13.8192Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.3538 18V19.3562H19.927V19.6952H20.1148V19.8308H21.0834V19.6952H21.2712V19.3562H21.8444V18H19.3538Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M22.1211 19.3562V18H24.6117V19.3562H24.0385V19.6952H23.8507V19.8308H22.8821V19.6952H22.6943V19.3562H22.1211Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.8884 18V19.3562H25.4616V19.6952H25.6494V19.8308H26.618V19.6952H26.8057V19.3562H27.379V18H24.8884Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.6557 19.3562V18H30.1463V19.3562H29.573V19.6952H29.3853V19.8308H28.4167V19.6952H28.2289V19.3562H27.6557Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.423 18V19.3562H30.9962V19.6952H31.184V19.8308H32.1525V19.6952H32.3403V19.3562H32.9135V18H30.423Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M33.1903 19.3562V18H35.6808V19.3562H35.1076V19.6952H34.9198V19.8308H33.9513V19.6952H33.7635V19.3562H33.1903Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.3097 22V20.6438H15.7365V20.3048H15.5487V20.1692H14.5802V20.3048H14.3924V20.6438H13.8192V22H16.3097Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.0771 20.6438V22H16.5865V20.6438H17.1598V20.3048H17.3475V20.1692H18.3161V20.3048H18.5039V20.6438H19.0771Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M21.8444 22V20.6438H21.2712V20.3048H21.0834V20.1692H20.1148V20.3048H19.927V20.6438H19.3538V22H21.8444Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.6117 20.6438V22H22.1211V20.6438H22.6943V20.3048H22.8821V20.1692H23.8507V20.3048H24.0385V20.6438H24.6117Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.379 22V20.6438H26.8057V20.3048H26.618V20.1692H25.6494V20.3048H25.4616V20.6438H24.8884V22H27.379Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.1463 20.6438V22H27.6557V20.6438H28.2289V20.3048H28.4167V20.1692H29.3853V20.3048H29.573V20.6438H30.1463Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M32.9135 22V20.6438H32.3403V20.3048H32.1525V20.1692H31.184V20.3048H30.9962V20.6438H30.423V22H32.9135Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M35.6808 20.6438V22H33.1903V20.6438H33.7635V20.3048H33.9513V20.1692H34.9198V20.3048H35.1076V20.6438H35.6808Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React138.createElement(\"g\", {\n filter: \"url(#filter2_ddd_15_10543)\"\n}, /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 27.125,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React138.createElement(\"rect\", {\n y: 27.125,\n width: 40,\n height: 12.25,\n rx: 2,\n fill: \"url(#paint2_linear_15_10543)\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M8.73889 32.0608C8.73862 32.0572 8.73835 32.0537 8.73815 32.05H8.73323C8.73113 32.0518 8.72908 32.0536 8.72703 32.0554C8.72265 32.0593 8.71827 32.0632 8.71336 32.0663C8.69648 32.077 8.67962 32.0877 8.66275 32.0984C8.60331 32.1361 8.54386 32.1738 8.48344 32.2098C8.4607 32.2235 8.45388 32.2384 8.45411 32.2639C8.45508 32.373 8.45494 32.482 8.45481 32.591V32.5914C8.45476 32.6295 8.45472 32.6676 8.45472 32.7057V32.7357H8.16233V32.9888H8.45472V33.0201C8.45472 33.0977 8.4546 33.1752 8.45449 33.2527C8.45418 33.4625 8.45386 33.6722 8.45583 33.8819C8.45653 33.9549 8.46381 34.0293 8.4802 34.1003C8.51626 34.2569 8.61135 34.367 8.76636 34.4216C8.86434 34.4561 8.96514 34.4553 9.06636 34.4398C9.12298 34.4311 9.17738 34.4153 9.22755 34.3842L9.21387 34.335C9.19603 34.2708 9.17822 34.2067 9.15988 34.1409C9.10261 34.1772 9.04181 34.1932 8.9773 34.1957C8.86837 34.1998 8.78841 34.1465 8.75847 34.0429C8.7459 33.9993 8.74112 33.9522 8.74088 33.9067C8.73972 33.6739 8.7399 33.4412 8.74007 33.2085C8.74012 33.1442 8.74017 33.08 8.74019 33.0158C8.74019 33.0131 8.74027 33.0104 8.7404 33.0077C8.74068 33.0016 8.74121 32.9951 8.74163 32.9873H9.18675V32.7338H8.74014V32.7028C8.74014 32.4965 8.74014 32.2902 8.74005 32.0839C8.74005 32.0763 8.73946 32.0684 8.73889 32.0608Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6747 33.6348H9.44642C9.44697 33.6381 9.44752 33.6413 9.44806 33.6445C9.45079 33.6607 9.45332 33.6768 9.45581 33.6927C9.46233 33.7342 9.46869 33.7747 9.47816 33.8143C9.50216 33.9145 9.54755 34.0043 9.61948 34.0784C9.68497 34.1458 9.76596 34.1799 9.8578 34.1904C9.93498 34.1992 10.0108 34.1928 10.0855 34.1723C10.1947 34.1424 10.2684 34.0669 10.3273 33.9736C10.3414 33.9512 10.3541 33.9279 10.3671 33.9039C10.373 33.893 10.379 33.8819 10.3853 33.8708C10.4653 33.9061 10.5456 33.9415 10.6288 33.9781C10.6259 33.9839 10.6231 33.9896 10.6204 33.9952C10.6194 33.9974 10.6183 33.9995 10.6173 34.0016L10.6162 34.0039C10.6145 34.0073 10.6128 34.0107 10.6111 34.0141C10.6089 34.0187 10.6065 34.0232 10.6042 34.0277C10.5436 34.1438 10.4689 34.248 10.3626 34.3259C10.2791 34.387 10.1847 34.4201 10.0843 34.4361C9.97485 34.4536 9.86481 34.4567 9.75561 34.4334C9.57395 34.3947 9.42832 34.2994 9.32473 34.1417C9.23228 34.001 9.18406 33.8445 9.17028 33.6764C9.15394 33.4783 9.18118 33.2877 9.26713 33.1078C9.35958 32.9142 9.50262 32.7789 9.71031 32.7254C9.92737 32.6695 10.1367 32.6917 10.3312 32.8102C10.4693 32.8944 10.5559 33.0217 10.6142 33.1712C10.6578 33.2829 10.6743 33.3996 10.6747 33.5192C10.6748 33.529 10.6748 33.5389 10.6748 33.5489C10.6748 33.5637 10.6748 33.5786 10.6748 33.594C10.6747 33.6072 10.6747 33.6208 10.6747 33.6348ZM10.3785 33.3771C10.3449 33.1772 10.2075 32.933 9.88453 32.955C9.76962 32.9627 9.671 33.0061 9.59498 33.096C9.52657 33.1769 9.48707 33.2716 9.46786 33.3771H10.3785Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M11.8072 32.8091C11.8007 32.8346 11.7942 32.8602 11.7877 32.8858C11.7845 32.8985 11.7813 32.9112 11.7781 32.9239C11.7738 32.9413 11.7697 32.9588 11.7656 32.9768C11.7642 32.9826 11.7629 32.9884 11.7615 32.9943L11.759 33.0048C11.752 33.0027 11.7465 33.0015 11.7415 32.9995C11.5439 32.9196 11.3834 32.9589 11.247 33.1195C11.1628 33.2186 11.1194 33.3353 11.0906 33.4583C11.0664 33.5614 11.0551 33.6661 11.0549 33.7717C11.0546 33.9172 11.0547 34.0628 11.0547 34.2084C11.0547 34.277 11.0547 34.3456 11.0547 34.4142V34.4455H10.7609V32.7292H11.0541V33.0146C11.0612 33.0048 11.0676 32.9953 11.0739 32.9862C11.0867 32.9675 11.0985 32.9503 11.112 32.9346C11.2378 32.789 11.3927 32.6977 11.5943 32.6992C11.6728 32.6999 11.7493 32.7139 11.8192 32.7521V32.762L11.8072 32.8091Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.2442 33.6349H7.02077C7.02671 33.7528 7.0502 33.8635 7.1064 33.9653C7.14163 34.029 7.18497 34.0857 7.24619 34.1263C7.33061 34.1824 7.4244 34.1987 7.52303 34.1936C7.63539 34.1878 7.73865 34.1588 7.82001 34.0731C7.8699 34.0206 7.90963 33.9611 7.94086 33.8957C7.94247 33.8923 7.9441 33.8889 7.94582 33.8854L7.948 33.8809C7.94966 33.8775 7.95141 33.8739 7.9533 33.87C7.99508 33.8884 8.03646 33.9067 8.07821 33.9251L8.19974 33.9787C8.19528 33.9871 8.19092 33.9954 8.18661 34.0038C8.18527 34.0063 8.18394 34.0089 8.1826 34.0115C8.1703 34.0353 8.15821 34.0587 8.14493 34.0813C8.07847 34.1944 7.99651 34.2927 7.88192 34.3588C7.80005 34.406 7.71094 34.4305 7.61845 34.4416C7.5221 34.4531 7.42542 34.4547 7.32973 34.4346C7.13257 34.3931 6.97951 34.2869 6.87472 34.1109C6.79642 33.9794 6.75354 33.8363 6.74027 33.6836C6.72286 33.4831 6.74941 33.2901 6.83666 33.1077C6.92925 32.9141 7.07233 32.7788 7.28016 32.7254C7.4982 32.6694 7.7083 32.6918 7.90341 32.8116C8.04046 32.8957 8.1266 33.0227 8.18442 33.1713C8.22722 33.2814 8.2448 33.3964 8.2442 33.5144C8.24402 33.5533 8.2442 33.5922 8.2442 33.6349ZM7.94996 33.3775C7.89872 33.1199 7.73833 32.9329 7.44534 32.9555C7.33242 32.9642 7.23579 33.0098 7.16181 33.0991C7.09521 33.1795 7.05623 33.2728 7.03729 33.3775H7.94996Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M4.31916 34.45H4.60152V34.4192C4.60152 34.356 4.60138 34.2927 4.60123 34.2295C4.60086 34.0706 4.60049 33.9117 4.60245 33.7528C4.60352 33.6631 4.61029 33.573 4.62204 33.4841C4.63782 33.3645 4.67643 33.2516 4.74391 33.1506C4.81032 33.0512 4.89382 32.9758 5.01759 32.9618C5.15961 32.9458 5.27851 33.0021 5.31318 33.1593C5.32585 33.2166 5.32975 33.2769 5.32998 33.3359C5.33102 33.5963 5.33092 33.8566 5.33082 34.117C5.33079 34.2167 5.33075 34.3164 5.33077 34.4162C5.33077 34.4237 5.33127 34.4313 5.33176 34.4389C5.33199 34.4424 5.33222 34.4459 5.3324 34.4493H5.61592V34.421C5.61592 34.3559 5.61577 34.2907 5.61563 34.2256C5.61526 34.062 5.61489 33.8983 5.61685 33.7347C5.61787 33.6476 5.6246 33.5598 5.63727 33.4736C5.65825 33.3313 5.70842 33.1998 5.80314 33.0889C5.88055 32.9983 5.97755 32.9517 6.09697 32.96C6.19536 32.9669 6.26873 33.0129 6.30892 33.1067C6.33714 33.1725 6.34266 33.2423 6.34271 33.3126C6.34295 33.5832 6.34291 33.8538 6.34288 34.1244C6.34286 34.223 6.34285 34.3216 6.34285 34.4201V34.4497H6.62572C6.62614 34.4414 6.62684 34.4342 6.62684 34.4269C6.62685 34.3345 6.6269 34.2421 6.62695 34.1497C6.62713 33.8449 6.62731 33.54 6.62595 33.2352C6.62567 33.1738 6.61871 33.1113 6.60558 33.0514C6.57694 32.9208 6.50974 32.8143 6.38852 32.7524C6.25258 32.683 6.10968 32.6824 5.96674 32.7259C5.80606 32.7747 5.69268 32.8841 5.60752 33.0265C5.60241 33.0351 5.59726 33.0436 5.59016 33.0554C5.58785 33.0473 5.58616 33.0411 5.58462 33.0358C5.58369 33.0325 5.58281 33.0296 5.5819 33.0266C5.54036 32.8909 5.46086 32.788 5.32799 32.734C5.22496 32.6921 5.11775 32.6879 5.01017 32.7109C4.83269 32.7489 4.70655 32.8567 4.61781 33.0132C4.61534 33.0175 4.61289 33.0219 4.61045 33.0262C4.6088 33.0292 4.60716 33.0321 4.60551 33.035C4.60468 33.0347 4.60386 33.0344 4.60302 33.034C4.60226 33.0337 4.6015 33.0334 4.60073 33.0331V32.7291H4.31916V34.45Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.5865 32.6062V31.25H19.0771V32.6062H18.5039V32.9452H18.3161V33.0808H17.3475V32.9452H17.1598V32.6062H16.5865Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M13.8192 32.6062V31.25H16.3097V32.6062H15.7365V32.9452H15.5487V33.0808H14.5802V32.9452H14.3924V32.6062H13.8192Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.3538 31.25V32.6062H19.927V32.9452H20.1148V33.0808H21.0834V32.9452H21.2712V32.6062H21.8444V31.25H19.3538Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M22.1211 32.6062V31.25H24.6117V32.6062H24.0385V32.9452H23.8507V33.0808H22.8821V32.9452H22.6943V32.6062H22.1211Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.8884 31.25V32.6062H25.4616V32.9452H25.6494V33.0808H26.618V32.9452H26.8057V32.6062H27.379V31.25H24.8884Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.6557 32.6062V31.25H30.1463V32.6062H29.573V32.9452H29.3853V33.0808H28.4167V32.9452H28.2289V32.6062H27.6557Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.423 31.25V32.6062H30.9962V32.9452H31.184V33.0808H32.1525V32.9452H32.3403V32.6062H32.9135V31.25H30.423Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M33.1903 32.6062V31.25H35.6808V32.6062H35.1076V32.9452H34.9198V33.0808H33.9513V32.9452H33.7635V32.6062H33.1903Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M16.3097 35.25V33.8938H15.7365V33.5548H15.5487V33.4192H14.5802V33.5548H14.3924V33.8938H13.8192V35.25H16.3097Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M19.0771 33.8938V35.25H16.5865V33.8938H17.1598V33.5548H17.3475V33.4192H18.3161V33.5548H18.5039V33.8938H19.0771Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M21.8444 35.25V33.8938H21.2712V33.5548H21.0834V33.4192H20.1148V33.5548H19.927V33.8938H19.3538V35.25H21.8444Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M24.6117 33.8938V35.25H22.1211V33.8938H22.6943V33.5548H22.8821V33.4192H23.8507V33.5548H24.0385V33.8938H24.6117Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M27.379 35.25V33.8938H26.8057V33.5548H26.618V33.4192H25.6494V33.5548H25.4616V33.8938H24.8884V35.25H27.379Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M30.1463 33.8938V35.25H27.6557V33.8938H28.2289V33.5548H28.4167V33.4192H29.3853V33.5548H29.573V33.8938H30.1463Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M32.9135 35.25V33.8938H32.3403V33.5548H32.1525V33.4192H31.184V33.5548H30.9962V33.8938H30.423V35.25H32.9135Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React138.createElement(\"path\", {\n d: \"M35.6808 33.8938V35.25H33.1903V33.8938H33.7635V33.5548H33.9513V33.4192H34.9198V33.5548H35.1076V33.8938H35.6808Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React138.createElement(\"defs\", null, /* @__PURE__ */ React138.createElement(\"filter\", {\n id: \"filter0_ddd_15_10543\",\n x: -3,\n y: -0.375,\n width: 46,\n height: 18.25,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React138.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10543\",\n result: \"effect2_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", null), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10543\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10543\",\n result: \"shape\"\n})), /* @__PURE__ */ React138.createElement(\"filter\", {\n id: \"filter1_ddd_15_10543\",\n x: -3,\n y: 12.875,\n width: 46,\n height: 18.25,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React138.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10543\",\n result: \"effect2_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", null), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10543\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10543\",\n result: \"shape\"\n})), /* @__PURE__ */ React138.createElement(\"filter\", {\n id: \"filter2_ddd_15_10543\",\n x: -3,\n y: 26.125,\n width: 46,\n height: 18.25,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React138.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React138.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10543\",\n result: \"effect2_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React138.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feOffset\", null), /* @__PURE__ */ React138.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React138.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10543\",\n result: \"effect3_dropShadow_15_10543\"\n}), /* @__PURE__ */ React138.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10543\",\n result: \"shape\"\n})), /* @__PURE__ */ React138.createElement(\"linearGradient\", {\n id: \"paint0_linear_15_10543\",\n x1: 36.4825,\n y1: 1.08929,\n x2: 34.0681,\n y2: 17.2033,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React138.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React138.createElement(\"linearGradient\", {\n id: \"paint1_linear_15_10543\",\n x1: 36.4825,\n y1: 14.3393,\n x2: 34.0681,\n y2: 30.4533,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React138.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React138.createElement(\"linearGradient\", {\n id: \"paint2_linear_15_10543\",\n x1: 36.4825,\n y1: 27.5893,\n x2: 34.0681,\n y2: 43.7033,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React138.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React138.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar large_default2 = SvgLarge2;\nvar SvgMedium2 = (props) => /* @__PURE__ */ React139.createElement(\"svg\", __spreadValues({\n width: 28,\n height: 28,\n viewBox: \"0 0 28 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React139.createElement(\"g\", {\n filter: \"url(#filter0_ddd_15_10544)\"\n}, /* @__PURE__ */ React139.createElement(\"rect\", {\n width: 28,\n height: 8.86667,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React139.createElement(\"rect\", {\n width: 28,\n height: 8.86667,\n rx: 2,\n fill: \"url(#paint0_linear_15_10544)\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M6.11722 3.60094C6.11703 3.59842 6.11684 3.59591 6.1167 3.59338H6.11325C6.11178 3.5946 6.11035 3.59587 6.10892 3.59715C6.10585 3.59988 6.10278 3.60261 6.09935 3.60477C6.08753 3.61223 6.07573 3.61971 6.06392 3.6272C6.02231 3.65358 5.98069 3.67998 5.93841 3.70524C5.92249 3.71477 5.91771 3.72521 5.91787 3.74311C5.91855 3.81943 5.91845 3.89574 5.91836 3.97205V3.97235C5.91833 3.99901 5.9183 4.02567 5.9183 4.05234V4.07332H5.71362V4.25051H5.9183V4.27244C5.9183 4.32671 5.91822 4.38099 5.91814 4.43526C5.91792 4.58206 5.9177 4.72887 5.91908 4.87565C5.91956 4.92676 5.92466 4.97886 5.93613 5.02859C5.96137 5.13818 6.02794 5.21527 6.13645 5.25348C6.20503 5.27764 6.27559 5.27707 6.34645 5.26622C6.38608 5.26014 6.42416 5.24906 6.45928 5.22727L6.4497 5.19284C6.43721 5.14791 6.42475 5.10307 6.41191 5.05696C6.37182 5.08237 6.32926 5.09359 6.2841 5.09531C6.20786 5.09821 6.15188 5.06088 6.13093 4.98835C6.12212 4.95784 6.11878 4.92487 6.11861 4.89301C6.1178 4.7301 6.11792 4.56719 6.11804 4.40428C6.11808 4.35932 6.11811 4.31436 6.11813 4.2694C6.11813 4.26753 6.11818 4.26566 6.11827 4.26374C6.11847 4.25947 6.11884 4.25492 6.11913 4.24946H6.43072V4.07203H6.11809V4.05034C6.11809 3.90592 6.11809 3.76149 6.11803 3.61707C6.11803 3.61173 6.11762 3.60626 6.11722 3.60094Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.4723 4.70274H6.61249C6.61288 4.70499 6.61326 4.70723 6.61363 4.70947C6.61555 4.72085 6.61731 4.7321 6.61906 4.74324C6.62362 4.7723 6.62807 4.80065 6.63471 4.82838C6.6515 4.89852 6.68328 4.96139 6.73363 5.01325C6.77947 5.06044 6.83616 5.0843 6.90046 5.09163C6.95448 5.09781 7.00757 5.09332 7.05984 5.07899C7.13631 5.05804 7.1879 5.00517 7.22913 4.93987C7.239 4.92422 7.24786 4.90787 7.25697 4.89106C7.26112 4.88342 7.26531 4.87569 7.26967 4.86788C7.32572 4.89261 7.38189 4.91737 7.44014 4.94305C7.43813 4.94708 7.4362 4.95107 7.43428 4.955C7.43355 4.9565 7.43283 4.95798 7.43211 4.95946L7.43131 4.96109C7.43014 4.96349 7.42897 4.96587 7.42779 4.96823C7.42619 4.97144 7.42457 4.97462 7.42292 4.97777C7.38049 5.05902 7.32825 5.13196 7.25382 5.18646C7.19534 5.22923 7.12926 5.2524 7.05903 5.26362C6.98239 5.27588 6.90536 5.27801 6.82892 5.26173C6.70176 5.23467 6.59982 5.16794 6.5273 5.05754C6.46259 4.95906 6.42884 4.8495 6.41919 4.73186C6.40775 4.59315 6.42682 4.45977 6.48699 4.33379C6.5517 4.19832 6.65183 4.10359 6.79721 4.06615C6.94915 4.02703 7.09567 4.04254 7.23186 4.12551C7.32848 4.1844 7.3891 4.27355 7.4299 4.37818C7.46044 4.45639 7.47197 4.53808 7.4723 4.62176C7.47232 4.62868 7.47234 4.6356 7.47234 4.64257C7.47235 4.65292 7.47233 4.66339 7.47232 4.67413C7.47231 4.68342 7.4723 4.69292 7.4723 4.70274ZM7.26496 4.52234C7.24144 4.38237 7.14525 4.21142 6.91917 4.22683C6.83873 4.23227 6.76969 4.26261 6.71648 4.32555C6.66859 4.3822 6.64095 4.44845 6.6275 4.52234H7.26496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M8.26503 4.12469C8.26047 4.14259 8.25591 4.16049 8.25139 4.1784C8.24915 4.18729 8.24691 4.19618 8.24469 4.20507C8.24165 4.21726 8.23881 4.22948 8.23588 4.2421C8.23494 4.24615 8.23399 4.25024 8.23302 4.25439L8.2313 4.26169C8.22636 4.26024 8.22256 4.2594 8.21902 4.25798C8.08069 4.2021 7.96838 4.22957 7.87287 4.342C7.81394 4.41139 7.78359 4.49305 7.76342 4.57916C7.74649 4.65132 7.7386 4.7246 7.73844 4.79852C7.73821 4.90042 7.73825 5.00232 7.73828 5.10423C7.7383 5.15226 7.73832 5.20029 7.73831 5.24832V5.27017H7.5326V4.06876H7.73788V4.26855C7.74282 4.26168 7.74735 4.25507 7.7517 4.24871C7.76069 4.2356 7.76893 4.22356 7.77843 4.21257C7.86644 4.11065 7.97491 4.04676 8.11597 4.04781C8.17094 4.04825 8.22451 4.05808 8.27341 4.0848V4.09173L8.26503 4.12469Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.77094 4.70278H4.91453C4.91869 4.78534 4.93513 4.86281 4.97447 4.93406C4.99913 4.97865 5.02947 5.01832 5.07233 5.04679C5.13142 5.08605 5.19708 5.09744 5.26611 5.09389C5.34477 5.08984 5.41705 5.0695 5.474 5.00953C5.50892 4.97274 5.53673 4.93115 5.5586 4.88531C5.55972 4.88294 5.56087 4.88058 5.56207 4.87811L5.56359 4.87498C5.56475 4.87259 5.56598 4.87008 5.5673 4.86734C5.59655 4.88023 5.62552 4.89301 5.65474 4.90589L5.73981 4.94342C5.73669 4.9493 5.73364 4.95516 5.73062 4.96098C5.72968 4.96279 5.72875 4.9646 5.72782 4.9664C5.71921 4.98304 5.71074 4.9994 5.70144 5.01524C5.65492 5.09446 5.59755 5.16325 5.51734 5.20953C5.46003 5.24257 5.39765 5.25973 5.33291 5.26747C5.26546 5.27551 5.19779 5.27666 5.1308 5.26257C4.9928 5.23352 4.88565 5.15916 4.8123 5.03598C4.75749 4.94396 4.72747 4.84375 4.71818 4.7369C4.706 4.59653 4.72458 4.46139 4.78566 4.33372C4.85047 4.19825 4.95063 4.10352 5.09611 4.06612C5.24873 4.0269 5.3958 4.04264 5.53238 4.12646C5.62831 4.18534 5.68861 4.27423 5.72909 4.37828C5.75905 4.45534 5.77136 4.53582 5.77094 4.61845C5.7708 4.64565 5.77094 4.67288 5.77094 4.70278ZM5.56496 4.52261C5.5291 4.34227 5.41682 4.21139 5.21173 4.2272C5.13269 4.23328 5.06505 4.26521 5.01326 4.32771C4.96664 4.38399 4.93935 4.44933 4.9261 4.52261H5.56496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M3.02341 5.27338H3.22106V5.2518C3.22106 5.20753 3.22096 5.16326 3.22086 5.11899C3.2206 5.00775 3.22034 4.89651 3.22171 4.78527C3.22246 4.7225 3.2272 4.65943 3.23542 4.5972C3.24647 4.51348 3.2735 4.4345 3.32073 4.36379C3.36722 4.29419 3.42567 4.24139 3.51231 4.23163C3.61172 4.22041 3.69495 4.25984 3.71922 4.36987C3.72809 4.41 3.73082 4.4522 3.73098 4.49348C3.73171 4.67574 3.73164 4.858 3.73157 5.04026C3.73154 5.11006 3.73152 5.17986 3.73154 5.24967C3.73154 5.25497 3.73188 5.26029 3.73223 5.26556C3.73239 5.26801 3.73255 5.27045 3.73267 5.27288H3.93114V5.25304C3.93114 5.20745 3.93104 5.16186 3.93093 5.11627C3.93067 5.00173 3.93042 4.88719 3.93179 4.77267C3.9325 4.71166 3.93721 4.65024 3.94608 4.5899C3.96077 4.49024 3.99589 4.39818 4.06219 4.32058C4.11638 4.25713 4.18428 4.22457 4.26787 4.23038C4.33674 4.23517 4.38811 4.26737 4.41624 4.33305C4.43599 4.37909 4.43986 4.42794 4.43989 4.4772C4.44006 4.66661 4.44003 4.85603 4.44001 5.04544C4.44 5.11444 4.43999 5.18344 4.43999 5.25244V5.27315H4.638C4.63829 5.2673 4.63878 5.26227 4.63878 5.2572C4.63879 5.19252 4.63882 5.12784 4.63886 5.06315C4.63899 4.84977 4.63911 4.63637 4.63816 4.42301C4.63797 4.38004 4.63309 4.33625 4.6239 4.29433C4.60385 4.20288 4.55681 4.12838 4.47196 4.08504C4.3768 4.03646 4.27677 4.03602 4.17671 4.06646C4.06424 4.10065 3.98487 4.17723 3.92526 4.27693C3.92168 4.28291 3.91808 4.28889 3.91311 4.29713C3.91149 4.29145 3.9103 4.28715 3.90923 4.28341C3.90858 4.28112 3.90796 4.27904 3.90732 4.27696C3.87825 4.18196 3.8226 4.10994 3.72959 4.07213C3.65746 4.04284 3.58242 4.0399 3.50711 4.05599C3.38288 4.08257 3.29458 4.15801 3.23246 4.26757C3.23074 4.27062 3.22902 4.27367 3.22731 4.27672C3.22616 4.27877 3.225 4.28082 3.22385 4.28288C3.22327 4.28264 3.22269 4.28241 3.22211 4.28217C3.22158 4.28195 3.22105 4.28173 3.22051 4.28153V4.06869H3.02341V5.27338Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.6106 3.98263V3.03333H13.354V3.98263H12.9527V4.21996H12.8213V4.31489H12.1433V4.21996H12.0118V3.98263H11.6106Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M9.67342 3.98265V3.03334H11.4168V3.98265H11.0156V4.21998H10.8841V4.31491H10.2061V4.21998H10.0747V3.98265H9.67342Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.5477 3.03333V3.98263H13.9489V4.21996H14.0804V4.31489H14.7584V4.21996H14.8898V3.98263H15.2911V3.03333H13.5477Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.4848 3.98263V3.03333H17.2282V3.98263H16.8269V4.21996H16.6955V4.31489H16.0175V4.21996H15.886V3.98263H15.4848Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.4219 3.03333V3.98263H17.8231V4.21996H17.9546V4.31489H18.6326V4.21996H18.764V3.98263H19.1653V3.03333H17.4219Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.359 3.98263V3.03333H21.1024V3.98263H20.7011V4.21996H20.5697V4.31489H19.8917V4.21996H19.7602V3.98263H19.359Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.2961 3.03333V3.98263H21.6974V4.21996H21.8288V4.31489H22.5068V4.21996H22.6382V3.98263H23.0395V3.03333H21.2961Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.2332 3.98263V3.03333H24.9766V3.98263H24.5753V4.21996H24.4439V4.31489H23.7659V4.21996H23.6345V3.98263H23.2332Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.4168 5.83333V4.88402H11.0156V4.64669H10.8841V4.55176H10.2061V4.64669H10.0747V4.88402H9.67342V5.83333H11.4168Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.354 4.884V5.83331H11.6106V4.884H12.0118V4.64667H12.1433V4.55174H12.8213V4.64667H12.9527V4.884H13.354Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.2911 5.83331V4.884H14.8898V4.64667H14.7584V4.55174H14.0804V4.64667H13.9489V4.884H13.5477V5.83331H15.2911Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.2282 4.884V5.83331H15.4848V4.884H15.886V4.64667H16.0175V4.55174H16.6955V4.64667H16.8269V4.884H17.2282Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.1653 5.83331V4.884H18.764V4.64667H18.6326V4.55174H17.9546V4.64667H17.8231V4.884H17.4219V5.83331H19.1653Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.1024 4.884V5.83331H19.359V4.884H19.7602V4.64667H19.8917V4.55174H20.5697V4.64667H20.7011V4.884H21.1024Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.0395 5.83331V4.884H22.6382V4.64667H22.5068V4.55174H21.8288V4.64667H21.6974V4.884H21.2961V5.83331H23.0395Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M24.9766 4.884V5.83331H23.2332V4.884H23.6345V4.64667H23.7659V4.55174H24.4439V4.64667H24.5753V4.884H24.9766Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React139.createElement(\"g\", {\n filter: \"url(#filter1_ddd_15_10544)\"\n}, /* @__PURE__ */ React139.createElement(\"rect\", {\n y: 9.56665,\n width: 28,\n height: 8.86667,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React139.createElement(\"rect\", {\n y: 9.56665,\n width: 28,\n height: 8.86667,\n rx: 2,\n fill: \"url(#paint1_linear_15_10544)\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M6.11722 13.1676C6.11703 13.1651 6.11684 13.1626 6.1167 13.16H6.11325C6.11178 13.1612 6.11035 13.1625 6.10892 13.1638C6.10585 13.1665 6.10278 13.1693 6.09935 13.1714C6.08753 13.1789 6.07573 13.1864 6.06392 13.1938C6.02231 13.2202 5.98069 13.2466 5.93841 13.2719C5.92249 13.2814 5.91771 13.2919 5.91787 13.3098C5.91855 13.3861 5.91845 13.4624 5.91836 13.5387V13.539C5.91833 13.5657 5.9183 13.5923 5.9183 13.619V13.64H5.71362V13.8172H5.9183V13.8391C5.9183 13.8934 5.91822 13.9476 5.91814 14.0019C5.91792 14.1487 5.9177 14.2955 5.91908 14.4423C5.91956 14.4934 5.92466 14.5455 5.93613 14.5952C5.96137 14.7048 6.02794 14.7819 6.13645 14.8201C6.20503 14.8443 6.27559 14.8437 6.34645 14.8329C6.38608 14.8268 6.42416 14.8157 6.45928 14.7939L6.4497 14.7595C6.43721 14.7146 6.42475 14.6697 6.41191 14.6236C6.37182 14.649 6.32926 14.6602 6.2841 14.662C6.20786 14.6649 6.15188 14.6275 6.13093 14.555C6.12212 14.5245 6.11878 14.4915 6.11861 14.4597C6.1178 14.2967 6.11792 14.1338 6.11804 13.9709C6.11808 13.926 6.11811 13.881 6.11813 13.836C6.11813 13.8342 6.11818 13.8323 6.11827 13.8304C6.11847 13.8261 6.11884 13.8216 6.11913 13.8161H6.43072V13.6387H6.11809V13.617C6.11809 13.4726 6.11809 13.3281 6.11803 13.1837C6.11803 13.1784 6.11762 13.1729 6.11722 13.1676Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.4723 14.2694H6.61249C6.61288 14.2716 6.61326 14.2739 6.61363 14.2761C6.61555 14.2875 6.61731 14.2988 6.61906 14.3099C6.62362 14.3389 6.62807 14.3673 6.63471 14.395C6.6515 14.4652 6.68328 14.528 6.73363 14.5799C6.77947 14.6271 6.83616 14.6509 6.90046 14.6583C6.95448 14.6645 7.00757 14.66 7.05984 14.6456C7.13631 14.6247 7.1879 14.5718 7.22913 14.5065C7.239 14.4909 7.24786 14.4745 7.25697 14.4577C7.26112 14.4501 7.26531 14.4423 7.26967 14.4345C7.32572 14.4593 7.38189 14.484 7.44014 14.5097C7.43813 14.5137 7.4362 14.5177 7.43428 14.5217C7.43355 14.5231 7.43283 14.5246 7.43211 14.5261L7.43131 14.5277C7.43014 14.5301 7.42897 14.5325 7.42779 14.5349C7.42619 14.5381 7.42457 14.5413 7.42292 14.5444C7.38049 14.6257 7.32825 14.6986 7.25382 14.7531C7.19534 14.7959 7.12926 14.8191 7.05903 14.8303C6.98239 14.8425 6.90536 14.8447 6.82892 14.8284C6.70176 14.8013 6.59982 14.7346 6.5273 14.6242C6.46259 14.5257 6.42884 14.4161 6.41919 14.2985C6.40775 14.1598 6.42682 14.0264 6.48699 13.9004C6.5517 13.765 6.65183 13.6702 6.79721 13.6328C6.94915 13.5937 7.09567 13.6092 7.23186 13.6922C7.32848 13.751 7.3891 13.8402 7.4299 13.9448C7.46044 14.023 7.47197 14.1047 7.4723 14.1884C7.47232 14.1953 7.47234 14.2022 7.47234 14.2092C7.47235 14.2196 7.47233 14.23 7.47232 14.2408C7.47231 14.2501 7.4723 14.2596 7.4723 14.2694ZM7.26496 14.089C7.24144 13.949 7.14525 13.7781 6.91917 13.7935C6.83873 13.7989 6.76969 13.8293 6.71648 13.8922C6.66859 13.9489 6.64095 14.0151 6.6275 14.089H7.26496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M8.26503 13.6913C8.26047 13.7092 8.25591 13.7271 8.25139 13.745C8.24915 13.7539 8.24691 13.7628 8.24469 13.7717C8.24165 13.7839 8.23881 13.7961 8.23588 13.8087C8.23494 13.8128 8.23399 13.8169 8.23302 13.821L8.2313 13.8283C8.22636 13.8269 8.22256 13.826 8.21902 13.8246C8.08069 13.7687 7.96838 13.7962 7.87287 13.9086C7.81394 13.978 7.78359 14.0597 7.76342 14.1458C7.74649 14.218 7.7386 14.2912 7.73844 14.3652C7.73821 14.4671 7.73825 14.569 7.73828 14.6709C7.7383 14.7189 7.73832 14.7669 7.73831 14.815V14.8368H7.5326V13.6354H7.73788V13.8352C7.74282 13.8283 7.74735 13.8217 7.7517 13.8154C7.76069 13.8022 7.76893 13.7902 7.77843 13.7792C7.86644 13.6773 7.97491 13.6134 8.11597 13.6145C8.17094 13.6149 8.22451 13.6247 8.27341 13.6515V13.6584L8.26503 13.6913Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.77094 14.2694H4.91453C4.91869 14.352 4.93513 14.4295 4.97447 14.5007C4.99913 14.5453 5.02947 14.585 5.07233 14.6134C5.13142 14.6527 5.19708 14.6641 5.26611 14.6605C5.34477 14.6565 5.41705 14.6361 5.474 14.5762C5.50892 14.5394 5.53673 14.4978 5.5586 14.452C5.55972 14.4496 5.56087 14.4472 5.56207 14.4448L5.56359 14.4416C5.56475 14.4392 5.56598 14.4367 5.5673 14.434C5.59655 14.4469 5.62552 14.4597 5.65474 14.4725L5.73981 14.5101C5.73669 14.5159 5.73364 14.5218 5.73062 14.5276C5.72968 14.5294 5.72875 14.5312 5.72782 14.533C5.71921 14.5497 5.71074 14.5661 5.70144 14.5819C5.65492 14.6611 5.59755 14.7299 5.51734 14.7762C5.46003 14.8092 5.39765 14.8264 5.33291 14.8341C5.26546 14.8422 5.19779 14.8433 5.1308 14.8292C4.9928 14.8002 4.88565 14.7258 4.8123 14.6026C4.75749 14.5106 4.72747 14.4104 4.71818 14.3035C4.706 14.1632 4.72458 14.028 4.78566 13.9004C4.85047 13.7649 4.95063 13.6702 5.09611 13.6328C5.24873 13.5935 5.3958 13.6093 5.53238 13.6931C5.62831 13.752 5.68861 13.8409 5.72909 13.9449C5.75905 14.022 5.77136 14.1025 5.77094 14.1851C5.7708 14.2123 5.77094 14.2395 5.77094 14.2694ZM5.56496 14.0893C5.5291 13.9089 5.41682 13.778 5.21173 13.7939C5.13269 13.7999 5.06505 13.8319 5.01326 13.8944C4.96664 13.9506 4.93935 14.016 4.9261 14.0893H5.56496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M3.02341 14.84H3.22106V14.8184C3.22106 14.7742 3.22096 14.7299 3.22086 14.6856C3.2206 14.5744 3.22034 14.4632 3.22171 14.3519C3.22246 14.2892 3.2272 14.2261 3.23542 14.1639C3.24647 14.0801 3.2735 14.0011 3.32073 13.9304C3.36722 13.8608 3.42567 13.808 3.51231 13.7983C3.61172 13.7871 3.69495 13.8265 3.71922 13.9365C3.72809 13.9767 3.73082 14.0189 3.73098 14.0601C3.73171 14.2424 3.73164 14.4247 3.73157 14.6069C3.73154 14.6767 3.73152 14.7465 3.73154 14.8163C3.73154 14.8216 3.73188 14.8269 3.73223 14.8322C3.73239 14.8347 3.73255 14.8371 3.73267 14.8395H3.93114V14.8197C3.93114 14.7741 3.93104 14.7285 3.93093 14.6829C3.93067 14.5684 3.93042 14.4538 3.93179 14.3393C3.9325 14.2783 3.93721 14.2169 3.94608 14.1566C3.96077 14.0569 3.99589 13.9648 4.06219 13.8872C4.11638 13.8238 4.18428 13.7912 4.26787 13.797C4.33674 13.8018 4.38811 13.834 4.41624 13.8997C4.43599 13.9457 4.43986 13.9946 4.43989 14.0439C4.44006 14.2333 4.44003 14.4227 4.44001 14.6121C4.44 14.6811 4.43999 14.7501 4.43999 14.8191V14.8398H4.638C4.63829 14.834 4.63878 14.8289 4.63878 14.8239C4.63879 14.7592 4.63882 14.6945 4.63886 14.6298C4.63899 14.4164 4.63911 14.203 4.63816 13.9897C4.63797 13.9467 4.63309 13.9029 4.6239 13.861C4.60385 13.7695 4.55681 13.695 4.47196 13.6517C4.3768 13.6031 4.27677 13.6027 4.17671 13.6331C4.06424 13.6673 3.98487 13.7439 3.92526 13.8436C3.92168 13.8496 3.91808 13.8555 3.91311 13.8638C3.91149 13.8581 3.9103 13.8538 3.90923 13.8501C3.90858 13.8478 3.90796 13.8457 3.90732 13.8436C3.87825 13.7486 3.8226 13.6766 3.72959 13.6388C3.65746 13.6095 3.58242 13.6066 3.50711 13.6226C3.38288 13.6492 3.29458 13.7247 3.23246 13.8342C3.23074 13.8373 3.22902 13.8403 3.22731 13.8434C3.22616 13.8454 3.225 13.8475 3.22385 13.8495C3.22327 13.8493 3.22269 13.8491 3.22211 13.8488C3.22158 13.8486 3.22105 13.8484 3.22051 13.8482V13.6353H3.02341V14.84Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.6106 13.5493V12.6H13.354V13.5493H12.9527V13.7866H12.8213V13.8815H12.1433V13.7866H12.0118V13.5493H11.6106Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M9.67342 13.5493V12.6H11.4168V13.5493H11.0156V13.7866H10.8841V13.8816H10.2061V13.7866H10.0747V13.5493H9.67342Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.5477 12.6V13.5493H13.9489V13.7866H14.0804V13.8815H14.7584V13.7866H14.8898V13.5493H15.2911V12.6H13.5477Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.4848 13.5493V12.6H17.2282V13.5493H16.8269V13.7866H16.6955V13.8815H16.0175V13.7866H15.886V13.5493H15.4848Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.4219 12.6V13.5493H17.8231V13.7866H17.9546V13.8815H18.6326V13.7866H18.764V13.5493H19.1653V12.6H17.4219Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.359 13.5493V12.6H21.1024V13.5493H20.7011V13.7866H20.5697V13.8815H19.8917V13.7866H19.7602V13.5493H19.359Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.2961 12.6V13.5493H21.6974V13.7866H21.8288V13.8815H22.5068V13.7866H22.6382V13.5493H23.0395V12.6H21.2961Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.2332 13.5493V12.6H24.9766V13.5493H24.5753V13.7866H24.4439V13.8815H23.7659V13.7866H23.6345V13.5493H23.2332Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.4168 15.4V14.4507H11.0156V14.2133H10.8841V14.1184H10.2061V14.2133H10.0747V14.4507H9.67342V15.4H11.4168Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.354 14.4507V15.4H11.6106V14.4507H12.0118V14.2133H12.1433V14.1184H12.8213V14.2133H12.9527V14.4507H13.354Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.2911 15.4V14.4507H14.8898V14.2133H14.7584V14.1184H14.0804V14.2133H13.9489V14.4507H13.5477V15.4H15.2911Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.2282 14.4507V15.4H15.4848V14.4507H15.886V14.2133H16.0175V14.1184H16.6955V14.2133H16.8269V14.4507H17.2282Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.1653 15.4V14.4507H18.764V14.2133H18.6326V14.1184H17.9546V14.2133H17.8231V14.4507H17.4219V15.4H19.1653Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.1024 14.4507V15.4H19.359V14.4507H19.7602V14.2133H19.8917V14.1184H20.5697V14.2133H20.7011V14.4507H21.1024Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.0395 15.4V14.4507H22.6382V14.2133H22.5068V14.1184H21.8288V14.2133H21.6974V14.4507H21.2961V15.4H23.0395Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M24.9766 14.4507V15.4H23.2332V14.4507H23.6345V14.2133H23.7659V14.1184H24.4439V14.2133H24.5753V14.4507H24.9766Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React139.createElement(\"g\", {\n filter: \"url(#filter2_ddd_15_10544)\"\n}, /* @__PURE__ */ React139.createElement(\"rect\", {\n y: 19.1333,\n width: 28,\n height: 8.86666,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React139.createElement(\"rect\", {\n y: 19.1333,\n width: 28,\n height: 8.86666,\n rx: 2,\n fill: \"url(#paint2_linear_15_10544)\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M6.11722 22.7342C6.11703 22.7317 6.11684 22.7292 6.1167 22.7267H6.11325C6.11178 22.7279 6.11035 22.7292 6.10892 22.7304C6.10585 22.7332 6.10278 22.7359 6.09935 22.7381C6.08753 22.7455 6.07573 22.753 6.06392 22.7605C6.02231 22.7869 5.98069 22.8133 5.93841 22.8385C5.92249 22.8481 5.91771 22.8585 5.91787 22.8764C5.91855 22.9527 5.91845 23.029 5.91836 23.1054V23.1056C5.91833 23.1323 5.9183 23.159 5.9183 23.1856V23.2066H5.71362V23.3838H5.9183V23.4057C5.9183 23.46 5.91822 23.5143 5.91814 23.5686C5.91792 23.7154 5.9177 23.8622 5.91908 24.0089C5.91956 24.0601 5.92466 24.1122 5.93613 24.1619C5.96137 24.2715 6.02794 24.3486 6.13645 24.3868C6.20503 24.4109 6.27559 24.4104 6.34645 24.3995C6.38608 24.3934 6.42416 24.3824 6.45928 24.3606L6.4497 24.3261C6.43721 24.2812 6.42475 24.2364 6.41191 24.1903C6.37182 24.2157 6.32926 24.2269 6.2841 24.2286C6.20786 24.2315 6.15188 24.1942 6.13093 24.1216C6.12212 24.0911 6.11878 24.0582 6.11861 24.0263C6.1178 23.8634 6.11792 23.7005 6.11804 23.5376C6.11808 23.4926 6.11811 23.4477 6.11813 23.4027C6.11813 23.4008 6.11818 23.399 6.11827 23.397C6.11847 23.3928 6.11884 23.3882 6.11913 23.3828H6.43072V23.2053H6.11809V23.1836C6.11809 23.0392 6.11809 22.8948 6.11803 22.7504C6.11803 22.745 6.11762 22.7396 6.11722 22.7342Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.4723 23.836H6.61249C6.61288 23.8383 6.61326 23.8405 6.61363 23.8428C6.61555 23.8541 6.61731 23.8654 6.61906 23.8765C6.62362 23.9056 6.62807 23.9339 6.63471 23.9617C6.6515 24.0318 6.68328 24.0947 6.73363 24.1465C6.77947 24.1937 6.83616 24.2176 6.90046 24.2249C6.95448 24.2311 7.00757 24.2266 7.05984 24.2123C7.13631 24.1913 7.1879 24.1385 7.22913 24.0732C7.239 24.0575 7.24786 24.0412 7.25697 24.0244C7.26112 24.0167 7.26531 24.009 7.26967 24.0012C7.32572 24.0259 7.38189 24.0507 7.44014 24.0763C7.43813 24.0804 7.4362 24.0844 7.43428 24.0883C7.43355 24.0898 7.43283 24.0913 7.43211 24.0928L7.43131 24.0944C7.43014 24.0968 7.42897 24.0992 7.42779 24.1015C7.42619 24.1047 7.42457 24.1079 7.42292 24.1111C7.38049 24.1923 7.32825 24.2653 7.25382 24.3198C7.19534 24.3625 7.12926 24.3857 7.05903 24.3969C6.98239 24.4092 6.90536 24.4113 6.82892 24.395C6.70176 24.368 6.59982 24.3012 6.5273 24.1908C6.46259 24.0924 6.42884 23.9828 6.41919 23.8652C6.40775 23.7264 6.42682 23.5931 6.48699 23.4671C6.5517 23.3316 6.65183 23.2369 6.79721 23.1995C6.94915 23.1603 7.09567 23.1758 7.23186 23.2588C7.32848 23.3177 7.3891 23.4069 7.4299 23.5115C7.46044 23.5897 7.47197 23.6714 7.4723 23.7551C7.47232 23.762 7.47234 23.7689 7.47234 23.7759C7.47235 23.7862 7.47233 23.7967 7.47232 23.8074C7.47231 23.8167 7.4723 23.8262 7.4723 23.836ZM7.26496 23.6556C7.24144 23.5157 7.14525 23.3447 6.91917 23.3601C6.83873 23.3656 6.76969 23.3959 6.71648 23.4588C6.66859 23.5155 6.64095 23.5818 6.6275 23.6556H7.26496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M8.26503 23.258C8.26047 23.2759 8.25591 23.2938 8.25139 23.3117C8.24915 23.3206 8.24691 23.3295 8.24469 23.3384C8.24165 23.3506 8.23881 23.3628 8.23588 23.3754C8.23494 23.3795 8.23399 23.3835 8.23302 23.3877L8.2313 23.395C8.22636 23.3935 8.22256 23.3927 8.21902 23.3913C8.08069 23.3354 7.96838 23.3629 7.87287 23.4753C7.81394 23.5447 7.78359 23.6263 7.76342 23.7125C7.74649 23.7846 7.7386 23.8579 7.73844 23.9318C7.73821 24.0337 7.73825 24.1356 7.73828 24.2375C7.7383 24.2856 7.73832 24.3336 7.73831 24.3816V24.4035H7.5326V23.2021H7.73788V23.4019C7.74282 23.395 7.74735 23.3884 7.7517 23.382C7.76069 23.3689 7.76893 23.3569 7.77843 23.3459C7.86644 23.2439 7.97491 23.1801 8.11597 23.1811C8.17094 23.1816 8.22451 23.1914 8.27341 23.2181V23.225L8.26503 23.258Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.77094 23.8361H4.91453C4.91869 23.9186 4.93513 23.9961 4.97447 24.0674C4.99913 24.112 5.02947 24.1516 5.07233 24.1801C5.13142 24.2194 5.19708 24.2307 5.26611 24.2272C5.34477 24.2231 5.41705 24.2028 5.474 24.1428C5.50892 24.106 5.53673 24.0645 5.5586 24.0186C5.55972 24.0162 5.56087 24.0139 5.56207 24.0114L5.56359 24.0083C5.56475 24.0059 5.56598 24.0034 5.5673 24.0006C5.59655 24.0135 5.62552 24.0263 5.65474 24.0392L5.73981 24.0767C5.73669 24.0826 5.73364 24.0885 5.73062 24.0943C5.72968 24.0961 5.72875 24.0979 5.72782 24.0997C5.71921 24.1163 5.71074 24.1327 5.70144 24.1485C5.65492 24.2278 5.59755 24.2965 5.51734 24.3428C5.46003 24.3759 5.39765 24.393 5.33291 24.4008C5.26546 24.4088 5.19779 24.41 5.1308 24.3959C4.9928 24.3668 4.88565 24.2925 4.8123 24.1693C4.75749 24.0773 4.72747 23.9771 4.71818 23.8702C4.706 23.7298 4.72458 23.5947 4.78566 23.467C4.85047 23.3315 4.95063 23.2368 5.09611 23.1994C5.24873 23.1602 5.3958 23.1759 5.53238 23.2598C5.62831 23.3186 5.68861 23.4075 5.72909 23.5116C5.75905 23.5886 5.77136 23.6691 5.77094 23.7518C5.7708 23.7789 5.77094 23.8062 5.77094 23.8361ZM5.56496 23.6559C5.5291 23.4756 5.41682 23.3447 5.21173 23.3605C5.13269 23.3666 5.06505 23.3985 5.01326 23.461C4.96664 23.5173 4.93935 23.5826 4.9261 23.6559H5.56496Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M3.02341 24.4067H3.22106V24.3851C3.22106 24.3408 3.22096 24.2966 3.22086 24.2523C3.2206 24.1411 3.22034 24.0298 3.22171 23.9186C3.22246 23.8558 3.2272 23.7927 3.23542 23.7305C3.24647 23.6468 3.2735 23.5678 3.32073 23.4971C3.36722 23.4275 3.42567 23.3747 3.51231 23.3649C3.61172 23.3537 3.69495 23.3931 3.71922 23.5032C3.72809 23.5433 3.73082 23.5855 3.73098 23.6268C3.73171 23.809 3.73164 23.9913 3.73157 24.1736C3.73154 24.2434 3.73152 24.3132 3.73154 24.383C3.73154 24.3883 3.73188 24.3936 3.73223 24.3989C3.73239 24.4013 3.73255 24.4038 3.73267 24.4062H3.93114V24.3863C3.93114 24.3408 3.93104 24.2952 3.93093 24.2496C3.93067 24.135 3.93042 24.0205 3.93179 23.906C3.9325 23.845 3.93721 23.7835 3.94608 23.7232C3.96077 23.6235 3.99589 23.5315 4.06219 23.4539C4.11638 23.3904 4.18428 23.3579 4.26787 23.3637C4.33674 23.3685 4.38811 23.4007 4.41624 23.4663C4.43599 23.5124 4.43986 23.5612 4.43989 23.6105C4.44006 23.7999 4.44003 23.9893 4.44001 24.1787C4.44 24.2477 4.43999 24.3167 4.43999 24.3857V24.4064H4.638C4.63829 24.4006 4.63878 24.3956 4.63878 24.3905C4.63879 24.3258 4.63882 24.2611 4.63886 24.1965C4.63899 23.9831 4.63911 23.7697 4.63816 23.5563C4.63797 23.5133 4.63309 23.4696 4.6239 23.4276C4.60385 23.3362 4.55681 23.2617 4.47196 23.2183C4.3768 23.1698 4.27677 23.1693 4.17671 23.1998C4.06424 23.2339 3.98487 23.3105 3.92526 23.4102C3.92168 23.4162 3.91808 23.4222 3.91311 23.4304C3.91149 23.4247 3.9103 23.4205 3.90923 23.4167C3.90858 23.4144 3.90796 23.4123 3.90732 23.4103C3.87825 23.3153 3.8226 23.2432 3.72959 23.2054C3.65746 23.1761 3.58242 23.1732 3.50711 23.1893C3.38288 23.2159 3.29458 23.2913 3.23246 23.4009C3.23074 23.4039 3.22902 23.407 3.22731 23.41C3.22616 23.4121 3.225 23.4141 3.22385 23.4162C3.22327 23.4159 3.22269 23.4157 3.22211 23.4155C3.22158 23.4153 3.22105 23.415 3.22051 23.4148V23.202H3.02341V24.4067Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.6106 23.1159V22.1666H13.354V23.1159H12.9527V23.3533H12.8213V23.4482H12.1433V23.3533H12.0118V23.1159H11.6106Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M9.67342 23.116V22.1666H11.4168V23.116H11.0156V23.3533H10.8841V23.4482H10.2061V23.3533H10.0747V23.116H9.67342Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.5477 22.1666V23.1159H13.9489V23.3533H14.0804V23.4482H14.7584V23.3533H14.8898V23.1159H15.2911V22.1666H13.5477Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.4848 23.1159V22.1666H17.2282V23.1159H16.8269V23.3533H16.6955V23.4482H16.0175V23.3533H15.886V23.1159H15.4848Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.4219 22.1666V23.1159H17.8231V23.3533H17.9546V23.4482H18.6326V23.3533H18.764V23.1159H19.1653V22.1666H17.4219Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.359 23.1159V22.1666H21.1024V23.1159H20.7011V23.3533H20.5697V23.4482H19.8917V23.3533H19.7602V23.1159H19.359Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.2961 22.1666V23.1159H21.6974V23.3533H21.8288V23.4482H22.5068V23.3533H22.6382V23.1159H23.0395V22.1666H21.2961Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.2332 23.1159V22.1666H24.9766V23.1159H24.5753V23.3533H24.4439V23.4482H23.7659V23.3533H23.6345V23.1159H23.2332Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M11.4168 24.9666V24.0173H11.0156V23.78H10.8841V23.6851H10.2061V23.78H10.0747V24.0173H9.67342V24.9666H11.4168Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M13.354 24.0173V24.9666H11.6106V24.0173H12.0118V23.78H12.1433V23.685H12.8213V23.78H12.9527V24.0173H13.354Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M15.2911 24.9666V24.0173H14.8898V23.78H14.7584V23.685H14.0804V23.78H13.9489V24.0173H13.5477V24.9666H15.2911Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M17.2282 24.0173V24.9666H15.4848V24.0173H15.886V23.78H16.0175V23.685H16.6955V23.78H16.8269V24.0173H17.2282Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M19.1653 24.9666V24.0173H18.764V23.78H18.6326V23.685H17.9546V23.78H17.8231V24.0173H17.4219V24.9666H19.1653Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M21.1024 24.0173V24.9666H19.359V24.0173H19.7602V23.78H19.8917V23.685H20.5697V23.78H20.7011V24.0173H21.1024Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M23.0395 24.9666V24.0173H22.6382V23.78H22.5068V23.685H21.8288V23.78H21.6974V24.0173H21.2961V24.9666H23.0395Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React139.createElement(\"path\", {\n d: \"M24.9766 24.0173V24.9666H23.2332V24.0173H23.6345V23.78H23.7659V23.685H24.4439V23.78H24.5753V24.0173H24.9766Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React139.createElement(\"defs\", null, /* @__PURE__ */ React139.createElement(\"filter\", {\n id: \"filter0_ddd_15_10544\",\n x: -3,\n y: -1,\n width: 34,\n height: 14.8667,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React139.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10544\",\n result: \"effect2_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", null), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10544\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10544\",\n result: \"shape\"\n})), /* @__PURE__ */ React139.createElement(\"filter\", {\n id: \"filter1_ddd_15_10544\",\n x: -3,\n y: 8.56665,\n width: 34,\n height: 14.8667,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React139.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10544\",\n result: \"effect2_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", null), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10544\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10544\",\n result: \"shape\"\n})), /* @__PURE__ */ React139.createElement(\"filter\", {\n id: \"filter2_ddd_15_10544\",\n x: -3,\n y: 18.1333,\n width: 34,\n height: 14.8667,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React139.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React139.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10544\",\n result: \"effect2_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React139.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feOffset\", null), /* @__PURE__ */ React139.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React139.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10544\",\n result: \"effect3_dropShadow_15_10544\"\n}), /* @__PURE__ */ React139.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10544\",\n result: \"shape\"\n})), /* @__PURE__ */ React139.createElement(\"linearGradient\", {\n id: \"paint0_linear_15_10544\",\n x1: 25.5378,\n y1: 0.336054,\n x2: 23.7335,\n y2: 11.9819,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React139.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React139.createElement(\"linearGradient\", {\n id: \"paint1_linear_15_10544\",\n x1: 25.5378,\n y1: 9.9027,\n x2: 23.7335,\n y2: 21.5485,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React139.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React139.createElement(\"linearGradient\", {\n id: \"paint2_linear_15_10544\",\n x1: 25.5378,\n y1: 19.4694,\n x2: 23.7335,\n y2: 31.1152,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React139.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React139.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar medium_default2 = SvgMedium2;\nvar SvgSmall2 = (props) => /* @__PURE__ */ React140.createElement(\"svg\", __spreadValues({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n overflow: \"visible\"\n },\n role: \"img\"\n}, props), /* @__PURE__ */ React140.createElement(\"g\", {\n filter: \"url(#filter0_ddd_15_10545)\"\n}, /* @__PURE__ */ React140.createElement(\"rect\", {\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React140.createElement(\"rect\", {\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"url(#paint0_linear_15_10545)\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M4.36944 2.57205C4.36931 2.57025 4.36917 2.56845 4.36907 2.56665H4.36661C4.36556 2.56752 4.36454 2.56843 4.36351 2.56934C4.36132 2.57129 4.35913 2.57324 4.35668 2.57478C4.34824 2.58011 4.3398 2.58546 4.33137 2.5908C4.30165 2.60965 4.27192 2.6285 4.24172 2.64655C4.23035 2.65335 4.22694 2.66081 4.22705 2.6736C4.22753 2.72811 4.22747 2.78262 4.2274 2.83713V2.83734C4.22738 2.85638 4.22735 2.87543 4.22735 2.89447V2.90946H4.08116V3.03603H4.22735V3.05169C4.22735 3.09046 4.2273 3.12922 4.22724 3.16799C4.22708 3.27285 4.22693 3.37771 4.22791 3.48255C4.22826 3.51906 4.2319 3.55627 4.24009 3.59179C4.25812 3.67008 4.30567 3.72514 4.38318 3.75244C4.43216 3.76969 4.48257 3.76928 4.53318 3.76153C4.56149 3.75719 4.58868 3.74927 4.61377 3.73371L4.60693 3.70912C4.59801 3.67703 4.58911 3.645 4.57994 3.61207C4.5513 3.63021 4.5209 3.63822 4.48865 3.63945C4.43418 3.64153 4.3942 3.61486 4.37923 3.56305C4.37294 3.54126 4.37055 3.51771 4.37044 3.49496C4.36986 3.37859 4.36994 3.26222 4.37003 3.14586C4.37006 3.11374 4.37008 3.08163 4.37009 3.04952C4.37009 3.04818 4.37013 3.04685 4.37019 3.04548C4.37034 3.04243 4.3706 3.03917 4.37081 3.03528H4.59337V2.90854H4.37007V2.89305C4.37007 2.78989 4.37007 2.68673 4.37002 2.58357C4.37002 2.57976 4.36973 2.57585 4.36944 2.57205Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.33736 3.35905H4.7232C4.72348 3.36065 4.72376 3.36226 4.72402 3.36385C4.72539 3.37198 4.72665 3.38002 4.7279 3.38797C4.73116 3.40873 4.73434 3.42898 4.73908 3.44879C4.75107 3.49889 4.77377 3.5438 4.80974 3.58084C4.84248 3.61455 4.88297 3.63159 4.9289 3.63682C4.96749 3.64124 5.0054 3.63803 5.04274 3.6278C5.09737 3.61284 5.13422 3.57507 5.16367 3.52843C5.17072 3.51724 5.17704 3.50557 5.18355 3.49357C5.18651 3.48811 5.18951 3.48258 5.19262 3.477C5.23265 3.49467 5.27278 3.51236 5.31438 3.53069C5.31295 3.53358 5.31157 3.53642 5.3102 3.53924C5.30968 3.5403 5.30916 3.54136 5.30865 3.54242L5.30808 3.54359C5.30724 3.5453 5.30641 3.54699 5.30556 3.54868C5.30442 3.55097 5.30327 3.55325 5.30208 3.5555C5.27178 3.61354 5.23446 3.66564 5.1813 3.70456C5.13953 3.73511 5.09233 3.75166 5.04216 3.75968C4.98742 3.76844 4.9324 3.76996 4.8778 3.75832C4.78697 3.739 4.71415 3.69134 4.66236 3.61248C4.61614 3.54213 4.59203 3.46388 4.58513 3.37985C4.57696 3.28077 4.59059 3.1855 4.63356 3.09551C4.67979 2.99875 4.75131 2.93108 4.85515 2.90434C4.96368 2.8764 5.06834 2.88748 5.16561 2.94674C5.23463 2.9888 5.27793 3.05249 5.30707 3.12722C5.32889 3.18308 5.33712 3.24143 5.33736 3.30121C5.33737 3.30615 5.33738 3.31109 5.33739 3.31607C5.33739 3.32346 5.33738 3.33094 5.33737 3.33861C5.33736 3.34525 5.33736 3.35204 5.33736 3.35905ZM5.18926 3.23019C5.17246 3.13021 5.10375 3.00811 4.94226 3.01911C4.88481 3.023 4.8355 3.04467 4.79749 3.08962C4.76328 3.13009 4.74353 3.17741 4.73393 3.23019H5.18926Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M5.90359 2.94615C5.90034 2.95894 5.89708 2.97173 5.89385 2.98452C5.89225 2.99087 5.89065 2.99722 5.88906 3.00357C5.88689 3.01228 5.88487 3.021 5.88277 3.03002C5.8821 3.03291 5.88142 3.03584 5.88073 3.0388L5.8795 3.04402C5.87597 3.04298 5.87326 3.04237 5.87073 3.04136C5.77192 3.00145 5.6917 3.02107 5.62348 3.10138C5.58138 3.15094 5.55971 3.20927 5.5453 3.27078C5.53321 3.32232 5.52757 3.37466 5.52745 3.42746C5.5273 3.50025 5.52732 3.57304 5.52735 3.64582C5.52736 3.68013 5.52737 3.71444 5.52736 3.74874V3.76436H5.38043V2.9062H5.52706V3.04891C5.53058 3.04401 5.53382 3.03928 5.53693 3.03474C5.54335 3.02537 5.54924 3.01678 5.55602 3.00893C5.61888 2.93612 5.69637 2.89049 5.79712 2.89124C5.83639 2.89155 5.87465 2.89858 5.90958 2.91766V2.92261L5.90359 2.94615Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.1221 3.35907H3.51038C3.51335 3.41805 3.52509 3.47338 3.5532 3.52428C3.57081 3.55613 3.59248 3.58446 3.62309 3.6048C3.6653 3.63284 3.7122 3.64097 3.76151 3.63844C3.81769 3.63554 3.86932 3.62102 3.91 3.57818C3.93495 3.55191 3.95481 3.5222 3.97043 3.48945C3.97123 3.48776 3.97205 3.48607 3.97291 3.48431L3.97399 3.48207C3.97482 3.48037 3.9757 3.47857 3.97665 3.47662C3.99753 3.48583 4.01823 3.49495 4.0391 3.50416L4.09987 3.53096C4.09763 3.53516 4.09546 3.53935 4.0933 3.54351C4.09263 3.5448 4.09196 3.54609 4.0913 3.54738C4.08515 3.55927 4.0791 3.57095 4.07246 3.58226C4.03923 3.63885 3.99825 3.68798 3.94096 3.72104C3.90002 3.74464 3.85547 3.7569 3.80922 3.76243C3.76105 3.76817 3.71271 3.76899 3.66486 3.75893C3.56628 3.73817 3.48975 3.68506 3.43735 3.59708C3.39821 3.53135 3.37677 3.45977 3.37013 3.38345C3.36143 3.28318 3.3747 3.18665 3.41833 3.09546C3.46462 2.9987 3.53616 2.93103 3.64008 2.90432C3.74909 2.8763 3.85414 2.88755 3.9517 2.94742C4.02022 2.98948 4.06329 3.05297 4.09221 3.12729C4.1136 3.18234 4.1224 3.23982 4.1221 3.29884C4.122 3.31827 4.1221 3.33772 4.1221 3.35907ZM3.97497 3.23038C3.94936 3.10157 3.86916 3.00808 3.72266 3.01938C3.6662 3.02372 3.61789 3.04652 3.5809 3.09117C3.5476 3.13137 3.52811 3.17804 3.51864 3.23038H3.97497Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M2.15958 3.76665H2.30076V3.75123C2.30076 3.71961 2.30068 3.68799 2.30061 3.65637C2.30043 3.57692 2.30024 3.49746 2.30122 3.418C2.30176 3.37317 2.30514 3.32811 2.31101 3.28366C2.3189 3.22387 2.33821 3.16745 2.37195 3.11694C2.40516 3.06723 2.4469 3.02951 2.50879 3.02254C2.5798 3.01453 2.63925 3.04269 2.65659 3.12128C2.66292 3.14995 2.66487 3.18009 2.66499 3.20958C2.66551 3.33976 2.66546 3.46995 2.66541 3.60013C2.66539 3.64999 2.66537 3.69985 2.66538 3.74971C2.66538 3.7535 2.66563 3.7573 2.66588 3.76106C2.66599 3.76281 2.66611 3.76456 2.66619 3.76629H2.80796V3.75212C2.80796 3.71956 2.80788 3.68699 2.80781 3.65442C2.80762 3.57261 2.80744 3.4908 2.80842 3.409C2.80893 3.36542 2.8123 3.32155 2.81863 3.27845C2.82912 3.20726 2.8542 3.14151 2.90157 3.08608C2.94027 3.04076 2.98877 3.01749 3.04848 3.02165C3.09767 3.02507 3.13436 3.04807 3.15446 3.09498C3.16857 3.12787 3.17133 3.16276 3.17135 3.19795C3.17147 3.33324 3.17145 3.46854 3.17143 3.60384C3.17143 3.65312 3.17142 3.7024 3.17142 3.75169V3.76648H3.31286C3.31307 3.76231 3.31341 3.75871 3.31341 3.75509C3.31342 3.70889 3.31345 3.66269 3.31347 3.61649C3.31356 3.46407 3.31365 3.31164 3.31297 3.15924C3.31283 3.12855 3.30935 3.09727 3.30279 3.06733C3.28847 3.002 3.25487 2.94879 3.19425 2.91783C3.12629 2.88313 3.05484 2.88282 2.98336 2.90456C2.90303 2.92898 2.84634 2.98369 2.80376 3.0549C2.8012 3.05917 2.79863 3.06344 2.79508 3.06933C2.79392 3.06527 2.79307 3.0622 2.79231 3.05952C2.79184 3.05789 2.7914 3.0564 2.79095 3.05492C2.77018 2.98707 2.73043 2.93562 2.66399 2.90861C2.61247 2.88769 2.55887 2.88559 2.50508 2.89708C2.41634 2.91607 2.35327 2.96996 2.3089 3.04821C2.30767 3.05039 2.30644 3.05257 2.30522 3.05474C2.3044 3.05621 2.30357 3.05768 2.30275 3.05914C2.30234 3.05898 2.30192 3.05881 2.30151 3.05864C2.30113 3.05848 2.30075 3.05833 2.30036 3.05818V2.90615H2.15958V3.76665Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.29326 2.8447V2.16663H9.53854V2.8447H9.25193V3.01422H9.15804V3.08203H8.67376V3.01422H8.57987V2.8447H8.29326Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M6.90958 2.84472V2.16664H8.15486V2.84472H7.86825V3.01423H7.77435V3.08204H7.29008V3.01423H7.19619V2.84472H6.90958Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.67691 2.16663V2.8447H9.96352V3.01422H10.0574V3.08203H10.5417V3.01422H10.6356V2.8447H10.9222V2.16663H9.67691Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M11.0606 2.8447V2.16663H12.3058V2.8447H12.0192V3.01422H11.9253V3.08203H11.4411V3.01422H11.3472V2.8447H11.0606Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.4442 2.16663V2.8447H12.7308V3.01422H12.8247V3.08203H13.309V3.01422H13.4029V2.8447H13.6895V2.16663H12.4442Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.8278 2.8447V2.16663H15.0731V2.8447H14.7865V3.01422H14.6926V3.08203H14.2083V3.01422H14.1145V2.8447H13.8278Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.2115 2.16663V2.8447H15.4981V3.01422H15.592V3.08203H16.0763V3.01422H16.1702V2.8447H16.4568V2.16663H15.2115Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.5951 2.8447V2.16663H17.8404V2.8447H17.5538V3.01422H17.4599V3.08203H16.9756V3.01422H16.8817V2.8447H16.5951Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.15486 4.16663V3.48855H7.86825V3.31903H7.77435V3.25122H7.29008V3.31903H7.19619V3.48855H6.90958V4.16663H8.15486Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.53854 3.48854V4.16661H8.29326V3.48854H8.57987V3.31902H8.67377V3.25121H9.15804V3.31902H9.25193V3.48854H9.53854Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M10.9222 4.16661V3.48854H10.6356V3.31902H10.5417V3.25121H10.0574V3.31902H9.96352V3.48854H9.67691V4.16661H10.9222Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.3058 3.48854V4.16661H11.0606V3.48854H11.3472V3.31902H11.4411V3.25121H11.9253V3.31902H12.0192V3.48854H12.3058Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.6895 4.16661V3.48854H13.4029V3.31902H13.309V3.25121H12.8247V3.31902H12.7308V3.48854H12.4442V4.16661H13.6895Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.0731 3.48854V4.16661H13.8278V3.48854H14.1145V3.31902H14.2083V3.25121H14.6926V3.31902H14.7865V3.48854H15.0731Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.4568 4.16661V3.48854H16.1702V3.31902H16.0763V3.25121H15.592V3.31902H15.4981V3.48854H15.2115V4.16661H16.4568Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M17.8404 3.48854V4.16661H16.5951V3.48854H16.8817V3.31902H16.9756V3.25121H17.4599V3.31902H17.5538V3.48854H17.8404Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React140.createElement(\"g\", {\n filter: \"url(#filter1_ddd_15_10545)\"\n}, /* @__PURE__ */ React140.createElement(\"rect\", {\n y: 6.83337,\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React140.createElement(\"rect\", {\n y: 6.83337,\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"url(#paint1_linear_15_10545)\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M4.36944 9.40542C4.36931 9.40362 4.36917 9.40183 4.36907 9.40002H4.36661C4.36556 9.40089 4.36454 9.4018 4.36351 9.40271C4.36132 9.40466 4.35913 9.40661 4.35668 9.40816C4.34824 9.41348 4.3398 9.41883 4.33137 9.42418C4.30165 9.44303 4.27192 9.46188 4.24172 9.47992C4.23035 9.48673 4.22694 9.49418 4.22705 9.50697C4.22753 9.56148 4.22747 9.61599 4.2274 9.6705V9.67071C4.22738 9.68976 4.22735 9.7088 4.22735 9.72785V9.74283H4.08116V9.8694H4.22735V9.88506C4.22735 9.92383 4.2273 9.9626 4.22724 10.0014C4.22708 10.1062 4.22693 10.2111 4.22791 10.3159C4.22826 10.3524 4.2319 10.3896 4.24009 10.4252C4.25812 10.5034 4.30567 10.5585 4.38318 10.5858C4.43216 10.6031 4.48257 10.6027 4.53318 10.5949C4.56149 10.5906 4.58868 10.5826 4.61377 10.5671L4.60693 10.5425C4.59801 10.5104 4.58911 10.4784 4.57994 10.4454C4.5513 10.4636 4.5209 10.4716 4.48865 10.4728C4.43418 10.4749 4.3942 10.4482 4.37923 10.3964C4.37294 10.3746 4.37055 10.3511 4.37044 10.3283C4.36986 10.212 4.36994 10.0956 4.37003 9.97923C4.37006 9.94712 4.37008 9.91501 4.37009 9.88289C4.37009 9.88156 4.37013 9.88022 4.37019 9.87885C4.37034 9.8758 4.3706 9.87255 4.37081 9.86865H4.59337V9.74192H4.37007V9.72642C4.37007 9.62326 4.37007 9.5201 4.37002 9.41694C4.37002 9.41313 4.36973 9.40922 4.36944 9.40542Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.33736 10.1924H4.7232C4.72348 10.194 4.72376 10.1956 4.72402 10.1972C4.72539 10.2054 4.72665 10.2134 4.7279 10.2213C4.73116 10.2421 4.73434 10.2624 4.73908 10.2822C4.75107 10.3323 4.77377 10.3772 4.80974 10.4142C4.84248 10.4479 4.88297 10.465 4.9289 10.4702C4.96749 10.4746 5.0054 10.4714 5.04274 10.4612C5.09737 10.4462 5.13422 10.4084 5.16367 10.3618C5.17072 10.3506 5.17704 10.3389 5.18355 10.3269C5.18651 10.3215 5.18951 10.316 5.19262 10.3104C5.23265 10.328 5.27278 10.3457 5.31438 10.3641C5.31295 10.367 5.31157 10.3698 5.3102 10.3726C5.30968 10.3737 5.30916 10.3747 5.30865 10.3758L5.30808 10.377C5.30724 10.3787 5.30641 10.3804 5.30556 10.3821C5.30442 10.3843 5.30327 10.3866 5.30208 10.3889C5.27178 10.4469 5.23446 10.499 5.1813 10.5379C5.13953 10.5685 5.09233 10.585 5.04216 10.593C4.98742 10.6018 4.9324 10.6033 4.8778 10.5917C4.78697 10.5724 4.71415 10.5247 4.66236 10.4458C4.61614 10.3755 4.59203 10.2972 4.58513 10.2132C4.57696 10.1141 4.59059 10.0189 4.63356 9.92889C4.67979 9.83212 4.75131 9.76446 4.85515 9.73772C4.96368 9.70977 5.06834 9.72085 5.16561 9.78012C5.23463 9.82218 5.27793 9.88586 5.30707 9.96059C5.32889 10.0165 5.33712 10.0748 5.33736 10.1346C5.33737 10.1395 5.33738 10.1445 5.33739 10.1494C5.33739 10.1568 5.33738 10.1643 5.33737 10.172C5.33736 10.1786 5.33736 10.1854 5.33736 10.1924ZM5.18926 10.0636C5.17246 9.96359 5.10375 9.84148 4.94226 9.85249C4.88481 9.85637 4.8355 9.87804 4.79749 9.923C4.76328 9.96347 4.74353 10.0108 4.73393 10.0636H5.18926Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M5.90359 9.77953C5.90034 9.79231 5.89708 9.8051 5.89385 9.81789C5.89225 9.82424 5.89065 9.83059 5.88906 9.83695C5.88689 9.84565 5.88487 9.85438 5.88277 9.86339C5.8821 9.86629 5.88142 9.86921 5.88073 9.87217L5.8795 9.87739C5.87597 9.87635 5.87326 9.87575 5.87073 9.87473C5.77192 9.83482 5.6917 9.85444 5.62348 9.93475C5.58138 9.98431 5.55971 10.0426 5.5453 10.1042C5.53321 10.1557 5.52757 10.208 5.52745 10.2608C5.5273 10.3336 5.52732 10.4064 5.52735 10.4792C5.52736 10.5135 5.52737 10.5478 5.52736 10.5821V10.5977H5.38043V9.73958H5.52706V9.88229C5.53058 9.87738 5.53382 9.87266 5.53693 9.86811C5.54335 9.85875 5.54924 9.85015 5.55602 9.8423C5.61888 9.7695 5.69637 9.72387 5.79712 9.72461C5.83639 9.72493 5.87465 9.73195 5.90958 9.75104V9.75599L5.90359 9.77953Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.1221 10.1924H3.51038C3.51335 10.2514 3.52509 10.3068 3.5532 10.3576C3.57081 10.3895 3.59248 10.4178 3.62309 10.4382C3.6653 10.4662 3.7122 10.4743 3.76151 10.4718C3.81769 10.4689 3.86932 10.4544 3.91 10.4116C3.93495 10.3853 3.95481 10.3556 3.97043 10.3228C3.97123 10.3211 3.97205 10.3194 3.97291 10.3177L3.97399 10.3154C3.97482 10.3137 3.9757 10.3119 3.97665 10.31C3.99753 10.3192 4.01823 10.3283 4.0391 10.3375L4.09987 10.3643C4.09763 10.3685 4.09546 10.3727 4.0933 10.3769C4.09263 10.3782 4.09196 10.3795 4.0913 10.3807C4.08515 10.3926 4.0791 10.4043 4.07246 10.4156C4.03923 10.4722 3.99825 10.5214 3.94096 10.5544C3.90002 10.578 3.85547 10.5903 3.80922 10.5958C3.76105 10.6015 3.71271 10.6024 3.66486 10.5923C3.56628 10.5715 3.48975 10.5184 3.43735 10.4305C3.39821 10.3647 3.37677 10.2931 3.37013 10.2168C3.36143 10.1166 3.3747 10.02 3.41833 9.92884C3.46462 9.83207 3.53616 9.76441 3.64008 9.73769C3.74909 9.70968 3.85414 9.72092 3.9517 9.78079C4.02022 9.82285 4.06329 9.88634 4.09221 9.96067C4.1136 10.0157 4.1224 10.0732 4.1221 10.1322C4.122 10.1516 4.1221 10.1711 4.1221 10.1924ZM3.97497 10.0638C3.94936 9.93494 3.86916 9.84146 3.72266 9.85275C3.6662 9.85709 3.61789 9.8799 3.5809 9.92454C3.5476 9.96474 3.52811 10.0114 3.51864 10.0638H3.97497Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M2.15958 10.6H2.30076V10.5846C2.30076 10.553 2.30068 10.5214 2.30061 10.4897C2.30043 10.4103 2.30024 10.3308 2.30122 10.2514C2.30176 10.2065 2.30514 10.1615 2.31101 10.117C2.3189 10.0572 2.33821 10.0008 2.37195 9.95031C2.40516 9.9006 2.4469 9.86289 2.50879 9.85591C2.5798 9.8479 2.63925 9.87606 2.65659 9.95466C2.66292 9.98332 2.66487 10.0135 2.66499 10.043C2.66551 10.1731 2.66546 10.3033 2.66541 10.4335C2.66539 10.4834 2.66537 10.5332 2.66538 10.5831C2.66538 10.5869 2.66563 10.5907 2.66588 10.5944C2.66599 10.5962 2.66611 10.5979 2.66619 10.5997H2.80796V10.5855C2.80796 10.5529 2.80788 10.5204 2.80781 10.4878C2.80762 10.406 2.80744 10.3242 2.80842 10.2424C2.80893 10.1988 2.8123 10.1549 2.81863 10.1118C2.82912 10.0406 2.8542 9.97488 2.90157 9.91945C2.94027 9.87413 2.98877 9.85087 3.04848 9.85502C3.09767 9.85845 3.13436 9.88144 3.15446 9.92835C3.16857 9.96124 3.17133 9.99614 3.17135 10.0313C3.17147 10.1666 3.17145 10.3019 3.17143 10.4372C3.17143 10.4865 3.17142 10.5358 3.17142 10.5851V10.5999H3.31286C3.31307 10.5957 3.31341 10.5921 3.31341 10.5885C3.31342 10.5423 3.31345 10.4961 3.31347 10.4499C3.31356 10.2974 3.31365 10.145 3.31297 9.99262C3.31283 9.96192 3.30935 9.93065 3.30279 9.9007C3.28847 9.83538 3.25487 9.78217 3.19425 9.75121C3.12629 9.71651 3.05484 9.71619 2.98336 9.73793C2.90303 9.76236 2.84634 9.81706 2.80376 9.88827C2.8012 9.89254 2.79863 9.89681 2.79508 9.9027C2.79392 9.89864 2.79307 9.89557 2.79231 9.8929C2.79184 9.89126 2.7914 9.88978 2.79095 9.8883C2.77018 9.82044 2.73043 9.76899 2.66399 9.74199C2.61247 9.72107 2.55887 9.71897 2.50508 9.73045C2.41634 9.74945 2.35327 9.80333 2.3089 9.88159C2.30767 9.88377 2.30644 9.88594 2.30522 9.88812C2.3044 9.88959 2.30357 9.89105 2.30275 9.89252C2.30234 9.89235 2.30192 9.89218 2.30151 9.89201C2.30113 9.89186 2.30075 9.8917 2.30036 9.89155V9.73953H2.15958V10.6Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.29326 9.67808V9H9.53854V9.67808H9.25193V9.84759H9.15804V9.9154H8.67376V9.84759H8.57987V9.67808H8.29326Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M6.90958 9.67809V9.00001H8.15486V9.67809H7.86825V9.84761H7.77435V9.91542H7.29008V9.84761H7.19619V9.67809H6.90958Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.67691 9V9.67808H9.96352V9.84759H10.0574V9.9154H10.5417V9.84759H10.6356V9.67808H10.9222V9H9.67691Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M11.0606 9.67808V9H12.3058V9.67808H12.0192V9.84759H11.9253V9.9154H11.4411V9.84759H11.3472V9.67808H11.0606Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.4442 9V9.67808H12.7308V9.84759H12.8247V9.9154H13.309V9.84759H13.4029V9.67808H13.6895V9H12.4442Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.8278 9.67808V9H15.0731V9.67808H14.7865V9.84759H14.6926V9.9154H14.2083V9.84759H14.1145V9.67808H13.8278Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.2115 9V9.67808H15.4981V9.84759H15.592V9.9154H16.0763V9.84759H16.1702V9.67808H16.4568V9H15.2115Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.5951 9.67808V9H17.8404V9.67808H17.5538V9.84759H17.4599V9.9154H16.9756V9.84759H16.8817V9.67808H16.5951Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.15486 11V10.3219H7.86825V10.1524H7.77435V10.0846H7.29008V10.1524H7.19619V10.3219H6.90958V11H8.15486Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.53854 10.3219V11H8.29326V10.3219H8.57987V10.1524H8.67377V10.0846H9.15804V10.1524H9.25193V10.3219H9.53854Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M10.9222 11V10.3219H10.6356V10.1524H10.5417V10.0846H10.0574V10.1524H9.96352V10.3219H9.67691V11H10.9222Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.3058 10.3219V11H11.0606V10.3219H11.3472V10.1524H11.4411V10.0846H11.9253V10.1524H12.0192V10.3219H12.3058Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.6895 11V10.3219H13.4029V10.1524H13.309V10.0846H12.8247V10.1524H12.7308V10.3219H12.4442V11H13.6895Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.0731 10.3219V11H13.8278V10.3219H14.1145V10.1524H14.2083V10.0846H14.6926V10.1524H14.7865V10.3219H15.0731Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.4568 11V10.3219H16.1702V10.1524H16.0763V10.0846H15.592V10.1524H15.4981V10.3219H15.2115V11H16.4568Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M17.8404 10.3219V11H16.5951V10.3219H16.8817V10.1524H16.9756V10.0846H17.4599V10.1524H17.5538V10.3219H17.8404Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React140.createElement(\"g\", {\n filter: \"url(#filter2_ddd_15_10545)\"\n}, /* @__PURE__ */ React140.createElement(\"rect\", {\n y: 13.6666,\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"white\"\n}), /* @__PURE__ */ React140.createElement(\"rect\", {\n y: 13.6666,\n width: 20,\n height: 6.33333,\n rx: 2,\n fill: \"url(#paint2_linear_15_10545)\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M4.36944 16.2387C4.36931 16.2369 4.36917 16.2351 4.36907 16.2333H4.36661C4.36556 16.2341 4.36454 16.2351 4.36351 16.236C4.36132 16.2379 4.35913 16.2399 4.35668 16.2414C4.34824 16.2467 4.3398 16.2521 4.33137 16.2574C4.30165 16.2763 4.27192 16.2951 4.24172 16.3132C4.23035 16.32 4.22694 16.3274 4.22705 16.3402C4.22753 16.3947 4.22747 16.4492 4.2274 16.5038V16.504C4.22738 16.523 4.22735 16.5421 4.22735 16.5611V16.5761H4.08116V16.7027H4.22735V16.7183C4.22735 16.7571 4.2273 16.7958 4.22724 16.8346C4.22708 16.9395 4.22693 17.0443 4.22791 17.1492C4.22826 17.1857 4.2319 17.2229 4.24009 17.2584C4.25812 17.3367 4.30567 17.3918 4.38318 17.4191C4.43216 17.4363 4.48257 17.4359 4.53318 17.4282C4.56149 17.4238 4.58868 17.4159 4.61377 17.4003L4.60693 17.3757C4.59801 17.3437 4.58911 17.3116 4.57994 17.2787C4.5513 17.2968 4.5209 17.3048 4.48865 17.3061C4.43418 17.3082 4.3942 17.2815 4.37923 17.2297C4.37294 17.2079 4.37055 17.1843 4.37044 17.1616C4.36986 17.0452 4.36994 16.9289 4.37003 16.8125C4.37006 16.7804 4.37008 16.7483 4.37009 16.7161C4.37009 16.7148 4.37013 16.7135 4.37019 16.7121C4.37034 16.7091 4.3706 16.7058 4.37081 16.7019H4.59337V16.5752H4.37007V16.5597C4.37007 16.4565 4.37007 16.3534 4.37002 16.2502C4.37002 16.2464 4.36973 16.2425 4.36944 16.2387Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.33736 17.0257H4.7232C4.72348 17.0273 4.72376 17.0289 4.72402 17.0305C4.72539 17.0386 4.72665 17.0466 4.7279 17.0546C4.73116 17.0754 4.73434 17.0956 4.73908 17.1154C4.75107 17.1655 4.77377 17.2104 4.80974 17.2475C4.84248 17.2812 4.88297 17.2982 4.9289 17.3034C4.96749 17.3079 5.0054 17.3047 5.04274 17.2944C5.09737 17.2795 5.13422 17.2417 5.16367 17.1951C5.17072 17.1839 5.17704 17.1722 5.18355 17.1602C5.18651 17.1547 5.18951 17.1492 5.19262 17.1436C5.23265 17.1613 5.27278 17.179 5.31438 17.1973C5.31295 17.2002 5.31157 17.203 5.3102 17.2059C5.30968 17.2069 5.30916 17.208 5.30865 17.209L5.30808 17.2102C5.30724 17.2119 5.30641 17.2136 5.30556 17.2153C5.30442 17.2176 5.30327 17.2199 5.30208 17.2221C5.27178 17.2802 5.23446 17.3323 5.1813 17.3712C5.13953 17.4017 5.09233 17.4183 5.04216 17.4263C4.98742 17.4351 4.9324 17.4366 4.8778 17.4249C4.78697 17.4056 4.71415 17.358 4.66236 17.2791C4.61614 17.2088 4.59203 17.1305 4.58513 17.0465C4.57696 16.9474 4.59059 16.8521 4.63356 16.7621C4.67979 16.6654 4.75131 16.5977 4.85515 16.571C4.96368 16.543 5.06834 16.5541 5.16561 16.6134C5.23463 16.6554 5.27793 16.7191 5.30707 16.7938C5.32889 16.8497 5.33712 16.9081 5.33736 16.9678C5.33737 16.9728 5.33738 16.9777 5.33739 16.9827C5.33739 16.9901 5.33738 16.9976 5.33737 17.0052C5.33736 17.0119 5.33736 17.0187 5.33736 17.0257ZM5.18926 16.8968C5.17246 16.7968 5.10375 16.6747 4.94226 16.6857C4.88481 16.6896 4.8355 16.7113 4.79749 16.7562C4.76328 16.7967 4.74353 16.844 4.73393 16.8968H5.18926Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M5.90359 16.6128C5.90034 16.6256 5.89708 16.6384 5.89385 16.6511C5.89225 16.6575 5.89065 16.6638 5.88906 16.6702C5.88689 16.6789 5.88487 16.6876 5.88277 16.6966C5.8821 16.6995 5.88142 16.7025 5.88073 16.7054L5.8795 16.7106C5.87597 16.7096 5.87326 16.709 5.87073 16.708C5.77192 16.6681 5.6917 16.6877 5.62348 16.768C5.58138 16.8176 5.55971 16.8759 5.5453 16.9374C5.53321 16.9889 5.52757 17.0413 5.52745 17.0941C5.5273 17.1669 5.52732 17.2397 5.52735 17.3124C5.52736 17.3468 5.52737 17.3811 5.52736 17.4154V17.431H5.38043V16.5728H5.52706V16.7155C5.53058 16.7106 5.53382 16.7059 5.53693 16.7014C5.54335 16.692 5.54924 16.6834 5.55602 16.6756C5.61888 16.6028 5.69637 16.5571 5.79712 16.5579C5.83639 16.5582 5.87465 16.5652 5.90958 16.5843V16.5892L5.90359 16.6128Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.1221 17.0257H3.51038C3.51335 17.0847 3.52509 17.14 3.5532 17.1909C3.57081 17.2228 3.59248 17.2511 3.62309 17.2714C3.6653 17.2995 3.7122 17.3076 3.76151 17.3051C3.81769 17.3022 3.86932 17.2876 3.91 17.2448C3.93495 17.2185 3.95481 17.1888 3.97043 17.1561C3.97123 17.1544 3.97205 17.1527 3.97291 17.1509L3.97399 17.1487C3.97482 17.147 3.9757 17.1452 3.97665 17.1432C3.99753 17.1525 4.01823 17.1616 4.0391 17.1708L4.09987 17.1976C4.09763 17.2018 4.09546 17.206 4.0933 17.2101C4.09263 17.2114 4.09196 17.2127 4.0913 17.214C4.08515 17.2259 4.0791 17.2376 4.07246 17.2489C4.03923 17.3055 3.99825 17.3546 3.94096 17.3877C3.90002 17.4113 3.85547 17.4235 3.80922 17.4291C3.76105 17.4348 3.71271 17.4356 3.66486 17.4256C3.56628 17.4048 3.48975 17.3517 3.43735 17.2637C3.39821 17.198 3.37677 17.1264 3.37013 17.0501C3.36143 16.9498 3.3747 16.8533 3.41833 16.7621C3.46462 16.6653 3.53616 16.5977 3.64008 16.5709C3.74909 16.5429 3.85414 16.5542 3.9517 16.614C4.02022 16.6561 4.06329 16.7196 4.09221 16.7939C4.1136 16.849 4.1224 16.9064 4.1221 16.9655C4.122 16.9849 4.1221 17.0043 4.1221 17.0257ZM3.97497 16.897C3.94936 16.7682 3.86916 16.6747 3.72266 16.686C3.6662 16.6903 3.61789 16.7132 3.5809 16.7578C3.5476 16.798 3.52811 16.8447 3.51864 16.897H3.97497Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M2.15958 17.4333H2.30076V17.4179C2.30076 17.3862 2.30068 17.3546 2.30061 17.323C2.30043 17.2435 2.30024 17.1641 2.30122 17.0846C2.30176 17.0398 2.30514 16.9947 2.31101 16.9503C2.3189 16.8905 2.33821 16.8341 2.37195 16.7836C2.40516 16.7339 2.4469 16.6961 2.50879 16.6892C2.5798 16.6812 2.63925 16.7093 2.65659 16.7879C2.66292 16.8166 2.66487 16.8467 2.66499 16.8762C2.66551 17.0064 2.66546 17.1366 2.66541 17.2668C2.66539 17.3166 2.66537 17.3665 2.66538 17.4163C2.66538 17.4201 2.66563 17.4239 2.66588 17.4277C2.66599 17.4294 2.66611 17.4312 2.66619 17.4329H2.80796V17.4187C2.80796 17.3862 2.80788 17.3536 2.80781 17.321C2.80762 17.2392 2.80744 17.1574 2.80842 17.0756C2.80893 17.032 2.8123 16.9882 2.81863 16.9451C2.82912 16.8739 2.8542 16.8081 2.90157 16.7527C2.94027 16.7074 2.98877 16.6841 3.04848 16.6883C3.09767 16.6917 3.13436 16.7147 3.15446 16.7616C3.16857 16.7945 3.17133 16.8294 3.17135 16.8646C3.17147 16.9999 3.17145 17.1352 3.17143 17.2705C3.17143 17.3197 3.17142 17.369 3.17142 17.4183V17.4331H3.31286C3.31307 17.4289 3.31341 17.4253 3.31341 17.4217C3.31342 17.3755 3.31345 17.3293 3.31347 17.2831C3.31356 17.1307 3.31365 16.9783 3.31297 16.8259C3.31283 16.7952 3.30935 16.7639 3.30279 16.734C3.28847 16.6686 3.25487 16.6154 3.19425 16.5845C3.12629 16.5498 3.05484 16.5494 2.98336 16.5712C2.90303 16.5956 2.84634 16.6503 2.80376 16.7215C2.8012 16.7258 2.79863 16.7301 2.79508 16.736C2.79392 16.7319 2.79307 16.7288 2.79231 16.7261C2.79184 16.7245 2.7914 16.723 2.79095 16.7215C2.77018 16.6537 2.73043 16.6022 2.66399 16.5752C2.61247 16.5543 2.55887 16.5522 2.50508 16.5637C2.41634 16.5827 2.35327 16.6366 2.3089 16.7148C2.30767 16.717 2.30644 16.7192 2.30522 16.7214C2.3044 16.7228 2.30357 16.7243 2.30275 16.7258C2.30234 16.7256 2.30192 16.7254 2.30151 16.7253C2.30113 16.7251 2.30075 16.725 2.30036 16.7248V16.5728H2.15958V17.4333Z\",\n fill: \"#5461C8\"\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.29326 16.5113V15.8333H9.53854V16.5113H9.25193V16.6808H9.15804V16.7487H8.67376V16.6808H8.57987V16.5113H8.29326Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M6.90958 16.5113V15.8333H8.15486V16.5113H7.86825V16.6809H7.77435V16.7487H7.29008V16.6809H7.19619V16.5113H6.90958Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.67691 15.8333V16.5113H9.96352V16.6808H10.0574V16.7487H10.5417V16.6808H10.6356V16.5113H10.9222V15.8333H9.67691Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M11.0606 16.5113V15.8333H12.3058V16.5113H12.0192V16.6808H11.9253V16.7487H11.4411V16.6808H11.3472V16.5113H11.0606Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.4442 15.8333V16.5113H12.7308V16.6808H12.8247V16.7487H13.309V16.6808H13.4029V16.5113H13.6895V15.8333H12.4442Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.8278 16.5113V15.8333H15.0731V16.5113H14.7865V16.6808H14.6926V16.7487H14.2083V16.6808H14.1145V16.5113H13.8278Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.2115 15.8333V16.5113H15.4981V16.6808H15.592V16.7487H16.0763V16.6808H16.1702V16.5113H16.4568V15.8333H15.2115Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.5951 16.5113V15.8333H17.8404V16.5113H17.5538V16.6808H17.4599V16.7487H16.9756V16.6808H16.8817V16.5113H16.5951Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M8.15486 17.8333V17.1552H7.86825V16.9857H7.77435V16.9178H7.29008V16.9857H7.19619V17.1552H6.90958V17.8333H8.15486Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M9.53854 17.1552V17.8332H8.29326V17.1552H8.57987V16.9856H8.67377V16.9178H9.15804V16.9856H9.25193V17.1552H9.53854Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M10.9222 17.8332V17.1552H10.6356V16.9856H10.5417V16.9178H10.0574V16.9856H9.96352V17.1552H9.67691V17.8332H10.9222Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M12.3058 17.1552V17.8332H11.0606V17.1552H11.3472V16.9856H11.4411V16.9178H11.9253V16.9856H12.0192V17.1552H12.3058Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M13.6895 17.8332V17.1552H13.4029V16.9856H13.309V16.9178H12.8247V16.9856H12.7308V17.1552H12.4442V17.8332H13.6895Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M15.0731 17.1552V17.8332H13.8278V17.1552H14.1145V16.9856H14.2083V16.9178H14.6926V16.9856H14.7865V17.1552H15.0731Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M16.4568 17.8332V17.1552H16.1702V16.9856H16.0763V16.9178H15.592V16.9856H15.4981V17.1552H15.2115V17.8332H16.4568Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n}), /* @__PURE__ */ React140.createElement(\"path\", {\n d: \"M17.8404 17.1552V17.8332H16.5951V17.1552H16.8817V16.9856H16.9756V16.9178H17.4599V16.9856H17.5538V17.1552H17.8404Z\",\n fill: \"#090B14\",\n fillOpacity: 0.1\n})), /* @__PURE__ */ React140.createElement(\"defs\", null, /* @__PURE__ */ React140.createElement(\"filter\", {\n id: \"filter0_ddd_15_10545\",\n x: -3,\n y: -1,\n width: 26,\n height: 12.3334,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React140.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10545\",\n result: \"effect2_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", null), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10545\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10545\",\n result: \"shape\"\n})), /* @__PURE__ */ React140.createElement(\"filter\", {\n id: \"filter1_ddd_15_10545\",\n x: -3,\n y: 5.83337,\n width: 26,\n height: 12.3334,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React140.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10545\",\n result: \"effect2_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", null), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10545\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10545\",\n result: \"shape\"\n})), /* @__PURE__ */ React140.createElement(\"filter\", {\n id: \"filter2_ddd_15_10545\",\n x: -3,\n y: 12.6666,\n width: 26,\n height: 12.3334,\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, /* @__PURE__ */ React140.createElement(\"feFlood\", {\n floodOpacity: 0,\n result: \"BackgroundImageFix\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 2\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1.5\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.08 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", {\n dy: 1\n}), /* @__PURE__ */ React140.createElement(\"feGaussianBlur\", {\n stdDeviation: 1\n}), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect1_dropShadow_15_10545\",\n result: \"effect2_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\",\n result: \"hardAlpha\"\n}), /* @__PURE__ */ React140.createElement(\"feMorphology\", {\n radius: 1,\n operator: \"dilate\",\n in: \"SourceAlpha\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feOffset\", null), /* @__PURE__ */ React140.createElement(\"feComposite\", {\n in2: \"hardAlpha\",\n operator: \"out\"\n}), /* @__PURE__ */ React140.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0.0368 0 0 0 0 0.0416413 0 0 0 0 0.08 0 0 0 0.05 0\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"effect2_dropShadow_15_10545\",\n result: \"effect3_dropShadow_15_10545\"\n}), /* @__PURE__ */ React140.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect3_dropShadow_15_10545\",\n result: \"shape\"\n})), /* @__PURE__ */ React140.createElement(\"linearGradient\", {\n id: \"paint0_linear_15_10545\",\n x1: 18.2413,\n y1: 0.240039,\n x2: 16.9525,\n y2: 8.55848,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React140.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React140.createElement(\"linearGradient\", {\n id: \"paint1_linear_15_10545\",\n x1: 18.2413,\n y1: 7.07341,\n x2: 16.9525,\n y2: 15.3919,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React140.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n})), /* @__PURE__ */ React140.createElement(\"linearGradient\", {\n id: \"paint2_linear_15_10545\",\n x1: 18.2413,\n y1: 13.9067,\n x2: 16.9525,\n y2: 22.2251,\n gradientUnits: \"userSpaceOnUse\"\n}, /* @__PURE__ */ React140.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.03\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 0.500255,\n stopColor: \"#E1E4EC\",\n stopOpacity: 0.11\n}), /* @__PURE__ */ React140.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D4DAE5\",\n stopOpacity: 0.56\n}))));\nvar small_default2 = SvgSmall2;\nvar SwitchIconSVG = {\n Large: large_default2,\n Medium: medium_default2,\n Small: small_default2\n};\n\n// src/assets/ControllerIcon/ControllerIcon.tsx\nimport { jsx as jsx4 } from \"react/jsx-runtime\";\nvar ControllerIcon = ({ size = \"large\" }) => ({\n large: /* @__PURE__ */ jsx4(ControllerIconSVG.Large, {}),\n medium: /* @__PURE__ */ jsx4(ControllerIconSVG.Medium, {}),\n small: /* @__PURE__ */ jsx4(ControllerIconSVG.Small, {})\n})[size];\nvar ControllerIcon_default = ControllerIcon;\n\n// src/assets/DeviceIcon/icons/DeviceIconLarge.tsx\nimport { jsx as jsx5, jsxs as jsxs3 } from \"react/jsx-runtime\";\nvar DeviceIconLarge = () => /* @__PURE__ */ jsxs3(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n overflow: \"visible\",\n preserveAspectRatio: \"xMidYMid meet\",\n style: {\n filter: `\n drop-shadow(-1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 -1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 2px 1px rgba(9, 11, 20, 0.08))\n `\n },\n children: [\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M40 20C40 13.1779 39.5349 5.48108 37.0349 2.97376C34.5349 0.46647 25.5814 0 20.0581 0C14.5349 0 5.58143 0.46647 3.08139 2.97376C0.581393 5.48108 0 13.1779 0 20C0 26.8222 0.5814 34.519 3.0814 37.0263C5.58143 39.5336 14.5349 40 20.0581 40C25.5814 40 34.5349 39.5336 37.0349 37.0263C39.5349 34.519 40 26.8222 40 20Z\",\n fill: \"white\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M40 20C40 13.1779 39.5349 5.48108 37.0349 2.97376C34.5349 0.46647 25.5814 0 20.0581 0C14.5349 0 5.58143 0.46647 3.08139 2.97376C0.581393 5.48108 0 13.1779 0 20C0 26.8222 0.5814 34.519 3.0814 37.0263C5.58143 39.5336 14.5349 40 20.0581 40C25.5814 40 34.5349 39.5336 37.0349 37.0263C39.5349 34.519 40 26.8222 40 20Z\",\n fill: \"url(#paint0_linear)\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M21.9645 16.5315C21.9638 16.521 21.963 16.5105 21.9624 16.5H21.9479C21.9418 16.5051 21.9358 16.5104 21.9298 16.5157C21.9169 16.527 21.904 16.5384 21.8897 16.5474C21.8401 16.5785 21.7907 16.6097 21.7412 16.6409C21.5668 16.7508 21.3924 16.8608 21.2152 16.9661C21.1485 17.0058 21.1285 17.0493 21.1292 17.1239C21.132 17.4418 21.1316 17.7598 21.1312 18.0778V18.079C21.1311 18.1901 21.131 18.3012 21.131 18.4123V18.4997H20.2733V19.238H21.131V19.3294C21.131 19.5555 21.1306 19.7817 21.1303 20.0078C21.1294 20.6195 21.1285 21.2312 21.1342 21.8428C21.1363 22.0557 21.1576 22.2728 21.2057 22.48C21.3115 22.9366 21.5904 23.2579 22.0451 23.4171C22.3325 23.5177 22.6282 23.5153 22.9251 23.4702C23.0912 23.4448 23.2508 23.3986 23.3979 23.3078L23.3578 23.1644C23.3055 22.9772 23.2532 22.7904 23.1994 22.5983C23.0314 22.7041 22.8531 22.7508 22.6639 22.758C22.3444 22.7701 22.1098 22.6146 22.022 22.3124C21.9851 22.1852 21.9711 22.0479 21.9704 21.9151C21.967 21.2363 21.9675 20.5575 21.968 19.8787C21.9681 19.6914 21.9683 19.5041 21.9683 19.3167C21.9683 19.3089 21.9686 19.3012 21.969 19.2932C21.9698 19.2754 21.9713 19.2564 21.9726 19.2337H23.2783V18.4944H21.9682V18.404C21.9682 17.8022 21.9682 17.2005 21.9679 16.5987C21.9679 16.5765 21.9662 16.5537 21.9645 16.5315Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.643 21.1223H24.04C24.0416 21.1317 24.0432 21.141 24.0448 21.1504C24.0528 21.1978 24.0602 21.2446 24.0675 21.2911C24.0866 21.4121 24.1053 21.5303 24.1331 21.6458C24.2035 21.9381 24.3366 22.2 24.5476 22.4161C24.7397 22.6128 24.9773 22.7121 25.2467 22.7427C25.4731 22.7684 25.6955 22.7497 25.9146 22.69C26.235 22.6028 26.4512 22.3825 26.624 22.1104C26.6654 22.0451 26.7025 21.977 26.7407 21.907C26.758 21.8752 26.7756 21.8429 26.7939 21.8104C27.0287 21.9134 27.2641 22.0166 27.5082 22.1236C27.4998 22.1404 27.4917 22.157 27.4837 22.1734C27.4806 22.1796 27.4776 22.1858 27.4746 22.192L27.4712 22.1988C27.4663 22.2088 27.4614 22.2187 27.4565 22.2285C27.4498 22.2419 27.443 22.2551 27.4361 22.2683C27.2583 22.6068 27.0393 22.9108 26.7275 23.1378C26.4824 23.316 26.2055 23.4126 25.9112 23.4593C25.59 23.5104 25.2672 23.5193 24.9469 23.4514C24.4141 23.3387 23.9869 23.0607 23.683 22.6006C23.4118 22.1903 23.2704 21.7338 23.2299 21.2437C23.182 20.6657 23.2619 20.1099 23.5141 19.585C23.7852 19.0206 24.2048 18.6258 24.814 18.4699C25.4508 18.3069 26.0647 18.3715 26.6354 18.7172C27.0403 18.9626 27.2943 19.334 27.4653 19.77C27.5933 20.0959 27.6416 20.4362 27.643 20.7849C27.6431 20.8137 27.6431 20.8426 27.6432 20.8716C27.6432 20.9147 27.6431 20.9583 27.6431 21.0031C27.643 21.0418 27.643 21.0814 27.643 21.1223ZM26.7741 20.3706C26.6756 19.7874 26.2725 19.0752 25.3251 19.1394C24.988 19.162 24.6987 19.2884 24.4757 19.5507C24.2751 19.7867 24.1592 20.0628 24.1029 20.3706H26.7741Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M30.9649 18.7138C30.9458 18.7884 30.9267 18.8629 30.9078 18.9376C30.8983 18.9746 30.889 19.0116 30.8797 19.0487C30.8669 19.0995 30.855 19.1504 30.8428 19.203C30.8388 19.2199 30.8348 19.2369 30.8308 19.2542L30.8236 19.2846C30.8029 19.2786 30.7869 19.2751 30.7721 19.2691C30.1924 19.0363 29.7218 19.1508 29.3216 19.6192C29.0746 19.9084 28.9475 20.2486 28.8629 20.6074C28.792 20.9081 28.7589 21.2134 28.7582 21.5214C28.7573 21.946 28.7574 22.3706 28.7576 22.7952C28.7576 22.9953 28.7577 23.1954 28.7577 23.3955V23.4866H27.8956V18.4807H28.7559V19.3132C28.7766 19.2846 28.7956 19.257 28.8138 19.2305C28.8515 19.1759 28.886 19.1257 28.9258 19.08C29.2946 18.6553 29.7492 18.3891 30.3403 18.3934C30.5706 18.3953 30.7951 18.4362 31 18.5476V18.5764L30.9649 18.7138Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.5135 21.1225H16.9247C16.9422 21.4665 17.011 21.7893 17.1759 22.0861C17.2792 22.272 17.4064 22.4372 17.5859 22.5559C17.8336 22.7194 18.1087 22.7669 18.398 22.7521C18.7276 22.7352 19.0305 22.6505 19.2692 22.4006C19.4155 22.2473 19.532 22.074 19.6237 21.883C19.6284 21.8731 19.6332 21.8633 19.6382 21.853L19.6446 21.84C19.6495 21.83 19.6546 21.8195 19.6601 21.8081C19.7827 21.8619 19.9041 21.9151 20.0265 21.9688L20.383 22.1251C20.3699 22.1496 20.3572 22.1741 20.3445 22.1983C20.3406 22.2059 20.3367 22.2134 20.3328 22.2209C20.2967 22.2903 20.2612 22.3584 20.2223 22.4244C20.0273 22.7545 19.7869 23.0411 19.4508 23.2339C19.2106 23.3716 18.9492 23.4431 18.6779 23.4754C18.3953 23.5089 18.1117 23.5136 17.831 23.455C17.2527 23.3339 16.8037 23.0241 16.4963 22.5108C16.2666 22.1274 16.1408 21.7099 16.1019 21.2646C16.0509 20.6798 16.1287 20.1167 16.3847 19.5847C16.6563 19.0203 17.076 18.6256 17.6856 18.4697C18.3252 18.3063 18.9415 18.3719 19.5138 18.7211C19.9158 18.9665 20.1685 19.3368 20.3381 19.7704C20.4636 20.0915 20.5152 20.4268 20.5135 20.7711C20.5129 20.8844 20.5135 20.9979 20.5135 21.1225ZM19.6503 20.3718C19.5 19.6204 19.0296 19.075 18.1701 19.1409C17.8389 19.1662 17.5555 19.2993 17.3384 19.5597C17.1431 19.7942 17.0287 20.0664 16.9732 20.3718H19.6503Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M9 23.5H9.82826V23.41C9.82826 23.2256 9.82783 23.0412 9.8274 22.8567C9.82632 22.3932 9.82524 21.9297 9.83099 21.4662C9.83412 21.2047 9.85399 20.9419 9.88844 20.6826C9.93472 20.3338 10.048 20.0046 10.2459 19.71C10.4407 19.42 10.6857 19.2 11.0487 19.1593C11.4653 19.1126 11.8141 19.2769 11.9158 19.7354C11.953 19.9026 11.9644 20.0784 11.9651 20.2504C11.9681 21.0098 11.9678 21.7692 11.9675 22.5286C11.9674 22.8195 11.9673 23.1103 11.9674 23.4012C11.9674 23.4233 11.9689 23.4454 11.9703 23.4674C11.971 23.4776 11.9716 23.4878 11.9722 23.4979H12.8038V23.4153C12.8038 23.2253 12.8034 23.0353 12.803 22.8453C12.8019 22.3681 12.8008 21.8909 12.8065 21.4137C12.8095 21.1595 12.8293 20.9036 12.8664 20.6522C12.928 20.2369 13.0751 19.8533 13.353 19.53C13.5801 19.2656 13.8646 19.1299 14.2149 19.1541C14.5035 19.1741 14.7187 19.3083 14.8366 19.5819C14.9194 19.7738 14.9356 19.9773 14.9357 20.1826C14.9364 20.9718 14.9363 21.761 14.9362 22.5503C14.9362 22.8377 14.9362 23.1252 14.9362 23.4127V23.499H15.7659C15.7671 23.4747 15.7692 23.4537 15.7692 23.4326C15.7692 23.1631 15.7694 22.8936 15.7695 22.624C15.77 21.735 15.7706 20.8458 15.7666 19.9568C15.7658 19.7777 15.7454 19.5953 15.7068 19.4206C15.6228 19.0396 15.4257 18.7292 15.0701 18.5486C14.6714 18.3461 14.2522 18.3443 13.8329 18.4711C13.3616 18.6136 13.029 18.9327 12.7792 19.3481C12.7642 19.373 12.7491 19.3979 12.7283 19.4323C12.7215 19.4086 12.7165 19.3907 12.712 19.3751C12.7093 19.3656 12.7067 19.3569 12.704 19.3483C12.5822 18.9524 12.349 18.6523 11.9592 18.4948C11.657 18.3727 11.3425 18.3605 11.027 18.4275C10.5064 18.5383 10.1363 18.8526 9.87605 19.3091C9.86881 19.3218 9.86162 19.3345 9.85444 19.3472C9.84961 19.3558 9.84479 19.3643 9.83997 19.3729C9.83754 19.3719 9.8351 19.3709 9.83265 19.3699C9.83044 19.369 9.82821 19.3681 9.82595 19.3673V18.4804H9V23.5Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.7273 4.18184C23.1289 4.18184 23.4546 3.85623 23.4546 3.45457C23.4546 3.05291 23.1289 2.72729 22.7273 2.72729C22.3256 2.72729 22 3.05291 22 3.45457C22 3.85623 22.3256 4.18184 22.7273 4.18184ZM17.2727 4.18185C17.6744 4.18185 18 3.85624 18 3.45457C18 3.05291 17.6744 2.7273 17.2727 2.7273C16.8711 2.7273 16.5455 3.05291 16.5455 3.45457C16.5455 3.85624 16.8711 4.18185 17.2727 4.18185Z\",\n fill: \"#33C44A\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M15.2727 3.45457C15.2727 3.85623 14.9471 4.18184 14.5454 4.18184C14.1438 4.18184 13.8182 3.85623 13.8182 3.45457C13.8182 3.05291 14.1438 2.72729 14.5454 2.72729C14.9471 2.72729 15.2727 3.05291 15.2727 3.45457Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M20.7273 3.45457C20.7273 3.85623 20.4017 4.18184 20 4.18184C19.5983 4.18184 19.2727 3.85623 19.2727 3.45457C19.2727 3.05291 19.5983 2.72729 20 2.72729C20.4017 2.72729 20.7273 3.05291 20.7273 3.45457Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx5(\"path\", {\n d: \"M25.4545 4.18184C25.8562 4.18184 26.1818 3.85623 26.1818 3.45457C26.1818 3.05291 25.8562 2.72729 25.4545 2.72729C25.0529 2.72729 24.7273 3.05291 24.7273 3.45457C24.7273 3.85623 25.0529 4.18184 25.4545 4.18184Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx5(\"defs\", {\n children: /* @__PURE__ */ jsxs3(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: \"36.4825\",\n y1: \"1.51603\",\n x2: \"15.2449\",\n y2: \"44.924\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /* @__PURE__ */ jsx5(\"stop\", {\n stopColor: \"white\",\n stopOpacity: \"0.03\"\n }),\n /* @__PURE__ */ jsx5(\"stop\", {\n offset: \"0.500255\",\n stopColor: \"#E1E4EC\",\n stopOpacity: \"0.11\"\n }),\n /* @__PURE__ */ jsx5(\"stop\", {\n offset: \"1\",\n stopColor: \"#D4DAE5\",\n stopOpacity: \"0.56\"\n })\n ]\n })\n })\n ]\n});\nvar DeviceIconLarge_default = DeviceIconLarge;\n\n// src/assets/DeviceIcon/icons/DeviceIconMedium.tsx\nimport { jsx as jsx6, jsxs as jsxs4 } from \"react/jsx-runtime\";\nvar DeviceIconMedium = () => /* @__PURE__ */ jsxs4(\"svg\", {\n width: \"28\",\n height: \"28\",\n viewBox: \"0 0 28 28\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n overflow: \"visible\",\n preserveAspectRatio: \"xMidYMid meet\",\n style: {\n filter: `\n drop-shadow(-1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 -1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 1.6px 1px rgba(9, 11, 20, 0.08))\n `\n },\n children: [\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M28 14C28 9.22452 27.6745 3.83676 25.9245 2.08163C24.1745 0.326529 17.907 0 14.0407 0C10.1744 0 3.907 0.326529 2.15697 2.08163C0.406975 3.83676 0 9.22452 0 14C0 18.7755 0.40698 24.1633 2.15698 25.9184C3.907 27.6735 10.1744 28 14.0407 28C17.907 28 24.1744 27.6735 25.9244 25.9184C27.6745 24.1633 28 18.7755 28 14Z\",\n fill: \"white\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M28 14C28 9.22452 27.6745 3.83676 25.9245 2.08163C24.1745 0.326529 17.907 0 14.0407 0C10.1744 0 3.907 0.326529 2.15697 2.08163C0.406975 3.83676 0 9.22452 0 14C0 18.7755 0.40698 24.1633 2.15698 25.9184C3.907 27.6735 10.1744 28 14.0407 28C17.907 28 24.1744 27.6735 25.9244 25.9184C27.6745 24.1633 28 18.7755 28 14Z\",\n fill: \"url(#paint0_linear)\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M15.5155 11.3243C15.5149 11.3162 15.5143 11.3081 15.5138 11.3H15.5027C15.4979 11.3039 15.4933 11.308 15.4887 11.3121C15.4788 11.3209 15.4688 11.3297 15.4578 11.3366C15.4195 11.3606 15.3814 11.3846 15.3432 11.4087C15.2087 11.4935 15.0742 11.5784 14.9375 11.6596C14.886 11.6902 14.8706 11.7237 14.8711 11.7813C14.8733 12.0266 14.873 12.2719 14.8727 12.5172V12.5181C14.8726 12.6038 14.8725 12.6895 14.8725 12.7752V12.8427H14.2108V13.4122H14.8725V13.4827C14.8725 13.6571 14.8722 13.8316 14.872 14.006C14.8712 14.4779 14.8705 14.9498 14.875 15.4216C14.8766 15.5859 14.8931 15.7533 14.9301 15.9132C15.0117 16.2654 15.2269 16.5132 15.5777 16.6361C15.7994 16.7137 16.0275 16.7119 16.2565 16.677C16.3847 16.6574 16.5077 16.6218 16.6213 16.5518L16.5903 16.4411C16.55 16.2967 16.5097 16.1526 16.4682 16.0044C16.3386 16.086 16.201 16.1221 16.055 16.1276C15.8085 16.137 15.6276 16.017 15.5598 15.7838C15.5314 15.6858 15.5206 15.5798 15.52 15.4774C15.5174 14.9537 15.5178 14.4301 15.5182 13.9065C15.5183 13.7619 15.5184 13.6174 15.5184 13.4729C15.5184 13.4669 15.5186 13.4609 15.5189 13.4547C15.5196 13.441 15.5208 13.4264 15.5217 13.4088H16.529V12.8385H15.5183V12.7688C15.5183 12.3046 15.5183 11.8404 15.5181 11.3761C15.5181 11.359 15.5168 11.3414 15.5155 11.3243Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.896 14.8658H17.1165C17.1178 14.873 17.119 14.8802 17.1203 14.8874C17.1264 14.924 17.1322 14.9602 17.1378 14.996C17.1526 15.0894 17.1669 15.1805 17.1884 15.2697C17.2427 15.4951 17.3454 15.6972 17.5082 15.8639C17.6564 16.0156 17.8396 16.0922 18.0475 16.1158C18.2221 16.1357 18.3937 16.1212 18.5627 16.0752C18.8099 16.0079 18.9767 15.8379 19.1099 15.628C19.1419 15.5777 19.1705 15.5252 19.2 15.4711C19.2133 15.4466 19.2269 15.4217 19.241 15.3966C19.4222 15.4761 19.6038 15.5557 19.7921 15.6382C19.7856 15.6512 19.7793 15.664 19.7731 15.6767C19.7708 15.6814 19.7684 15.6862 19.7661 15.691L19.7635 15.6962C19.7597 15.7039 19.756 15.7116 19.7521 15.7192C19.747 15.7295 19.7417 15.7397 19.7364 15.7498C19.5992 16.011 19.4304 16.2455 19.1898 16.4206C19.0007 16.5581 18.7871 16.6326 18.5601 16.6686C18.3123 16.708 18.0633 16.7149 17.8162 16.6625C17.4051 16.5756 17.0756 16.3611 16.8412 16.0062C16.632 15.6897 16.5229 15.3375 16.4917 14.9594C16.4547 14.5135 16.5164 14.0848 16.7109 13.6799C16.9201 13.2444 17.2437 12.94 17.7137 12.8196C18.2049 12.6939 18.6785 12.7437 19.1188 13.0104C19.4311 13.1997 19.6271 13.4863 19.759 13.8226C19.8577 14.074 19.895 14.3365 19.896 14.6055C19.8961 14.6278 19.8961 14.65 19.8962 14.6724C19.8962 14.7057 19.8961 14.7393 19.8961 14.7739C19.8961 14.8037 19.896 14.8343 19.896 14.8658ZM19.2258 14.2859C19.1497 13.836 18.8388 13.2866 18.1079 13.3361C17.8479 13.3536 17.6247 13.4511 17.4527 13.6534C17.2979 13.8355 17.2085 14.0485 17.1651 14.2859H19.2258Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M22.4586 13.0078C22.4439 13.0653 22.4292 13.1229 22.4146 13.1804C22.4073 13.209 22.4001 13.2376 22.3929 13.2662C22.3831 13.3053 22.3739 13.3446 22.3644 13.3852C22.3614 13.3982 22.3583 13.4114 22.3552 13.4247L22.3496 13.4482C22.3337 13.4435 22.3214 13.4408 22.3099 13.4362C21.8627 13.2566 21.4997 13.3449 21.1909 13.7063C21.0004 13.9293 20.9023 14.1918 20.8371 14.4686C20.7824 14.7005 20.7569 14.9361 20.7563 15.1737C20.7556 15.5012 20.7557 15.8288 20.7559 16.1563C20.7559 16.3107 20.756 16.4651 20.7559 16.6194V16.6897H20.0909V12.828H20.7546V13.4702C20.7705 13.4481 20.7852 13.4269 20.7992 13.4064C20.8283 13.3643 20.8549 13.3256 20.8856 13.2903C21.1701 12.9627 21.5208 12.7573 21.9768 12.7607C22.1545 12.7621 22.3277 12.7937 22.4857 12.8796V12.9018L22.4586 13.0078Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.3961 14.8659H11.6277C11.6411 15.1313 11.6942 15.3803 11.8214 15.6093C11.9011 15.7527 11.9992 15.8802 12.1377 15.9717C12.3288 16.0979 12.541 16.1345 12.7642 16.1231C13.0184 16.11 13.2521 16.0447 13.4362 15.8519C13.5491 15.7337 13.639 15.6 13.7097 15.4526C13.7133 15.445 13.717 15.4374 13.7209 15.4295L13.7258 15.4194C13.7296 15.4118 13.7336 15.4037 13.7378 15.3949C13.8324 15.4363 13.926 15.4774 14.0205 15.5188L14.2955 15.6394C14.2854 15.6583 14.2755 15.6771 14.2658 15.6959C14.2627 15.7017 14.2597 15.7075 14.2567 15.7133C14.2289 15.7668 14.2015 15.8194 14.1715 15.8703C14.0211 16.1249 13.8356 16.346 13.5763 16.4948C13.3911 16.601 13.1894 16.6561 12.9801 16.681C12.7621 16.7069 12.5433 16.7105 12.3268 16.6653C11.8807 16.5719 11.5343 16.3329 11.2972 15.9369C11.12 15.6411 11.0229 15.3191 10.9929 14.9756C10.9535 14.5244 11.0136 14.09 11.211 13.6797C11.4206 13.2442 11.7443 12.9397 12.2146 12.8195C12.708 12.6935 13.1834 12.7441 13.6249 13.0135C13.9351 13.2027 14.13 13.4884 14.2608 13.8229C14.3577 14.0706 14.3975 14.3293 14.3961 14.5949C14.3957 14.6823 14.3961 14.7698 14.3961 14.8659ZM13.7303 14.2868C13.6143 13.7071 13.2514 13.2865 12.5884 13.3373C12.3329 13.3568 12.1142 13.4595 11.9468 13.6603C11.7961 13.8413 11.7079 14.0513 11.665 14.2868H13.7303Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M5.5143 16.7H6.15324V16.6306C6.15324 16.4883 6.15291 16.3461 6.15258 16.2038C6.15174 15.8462 6.15091 15.4887 6.15534 15.1311C6.15776 14.9293 6.17309 14.7266 6.19966 14.5266C6.23537 14.2575 6.32275 14.0036 6.47545 13.7763C6.62573 13.5526 6.81466 13.3829 7.09475 13.3515C7.41611 13.3155 7.68518 13.4422 7.76363 13.7959C7.7923 13.9249 7.80112 14.0605 7.80165 14.1932C7.804 14.779 7.80377 15.3649 7.80355 15.9507C7.80346 16.1751 7.80337 16.3994 7.80343 16.6238C7.80343 16.6408 7.80456 16.6579 7.80567 16.6749C7.80619 16.6827 7.80671 16.6906 7.80711 16.6984H8.44868V16.6346C8.44868 16.4881 8.44835 16.3415 8.44801 16.195C8.44718 15.8268 8.44635 15.4587 8.45078 15.0906C8.45309 14.8945 8.46832 14.6971 8.49699 14.5031C8.54446 14.1828 8.65798 13.8869 8.87233 13.6374C9.0475 13.4335 9.267 13.3288 9.53722 13.3475C9.75986 13.3629 9.9259 13.4664 10.0168 13.6775C10.0807 13.8255 10.0932 13.9825 10.0933 14.1409C10.0938 14.7497 10.0938 15.3585 10.0937 15.9674C10.0936 16.1891 10.0936 16.4109 10.0936 16.6327V16.6993H10.7337C10.7347 16.6805 10.7362 16.6643 10.7362 16.648C10.7363 16.4401 10.7364 16.2322 10.7365 16.0243C10.7369 15.3384 10.7373 14.6525 10.7342 13.9667C10.7336 13.8286 10.7179 13.6878 10.6881 13.5531C10.6233 13.2591 10.4713 13.0197 10.197 12.8803C9.88935 12.7242 9.56599 12.7228 9.24253 12.8206C8.87895 12.9305 8.62238 13.1767 8.42967 13.4971C8.41812 13.5164 8.40646 13.5356 8.39039 13.5621C8.38517 13.5438 8.38133 13.53 8.37786 13.5179C8.37575 13.5106 8.37377 13.5039 8.3717 13.4972C8.2777 13.1919 8.0978 12.9604 7.79713 12.8389C7.56398 12.7447 7.32139 12.7353 7.07795 12.787C6.67635 12.8724 6.3909 13.1149 6.1901 13.4671C6.18452 13.4769 6.17897 13.4866 6.17344 13.4964C6.16971 13.503 6.16599 13.5096 6.16227 13.5162C6.1604 13.5155 6.15852 13.5147 6.15663 13.514C6.15492 13.5133 6.1532 13.5126 6.15146 13.5119V12.8278H5.5143V16.7Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.625 4.30911C17.0116 4.30911 17.325 3.99571 17.325 3.60912C17.325 3.22252 17.0116 2.90912 16.625 2.90912C16.2384 2.90912 15.925 3.22252 15.925 3.60912C15.925 3.99571 16.2384 4.30911 16.625 4.30911ZM11.375 4.30912C11.7616 4.30912 12.075 3.99572 12.075 3.60912C12.075 3.22252 11.7616 2.90912 11.375 2.90912C10.9884 2.90912 10.675 3.22252 10.675 3.60912C10.675 3.99572 10.9884 4.30912 11.375 4.30912Z\",\n fill: \"#33C44A\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M9.44998 3.60912C9.44998 3.99572 9.13658 4.30912 8.74998 4.30912C8.36339 4.30912 8.04999 3.99572 8.04999 3.60912C8.04999 3.22253 8.36339 2.90913 8.74998 2.90913C9.13658 2.90913 9.44998 3.22253 9.44998 3.60912Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M14.7 3.60912C14.7 3.99572 14.3866 4.30912 14 4.30912C13.6134 4.30912 13.3 3.99572 13.3 3.60912C13.3 3.22253 13.6134 2.90913 14 2.90913C14.3866 2.90913 14.7 3.22253 14.7 3.60912Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx6(\"path\", {\n d: \"M19.2499 4.30912C19.6365 4.30912 19.9499 3.99572 19.9499 3.60912C19.9499 3.22253 19.6365 2.90913 19.2499 2.90913C18.8633 2.90913 18.5499 3.22253 18.5499 3.60912C18.5499 3.99572 18.8633 4.30912 19.2499 4.30912Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx6(\"defs\", {\n children: /* @__PURE__ */ jsxs4(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: \"25.5378\",\n y1: \"1.06122\",\n x2: \"10.6714\",\n y2: \"31.4468\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /* @__PURE__ */ jsx6(\"stop\", {\n stopColor: \"white\",\n stopOpacity: \"0.03\"\n }),\n /* @__PURE__ */ jsx6(\"stop\", {\n offset: \"0.500255\",\n stopColor: \"#E1E4EC\",\n stopOpacity: \"0.11\"\n }),\n /* @__PURE__ */ jsx6(\"stop\", {\n offset: \"1\",\n stopColor: \"#D4DAE5\",\n stopOpacity: \"0.56\"\n })\n ]\n })\n })\n ]\n});\nvar DeviceIconMedium_default = DeviceIconMedium;\n\n// src/assets/DeviceIcon/icons/DeviceIconSmall.tsx\nimport { jsx as jsx7, jsxs as jsxs5 } from \"react/jsx-runtime\";\nvar DeviceIconSmall = () => /* @__PURE__ */ jsxs5(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n overflow: \"visible\",\n preserveAspectRatio: \"xMidYMid meet\",\n style: {\n filter: `\n drop-shadow(-1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(1px 0 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 -1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 1px 0 rgba(9, 11, 20, 0.05)) \n drop-shadow(0 1px 1px rgba(9, 11, 20, 0.08))\n `\n },\n children: [\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M20 10C20 6.58894 19.7675 2.74054 18.5175 1.48688C17.2675 0.233235 12.7907 0 10.0291 0C7.26743 0 2.79072 0.233235 1.5407 1.48688C0.290696 2.74054 0 6.58894 0 10C0 13.4111 0.2907 17.2595 1.5407 18.5131C2.79072 19.7668 7.26743 20 10.0291 20C12.7907 20 17.2674 19.7668 18.5174 18.5131C19.7675 17.2595 20 13.4111 20 10Z\",\n fill: \"white\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M20 10C20 6.58894 19.7675 2.74054 18.5175 1.48688C17.2675 0.233235 12.7907 0 10.0291 0C7.26743 0 2.79072 0.233235 1.5407 1.48688C0.290696 2.74054 0 6.58894 0 10C0 13.4111 0.2907 17.2595 1.5407 18.5131C2.79072 19.7668 7.26743 20 10.0291 20C12.7907 20 17.2674 19.7668 18.5174 18.5131C19.7675 17.2595 20 13.4111 20 10Z\",\n fill: \"url(#paint0_linear)\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M6.75761 12.45H7.551V12.3639C7.551 12.1872 7.55059 12.0105 7.55017 11.8338C7.54914 11.3898 7.5481 10.9459 7.55361 10.5019C7.5566 10.2513 7.57564 9.9996 7.60864 9.75123C7.65297 9.4171 7.76147 9.10185 7.95108 8.81964C8.13769 8.54187 8.37229 8.33112 8.72008 8.29215C9.11912 8.24738 9.45321 8.40474 9.55063 8.84391C9.58623 9.00409 9.59718 9.17251 9.59783 9.33728C9.60076 10.0647 9.60047 10.7921 9.60019 11.5196C9.60009 11.7982 9.59998 12.0768 9.60005 12.3554C9.60005 12.3765 9.60145 12.3977 9.60283 12.4188C9.60348 12.4286 9.60412 12.4383 9.60461 12.448H10.4013V12.3688C10.4013 12.1869 10.4008 12.0049 10.4004 11.8229C10.3994 11.3658 10.3984 10.9086 10.4039 10.4516C10.4067 10.2081 10.4256 9.96292 10.4612 9.72211C10.5202 9.32433 10.6612 8.9569 10.9273 8.64718C11.1448 8.39396 11.4174 8.26397 11.7529 8.28716C12.0294 8.30631 12.2355 8.43481 12.3485 8.69693C12.4277 8.88072 12.4433 9.07569 12.4434 9.27229C12.4441 10.0283 12.444 10.7843 12.4439 11.5403C12.4438 11.8156 12.4438 12.091 12.4438 12.3664V12.4491H13.2386C13.2398 12.4257 13.2417 12.4057 13.2417 12.3854C13.2418 12.1273 13.2419 11.8691 13.2421 11.6109C13.2426 10.7593 13.2431 9.90757 13.2393 9.05601C13.2385 8.88449 13.2189 8.70974 13.182 8.54241C13.1016 8.1774 12.9127 7.88009 12.5721 7.70709C12.1902 7.51319 11.7886 7.51144 11.387 7.63293C10.9355 7.76939 10.6169 8.07506 10.3777 8.47297C10.3633 8.49683 10.3488 8.5207 10.3289 8.5536C10.3224 8.5309 10.3176 8.51377 10.3133 8.49881C10.3107 8.48969 10.3082 8.48138 10.3057 8.4731C10.189 8.09394 9.96558 7.80647 9.59223 7.65558C9.30273 7.53868 9.00149 7.52695 8.69921 7.59113C8.20054 7.69725 7.8461 7.99834 7.59677 8.43562C7.58983 8.44778 7.58295 8.45995 7.57608 8.47211C7.57145 8.48031 7.56683 8.4885 7.56221 8.4967L7.5552 8.49386L7.54878 8.49131V7.64183H6.75761V12.45Z\",\n fill: \"#5461C8\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.2499 3.56364C12.5813 3.56364 12.8499 3.29501 12.8499 2.96364C12.8499 2.63228 12.5813 2.36365 12.2499 2.36365C11.9186 2.36365 11.6499 2.63228 11.6499 2.96364C11.6499 3.29501 11.9186 3.56364 12.2499 3.56364ZM7.75007 3.56366C8.08144 3.56366 8.35007 3.29503 8.35007 2.96366C8.35007 2.63229 8.08144 2.36366 7.75007 2.36366C7.4187 2.36366 7.15007 2.63229 7.15007 2.96366C7.15007 3.29503 7.4187 3.56366 7.75007 3.56366Z\",\n fill: \"#33C44A\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M6.10002 2.96368C6.10002 3.29505 5.83139 3.56367 5.50002 3.56367C5.16865 3.56367 4.90002 3.29505 4.90002 2.96368C4.90002 2.63231 5.16865 2.36368 5.50002 2.36368C5.83139 2.36368 6.10002 2.63231 6.10002 2.96368Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M10.6 2.96368C10.6 3.29505 10.3314 3.56367 10 3.56367C9.66863 3.56367 9.40001 3.29505 9.40001 2.96368C9.40001 2.63231 9.66863 2.36368 10 2.36368C10.3314 2.36368 10.6 2.63231 10.6 2.96368Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx7(\"path\", {\n d: \"M14.5 3.56367C14.8314 3.56367 15.1 3.29505 15.1 2.96368C15.1 2.63231 14.8314 2.36368 14.5 2.36368C14.1686 2.36368 13.9 2.63231 13.9 2.96368C13.9 3.29505 14.1686 3.56367 14.5 3.56367Z\",\n fill: \"#6977E1\"\n }),\n /* @__PURE__ */ jsx7(\"defs\", {\n children: /* @__PURE__ */ jsxs5(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: \"18.2413\",\n y1: \"0.758017\",\n x2: \"7.62243\",\n y2: \"22.462\",\n gradientUnits: \"userSpaceOnUse\",\n children: [\n /* @__PURE__ */ jsx7(\"stop\", {\n stopColor: \"white\",\n stopOpacity: \"0.03\"\n }),\n /* @__PURE__ */ jsx7(\"stop\", {\n offset: \"0.500255\",\n stopColor: \"#E1E4EC\",\n stopOpacity: \"0.11\"\n }),\n /* @__PURE__ */ jsx7(\"stop\", {\n offset: \"1\",\n stopColor: \"#D4DAE5\",\n stopOpacity: \"0.56\"\n })\n ]\n })\n })\n ]\n});\nvar DeviceIconSmall_default = DeviceIconSmall;\n\n// src/assets/DeviceIcon/DeviceIcon.tsx\nimport { jsx as jsx8 } from \"react/jsx-runtime\";\nvar DeviceIconSize = /* @__PURE__ */ ((DeviceIconSize2) => {\n DeviceIconSize2[\"Large\"] = \"large\";\n DeviceIconSize2[\"Medium\"] = \"medium\";\n DeviceIconSize2[\"Small\"] = \"small\";\n return DeviceIconSize2;\n})(DeviceIconSize || {});\nvar DeviceIcon = ({ size }) => ({\n large: /* @__PURE__ */ jsx8(DeviceIconLarge_default, {}),\n medium: /* @__PURE__ */ jsx8(DeviceIconMedium_default, {}),\n small: /* @__PURE__ */ jsx8(DeviceIconSmall_default, {})\n})[size];\nvar DeviceIcon_default = DeviceIcon;\n\n// src/assets/SwitchIcon/SwitchIcon.tsx\nimport { jsx as jsx9 } from \"react/jsx-runtime\";\nvar SwitchIcon = ({ size = \"large\" }) => ({\n large: /* @__PURE__ */ jsx9(SwitchIconSVG.Large, {}),\n medium: /* @__PURE__ */ jsx9(SwitchIconSVG.Medium, {}),\n small: /* @__PURE__ */ jsx9(SwitchIconSVG.Small, {})\n})[size];\nvar SwitchIcon_default = SwitchIcon;\n\n// src/assets/HardwareIcon/HardwareIcon.tsx\nimport { jsx as jsx10 } from \"react/jsx-runtime\";\nvar HardwareIcon = ({ icon: icon2, ...props }) => ({\n controller: /* @__PURE__ */ jsx10(ControllerIcon_default, {\n ...props\n }),\n switch: /* @__PURE__ */ jsx10(SwitchIcon_default, {\n ...props\n }),\n ap: /* @__PURE__ */ jsx10(DeviceIcon_default, {\n ...props\n })\n})[icon2];\nvar HardwareIcon_default = HardwareIcon;\n\n// src/utilities/shared/Color.tsx\nvar import_lodash = __toESM(require_lodash());\nvar colorCSS = (dark, light) => (0, import_lodash.merge)(\n {},\n light != null ? { color: `$${light}` } : {},\n dark != null ? { [darkThemeSelector]: { color: `$${dark}` } } : {}\n);\n\n// src/utilities/shared/sizes.ts\nvar import_ts_brand = __toESM(require_lib());\nvar markSpace = (0, import_ts_brand.make)();\nvar space = (val) => markSpace(val);\n\n// src/assets/Icon/Icon.tsx\nimport { jsx as jsx11 } from \"react/jsx-runtime\";\nvar Icons = {\n accessControl: IconSVG.AccessControl,\n accessPoint: IconSVG.AccessPoint,\n area: IconSVG.Area,\n arrowDown: IconSVG.ArrowDown,\n arrowLeft: IconSVG.ArrowLeft,\n arrowRight: IconSVG.ArrowRight,\n arrowRotate: IconSVG.ArrowRotate,\n arrowsDiagonal: IconSVG.ArrowsDiagonal,\n arrowsMove: IconSVG.ArrowsMove,\n arrowsVertical: IconSVG.ArrowsVertical,\n arrowUp: IconSVG.ArrowUp,\n attention: IconSVG.Attention,\n bell: IconSVG.Bell,\n bellFilled: IconSVG.BellFilled,\n bookmark: IconSVG.Bookmark,\n bookmarkFilled: IconSVG.BookmarkFilled,\n calendar: IconSVG.Calendar,\n changelog: IconSVG.Changelog,\n channel: IconSVG.Channel,\n chat: IconSVG.Chat,\n checkmark: IconSVG.Checkmark,\n checkmarkCircle: IconSVG.CheckmarkCircle,\n chevronDown: IconSVG.ChevronDown,\n chevronLeft: IconSVG.ChevronLeft,\n chevronRight: IconSVG.ChevronRight,\n chevronsVertical: IconSVG.ChevronsVertical,\n chevronUp: IconSVG.ChevronUp,\n client: IconSVG.Client,\n clock: IconSVG.Clock,\n cog: IconSVG.Cog,\n company: IconSVG.Company,\n connection: IconSVG.Connection,\n contentFilter: IconSVG.ContentFilter,\n controller: IconSVG.Controller,\n copy: IconSVG.Copy,\n cross: IconSVG.Cross,\n crossCircle: IconSVG.CrossCircle,\n delete: IconSVG.Delete,\n device: IconSVG.Device,\n document: IconSVG.Document,\n download: IconSVG.Download,\n drawerClose: IconSVG.DrawerClose,\n drawerOpen: IconSVG.DrawerOpen,\n email: IconSVG.Email,\n eyeClosed: IconSVG.EyeClosed,\n eyeOpen: IconSVG.EyeOpen,\n filter: IconSVG.Filter,\n floorplan: IconSVG.Floorplan,\n fullscreen: IconSVG.Fullscreen,\n globe: IconSVG.Globe,\n home: IconSVG.Home,\n information: IconSVG.Information,\n internet: IconSVG.Internet,\n location: IconSVG.Location,\n log: IconSVG.Log,\n megaphone: IconSVG.Megaphone,\n menu: IconSVG.Menu,\n minus: IconSVG.Minus,\n minusCircle: IconSVG.MinusCircle,\n noise: IconSVG.Noise,\n onboarding: IconSVG.Onboarding,\n overflowHorizontal: IconSVG.OverflowHorizontal,\n overflowVertical: IconSVG.OverflowVertical,\n padlock: IconSVG.Padlock,\n paneLeft: IconSVG.PaneLeft,\n paneRight: IconSVG.PaneRight,\n pencil: IconSVG.Pencil,\n phone: IconSVG.Phone,\n placeholder: IconSVG.Placeholder,\n plus: IconSVG.Plus,\n plusCircle: IconSVG.PlusCircle,\n portforwarding: IconSVG.Portforwarding,\n power: IconSVG.Power,\n pulse: IconSVG.Pulse,\n qrcode: IconSVG.QRCode,\n question: IconSVG.Question,\n reporting: IconSVG.Reporting,\n search: IconSVG.Search,\n searchScoped: IconSVG.SearchScoped,\n secure: IconSVG.Secure,\n settings: IconSVG.Settings,\n share: IconSVG.Share,\n sort: IconSVG.Sort,\n speedHigh: IconSVG.SpeedHigh,\n speedLow: IconSVG.SpeedLow,\n speedMedium: IconSVG.SpeedMedium,\n ssid: IconSVG.SSID,\n switch: IconSVG.Switch,\n tag: IconSVG.Tag,\n trafficShaping: IconSVG.TrafficShaping,\n upload: IconSVG.Upload,\n user: IconSVG.User,\n version: IconSVG.Version,\n vlan: IconSVG.VLAN,\n warning: IconSVG.Warning,\n width: IconSVG.Width,\n wifi: IconSVG.WiFi,\n wired: IconSVG.Wired,\n wrench: IconSVG.Wrench\n};\nvar IconNames = Object.keys(Icons);\nvar BaseSVG = styled(\"svg\", {\n display: \"inline-block\",\n flexGrow: 0,\n flexShrink: 0,\n color: `var(---iconColor, currentColor)`\n});\nvar Icon = ({\n className,\n color: color2,\n icon: icon2,\n size = space(16)\n}) => {\n const NamedIcon = Icons[icon2];\n if (!NamedIcon) {\n console.error(`Missing icon named ${icon2}`);\n return null;\n }\n const cssFromProps = colorCSS(color2 == null ? void 0 : color2.dark, color2 == null ? void 0 : color2.light);\n return /* @__PURE__ */ jsx11(BaseSVG, {\n as: NamedIcon,\n width: size,\n height: size,\n className,\n css: cssFromProps\n });\n};\nvar Icon_default = Icon;\n\n// src/assets/LoadingIcon/LoadingIcon.tsx\nvar import_lodash2 = __toESM(require_lodash());\n\n// src/utilities/shared/Height.tsx\nvar heightCSS = (height) => {\n if (height === \"auto\" || height === \"fit-content\" || height === \"max-content\" || height === \"min-content\") {\n return { height };\n }\n if (height === \"full\") {\n return { height: \"100%\" };\n }\n if (height === \"screen\") {\n return { height: \"100vh\" };\n }\n if (height != null) {\n return {\n height: `$${height}`\n };\n }\n return {};\n};\n\n// src/utilities/shared/Width.tsx\nvar widthCSS = (width) => {\n if (width === \"auto\" || width === \"fit-content\" || width === \"max-content\" || width === \"min-content\") {\n return { width };\n }\n if (width === \"full\") {\n return { width: \"100%\" };\n }\n if (width === \"screen\") {\n return { width: \"100vw\" };\n }\n if (width != null) {\n return {\n width: `$${width}`\n };\n }\n return {};\n};\n\n// src/assets/LoadingIcon/LoadingIcon.tsx\nimport { jsx as jsx12, jsxs as jsxs6 } from \"react/jsx-runtime\";\nvar BaseSVG2 = styled(\"svg\");\nvar circleBounce = keyframes({\n \"0%\": { transform: \"translate(0,0)\" },\n \"8.333333%\": { transform: \"translate(0,0)\" },\n \"25%\": { transform: \"translate(0,-8px)\" },\n \"41.666667%\": { transform: \"translate(0,4px)\" },\n \"58.333333%\": { transform: \"translate(0,-2px)\" },\n \"75%\": { transform: \"translate(0,0)\" },\n \"100%\": { transform: \"translate(0,0)\" }\n});\nvar Circle = styled(\"circle\", {\n fill: \"currentColor\",\n animationName: circleBounce.name,\n animationDuration: \"1200ms\",\n animationIterationCount: \"infinite\",\n animationFillMode: \"forwards\",\n willChange: \"transform\",\n animationTimingFunction: \"cubic-bezier(0.42,0,0.58,1)\"\n});\nvar LoadingIcon = ({\n className,\n color: color2,\n size\n}) => {\n const css3 = (0, import_lodash2.merge)(colorCSS(color2 == null ? void 0 : color2.dark, color2 == null ? void 0 : color2.light), widthCSS(size), heightCSS(size));\n return /* @__PURE__ */ jsxs6(BaseSVG2, {\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 40 40\",\n xmlns: \"http://www.w3.org/2000/svg\",\n preserveAspectRatio: \"xMidYMid meet\",\n css: css3,\n className,\n children: [\n /* @__PURE__ */ jsx12(\"g\", {\n transform: \"translate(7,20)\",\n children: /* @__PURE__ */ jsx12(Circle, {\n r: \"3\"\n })\n }),\n /* @__PURE__ */ jsx12(\"g\", {\n transform: \"translate(20,20)\",\n children: /* @__PURE__ */ jsx12(Circle, {\n r: \"3\",\n style: { animationDelay: \"100ms\" }\n })\n }),\n /* @__PURE__ */ jsx12(\"g\", {\n transform: \"translate(33,20)\",\n children: /* @__PURE__ */ jsx12(Circle, {\n r: \"3\",\n style: { animationDelay: \"200ms\" }\n })\n })\n ]\n });\n};\nvar LoadingIcon_default = LoadingIcon;\n\n// src/assets/Logo/Logo.tsx\nimport { jsx as jsx13, jsxs as jsxs7 } from \"react/jsx-runtime\";\nvar Container = styled(\"svg\", {\n display: \"flex\",\n variants: {\n color: {\n brand: {\n fill: colors[\"brand-600\"]\n },\n white: {\n fill: colors.white\n },\n auto: {\n fill: colors[\"brand-600\"],\n [darkThemeSelector]: {\n fill: colors.white\n }\n }\n }\n }\n});\nvar Logo = ({\n color: color2 = \"auto\",\n height = 5,\n variant = \"full\"\n}) => variant === \"initial\" ? /* @__PURE__ */ jsx13(Container, {\n viewBox: \"0 0 16 12\",\n preserveAspectRatio: \"xMidYMid meet\",\n xmlns: \"http://www.w3.org/2000/svg\",\n color: color2,\n style: { height: height * 4 },\n children: /* @__PURE__ */ jsx13(\"path\", {\n d: \"M0 12H1.95759V11.7891C1.95759 11.3533 1.95655 10.9175 1.95551 10.4816C1.95293 9.39739 1.95035 8.31314 1.96374 7.22907C1.9713 6.61549 2.01838 5.99889 2.09976 5.39062C2.2092 4.57247 2.47684 3.80033 2.94454 3.10919C3.40487 2.42899 3.98396 1.91303 4.84195 1.81752C5.82646 1.70798 6.6507 2.09313 6.89129 3.16868C6.97909 3.56097 7.00594 3.97358 7.00757 4.37711C7.01494 6.16811 7.01422 7.95916 7.0135 9.7502C7.01323 10.4229 7.01296 11.0955 7.01312 11.7682C7.01312 11.8203 7.01659 11.8724 7.02004 11.924C7.02163 11.9478 7.02321 11.9715 7.02444 11.9951H8.98996V11.8014C8.98995 11.3554 8.98891 10.9094 8.98788 10.4634C8.98528 9.34412 8.98269 8.22484 8.99628 7.10574C9.00353 6.50952 9.05 5.9092 9.13794 5.31958C9.28321 4.34517 9.63124 3.44532 10.2877 2.68683C10.8244 2.0668 11.4969 1.74861 12.3249 1.80529C13.0071 1.852 13.5155 2.16672 13.7942 2.80867C13.9898 3.25896 14.0282 3.73622 14.0286 4.21776C14.0302 6.09699 14.0299 7.9762 14.0297 9.8554C14.0297 10.5021 14.0296 11.1487 14.0296 11.7954V11.9978H15.9905C15.9915 11.9792 15.9927 11.9613 15.9938 11.9441C15.9961 11.9085 15.9983 11.8752 15.9983 11.842C15.9984 11.2075 15.9988 10.573 15.9991 9.93856C16.0004 7.85505 16.0016 5.77153 15.9923 3.68808C15.9903 3.26806 15.942 2.84027 15.851 2.43021C15.6525 1.53647 15.1866 0.808494 14.3461 0.384811C13.4038 -0.0902433 12.413 -0.0943881 11.4221 0.202971C10.3082 0.537228 9.5221 1.28569 8.93171 2.26023C8.90778 2.29975 8.88371 2.33916 8.85547 2.38541C8.84187 2.40767 8.8273 2.43152 8.81132 2.45773C8.80222 2.42624 8.79451 2.3991 8.78761 2.37482C8.77492 2.33019 8.76497 2.29519 8.7542 2.26047C8.46598 1.3319 7.91506 0.627877 6.99365 0.258421C6.2795 -0.0279304 5.53613 -0.0565045 4.79055 0.100839C3.56017 0.360451 2.68555 1.09797 2.07043 2.1689C2.05113 2.20254 2.03193 2.23626 2.01274 2.26997C2.00355 2.28611 1.99437 2.30224 1.98518 2.31836L1.95208 2.30521V0.224988H0V12Z\"\n })\n}) : /* @__PURE__ */ jsx13(Container, {\n viewBox: \"0 0 51 16\",\n preserveAspectRatio: \"xMidYMid meet\",\n xmlns: \"http://www.w3.org/2000/svg\",\n color: color2,\n style: { height: height * 4 },\n children: /* @__PURE__ */ jsxs7(\"g\", {\n children: [\n /* @__PURE__ */ jsx13(\"path\", {\n d: \"M30.0546 0.0716724C30.0527 0.0477816 30.0509 0.0238908 30.0495 0H30.0161C30.0019 0.0115478 29.988 0.0236354 29.9741 0.0357236C29.9443 0.0616918 29.9145 0.0876623 29.8811 0.108287C29.7657 0.179717 29.6504 0.251396 29.5351 0.323076C29.1316 0.573972 28.7278 0.825005 28.3177 1.06539C28.1628 1.15613 28.1164 1.2555 28.118 1.42583C28.1246 2.1587 28.1237 2.89163 28.1229 3.62454V3.62514C28.1226 3.87377 28.1223 4.12239 28.1223 4.37102V4.57073H26.1341V6.25847H28.1223V6.46729C28.1223 6.98616 28.1215 7.50503 28.1207 8.02391V8.02446C28.1186 9.42036 28.1165 10.8163 28.1298 12.212C28.1344 12.6987 28.1841 13.1949 28.2954 13.6686C28.5407 14.7121 29.1872 15.4466 30.2415 15.8105C30.9076 16.0404 31.5931 16.0351 32.2815 15.9317C32.6666 15.8739 33.0364 15.7684 33.3774 15.5608L32.9175 13.9389C32.528 14.1808 32.1146 14.2877 31.6759 14.3041C30.9353 14.3317 30.3914 13.976 30.1879 13.2853C30.1023 12.9948 30.0698 12.6808 30.0682 12.3772C30.0603 10.842 30.0615 9.30684 30.0626 7.77164C30.0629 7.32717 30.0632 6.8827 30.0633 6.43824C30.0634 6.40024 30.0659 6.36227 30.0689 6.31912C30.0704 6.29709 30.072 6.27371 30.0733 6.24829H33.1003V4.5585H30.063L30.063 3.5492C30.0631 2.44127 30.0631 1.33336 30.0625 0.225428C30.0625 0.174176 30.0585 0.122924 30.0546 0.0716724Z\"\n }),\n /* @__PURE__ */ jsx13(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M43.2185 10.5652H34.8658C34.8888 10.6956 34.9094 10.8242 34.9297 10.9511C34.974 11.2281 35.0171 11.4976 35.0816 11.7618C35.2448 12.43 35.5535 13.0288 36.0427 13.5225C36.488 13.972 37.0387 14.1992 37.6634 14.2691C38.1882 14.3278 38.7037 14.2851 39.2117 14.1487C39.9545 13.9492 40.4558 13.4456 40.8561 12.8237C40.9514 12.6757 41.0367 12.5214 41.1246 12.3627C41.1655 12.2888 41.2069 12.2139 41.2501 12.1382L42.9058 12.854C42.8875 12.8903 42.8697 12.9262 42.8521 12.9617C42.8145 13.0376 42.7776 13.1119 42.7388 13.1849C42.3265 13.9585 41.819 14.6533 41.0959 15.1721C40.528 15.5796 39.886 15.8002 39.2038 15.9071C38.4591 16.0238 37.7108 16.0441 36.9682 15.8891C35.7329 15.6314 34.7428 14.9958 34.0382 13.9445C33.4095 13.0065 33.0819 11.963 32.9879 10.8426C32.877 9.52166 33.0623 8.25145 33.6468 7.05164C34.2755 5.76129 35.2481 4.8591 36.6604 4.50252C38.1363 4.12991 39.5597 4.27773 40.8828 5.06805C41.8213 5.62866 42.4101 6.47796 42.8066 7.4743C43.1031 8.21916 43.2152 8.99729 43.2183 9.79419C43.219 9.96292 43.2189 10.1316 43.2187 10.3086L43.2185 10.5652ZM41.2041 8.84734C40.9757 7.51411 40.0413 5.88625 37.845 6.03274C37.0636 6.08484 36.393 6.37347 35.8761 6.97289C35.4107 7.51255 35.1424 8.14354 35.0118 8.84734H41.2041Z\"\n }),\n /* @__PURE__ */ jsx13(\"path\", {\n d: \"M50.9175 5.06442C50.8517 5.31791 50.7858 5.57191 50.7212 5.82566C50.6911 5.94403 50.6629 6.06287 50.6338 6.18583L50.6336 6.18665C50.6198 6.24503 50.6058 6.30433 50.5912 6.36496C50.575 6.3602 50.5601 6.35617 50.5461 6.35238C50.5186 6.34497 50.4947 6.33851 50.4719 6.32945C49.128 5.79739 48.0369 6.05885 47.1092 7.12968C46.5367 7.79063 46.2419 8.56833 46.0459 9.38831C45.8816 10.0757 45.8049 10.7733 45.8033 11.4776C45.8011 12.4926 45.8015 13.5076 45.8019 14.5226C45.802 14.9355 45.8022 15.3484 45.8021 15.7612V15.9695H43.8037V4.52745H45.798V6.43009C45.8462 6.36427 45.8905 6.30094 45.933 6.24005C46.0199 6.11572 46.0997 6.00137 46.1917 5.89701C47.0468 4.92635 48.1004 4.31785 49.4708 4.32803C50.0047 4.33199 50.5252 4.42556 51 4.68012V4.74604L50.9175 5.06442Z\"\n }),\n /* @__PURE__ */ jsx13(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M26.6901 10.5658H18.371C18.4112 11.352 18.5711 12.0898 18.9533 12.7683C19.1926 13.193 19.4875 13.5709 19.9037 13.842C20.4779 14.2159 21.1156 14.3245 21.7863 14.2906C22.5504 14.2521 23.2525 14.0584 23.8058 13.4872C24.1452 13.1369 24.415 12.7408 24.6276 12.304C24.6443 12.2697 24.6613 12.2354 24.6801 12.1976L24.712 12.133L26.3878 12.8575C26.3476 12.9317 26.3087 13.0055 26.2701 13.0787C26.187 13.2363 26.1052 13.3915 26.0154 13.5414C25.5634 14.2959 25.006 14.9512 24.2266 15.3919C23.6702 15.7065 23.0642 15.87 22.4351 15.9437C21.78 16.0203 21.1225 16.0313 20.4718 15.8971C19.1311 15.6205 18.0902 14.9123 17.3778 13.7391C16.8454 12.8625 16.5538 11.9085 16.4635 10.8907C16.345 9.55365 16.5256 8.2667 17.1189 7.05083C17.7486 5.76056 18.7217 4.85844 20.1347 4.50232C21.6173 4.12866 23.0463 4.27878 24.3729 5.07713C25.3047 5.63792 25.8905 6.4843 26.2837 7.47533C26.5749 8.20924 26.6945 8.97549 26.6904 9.76272C26.6894 9.93918 26.6897 10.1157 26.6899 10.3003C26.69 10.3867 26.6901 10.475 26.6901 10.5658ZM24.6894 8.84987C24.341 7.1324 23.2502 5.88576 21.2581 6.03636C20.4901 6.09441 19.833 6.39851 19.3301 6.99362C18.8771 7.52971 18.6119 8.15184 18.4833 8.84987H24.6894Z\"\n }),\n /* @__PURE__ */ jsx13(\"path\", {\n d: \"M0 16H1.92014V15.7945C1.92014 15.3699 1.91912 14.9452 1.91811 14.5206C1.91557 13.4641 1.91304 12.4077 1.92618 11.3514C1.93359 10.7536 1.97977 10.1528 2.05959 9.5601C2.16694 8.76294 2.42946 8.01059 2.88822 7.33717C3.33974 6.67441 3.90776 6.17168 4.74933 6.07863C5.71501 5.97189 6.52348 6.34717 6.75947 7.39514C6.8456 7.77737 6.87192 8.1794 6.87353 8.57258C6.88076 10.3177 6.88005 12.0628 6.87934 13.8079C6.87908 14.4633 6.87881 15.1187 6.87897 15.7741C6.87897 15.8249 6.88238 15.8756 6.88576 15.926C6.88732 15.9491 6.88887 15.9722 6.89008 15.9952H8.81799V15.8065C8.81798 15.3719 8.81697 14.9374 8.81596 14.5028C8.81341 13.4122 8.81086 12.3216 8.8242 11.2312C8.83131 10.6503 8.87689 10.0654 8.96315 9.49088C9.10564 8.54146 9.44701 7.66468 10.0909 6.92565C10.6174 6.32152 11.277 6.01149 12.0892 6.06671C12.7583 6.11223 13.257 6.41888 13.5304 7.04436C13.7222 7.4831 13.7599 7.94813 13.7603 8.41732C13.7618 10.2484 13.7616 12.0794 13.7614 13.9104C13.7613 14.5405 13.7612 15.1705 13.7612 15.8006V15.9979H15.6846C15.6856 15.9797 15.6867 15.9623 15.6879 15.9455C15.6902 15.9108 15.6923 15.8784 15.6923 15.8461C15.6924 15.2279 15.6927 14.6096 15.6931 13.9914C15.6943 11.9613 15.6956 9.93125 15.6863 7.90122C15.6845 7.49197 15.6371 7.07515 15.5478 6.67561C15.3531 5.80478 14.8961 5.09548 14.0717 4.68266C13.1474 4.21978 12.1755 4.21575 11.2036 4.50548C10.111 4.83117 9.33996 5.56043 8.76087 6.50998C8.73739 6.54849 8.71378 6.58689 8.68608 6.63195C8.67274 6.65365 8.65845 6.67688 8.64277 6.70242C8.63385 6.67173 8.62628 6.6453 8.61951 6.62164C8.60707 6.57815 8.59731 6.54405 8.58674 6.51021C8.30404 5.60546 7.76365 4.91949 6.85988 4.55951C6.15939 4.2805 5.43023 4.25266 4.69891 4.40597C3.49207 4.65892 2.63418 5.37753 2.03083 6.421C2.01189 6.45378 1.99306 6.48663 1.97424 6.51948C1.96523 6.5352 1.95622 6.55092 1.9472 6.56662L1.91474 6.55381V4.52693H0V16Z\"\n })\n ]\n })\n});\nvar Logo_default = Logo;\n\n// src/assets/ManufacturerIcon/ManufacturerIcon.tsx\nimport { jsx as jsx14 } from \"react/jsx-runtime\";\nvar icons = {\n apple: ManufacturerIconSVG.Apple,\n chrome: ManufacturerIconSVG.Chrome,\n ecobee: ManufacturerIconSVG.Ecobee,\n lenovo: ManufacturerIconSVG.Lenovo,\n logitech: ManufacturerIconSVG.Logitech,\n microsoft: ManufacturerIconSVG.Microsoft,\n nest: ManufacturerIconSVG.Nest,\n samsung: ManufacturerIconSVG.Samsung,\n shure: ManufacturerIconSVG.Shure,\n sonos: ManufacturerIconSVG.Sonos,\n unknown: ManufacturerIconSVG.Unknown\n};\nvar BaseSVG3 = styled(\"svg\", {\n display: \"inline-block\",\n flexGrow: 0,\n flexShrink: 0,\n width: \"100%\"\n});\nvar Container2 = styled(\"div\", {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"$4\",\n background: colors.white,\n boxShadow: shadows2.manufacturerLight,\n flexShrink: 0,\n [darkThemeSelector]: {\n boxShadow: shadows2.manufacturerDark\n },\n variants: {\n size: {\n small: {\n borderRadius: \"$6\",\n width: \"$20\",\n height: \"$20\"\n },\n medium: {\n borderRadius: \"$8\",\n width: \"$28\",\n height: \"$28\",\n padding: \"$6\"\n },\n large: {\n borderRadius: \"12px\",\n width: \"$40\",\n height: \"$40\"\n }\n }\n }\n});\nvar ManufacturerIcon = ({ icon: icon2, className, size = \"medium\" }) => {\n const NamedIcon = icons[icon2];\n if (!NamedIcon) {\n console.error(`Missing icon named ${icon2}`);\n return null;\n }\n return /* @__PURE__ */ jsx14(Container2, {\n className,\n size,\n children: /* @__PURE__ */ jsx14(BaseSVG3, {\n as: NamedIcon\n })\n });\n};\nvar ManufacturerIcon_default = ManufacturerIcon;\n\n// src/assets/ProductIcon/common.tsx\nvar StyledSVG = styled(\"svg\", {\n $$backgroundColor: colors[\"gray-500\"],\n $$glyphColor: colors[\"gray-50\"],\n $$detailColor: colors[\"gray-200\"],\n $$tintColor: colors[\"gray-300\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"gray-50\"],\n $$glyphColor: colors[\"gray-400\"],\n $$detailColor: colors[\"gray-300\"],\n $$tintColor: colors[\"gray-200\"]\n },\n [`${activeThemeSelector}, &.selected`]: {\n $$backgroundColor: colors[\"brand-700\"],\n $$glyphColor: colors.white,\n $$detailColor: colors[\"brand-100\"],\n $$tintColor: colors[\"brand-200\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"brand-900\"],\n $$glyphColor: colors.white,\n $$detailColor: colors[\"brand-100\"],\n $$tintColor: colors[\"brand-200\"]\n }\n }\n});\nvar BasePath = styled(\"path\", {\n transition: \"fill 150ms ease-out\"\n});\nvar Background = styled(BasePath, { fill: \"$$backgroundColor\" });\nvar Glyph = styled(BasePath, { fill: \"$$glyphColor\" });\nvar Detail = styled(BasePath, { fill: \"$$detailColor\" });\nvar Tint = styled(BasePath, { fill: \"$$tintColor\" });\n\n// src/assets/ProductIcon/icons/ProductIconConnect.tsx\nimport { Fragment, jsx as jsx15, jsxs as jsxs8 } from \"react/jsx-runtime\";\nvar ProductIconConnect = () => /* @__PURE__ */ jsxs8(Fragment, {\n children: [\n /* @__PURE__ */ jsx15(Background, {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M16 8C16 10.7289 15.814 13.8076 14.8139 14.8105C13.8139 15.8134 10.2326 16 8.02326 16C5.81394 16 2.23257 15.8134 1.23256 14.8105C0.232559 13.8076 0 10.7289 0 8C0 5.27115 0.232557 2.19243 1.23256 1.1895C2.23257 0.186588 5.81394 0 8.02326 0C10.2326 0 13.814 0.186588 14.814 1.1895C15.814 2.19243 16 5.27115 16 8Z\",\n fill: \"#66687A\"\n }),\n /* @__PURE__ */ jsx15(Detail, {\n d: \"M10.8584 10.8945H11.5433C11.7955 10.8945 12 10.6943 12 10.4472V9.55275C12 9.30574 11.7955 9.1055 11.5433 9.1055H10.8584C10.7323 9.1055 10.6301 9.00537 10.6301 8.88187V7.64792C10.6301 7.30274 10.2477 7.08767 9.94332 7.2616L5.82653 9.61367C5.52446 9.78626 5.52446 10.2137 5.82653 10.3863L9.94332 12.7384C10.2477 12.9123 10.6301 12.6973 10.6301 12.3521V11.1181C10.6301 10.9946 10.7323 10.8945 10.8584 10.8945Z\"\n }),\n /* @__PURE__ */ jsx15(Glyph, {\n d: \"M5.1416 5.1055H4.45664C4.20445 5.1055 4 5.30574 4 5.55275V6.44725C4 6.69426 4.20445 6.8945 4.45664 6.8945H5.1416C5.2677 6.8945 5.36993 6.99462 5.36993 7.11812V8.35207C5.36993 8.69726 5.75223 8.91233 6.05666 8.7384L10.1734 6.38632C10.4755 6.21374 10.4755 5.78626 10.1734 5.61367L6.05666 3.2616C5.75223 3.08767 5.36993 3.30274 5.36993 3.64792V4.88187C5.36993 5.00537 5.2677 5.1055 5.1416 5.1055Z\"\n })\n ]\n});\nvar ProductIconConnect_default = ProductIconConnect;\n\n// src/assets/ProductIcon/icons/ProductIconNetwork.tsx\nimport { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs9 } from \"react/jsx-runtime\";\nvar ProductIconNetwork = () => /* @__PURE__ */ jsxs9(Fragment2, {\n children: [\n /* @__PURE__ */ jsx16(Background, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 8C16 10.7289 15.814 13.8076 14.8139 14.8105C13.8139 15.8134 10.2326 16 8.02326 16C5.81394 16 2.23257 15.8134 1.23256 14.8105C0.232559 13.8076 0 10.7289 0 8C0 5.27115 0.232557 2.19243 1.23256 1.1895C2.23257 0.186588 5.81394 0 8.02326 0C10.2326 0 13.814 0.186588 14.814 1.1895C15.814 2.19243 16 5.27115 16 8Z\",\n fill: \"#66687A\"\n }),\n /* @__PURE__ */ jsx16(Glyph, {\n d: \"M13.3538 6.53896C13.5561 6.30918 13.5496 5.93277 13.3271 5.72854C11.8761 4.39724 10.0294 3.6 8.0188 3.6C5.98977 3.6 4.12772 4.4119 2.67079 5.76523C2.45016 5.97017 2.4447 6.3448 2.64624 6.57369L3.00476 6.98084C3.1945 7.19632 3.49872 7.20258 3.70905 7.01335C4.89328 5.94785 6.39061 5.31162 8.0188 5.31162C9.63083 5.31162 11.1146 5.9353 12.2932 6.98177C12.5036 7.16853 12.8059 7.16114 12.9947 6.94674L13.3538 6.53896Z\",\n fill: \"#FAFAFC\"\n }),\n /* @__PURE__ */ jsx16(Glyph, {\n d: \"M9.04752 10.5285C9.32828 10.6681 9.35477 11.0804 9.13803 11.3266L8.33999 12.2329C8.14379 12.4557 7.8257 12.4557 7.62951 12.2329L6.85311 11.3512C6.63907 11.1081 6.66146 10.7016 6.93581 10.5564C7.26486 10.3822 7.63184 10.2849 8.01883 10.2849C8.38465 10.2849 8.73259 10.3718 9.04752 10.5285Z\",\n fill: \"#FAFAFC\"\n }),\n /* @__PURE__ */ jsx16(Glyph, {\n d: \"M8.01876 7.00035C9.19805 7.00035 10.29 7.42505 11.1825 8.14711C11.4194 8.33884 11.4299 8.72372 11.2242 8.95737L10.8586 9.3726C10.6754 9.58068 10.3845 9.59279 10.1672 9.43259C9.54875 8.97673 8.81098 8.71197 8.01876 8.71197C7.21122 8.71197 6.46026 8.98707 5.83457 9.45925C5.61681 9.62359 5.32274 9.61333 5.13786 9.40337L4.7737 8.98981C4.5692 8.75757 4.5781 8.37544 4.81201 8.18229C5.71232 7.43886 6.82045 7.00035 8.01876 7.00035Z\",\n fill: \"#FAFAFC\"\n })\n ]\n});\nvar ProductIconNetwork_default = ProductIconNetwork;\n\n// src/assets/ProductIcon/icons/ProductIconRemote.tsx\nimport { useId } from \"react-aria\";\nimport { Fragment as Fragment3, jsx as jsx17, jsxs as jsxs10 } from \"react/jsx-runtime\";\nvar ProductIconRemote = () => {\n const mask0 = useId();\n const mask1 = useId();\n return /* @__PURE__ */ jsxs10(Fragment3, {\n children: [\n /* @__PURE__ */ jsx17(Background, {\n d: \"M0 8C0 5.09903 0 3.64855 0.595437 2.55452C1.04613 1.72642 1.72642 1.04613 2.55452 0.595437C3.64855 0 5.09903 0 8 0C10.901 0 12.3515 0 13.4455 0.595437C14.2736 1.04613 14.9539 1.72642 15.4046 2.55452C16 3.64855 16 5.09903 16 8C16 10.901 16 12.3515 15.4046 13.4455C14.9539 14.2736 14.2736 14.9539 13.4455 15.4046C12.3515 16 10.901 16 8 16C5.09903 16 3.64855 16 2.55452 15.4046C1.72642 14.9539 1.04613 14.2736 0.595437 13.4455C0 12.3515 0 10.901 0 8Z\"\n }),\n /* @__PURE__ */ jsx17(\"mask\", {\n id: mask0,\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"16\",\n height: \"16\",\n children: /* @__PURE__ */ jsx17(\"path\", {\n fill: \"white\",\n d: \"M0 8C0 5.09903 0 3.64855 0.595437 2.55452C1.04613 1.72642 1.72642 1.04613 2.55452 0.595437C3.64855 0 5.09903 0 8 0C10.901 0 12.3515 0 13.4455 0.595437C14.2736 1.04613 14.9539 1.72642 15.4046 2.55452C16 3.64855 16 5.09903 16 8C16 10.901 16 12.3515 15.4046 13.4455C14.9539 14.2736 14.2736 14.9539 13.4455 15.4046C12.3515 16 10.901 16 8 16C5.09903 16 3.64855 16 2.55452 15.4046C1.72642 14.9539 1.04613 14.2736 0.595437 13.4455C0 12.3515 0 10.901 0 8Z\"\n })\n }),\n /* @__PURE__ */ jsxs10(\"g\", {\n mask: `url(#${mask0})`,\n children: [\n /* @__PURE__ */ jsx17(\"mask\", {\n id: mask1,\n maskUnits: \"userSpaceOnUse\",\n x: \"-1\",\n y: \"4\",\n width: \"18\",\n height: \"18\",\n children: /* @__PURE__ */ jsx17(\"circle\", {\n cx: \"8.00004\",\n cy: \"12.8\",\n r: \"8.8\",\n fill: \"white\"\n })\n }),\n /* @__PURE__ */ jsxs10(\"g\", {\n mask: `url(#${mask1})`,\n children: [\n /* @__PURE__ */ jsx17(Glyph, {\n as: \"circle\",\n cx: \"8.00004\",\n cy: \"12.8\",\n r: \"8.8\"\n }),\n /* @__PURE__ */ jsx17(Detail, {\n as: \"ellipse\",\n cx: \"8.00009\",\n cy: \"8.4\",\n rx: \"8.8\",\n ry: \"3.6\"\n }),\n /* @__PURE__ */ jsx17(Tint, {\n as: \"ellipse\",\n cx: \"8.00009\",\n cy: \"5.6\",\n rx: \"4.8\",\n ry: \"1.6\"\n })\n ]\n })\n ]\n })\n ]\n });\n};\nvar ProductIconRemote_default = ProductIconRemote;\n\n// src/assets/ProductIcon/icons/ProductIconSettings.tsx\nimport { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs11 } from \"react/jsx-runtime\";\nvar ProductIconSettings = () => /* @__PURE__ */ jsxs11(Fragment4, {\n children: [\n /* @__PURE__ */ jsx18(Background, {\n d: \"M0 8C0 5.09903 0 3.64855 0.595437 2.55452C1.04613 1.72642 1.72642 1.04613 2.55452 0.595437C3.64855 0 5.09903 0 8 0C10.901 0 12.3515 0 13.4455 0.595437C14.2736 1.04613 14.9539 1.72642 15.4046 2.55452C16 3.64855 16 5.09903 16 8C16 10.901 16 12.3515 15.4046 13.4455C14.9539 14.2736 14.2736 14.9539 13.4455 15.4046C12.3515 16 10.901 16 8 16C5.09903 16 3.64855 16 2.55452 15.4046C1.72642 14.9539 1.04613 14.2736 0.595437 13.4455C0 12.3515 0 10.901 0 8Z\"\n }),\n /* @__PURE__ */ jsx18(Detail, {\n d: \"M13.4316 9.39688L12.4332 8.82031C12.534 8.2765 12.534 7.71881 12.4332 7.175L13.4316 6.59844C13.487 6.56629 13.5298 6.51638 13.5532 6.45681C13.5766 6.39725 13.5792 6.33153 13.5605 6.27031C13.3025 5.4455 12.8646 4.68823 12.2785 4.05312C12.2354 4.00614 12.1775 3.97521 12.1145 3.96541C12.0515 3.95562 11.987 3.96754 11.9316 3.99922L10.9332 4.57578C10.5138 4.2149 10.0304 3.93586 9.50819 3.75313V2.60234C9.50817 2.53856 9.48647 2.47668 9.44665 2.42685C9.40683 2.37702 9.35126 2.34221 9.28905 2.32812C8.44622 2.14062 7.57249 2.14062 6.72967 2.32812C6.66725 2.34198 6.61141 2.37669 6.57136 2.42654C6.53131 2.47639 6.50944 2.5384 6.50936 2.60234V3.75547C5.98841 3.94103 5.50556 4.21978 5.08436 4.57812L4.08709 4.00156C4.03187 3.96937 3.96725 3.95715 3.90409 3.96697C3.84093 3.97678 3.78306 4.00803 3.74022 4.05547C3.15312 4.68986 2.71512 5.44736 2.45819 6.27266C2.43905 6.33385 2.44141 6.39975 2.46485 6.45942C2.48829 6.5191 2.53142 6.56897 2.58709 6.60078L3.58553 7.17734C3.48475 7.72115 3.48475 8.27885 3.58553 8.82266L2.58709 9.39922C2.53167 9.43128 2.48875 9.48118 2.46534 9.54077C2.44193 9.60036 2.43941 9.66613 2.45819 9.72734C2.71609 10.5522 3.15397 11.3095 3.74022 11.9445C3.78336 11.9915 3.84118 12.0224 3.90421 12.0322C3.96724 12.042 4.03173 12.0301 4.08709 11.9984L5.08553 11.4219C5.50484 11.7829 5.98822 12.0619 6.51053 12.2445V13.3977C6.51061 13.4616 6.53248 13.5236 6.57253 13.5735C6.61258 13.6233 6.66842 13.658 6.73084 13.6719C7.57367 13.8594 8.4474 13.8594 9.29022 13.6719C9.35264 13.658 9.40848 13.6233 9.44853 13.5735C9.48858 13.5236 9.51045 13.4616 9.51053 13.3977V12.2445C10.0315 12.0589 10.5143 11.7802 10.9355 11.4219L11.934 11.9984C11.9892 12.0306 12.0538 12.0428 12.117 12.033C12.1801 12.0232 12.238 11.9919 12.2808 11.9445C12.868 11.3102 13.306 10.5527 13.5629 9.72734C13.5808 9.66551 13.5777 9.59945 13.5539 9.5396C13.5301 9.47976 13.4871 9.42954 13.4316 9.39688ZM8.00819 10.2453C7.56364 10.2453 7.12908 10.1135 6.75946 9.86651C6.38983 9.61954 6.10174 9.2685 5.93162 8.8578C5.7615 8.44709 5.71699 7.99516 5.80372 7.55916C5.89045 7.12316 6.10451 6.72266 6.41885 6.40832C6.73319 6.09398 7.13369 5.87991 7.56969 5.79319C8.00569 5.70646 8.45762 5.75097 8.86833 5.92109C9.27903 6.09121 9.63007 6.3793 9.87705 6.74893C10.124 7.11855 10.2558 7.55311 10.2558 7.99766C10.2559 8.29283 10.1978 8.58512 10.0848 8.85783C9.97187 9.13055 9.80631 9.37834 9.59759 9.58706C9.38887 9.79578 9.14108 9.96134 8.86837 10.0743C8.59565 10.1872 8.30336 10.2453 8.00819 10.2453Z\"\n }),\n /* @__PURE__ */ jsx18(Glyph, {\n d: \"M8.00822 9.49531C7.71201 9.49531 7.42245 9.40748 7.17616 9.24291C6.92988 9.07835 6.73792 8.84445 6.62456 8.57079C6.51121 8.29712 6.48155 7.996 6.53934 7.70548C6.59712 7.41496 6.73976 7.14811 6.94921 6.93865C7.15867 6.7292 7.42552 6.58657 7.71604 6.52878C8.00656 6.47099 8.30769 6.50065 8.58135 6.614C8.85501 6.72736 9.08891 6.91932 9.25348 7.1656C9.41804 7.41189 9.50588 7.70145 9.50588 7.99766C9.50588 8.19433 9.46714 8.38908 9.39187 8.57079C9.31661 8.75249 9.20629 8.91759 9.06722 9.05666C8.92815 9.19573 8.76305 9.30605 8.58135 9.38131C8.39964 9.45658 8.20489 9.49531 8.00822 9.49531Z\"\n })\n ]\n});\nvar ProductIconSettings_default = ProductIconSettings;\n\n// src/assets/ProductIcon/icons/ProductIconVPN.tsx\nimport { Fragment as Fragment5, jsx as jsx19, jsxs as jsxs12 } from \"react/jsx-runtime\";\nvar ProductIconVPN = () => /* @__PURE__ */ jsxs12(Fragment5, {\n children: [\n /* @__PURE__ */ jsx19(Background, {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M16 8C16 10.7289 15.814 13.8076 14.8139 14.8105C13.8139 15.8134 10.2326 16 8.02326 16C5.81394 16 2.23257 15.8134 1.23256 14.8105C0.232559 13.8076 0 10.7289 0 8C0 5.27115 0.232557 2.19243 1.23256 1.1895C2.23257 0.186588 5.81394 0 8.02326 0C10.2326 0 13.814 0.186588 14.814 1.1895C15.814 2.19243 16 5.27115 16 8Z\"\n }),\n /* @__PURE__ */ jsx19(Glyph, {\n opacity: \"0.2\",\n d: \"M8 12.8744C8.0643 12.8744 8.1286 12.86 8.18789 12.8312C10.2711 11.819 11.5552 10.3332 11.8742 8.52985C12.1192 7.14427 12.0614 5.72348 11.9789 4.83344C11.9633 4.66489 11.8514 4.5216 11.6931 4.46181L8.26491 3.16744C8.17955 3.13521 8.08978 3.1191 8 3.11909V12.8744Z\"\n }),\n /* @__PURE__ */ jsx19(Glyph, {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M3.01326 4.37261C2.91299 5.24537 2.78672 6.98707 3.09191 8.71271C3.50411 11.0434 5.20935 12.8177 7.67088 13.924C7.77601 13.9713 7.88777 13.9966 8.00002 14C8.11228 13.9966 8.22404 13.9713 8.32916 13.924C10.7907 12.8177 12.4959 11.0434 12.9081 8.71271C13.2133 6.98707 13.0871 5.24537 12.9868 4.37261C12.9457 4.01513 12.7083 3.72275 12.3833 3.60006L8.30496 2.0602C8.20633 2.02296 8.10334 2.00289 8.00002 2C7.89671 2.00289 7.79372 2.02296 7.69509 2.0602L3.61675 3.60006C3.29178 3.72275 3.05432 4.01513 3.01326 4.37261ZM8.35326 3.20078C8.12561 3.11483 7.87444 3.11483 7.64679 3.20078L4.39299 4.42932C4.18184 4.50905 4.03242 4.70023 4.01285 4.92508C3.93508 5.81907 3.88906 7.1909 4.12586 8.52985C4.44161 10.3152 5.70325 11.7892 7.74976 12.8006C7.90736 12.8785 8.09268 12.8785 8.25028 12.8006C10.2968 11.7892 11.5584 10.3152 11.8742 8.52985C12.111 7.19089 12.065 5.81907 11.9872 4.92508C11.9676 4.70023 11.8182 4.50905 11.6071 4.42932L8.35326 3.20078Z\"\n })\n ]\n});\nvar ProductIconVPN_default = ProductIconVPN;\n\n// src/assets/ProductIcon/ProductIcon.tsx\nimport { jsx as jsx20 } from \"react/jsx-runtime\";\nvar ProductIcon = ({ product, selected = false }) => {\n const content = {\n connect: /* @__PURE__ */ jsx20(ProductIconConnect_default, {}),\n network: /* @__PURE__ */ jsx20(ProductIconNetwork_default, {}),\n remote: /* @__PURE__ */ jsx20(ProductIconRemote_default, {}),\n settings: /* @__PURE__ */ jsx20(ProductIconSettings_default, {}),\n vpn: /* @__PURE__ */ jsx20(ProductIconVPN_default, {})\n }[product];\n return /* @__PURE__ */ jsx20(StyledSVG, {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n className: selected ? \"selected\" : void 0,\n children: content\n });\n};\nvar ProductIcon_default = ProductIcon;\n\n// src/assets/ProviderIcon/ProviderIcon.tsx\nimport { jsx as jsx21 } from \"react/jsx-runtime\";\nvar ProviderIconProvider = /* @__PURE__ */ ((ProviderIconProvider2) => {\n ProviderIconProvider2[\"ATT\"] = \"att\";\n ProviderIconProvider2[\"Cogent\"] = \"cogent\";\n ProviderIconProvider2[\"ComcastBusiness\"] = \"comcast-business\";\n ProviderIconProvider2[\"Lumen\"] = \"lumen\";\n ProviderIconProvider2[\"Sonic\"] = \"sonic\";\n ProviderIconProvider2[\"Spectrum\"] = \"spectrum\";\n ProviderIconProvider2[\"Verizon\"] = \"verizon\";\n ProviderIconProvider2[\"Zayo\"] = \"zayo\";\n return ProviderIconProvider2;\n})(ProviderIconProvider || {});\nvar ProviderIcon = ({\n color: color2 = \"adaptive\",\n provider\n}) => ({\n adaptive: {\n [\"att\" /* ATT */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ATTAdaptive, {}),\n [\"cogent\" /* Cogent */]: /* @__PURE__ */ jsx21(ProviderIconSVG.CogentAdaptive, {}),\n [\"comcast-business\" /* ComcastBusiness */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ComcastBusinessAdaptive, {}),\n [\"lumen\" /* Lumen */]: /* @__PURE__ */ jsx21(ProviderIconSVG.LumenAdaptive, {}),\n [\"sonic\" /* Sonic */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SonicAdaptive, {}),\n [\"spectrum\" /* Spectrum */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SpectrumAdaptive, {}),\n [\"verizon\" /* Verizon */]: /* @__PURE__ */ jsx21(ProviderIconSVG.VerizonAdaptive, {}),\n [\"zayo\" /* Zayo */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ZayoAdaptive, {})\n }[provider],\n brand: {\n [\"att\" /* ATT */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ATTBrand, {}),\n [\"cogent\" /* Cogent */]: /* @__PURE__ */ jsx21(ProviderIconSVG.CogentBrand, {}),\n [\"comcast-business\" /* ComcastBusiness */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ComcastBusinessBrand, {}),\n [\"lumen\" /* Lumen */]: /* @__PURE__ */ jsx21(ProviderIconSVG.LumenBrand, {}),\n [\"sonic\" /* Sonic */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SonicBrand, {}),\n [\"spectrum\" /* Spectrum */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SpectrumBrand, {}),\n [\"verizon\" /* Verizon */]: /* @__PURE__ */ jsx21(ProviderIconSVG.VerizonBrand, {}),\n [\"zayo\" /* Zayo */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ZayoBrand, {})\n }[provider],\n monotone: {\n [\"att\" /* ATT */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ATTMono, {}),\n [\"cogent\" /* Cogent */]: /* @__PURE__ */ jsx21(ProviderIconSVG.CogentMono, {}),\n [\"comcast-business\" /* ComcastBusiness */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ComcastBusinessMono, {}),\n [\"lumen\" /* Lumen */]: /* @__PURE__ */ jsx21(ProviderIconSVG.LumenMono, {}),\n [\"sonic\" /* Sonic */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SonicMono, {}),\n [\"spectrum\" /* Spectrum */]: /* @__PURE__ */ jsx21(ProviderIconSVG.SpectrumMono, {}),\n [\"verizon\" /* Verizon */]: /* @__PURE__ */ jsx21(ProviderIconSVG.VerizonMono, {}),\n [\"zayo\" /* Zayo */]: /* @__PURE__ */ jsx21(ProviderIconSVG.ZayoMono, {})\n }[provider]\n})[color2];\nvar ProviderIcon_default = ProviderIcon;\n\n// src/assets/ServiceIcon/icons/ServiceIconGoogle.tsx\nimport { jsx as jsx22, jsxs as jsxs13 } from \"react/jsx-runtime\";\nvar ServiceIconGoogle = () => /* @__PURE__ */ jsxs13(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /* @__PURE__ */ jsx22(\"path\", {\n d: \"M20 10.225C20 9.56668 19.9404 8.94168 19.8382 8.33334H10.2171V12.0917H15.7258C15.4789 13.325 14.7552 14.3667 13.6824 15.075V17.575H16.9689C18.8931 15.8333 20 13.2667 20 10.225Z\",\n fill: \"#4285F4\"\n }),\n /* @__PURE__ */ jsx22(\"path\", {\n d: \"M10.2171 20C12.9758 20 15.2831 19.1 16.9689 17.575L13.6824 15.075C12.7629 15.675 11.5964 16.0417 10.2171 16.0417C7.55217 16.0417 5.29589 14.2833 4.48704 11.9083H1.09836V14.4833C2.77567 17.75 6.22394 20 10.2171 20Z\",\n fill: \"#34A853\"\n }),\n /* @__PURE__ */ jsx22(\"path\", {\n d: \"M4.48702 11.9083C4.27416 11.3083 4.16347 10.6667 4.16347 9.99999C4.16347 9.33333 4.28267 8.69166 4.48702 8.09166V5.51666H1.09834C0.400169 6.86666 0 8.38333 0 9.99999C0 11.6167 0.400169 13.1333 1.09834 14.4833L4.48702 11.9083Z\",\n fill: \"#FBBC05\"\n }),\n /* @__PURE__ */ jsx22(\"path\", {\n d: \"M10.2171 3.95833C11.7242 3.95833 13.0694 4.46667 14.1337 5.45834L17.0456 2.60833C15.2831 0.991668 12.9758 0 10.2171 0C6.22394 0 2.77567 2.25 1.09836 5.51667L4.48704 8.09167C5.29589 5.71667 7.55217 3.95833 10.2171 3.95833Z\",\n fill: \"#EA4335\"\n })\n ]\n});\nvar ServiceIconGoogle_default = ServiceIconGoogle;\n\n// src/assets/ServiceIcon/icons/ServiceIconMicrosoft.tsx\nimport { jsx as jsx23, jsxs as jsxs14 } from \"react/jsx-runtime\";\nvar ServiceIconMicrosoft = () => /* @__PURE__ */ jsxs14(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /* @__PURE__ */ jsx23(\"path\", {\n d: \"M10.5 10.4985H20V19.9985H10.5V10.4985Z\",\n fill: \"#FFBA08\"\n }),\n /* @__PURE__ */ jsx23(\"path\", {\n d: \"M0 10.4985H9.5V19.9985H0V10.4985Z\",\n fill: \"#05A6F0\"\n }),\n /* @__PURE__ */ jsx23(\"path\", {\n d: \"M10.5 0.00445557H20V9.50446H10.5V0.00445557Z\",\n fill: \"#81BC06\"\n }),\n /* @__PURE__ */ jsx23(\"path\", {\n d: \"M0 0.00146484H9.5V9.50146H0V0.00146484Z\",\n fill: \"#F35325\"\n })\n ]\n});\nvar ServiceIconMicrosoft_default = ServiceIconMicrosoft;\n\n// src/assets/ServiceIcon/icons/ServiceIconOkta.tsx\nimport { jsx as jsx24 } from \"react/jsx-runtime\";\nvar ServiceIconOkta = () => /* @__PURE__ */ jsx24(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ jsx24(\"path\", {\n d: \"M10 0C4.49063 0 0 4.45844 0 10C0 15.5416 4.45875 20 10 20C15.5413 20 20 15.5413 20 10C20 4.45875 15.5094 0 10 0ZM10 15C7.22937 15 5 12.7706 5 10C5 7.22937 7.22937 5 10 5C12.7706 5 15 7.22937 15 10C15 12.7706 12.7706 15 10 15Z\",\n className: \"m-fill-current m-text-third-party-okta dark:m-text-third-party-okta-dark\"\n })\n});\nvar ServiceIconOkta_default = ServiceIconOkta;\n\n// src/assets/ServiceIcon/ServiceIcon.tsx\nimport { jsx as jsx25 } from \"react/jsx-runtime\";\nvar ServiceIconService = /* @__PURE__ */ ((ServiceIconService2) => {\n ServiceIconService2[\"Google\"] = \"google\";\n ServiceIconService2[\"Microsoft\"] = \"microsoft\";\n ServiceIconService2[\"Okta\"] = \"okta\";\n return ServiceIconService2;\n})(ServiceIconService || {});\nvar ServiceIcon = ({ service }) => ({\n [\"google\" /* Google */]: /* @__PURE__ */ jsx25(ServiceIconGoogle_default, {}),\n [\"microsoft\" /* Microsoft */]: /* @__PURE__ */ jsx25(ServiceIconMicrosoft_default, {}),\n [\"okta\" /* Okta */]: /* @__PURE__ */ jsx25(ServiceIconOkta_default, {})\n})[service];\nvar ServiceIcon_default = ServiceIcon;\n\n// src/assets/Skeleton/Skeleton.tsx\nimport { useEffect, useRef } from \"react\";\nimport { jsx as jsx26 } from \"react/jsx-runtime\";\nvar skeletonRipple = keyframes({\n \"0%, 100%\": { opacity: \"0.1\" },\n \"50%\": { opacity: \"0.2\" }\n});\nvar skeletonRippleDark = keyframes({\n \"0%, 100%\": { opacity: \"0.1\" },\n \"50%\": { opacity: \"0.2\" }\n});\nvar fadeIn = keyframes({\n \"0%\": { opacity: 0 },\n \"100%\": { opacity: 1 }\n});\nvar Base3 = styled(\"div\", {\n position: \"relative\",\n overflow: \"hidden\",\n opacity: 0,\n animation: `${fadeIn} 1s ease-out forwards`,\n animationDelay: \"var(--delay-stagger, 500ms)\",\n \"&::before\": {\n content: \"\",\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n backgroundColor: colors[\"gray-400\"],\n animation: `${skeletonRipple} 2s cubic-bezier(0.4, 0, 0.6, 1) infinite`,\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-300\"],\n animation: `${skeletonRippleDark} 2s cubic-bezier(0.4, 0, 0.6, 1) infinite`\n }\n }\n});\nvar Skeleton = ({\n display,\n height = \"40px\",\n radius,\n width = \"40px\"\n}) => {\n const ref = useRef(null);\n useEffect(() => {\n const element = ref.current;\n if (element) {\n const rect = element.getBoundingClientRect();\n const delay = rect.x + rect.y + 250;\n element.style.setProperty(\"--delay-stagger\", `${delay}ms`);\n }\n });\n return /* @__PURE__ */ jsx26(Base3, {\n ref,\n style: {\n width,\n height,\n display,\n borderRadius: radius\n }\n });\n};\nvar Skeleton_default = Skeleton;\n\n// ../../node_modules/.pnpm/@fortawesome+free-solid-svg-icons@5.15.4/node_modules/@fortawesome/free-solid-svg-icons/index.es.js\nvar faSpinner = {\n prefix: \"fas\",\n iconName: \"spinner\",\n 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\"]\n};\n\n// ../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@1.2.36/node_modules/@fortawesome/fontawesome-svg-core/index.es.js\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys2 = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys2 = ownKeys2.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys2.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr))\n return arr;\n}\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = void 0;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i)\n break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null)\n _i[\"return\"]();\n } finally {\n if (_d)\n throw _e;\n }\n }\n return _arr;\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\nvar noop = function noop2() {\n};\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== \"undefined\")\n _WINDOW = window;\n if (typeof document !== \"undefined\")\n _DOCUMENT = document;\n if (typeof MutationObserver !== \"undefined\")\n _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== \"undefined\")\n _PERFORMANCE = performance;\n} catch (e) {\n}\nvar _ref = _WINDOW.navigator || {};\nvar _ref$userAgent = _ref.userAgent;\nvar userAgent = _ref$userAgent === void 0 ? \"\" : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\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/\");\nvar NAMESPACE_IDENTIFIER = \"___FONT_AWESOME___\";\nvar DEFAULT_FAMILY_PREFIX = \"fa\";\nvar DEFAULT_REPLACEMENT_CLASS = \"svg-inline--fa\";\nvar DATA_FA_I2SVG = \"data-fa-i2svg\";\nvar PRODUCTION = function() {\n try {\n return process.env.NODE_ENV === \"production\";\n } catch (e) {\n return false;\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]);\nvar DUOTONE_CLASSES = {\n GROUP: \"group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\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\", \"flip-both\", \"stack\", \"stack-1x\", \"stack-2x\", \"inverse\", \"layers\", \"layers-text\", \"layers-counter\", DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function(n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function(n) {\n return \"w-\".concat(n);\n}));\nvar initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector(\"script[\" + attr + \"]\");\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n if (val === \"\")\n return true;\n if (val === \"false\")\n return false;\n if (val === \"true\")\n return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === \"function\") {\n attrs = [[\"data-family-prefix\", \"familyPrefix\"], [\"data-replacement-class\", \"replacementClass\"], [\"data-auto-replace-svg\", \"autoReplaceSvg\"], [\"data-auto-add-css\", \"autoAddCss\"], [\"data-auto-a11y\", \"autoA11y\"], [\"data-search-pseudo-elements\", \"searchPseudoElements\"], [\"data-observe-mutations\", \"observeMutations\"], [\"data-mutate-approach\", \"mutateApproach\"], [\"data-keep-original-source\", \"keepOriginalSource\"], [\"data-measure-performance\", \"measurePerformance\"], [\"data-show-missing-icons\", \"showMissingIcons\"]];\n attrs.forEach(function(_ref2) {\n var _ref22 = _slicedToArray(_ref2, 2), attr = _ref22[0], key = _ref22[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== void 0 && val !== null) {\n initial[key] = val;\n }\n });\n}\nvar attrs;\nvar _default = {\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 mutateApproach: \"async\",\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\nvar _config = _objectSpread({}, _default, initial);\nif (!_config.autoReplaceSvg)\n _config.observeMutations = false;\nvar config = _objectSpread({}, _config);\nWINDOW.FontAwesomeConfig = config;\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER])\n w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles)\n w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks)\n w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims)\n w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\nvar functions = [];\nvar listener = function listener2() {\n DOCUMENT.removeEventListener(\"DOMContentLoaded\", listener2);\n loaded = 1;\n functions.map(function(fn) {\n return fn();\n });\n};\nvar loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded)\n DOCUMENT.addEventListener(\"DOMContentLoaded\", listener);\n}\nvar PENDING = \"pending\";\nvar SETTLED = \"settled\";\nvar FULFILLED = \"fulfilled\";\nvar REJECTED = \"rejected\";\nvar NOOP = function NOOP2() {\n};\nvar isNode = typeof global !== \"undefined\" && typeof global.process !== \"undefined\" && typeof global.process.emit === \"function\";\nvar asyncSetTimer = typeof setImmediate === \"undefined\" ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\nfunction asyncFlush() {\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n }\n asyncQueue = [];\n asyncTimer = false;\n}\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n if (typeof callback === \"function\") {\n settled = FULFILLED;\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\nfunction handleThenable(promise, value) {\n var resolved;\n try {\n if (promise === value) {\n throw new TypeError(\"A promises callback cannot return that same promise.\");\n }\n if (value && (typeof value === \"function\" || _typeof(value) === \"object\")) {\n var then2 = value.then;\n if (typeof then2 === \"function\") {\n then2.call(value, function(val) {\n if (!resolved) {\n resolved = true;\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function(reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n return true;\n }\n return false;\n}\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n if (!promise._handled && isNode) {\n global.process.emit(\"unhandledRejection\", promise._data, promise);\n }\n}\nfunction notifyRejectionHandled(promise) {\n global.process.emit(\"rejectionHandled\", promise);\n}\nfunction P(resolver) {\n if (typeof resolver !== \"function\") {\n throw new TypeError(\"Promise resolver \" + resolver + \" is not a function\");\n }\n if (this instanceof P === false) {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n this._then = [];\n invokeResolver(resolver, this);\n}\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: void 0,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n if (this._state === FULFILLED || this._state === REJECTED) {\n asyncCall(invokeCallback, subscriber);\n } else {\n this._then.push(subscriber);\n }\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\nP.all = function(promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError(\"You must pass an array to Promise.all().\");\n }\n return new P(function(resolve2, reject2) {\n var results = [];\n var remaining = 0;\n function resolver(index) {\n remaining++;\n return function(value) {\n results[index] = value;\n if (!--remaining) {\n resolve2(results);\n }\n };\n }\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n if (promise && typeof promise.then === \"function\") {\n promise.then(resolver(i), reject2);\n } else {\n results[i] = promise;\n }\n }\n if (!remaining) {\n resolve2(results);\n }\n });\n};\nP.race = function(promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError(\"You must pass an array to Promise.race().\");\n }\n return new P(function(resolve2, reject2) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n if (promise && typeof promise.then === \"function\") {\n promise.then(resolve2, reject2);\n } else {\n resolve2(promise);\n }\n }\n });\n};\nP.resolve = function(value) {\n if (value && _typeof(value) === \"object\" && value.constructor === P) {\n return value;\n }\n return new P(function(resolve2) {\n resolve2(value);\n });\n};\nP.reject = function(reason) {\n return new P(function(resolve2, reject2) {\n reject2(reason);\n });\n};\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css3) {\n if (!css3 || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.innerHTML = css3;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\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 DOCUMENT.head.insertBefore(style, beforeChild);\n return css3;\n}\nvar idPool = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nfunction nextUniqueId() {\n var size = 12;\n var id = \"\";\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(//g, \">\");\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function(acc, attributeName) {\n return acc + \"\".concat(attributeName, '=\"').concat(htmlEscape(attributes[attributeName]), '\" ');\n }, \"\").trim();\n}\nfunction joinStyles(styles2) {\n return Object.keys(styles2 || {}).reduce(function(acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles2[styleName], \";\");\n }, \"\");\n}\nfunction transformIsMeaningful(transform2) {\n return transform2.size !== meaninglessTransform.size || transform2.x !== meaninglessTransform.x || transform2.y !== meaninglessTransform.y || transform2.rotate !== meaninglessTransform.rotate || transform2.flipX || transform2.flipY;\n}\nfunction transformForSvg(_ref2) {\n var transform2 = _ref2.transform, containerWidth = _ref2.containerWidth, iconWidth = _ref2.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform2.x * 32, \", \").concat(transform2.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform2.size / 16 * (transform2.flipX ? -1 : 1), \", \").concat(transform2.size / 16 * (transform2.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform2.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: \"100%\",\n height: \"100%\"\n};\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = \"black\";\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === \"g\") {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nfunction makeIconMasking(_ref2) {\n var children = _ref2.children, attributes = _ref2.attributes, main = _ref2.main, mask = _ref2.mask, explicitMaskId = _ref2.maskId, transform2 = _ref2.transform;\n var mainWidth = main.width, mainPath = main.icon;\n var maskWidth = mask.width, maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform2,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: \"rect\",\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: \"white\"\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: \"g\",\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: \"g\",\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: \"mask\",\n attributes: _objectSpread({}, 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: [{\n tag: \"clipPath\",\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: \"rect\",\n attributes: _objectSpread({\n fill: \"currentColor\",\n \"clip-path\": \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children,\n attributes\n };\n}\nfunction makeIconStandard(_ref2) {\n var children = _ref2.children, attributes = _ref2.attributes, main = _ref2.main, transform2 = _ref2.transform, styles2 = _ref2.styles;\n var styleString = joinStyles(styles2);\n if (styleString.length > 0) {\n attributes[\"style\"] = styleString;\n }\n if (transformIsMeaningful(transform2)) {\n var trans = transformForSvg({\n transform: transform2,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: \"g\",\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: \"g\",\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n return {\n children,\n attributes\n };\n}\nfunction asIcon(_ref2) {\n var children = _ref2.children, main = _ref2.main, mask = _ref2.mask, attributes = _ref2.attributes, styles2 = _ref2.styles, transform2 = _ref2.transform;\n if (transformIsMeaningful(transform2) && main.found && !mask.found) {\n var width = main.width, height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes[\"style\"] = joinStyles(_objectSpread({}, styles2, {\n \"transform-origin\": \"\".concat(offset.x + transform2.x / 16, \"em \").concat(offset.y + transform2.y / 16, \"em\")\n }));\n }\n return [{\n tag: \"svg\",\n attributes,\n children\n }];\n}\nfunction asSymbol(_ref2) {\n var prefix = _ref2.prefix, iconName = _ref2.iconName, children = _ref2.children, attributes = _ref2.attributes, symbol = _ref2.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: \"svg\",\n attributes: {\n style: \"display: none;\"\n },\n children: [{\n tag: \"symbol\",\n attributes: _objectSpread({}, attributes, {\n id\n }),\n children\n }]\n }];\n}\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons, main = _params$icons.main, mask = _params$icons.mask, prefix = params.prefix, iconName = params.iconName, transform2 = params.transform, symbol = params.symbol, title = params.title, maskId = params.maskId, titleId = params.titleId, extra = params.extra, _params$watchable = params.watchable, watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref2 = mask.found ? mask : main, width = _ref2.width, height = _ref2.height;\n var isUploadedIcon = prefix === \"fak\";\n var widthClass = isUploadedIcon ? \"\" : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : \"\", widthClass].filter(function(c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function(c) {\n return c !== \"\" || !!c;\n }).concat(extra.classes).join(\" \");\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n \"data-prefix\": prefix,\n \"data-icon\": iconName,\n \"class\": attrClass,\n \"role\": extra.attributes.role || \"img\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf(\"fa-fw\") ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = \"\";\n }\n if (title)\n content.children.push({\n tag: \"title\",\n attributes: {\n id: content.attributes[\"aria-labelledby\"] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n var args = _objectSpread({}, content, {\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform: transform2,\n symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n var _ref22 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args), children = _ref22.children, attributes = _ref22.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nvar noop$1 = function noop3() {\n};\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar bindInternal4 = function bindInternal42(func, thisContext) {\n return function(a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys2 = Object.keys(subject), length = keys2.length, iterator = thisContext !== void 0 ? bindInternal4(fn, thisContext) : fn, i, key, result;\n if (initialValue === void 0) {\n i = 1;\n result = subject[keys2[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys2[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\nfunction defineIcons(prefix, icons2) {\n var params = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks, skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons2).reduce(function(acc, iconName) {\n var icon2 = icons2[iconName];\n var expanded = !!icon2.icon;\n if (expanded) {\n acc[icon2.iconName] = icon2.icon;\n } else {\n acc[iconName] = icon2;\n }\n return acc;\n }, {});\n if (typeof namespace.hooks.addPack === \"function\" && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n if (prefix === \"fas\") {\n defineIcons(\"fa\", icons2);\n }\n}\nvar styles = namespace.styles;\nvar shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build2() {\n var lookup = function lookup2(reducer) {\n return reduce(styles, function(o2, style, prefix) {\n o2[prefix] = reduce(style, reducer, {});\n return o2;\n }, {});\n };\n _byUnicode = lookup(function(acc, icon2, iconName) {\n if (icon2[3]) {\n acc[icon2[3]] = iconName;\n }\n return acc;\n });\n _byLigature = lookup(function(acc, icon2, iconName) {\n var ligatures = icon2[2];\n acc[iconName] = iconName;\n ligatures.forEach(function(ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = \"far\" in styles;\n _byOldName = reduce(shims, function(acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === \"far\" && !hasRegular) {\n prefix = \"fas\";\n }\n acc[oldName] = {\n prefix,\n iconName\n };\n return acc;\n }, {});\n};\nbuild();\nvar styles$1 = namespace.styles;\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag, _abstractNodes$attrib = abstractNodes.attributes, attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib, _abstractNodes$childr = abstractNodes.children, children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === \"string\") {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(\"\"), \"\");\n }\n}\nvar parseTransformString = function parseTransformString2(transformString) {\n var transform2 = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n if (!transformString) {\n return transform2;\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 if (first && rest === \"h\") {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === \"v\") {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\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 return acc;\n }, transform2);\n }\n};\nfunction MissingIcon(error) {\n this.name = \"MissingIcon\";\n this.message = error || \"Icon unavailable\";\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\nvar FILL = {\n fill: \"currentColor\"\n};\nvar ANIMATION_BASE = {\n attributeType: \"XML\",\n repeatCount: \"indefinite\",\n dur: \"2s\"\n};\nvar RING = {\n tag: \"path\",\n attributes: _objectSpread({}, 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 = _objectSpread({}, ANIMATION_BASE, {\n attributeName: \"opacity\"\n});\nvar DOT = {\n tag: \"circle\",\n attributes: _objectSpread({}, FILL, {\n cx: \"256\",\n cy: \"364\",\n r: \"28\"\n }),\n children: [{\n tag: \"animate\",\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: \"r\",\n values: \"28;14;28;28;14;28;\"\n })\n }, {\n tag: \"animate\",\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: \"1;0;1;1;0;1;\"\n })\n }]\n};\nvar QUESTION = {\n tag: \"path\",\n attributes: _objectSpread({}, 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: [{\n tag: \"animate\",\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: \"1;0;0;0;0;1;\"\n })\n }]\n};\nvar EXCLAMATION = {\n tag: \"path\",\n attributes: _objectSpread({}, 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: [{\n tag: \"animate\",\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: \"0;0;1;1;0;0;\"\n })\n }]\n};\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon2) {\n var width = icon2[0];\n var height = icon2[1];\n var _icon$slice = icon2.slice(4), _icon$slice2 = _slicedToArray(_icon$slice, 1), vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: \"g\",\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: \"path\",\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: \"currentColor\",\n d: vectorData[0]\n }\n }, {\n tag: \"path\",\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: \"currentColor\",\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: \"path\",\n attributes: {\n fill: \"currentColor\",\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nvar styles$3 = namespace.styles;\nvar baseStyles = 'svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\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\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\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\\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: 0.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\\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\\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\\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\\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\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\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: 0.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: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\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\\n.fa-rotate-180 {\\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\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\\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\\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\\n.fa-flip-both, .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\\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:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\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\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\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\\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\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}';\nfunction css2() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), \"g\");\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), \"g\");\n var rPatt = new RegExp(\"\\\\.\".concat(drc), \"g\");\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nvar Library = /* @__PURE__ */ function() {\n function Library2() {\n _classCallCheck(this, Library2);\n this.definitions = {};\n }\n _createClass(Library2, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function(key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\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 ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function(key) {\n var _normalized$key = normalized[key], prefix = _normalized$key.prefix, iconName = _normalized$key.iconName, icon2 = _normalized$key.icon;\n if (!additions[prefix])\n additions[prefix] = {};\n additions[prefix][iconName] = icon2;\n });\n return additions;\n }\n }]);\n return Library2;\n}();\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css2());\n _cssInserted = true;\n }\n}\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, \"abstract\", {\n get: abstractCreator\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 Object.defineProperty(val, \"node\", {\n get: function get() {\n if (!IS_DOM)\n return;\n var container = DOCUMENT.createElement(\"div\");\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix, prefix = _iconLookup$prefix === void 0 ? \"fa\" : _iconLookup$prefix, iconName = iconLookup.iconName;\n if (!iconName)\n return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nfunction resolveIcons(next) {\n return function(maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread({}, params, {\n mask\n }));\n };\n}\nvar library = new Library();\nvar _cssInserted = false;\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var _params$transform = params.transform, transform2 = _params$transform === void 0 ? meaninglessTransform : _params$transform, _params$symbol = params.symbol, symbol = _params$symbol === void 0 ? false : _params$symbol, _params$mask = params.mask, mask = _params$mask === void 0 ? null : _params$mask, _params$maskId = params.maskId, maskId = _params$maskId === void 0 ? null : _params$maskId, _params$title = params.title, title = _params$title === void 0 ? null : _params$title, _params$titleId = params.titleId, titleId = _params$titleId === void 0 ? null : _params$titleId, _params$classes = params.classes, classes = _params$classes === void 0 ? [] : _params$classes, _params$attributes = params.attributes, attributes = _params$attributes === void 0 ? {} : _params$attributes, _params$styles = params.styles, styles2 = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition)\n return;\n var prefix = iconDefinition.prefix, iconName = iconDefinition.iconName, icon2 = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: \"icon\"\n }, iconDefinition), function() {\n ensureCss();\n if (config.autoA11y) {\n if (title) {\n attributes[\"aria-labelledby\"] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes[\"aria-hidden\"] = \"true\";\n attributes[\"focusable\"] = \"false\";\n }\n }\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon2),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix,\n iconName,\n transform: _objectSpread({}, meaninglessTransform, transform2),\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles: styles2,\n classes\n }\n });\n });\n});\n\n// ../../node_modules/.pnpm/@fortawesome+react-fontawesome@0.1.19_6uk63tqcq2kfmhhlivxd3orcjq/node_modules/@fortawesome/react-fontawesome/index.es.js\nvar import_prop_types = __toESM(require_prop_types());\nimport React142 from \"react\";\nfunction ownKeys(object, enumerableOnly) {\n var keys2 = 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 })), keys2.push.apply(keys2, symbols);\n }\n return keys2;\n}\nfunction _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), true).forEach(function(key) {\n _defineProperty2(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}\nfunction _typeof2(obj) {\n \"@babel/helpers - typeof\";\n return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj2) {\n return typeof obj2;\n } : function(obj2) {\n return obj2 && \"function\" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n }, _typeof2(obj);\n}\nfunction _defineProperty2(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null)\n return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null)\n return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0)\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr))\n return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null)\n return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o2, minLen) {\n if (!o2)\n return;\n if (typeof o2 === \"string\")\n return _arrayLikeToArray(o2, minLen);\n var n = Object.prototype.toString.call(o2).slice(8, -1);\n if (n === \"Object\" && o2.constructor)\n n = o2.constructor.name;\n if (n === \"Map\" || n === \"Set\")\n return Array.from(o2);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return _arrayLikeToArray(o2, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length)\n len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++)\n arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction classList(props) {\n var _classes;\n var beat = props.beat, fade2 = props.fade, beatFade = props.beatFade, bounce = props.bounce, shake = props.shake, flash = props.flash, spin = props.spin, spinPulse = props.spinPulse, spinReverse = props.spinReverse, pulse = props.pulse, fixedWidth = props.fixedWidth, inverse = props.inverse, border = props.border, listItem = props.listItem, flip = props.flip, size = props.size, rotation = props.rotation, pull = props.pull;\n var classes = (_classes = {\n \"fa-beat\": beat,\n \"fa-fade\": fade2,\n \"fa-beat-fade\": beatFade,\n \"fa-bounce\": bounce,\n \"fa-shake\": shake,\n \"fa-flash\": flash,\n \"fa-spin\": spin,\n \"fa-spin-reverse\": spinReverse,\n \"fa-spin-pulse\": spinPulse,\n \"fa-pulse\": pulse,\n \"fa-fw\": fixedWidth,\n \"fa-inverse\": inverse,\n \"fa-border\": border,\n \"fa-li\": listItem,\n \"fa-flip\": flip === true,\n \"fa-flip-horizontal\": flip === \"horizontal\" || flip === \"both\",\n \"fa-flip-vertical\": flip === \"vertical\" || flip === \"both\"\n }, _defineProperty2(_classes, \"fa-\".concat(size), typeof size !== \"undefined\" && size !== null), _defineProperty2(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== \"undefined\" && rotation !== null && rotation !== 0), _defineProperty2(_classes, \"fa-pull-\".concat(pull), typeof pull !== \"undefined\" && pull !== null), _defineProperty2(_classes, \"fa-swap-opacity\", props.swapOpacity), _classes);\n return Object.keys(classes).map(function(key) {\n return classes[key] ? key : null;\n }).filter(function(key) {\n return key;\n });\n}\nfunction _isNumerical(obj) {\n obj = obj - 0;\n return obj === obj;\n}\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n }\n string = string.replace(/[\\-_\\s]+(.)?/g, function(match5, chr) {\n return chr ? chr.toUpperCase() : \"\";\n });\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\nvar _excluded$1 = [\"style\"];\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\nfunction styleToObject(style) {\n return style.split(\";\").map(function(s) {\n return s.trim();\n }).filter(function(s) {\n return s;\n }).reduce(function(acc, pair) {\n var i = pair.indexOf(\":\");\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith(\"webkit\") ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\nfunction convert(createElement141, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n if (typeof element === \"string\") {\n return element;\n }\n var children = (element.children || []).map(function(child) {\n return convert(createElement141, child);\n });\n var mixins = Object.keys(element.attributes || {}).reduce(function(acc, key) {\n var val = element.attributes[key];\n switch (key) {\n case \"class\":\n acc.attrs[\"className\"] = val;\n delete element.attributes[\"class\"];\n break;\n case \"style\":\n acc.attrs[\"style\"] = styleToObject(val);\n break;\n default:\n if (key.indexOf(\"aria-\") === 0 || key.indexOf(\"data-\") === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n }\n return acc;\n }, {\n attrs: {}\n });\n var _extraProps$style = extraProps.style, existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style, remaining = _objectWithoutProperties(extraProps, _excluded$1);\n mixins.attrs[\"style\"] = _objectSpread2(_objectSpread2({}, mixins.attrs[\"style\"]), existingStyle);\n return createElement141.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\nvar PRODUCTION2 = false;\ntry {\n PRODUCTION2 = process.env.NODE_ENV === \"production\";\n} catch (e) {\n}\nfunction log() {\n if (!PRODUCTION2 && console && typeof console.error === \"function\") {\n var _console;\n (_console = console).error.apply(_console, arguments);\n }\n}\nfunction normalizeIconArgs(icon2) {\n if (icon2 && _typeof2(icon2) === \"object\" && icon2.prefix && icon2.iconName && icon2.icon) {\n return icon2;\n }\n if (parse.icon) {\n return parse.icon(icon2);\n }\n if (icon2 === null) {\n return null;\n }\n if (icon2 && _typeof2(icon2) === \"object\" && icon2.prefix && icon2.iconName) {\n return icon2;\n }\n if (Array.isArray(icon2) && icon2.length === 2) {\n return {\n prefix: icon2[0],\n iconName: icon2[1]\n };\n }\n if (typeof icon2 === \"string\") {\n return {\n prefix: \"fas\",\n iconName: icon2\n };\n }\n}\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty2({}, key, value) : {};\n}\nvar _excluded = [\"forwardedRef\"];\nfunction FontAwesomeIcon(_ref2) {\n var forwardedRef = _ref2.forwardedRef, props = _objectWithoutProperties(_ref2, _excluded);\n var iconArgs = props.icon, maskArgs = props.mask, symbol = props.symbol, className = props.className, title = props.title, titleId = props.titleId, maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey(\"classes\", [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(\" \"))));\n var transform2 = objectWithKey(\"transform\", typeof props.transform === \"string\" ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey(\"mask\", normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform2), mask), {}, {\n symbol,\n title,\n titleId,\n maskId\n }));\n if (!renderedIcon) {\n log(\"Could not find icon\", iconLookup);\n return null;\n }\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function(key) {\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = \"FontAwesomeIcon\";\nFontAwesomeIcon.propTypes = {\n beat: import_prop_types.default.bool,\n border: import_prop_types.default.bool,\n beatFade: import_prop_types.default.bool,\n bounce: import_prop_types.default.bool,\n className: import_prop_types.default.string,\n fade: import_prop_types.default.bool,\n flash: import_prop_types.default.bool,\n mask: import_prop_types.default.oneOfType([import_prop_types.default.object, import_prop_types.default.array, import_prop_types.default.string]),\n maskId: import_prop_types.default.string,\n fixedWidth: import_prop_types.default.bool,\n inverse: import_prop_types.default.bool,\n flip: import_prop_types.default.oneOf([true, false, \"horizontal\", \"vertical\", \"both\"]),\n icon: import_prop_types.default.oneOfType([import_prop_types.default.object, import_prop_types.default.array, import_prop_types.default.string]),\n listItem: import_prop_types.default.bool,\n pull: import_prop_types.default.oneOf([\"right\", \"left\"]),\n pulse: import_prop_types.default.bool,\n rotation: import_prop_types.default.oneOf([0, 90, 180, 270]),\n shake: import_prop_types.default.bool,\n size: import_prop_types.default.oneOf([\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"1x\", \"2x\", \"3x\", \"4x\", \"5x\", \"6x\", \"7x\", \"8x\", \"9x\", \"10x\"]),\n spin: import_prop_types.default.bool,\n spinPulse: import_prop_types.default.bool,\n spinReverse: import_prop_types.default.bool,\n symbol: import_prop_types.default.oneOfType([import_prop_types.default.bool, import_prop_types.default.string]),\n title: import_prop_types.default.string,\n titleId: import_prop_types.default.string,\n transform: import_prop_types.default.oneOfType([import_prop_types.default.string, import_prop_types.default.object]),\n swapOpacity: import_prop_types.default.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: \"\",\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: \"\",\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React142.createElement);\n\n// src/assets/Spinner/Spinner.tsx\nimport { jsx as jsx27 } from \"react/jsx-runtime\";\nvar Spinner = () => /* @__PURE__ */ jsx27(FontAwesomeIcon, {\n icon: faSpinner,\n spin: true,\n size: \"lg\"\n});\nvar Spinner_default = Spinner;\n\n// src/common/focus_rings.ts\nvar FocusRingSelf = css({\n transition: \"all 150ms ease-out\",\n boxShadow: shadows2.none,\n \"&:focus\": {\n outline: \"none\",\n boxShadow: shadows2.focusRingLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.focusRingDark\n }\n }\n});\nvar FocusRingSelfIndexed = css(FocusRingSelf, {\n position: \"relative\",\n zIndex: 0,\n \"&:focus\": {\n zIndex: 1\n }\n});\n\n// src/components/Accordion/Accordion.tsx\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\n\n// src/components/List/ListItem.tsx\nvar ListItem = styled(\"div\", FocusRingSelfIndexed, {\n alignItems: \"center\",\n hStack: \"$8\",\n padding: \"$8 $16\",\n minHeight: \"$40\",\n boxShadow: shadows2.fenceAllLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceAllDark\n },\n \"&:focus\": {\n borderRadius: \"$8 !important\"\n }\n});\nvar ListItem_default = ListItem;\n\n// src/components/List/List.tsx\nvar List = styled(\"div\", {\n display: \"flex\",\n flexDirection: \"column\",\n borderRadiusTop: \"$8\",\n borderRadiusBottom: \"$8\",\n position: \"relative\",\n boxShadow: shadows2.fenceAllLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceAllDark\n },\n [`& ${ListItem_default}:first-child`]: {\n borderRadiusTop: \"$8\"\n },\n [`& ${ListItem_default}:last-child`]: {\n borderRadiusBottom: \"$8\"\n }\n});\nvar List_default = List;\n\n// src/components/Accordion/Accordion.tsx\nvar Accordion = styled(AccordionPrimitive.Root, List_default);\nvar Accordion_default = Accordion;\n\n// src/components/Accordion/AccordionContent.tsx\nimport * as AccordionPrimitive2 from \"@radix-ui/react-accordion\";\nimport React143 from \"react\";\n\n// src/utilities/Text/Text.tsx\nvar import_lodash3 = __toESM(require_lodash());\nvar import_ts_pattern = __toESM(require_lib2());\n\n// src/utilities/shared/Opacity.tsx\nvar opacityCSS = (opacity) => opacity != null ? {\n opacity: opacity / 100\n} : {};\n\n// src/utilities/Text/Text.tsx\nimport { jsx as jsx28 } from \"react/jsx-runtime\";\nvar BaseText = styled(\"span\");\nvar Text = ({\n as = \"span\",\n align,\n className,\n color: color2,\n decoration,\n display = \"inline\",\n family,\n italicize,\n lineHeight,\n opacity,\n size,\n transform: transform2,\n variant,\n visibility,\n weight,\n whitespace,\n wordBreak,\n ...remaining\n}) => {\n const fontFamily = (0, import_ts_pattern.match)(family).with(\"brand\", () => fontFamilies.title).with(\"monospace\", () => fontFamilies.mono).with(\"regular\", () => fontFamilies.sans).otherwise(() => fontFamilies.sans).toString();\n const fontWeight = (0, import_ts_pattern.match)(weight).with(\"light\", () => fontWeights.light).with(\"regular\", () => fontWeights.regular).with(\"medium\", () => fontWeights.medium).otherwise(() => fontWeights.regular).toString();\n const baseCSS = {\n display,\n textAlign: align,\n textDecoration: decoration,\n fontFamily,\n lineHeight: `$${lineHeight}`,\n fontSize: size,\n fontStyle: italicize,\n textTransform: transform2,\n fontVariant: variant,\n fontWeight,\n whiteSpace: whitespace,\n wordBreak\n };\n const css3 = (0, import_lodash3.merge)(baseCSS, colorCSS(color2 == null ? void 0 : color2.dark, color2 == null ? void 0 : color2.light), opacityCSS(opacity));\n return /* @__PURE__ */ jsx28(BaseText, {\n ...remaining,\n as,\n css: css3\n });\n};\nvar Text2 = styled(\"span\");\nvar Text_default = Text;\n\n// src/text/Body.tsx\nimport { jsx as jsx29 } from \"react/jsx-runtime\";\nvar Body = ({\n children,\n color: color2 = {\n light: \"gray-600\",\n dark: \"gray-200\"\n },\n family = \"regular\",\n weight = \"regular\",\n ...remaining\n}) => /* @__PURE__ */ jsx29(Text_default, {\n ...remaining,\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 20,\n size: 14,\n weight,\n children\n});\nvar Body2 = styled(\"span\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n fontSize: \"$14\",\n lineHeight: \"$20\"\n});\nvar Body_default = Body;\n\n// src/components/Accordion/AccordionContent.tsx\nimport { jsx as jsx30 } from \"react/jsx-runtime\";\nvar slideDown = keyframes({\n from: { height: 0 },\n to: { height: \"var(--radix-accordion-content-height)\" }\n});\nvar slideUp = keyframes({\n from: { height: \"var(--radix-accordion-content-height)\" },\n to: { height: 0 }\n});\nvar StyledContent = styled(AccordionPrimitive2.Content, {\n overflow: \"hidden\",\n '&[data-state=\"open\"]': {\n animation: `${slideDown} 300ms cubic-bezier(0.87, 0, 0.13, 1)`\n },\n '&[data-state=\"closed\"]': {\n animation: `${slideUp} 300ms cubic-bezier(0.87, 0, 0.13, 1)`\n }\n});\nvar StyledContentText = styled(\"div\", Body2, {\n marginLeft: \"$16\"\n});\nvar AccordionContent = React143.forwardRef(({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx30(StyledContent, {\n ...props,\n ref: forwardedRef,\n children: /* @__PURE__ */ jsx30(StyledContentText, {\n children\n })\n}));\nvar AccordionContent_default = AccordionContent;\n\n// src/components/Accordion/AccordionItem.tsx\nimport * as AccordionPrimitive3 from \"@radix-ui/react-accordion\";\nvar AccordionItem = styled(AccordionPrimitive3.Item, ListItem_default, {\n flexDirection: \"column\",\n alignItems: \"stretch\",\n gap: \"$0\",\n \"&[data-state=open]\": { gap: \"$10\" }\n});\nvar AccordionItem_default = AccordionItem;\n\n// src/components/Accordion/AccordionTrigger.tsx\nimport * as AccordionPrimitive4 from \"@radix-ui/react-accordion\";\nimport React144 from \"react\";\nimport { jsx as jsx31, jsxs as jsxs15 } from \"react/jsx-runtime\";\nvar StyledHeader = styled(AccordionPrimitive4.Header, {\n all: \"unset\",\n display: \"flex\",\n padding: \"$2 $0\"\n});\nvar StyledTrigger = styled(AccordionPrimitive4.Trigger, {\n hStack: \"$8\"\n});\nvar StyledChevron = styled(Icon_default, {\n width: \"$8\",\n height: \"$8\",\n \"[data-state=open] &\": { transform: \"rotate(90deg)\" }\n});\nvar AccordionTrigger = React144.forwardRef(\n ({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx31(StyledHeader, {\n children: /* @__PURE__ */ jsxs15(StyledTrigger, {\n ...props,\n ref: forwardedRef,\n children: [\n /* @__PURE__ */ jsx31(StyledChevron, {\n icon: \"chevronRight\",\n \"aria-hidden\": true\n }),\n /* @__PURE__ */ jsx31(Body2, {\n children\n })\n ]\n })\n })\n);\nvar AccordionTrigger_default = AccordionTrigger;\n\n// src/components/Alert/Alert.tsx\nimport { jsx as jsx32, jsxs as jsxs16 } from \"react/jsx-runtime\";\nvar Container3 = styled(\"div\", {\n padding: \"$4\",\n hStack: \"$12\",\n alignItems: \"stretch\",\n background: \"$$backgroundColor\",\n variants: {\n variant: {\n alternative: {\n $$backgroundColor: colors[\"blue-50\"],\n $$headingColor: colors[\"blue-800\"],\n $$copyColor: colors[\"blue-700\"],\n $$iconColor: colors[\"blue-700\"],\n $$tabColor: colors[\"blue-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"blue-900\"],\n $$headingColor: colors[\"blue-50\"],\n $$copyColor: colors[\"blue-100\"],\n $$iconColor: colors[\"blue-100\"],\n $$tabColor: colors[\"blue-300\"]\n }\n },\n brand: {\n $$backgroundColor: colors[\"brand-50\"],\n $$headingColor: colors[\"brand-800\"],\n $$copyColor: colors[\"brand-700\"],\n $$iconColor: colors[\"brand-700\"],\n $$tabColor: colors[\"brand-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"brand-900\"],\n $$headingColor: colors[\"brand-50\"],\n $$copyColor: colors[\"brand-100\"],\n $$iconColor: colors[\"brand-100\"],\n $$tabColor: colors[\"brand-300\"]\n }\n },\n negative: {\n $$backgroundColor: colors[\"red-50\"],\n $$headingColor: colors[\"red-800\"],\n $$copyColor: colors[\"red-700\"],\n $$iconColor: colors[\"red-700\"],\n $$tabColor: colors[\"red-600\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"red-900\"],\n $$headingColor: colors[\"red-50\"],\n $$copyColor: colors[\"red-100\"],\n $$iconColor: colors[\"red-100\"],\n $$tabColor: colors[\"red-300\"]\n }\n },\n neutral: {\n $$backgroundColor: colors[\"gray-50\"],\n $$headingColor: colors[\"gray-800\"],\n $$copyColor: colors[\"gray-700\"],\n $$iconColor: colors[\"gray-900\"],\n $$tabColor: colors[\"gray-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"gray-700\"],\n $$headingColor: colors[\"gray-50\"],\n $$copyColor: colors[\"gray-100\"],\n $$iconColor: colors[\"gray-100\"],\n $$tabColor: colors[\"gray-200\"]\n }\n },\n positive: {\n $$backgroundColor: colors[\"green-50\"],\n $$headingColor: colors[\"green-900\"],\n $$copyColor: colors[\"green-800\"],\n $$iconColor: colors[\"green-800\"],\n $$tabColor: colors[\"green-700\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"green-900\"],\n $$headingColor: colors[\"green-50\"],\n $$copyColor: colors[\"green-100\"],\n $$iconColor: colors[\"green-100\"],\n $$tabColor: colors[\"green-500\"]\n }\n }\n },\n grouping: {\n standalone: {\n borderRadius: \"$8\"\n },\n stacked: {\n boxShadow: shadows2.fenceAllLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceAllDark\n }\n }\n }\n }\n});\nvar IconAndContent = styled(\"div\", {\n hStack: \"$12\",\n paddingY: \"$8\",\n paddingRight: \"$8\",\n alignItems: \"flex-start\"\n});\nvar Content2 = styled(\"div\", {\n vStack: 0,\n alignItems: \"stretch\"\n});\nvar Tab = styled(\"div\", {\n width: 4,\n background: \"$$tabColor\",\n borderRadius: 100,\n flexShrink: 0\n});\nvar StyledIcon = styled(Icon_default, {\n color: \"$$iconColor\",\n marginTop: \"$2\"\n});\nvar Heading = styled(Body2, {\n fontWeight: fontWeights.medium,\n color: \"$$headingColor\"\n});\nvar Copy = styled(Body2, {\n color: \"$$copyColor\"\n});\nvar Buttons = styled(\"div\", {\n hStack: \"$8\",\n \"* + &\": {\n marginTop: \"$8\"\n }\n});\nvar Alert = ({\n copy,\n heading,\n icon: icon2,\n trailingButtons,\n variant = \"neutral\",\n cornerStyle = \"round\"\n}) => /* @__PURE__ */ jsxs16(Container3, {\n variant,\n grouping: cornerStyle === \"round\" ? \"standalone\" : \"stacked\",\n children: [\n /* @__PURE__ */ jsx32(Tab, {}),\n /* @__PURE__ */ jsxs16(IconAndContent, {\n children: [\n icon2 && /* @__PURE__ */ jsx32(StyledIcon, {\n icon: icon2\n }),\n (heading || copy) && /* @__PURE__ */ jsxs16(Content2, {\n children: [\n heading && /* @__PURE__ */ jsx32(Heading, {\n children: heading\n }),\n copy && /* @__PURE__ */ jsx32(Copy, {\n children: copy\n }),\n trailingButtons && /* @__PURE__ */ jsx32(Buttons, {\n children: trailingButtons\n })\n ]\n })\n ]\n })\n ]\n});\nvar Alert_default = Alert;\n\n// src/common/control_size.tsx\nimport { createContext, useContext } from \"react\";\nvar ControlSizeContext = createContext(void 0);\nvar ControlSizeProvider = ControlSizeContext.Provider;\nvar useControlSize = (controlledValue, defaultValue = \"medium\") => {\n const controlSize = useContext(ControlSizeContext);\n return controlledValue ?? controlSize ?? defaultValue;\n};\n\n// src/common/visually_hidden.ts\nvar visuallyHiddenCSS = {\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n height: 1,\n overflow: \"hidden\",\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: 1\n};\nvar VisuallyHidden = styled(\"div\", visuallyHiddenCSS);\n\n// src/components/Badge/Badge.tsx\nimport { jsx as jsx33, jsxs as jsxs17 } from \"react/jsx-runtime\";\nvar BadgeContainer = styled(\"div\", {\n display: \"inline-flex\",\n width: \"fit-content\",\n paddingX: \"$8\",\n paddingY: \"$2\",\n variants: {\n ends: {\n card: {\n borderRadius: \"$8\"\n },\n pill: {\n borderRadius: 9999\n }\n },\n size: {\n small: { lineHeight: \"$16\", height: \"$20\", paddingY: \"$2\" },\n medium: { lineHeight: \"$20\", height: \"$24\", paddingY: \"$2\" },\n large: { lineHeight: \"$20\", height: \"$28\", paddingY: \"$4\" }\n },\n color: {\n alternative: {\n backgroundColor: fade(palette[\"blue-100\"], 0.75),\n $$labelColor: colors[\"blue-900\"],\n $$iconColor: colors[\"blue-800\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"blue-500\"],\n $$labelColor: colors.white,\n $$iconColor: colors[\"blue-50\"]\n },\n [activeThemeSelector]: {\n backgroundColor: colors.white,\n $$labelColor: colors[\"blue-600\"],\n $$iconColor: colors[\"blue-500\"]\n }\n },\n brand: {\n backgroundColor: fade(palette[\"brand-100\"], 0.75),\n $$labelColor: colors[\"brand-900\"],\n $$iconColor: colors[\"brand-800\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"brand-500\"],\n $$labelColor: colors.white,\n $$iconColor: colors[\"brand-50\"]\n },\n [activeThemeSelector]: {\n backgroundColor: colors.white,\n $$labelColor: colors[\"brand-600\"],\n $$iconColor: colors[\"brand-500\"]\n }\n },\n negative: {\n backgroundColor: fade(palette[\"red-100\"], 0.75),\n $$labelColor: colors[\"red-900\"],\n $$iconColor: colors[\"red-800\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"red-500\"],\n $$labelColor: colors.white,\n $$iconColor: colors[\"red-50\"]\n },\n [activeThemeSelector]: {\n backgroundColor: colors.white,\n $$labelColor: colors[\"red-600\"],\n $$iconColor: colors[\"red-500\"]\n }\n },\n neutral: {\n backgroundColor: fade(palette[\"gray-100\"], 0.75),\n $$labelColor: colors[\"gray-700\"],\n $$iconColor: colors[\"gray-600\"],\n [darkThemeSelector]: {\n backgroundColor: fade(palette[\"gray-400\"], 0.5),\n $$labelColor: colors.white,\n $$iconColor: colors[\"gray-50\"]\n },\n [activeThemeSelector]: {\n backgroundColor: colors.white,\n $$labelColor: colors[\"gray-600\"],\n $$iconColor: colors[\"gray-500\"]\n }\n },\n positive: {\n backgroundColor: fade(palette[\"green-100\"], 0.75),\n $$labelColor: colors[\"green-900\"],\n $$iconColor: colors[\"green-800\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"green-700\"],\n $$labelColor: colors.white,\n $$iconColor: colors[\"green-50\"]\n },\n [activeThemeSelector]: {\n backgroundColor: colors.white,\n $$labelColor: colors[\"green-700\"],\n $$iconColor: colors[\"green-600\"]\n }\n }\n }\n },\n compoundVariants: [\n {\n ends: \"card\",\n size: \"small\",\n css: {\n paddingX: \"$4\",\n borderRadius: \"$6\"\n }\n },\n {\n ends: \"pill\",\n size: \"small\",\n css: {\n paddingX: \"$6\"\n }\n },\n {\n ends: \"pill\",\n size: \"medium\",\n css: {\n paddingX: \"$10\"\n }\n },\n {\n ends: \"card\",\n size: \"large\",\n css: {\n paddingX: \"$10\",\n paddingY: \"$4\"\n }\n },\n {\n ends: \"pill\",\n size: \"large\",\n css: {\n paddingX: \"$12\",\n paddingY: \"$4\"\n }\n }\n ]\n});\nvar LabelAndIcon = styled(\"div\", {\n hStack: \"$4\",\n variants: {\n arrangement: {\n \"leading-icon\": {\n flexDirection: \"row-reverse\"\n },\n \"leading-label\": {\n flexDirection: \"row\"\n },\n \"hidden-label\": {}\n }\n }\n});\nvar Label = styled(\"div\", {\n color: \"$$labelColor\",\n fontWeight: fontWeights.medium,\n fontFamily: fonts.sans,\n variants: {\n isHidden: {\n true: visuallyHiddenCSS,\n false: {}\n },\n size: {\n small: {\n fontSize: \"$12\",\n lineHeight: \"$16\"\n },\n medium: {\n fontSize: \"$14\",\n lineHeight: \"$20\"\n },\n large: {\n fontSize: \"$14\",\n lineHeight: \"$20\"\n }\n }\n }\n});\nvar StyledIcon2 = styled(Icon_default, {\n color: \"$$iconColor\"\n});\nvar Badge = ({\n arrangement = \"leading-label\",\n children,\n ends = \"card\",\n icon: icon2,\n variant = \"neutral\",\n size\n}) => {\n const controlSize = useControlSize(size, \"medium\");\n return /* @__PURE__ */ jsxs17(BadgeContainer, {\n size: controlSize,\n ends,\n color: variant,\n children: [\n /* @__PURE__ */ jsx33(Label, {\n size: controlSize,\n \"aria-hidden\": true,\n children: \"\\u200B\"\n }),\n /* @__PURE__ */ jsxs17(LabelAndIcon, {\n arrangement,\n children: [\n /* @__PURE__ */ jsx33(Label, {\n size: controlSize,\n isHidden: arrangement === \"hidden-label\",\n children\n }),\n icon2 && /* @__PURE__ */ jsx33(StyledIcon2, {\n icon: icon2,\n size: controlSize === \"small\" ? space(12) : space(16)\n })\n ]\n })\n ]\n });\n};\nvar Badge_default = Badge;\n\n// src/components/Button/Button.tsx\nimport React145 from \"react\";\n\n// src/components/Button/button_styles.tsx\nvar labelColor = \"$$labelColor\";\nvar iconColor = \"$$iconColor\";\nvar loadingIconColor = \"$$loadingIconColor\";\nvar focusSelector = \"&:focus, &:focus-within\";\nvar sharedTransition = \"all 150ms ease-out\";\nvar secondaryEnabledStyles = {\n backgroundColor: colors[\"gray-50\"],\n backgroundImage: colors.controlSecondary,\n boxShadow: shadows2.controlSecondaryInitialLight,\n [labelColor]: colors[\"gray-700\"],\n [iconColor]: colors[\"gray-600\"],\n \"&:hover\": {\n boxShadow: shadows2.controlSecondaryHoveredLight,\n [labelColor]: colors[\"gray-800\"],\n [iconColor]: colors[\"gray-700\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlSecondaryFocusedLight\n },\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-700\"],\n backgroundImage: colors.controlSecondaryDark,\n boxShadow: shadows2.controlSecondaryInitialDark,\n [labelColor]: colors[\"gray-50\"],\n [iconColor]: colors[\"gray-100\"],\n \"&:hover\": {\n boxShadow: shadows2.controlSecondaryHoveredDark,\n [labelColor]: colors.white,\n [iconColor]: colors[\"gray-50\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlSecondaryFocusedDark\n }\n }\n};\nvar primaryEnabledStyles = {\n backgroundColor: colors[\"brand-600\"],\n backgroundImage: colors.controlPrimary,\n boxShadow: shadows2.controlPrimaryInitialLight,\n [labelColor]: colors[\"brand-50\"],\n [iconColor]: colors[\"brand-100\"],\n \"&:hover\": {\n boxShadow: shadows2.controlPrimaryHoveredLight,\n [labelColor]: colors.white,\n [iconColor]: colors[\"brand-50\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlPrimaryFocusedLight\n },\n [darkThemeSelector]: {\n backgroundColor: colors[\"brand-600\"],\n boxShadow: shadows2.controlPrimaryInitialDark,\n \"&:hover\": {\n boxShadow: shadows2.controlPrimaryHoveredDark\n },\n [focusSelector]: {\n boxShadow: shadows2.controlPrimaryFocusedDark\n }\n }\n};\nvar primaryDisabledStyles = {\n backgroundColor: colors[\"brand-800\"],\n boxShadow: shadows2.controlPrimaryDisabledLight,\n [labelColor]: colors[\"brand-200\"],\n [iconColor]: colors[\"brand-300\"],\n [loadingIconColor]: colors[\"brand-50\"],\n [darkThemeSelector]: {\n boxShadow: shadows2.controlPrimaryDisabledDark\n }\n};\nvar secondaryDisabledStyles = {\n backgroundColor: colors[\"gray-100\"],\n boxShadow: shadows2.controlSecondaryDisabledLight,\n [labelColor]: colors[\"gray-600\"],\n [iconColor]: colors[\"gray-500\"],\n [loadingIconColor]: colors[\"gray-700\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-800\"],\n boxShadow: shadows2.controlSecondaryDisabledDark,\n [labelColor]: colors[\"gray-200\"],\n [iconColor]: colors[\"gray-300\"],\n [loadingIconColor]: colors[\"gray-50\"]\n }\n};\n\n// src/components/Button/Button.tsx\nimport { jsx as jsx34, jsxs as jsxs18 } from \"react/jsx-runtime\";\nvar StyledIcon3 = styled(Icon_default, {\n color: iconColor,\n transition: sharedTransition,\n opacity: 1,\n width: \"$$iconSize\",\n height: \"$$iconSize\",\n variants: {\n isLoading: {\n true: {\n opacity: 0\n }\n }\n }\n});\nvar StyledLoadingIcon = styled(LoadingIcon_default, {\n color: loadingIconColor,\n transition: sharedTransition\n});\nvar StyledLabel = styled(\"span\", Body2, {\n fontWeight: fontWeights.medium,\n transition: sharedTransition,\n truncate: true,\n color: labelColor,\n [darkThemeSelector]: {\n color: labelColor\n },\n variants: {\n isLoading: {\n true: {\n opacity: 0\n },\n false: {\n opacity: 1\n }\n },\n arrangement: {\n \"hidden-label\": visuallyHiddenCSS,\n \"leading-icon\": {},\n \"leading-label\": {}\n },\n size: {\n small: {\n lineHeight: \"$16\",\n fontSize: \"$12\"\n },\n medium: {\n lineHeight: \"$20\",\n fontSize: \"$14\"\n },\n large: {\n lineHeight: \"$20\",\n fontSize: \"$14\"\n },\n \"x-large\": {\n lineHeight: \"$24\",\n fontSize: \"$16\"\n }\n }\n }\n});\nvar BaseButton = styled(\"button\", {\n alignItems: \"center\",\n borderRadius: \"$8\",\n justifyContent: \"space-between\",\n cursor: \"pointer\",\n display: \"flex\",\n opacity: 1,\n position: \"relative\",\n transition: sharedTransition,\n userSelect: \"none\",\n paddingX: \"$$paddingX\",\n paddingY: \"$$paddingY\",\n truncate: true,\n whiteSpace: \"nowrap\",\n width: \"100%\",\n [focusSelector]: {\n outline: \"none\"\n },\n variants: {\n width: {\n auto: {\n width: \"fit-content\"\n },\n truncate: {\n maxWidth: \"fit-content\"\n },\n full: {\n width: \"100%\"\n }\n },\n size: {\n small: {\n $$iconSize: \"$space$12\",\n $$buttonGap: \"$space$4\",\n $$paddingX: \"$space$4\",\n $$paddingY: \"$space$2\",\n minHeight: \"$20\",\n borderRadius: \"$6\"\n },\n medium: {\n $$iconSize: \"$space$12\",\n $$buttonGap: \"$space$4\",\n $$paddingX: \"$space$8\",\n $$paddingY: \"$space$4\",\n minHeight: \"$28\"\n },\n large: {\n $$iconSize: \"$space$16\",\n $$buttonGap: \"$space$8\",\n $$paddingX: \"$space$12\",\n $$paddingY: \"$space$8\",\n minHeight: \"$36\"\n },\n \"x-large\": {\n $$iconSize: \"$space$16\",\n $$buttonGap: \"$space$8\",\n $$paddingX: \"$space$20\",\n $$paddingY: \"$space$10\",\n minHeight: \"$44\"\n }\n },\n isDisabled: {\n true: {\n cursor: \"not-allowed\",\n opacity: 0.5\n },\n false: {}\n },\n hasError: {\n true: {},\n false: {}\n },\n variant: {\n destructive: {},\n primary: {},\n secondary: {},\n tertiary: {}\n }\n },\n compoundVariants: [\n {\n variant: \"destructive\",\n isDisabled: false,\n css: {\n backgroundColor: colors[\"red-600\"],\n backgroundImage: colors.controlDestructive,\n boxShadow: shadows2.controlDestructiveInitialLight,\n [labelColor]: colors[\"red-50\"],\n [iconColor]: colors[\"red-100\"],\n \"&:hover\": {\n boxShadow: shadows2.controlDestructiveHoveredLight,\n [labelColor]: colors.white,\n [iconColor]: colors[\"red-50\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlDestructiveFocusedLight\n },\n [darkThemeSelector]: {\n backgroundColor: colors[\"red-600\"],\n boxShadow: shadows2.controlDestructiveInitialDark,\n \"&:hover\": {\n boxShadow: shadows2.controlDestructiveHoveredDark\n },\n [focusSelector]: {\n boxShadow: shadows2.controlDestructiveFocusedDark\n }\n }\n }\n },\n {\n variant: \"destructive\",\n isDisabled: true,\n css: {\n backgroundColor: colors[\"red-800\"],\n boxShadow: shadows2.controlDestructiveDisabledLight,\n [labelColor]: colors[\"red-200\"],\n [iconColor]: colors[\"red-300\"],\n [loadingIconColor]: colors[\"red-50\"],\n [darkThemeSelector]: {\n boxShadow: shadows2.controlDestructiveDisabledDark\n }\n }\n },\n {\n variant: \"primary\",\n isDisabled: false,\n css: primaryEnabledStyles\n },\n {\n variant: \"primary\",\n isDisabled: true,\n css: primaryDisabledStyles\n },\n {\n variant: \"secondary\",\n isDisabled: false,\n css: secondaryEnabledStyles\n },\n {\n variant: \"secondary\",\n isDisabled: true,\n css: secondaryDisabledStyles\n },\n {\n variant: \"tertiary\",\n isDisabled: false,\n css: {\n backgroundColor: colors.transparent,\n boxShadow: shadows2.controlTertiaryInitialLight,\n [labelColor]: colors[\"gray-600\"],\n [iconColor]: colors[\"gray-500\"],\n \"&:hover\": {\n boxShadow: shadows2.controlTertiaryHoveredLight,\n [labelColor]: colors[\"gray-700\"],\n [iconColor]: colors[\"gray-600\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlTertiaryFocusedLight\n },\n [darkThemeSelector]: {\n backgroundColor: colors.transparent,\n boxShadow: shadows2.controlTertiaryInitialDark,\n [labelColor]: colors[\"gray-50\"],\n [iconColor]: colors[\"gray-100\"],\n \"&:hover\": {\n boxShadow: shadows2.controlTertiaryHoveredDark,\n [labelColor]: colors.white,\n [iconColor]: colors[\"gray-50\"]\n },\n [focusSelector]: {\n boxShadow: shadows2.controlTertiaryFocusedDark\n }\n }\n }\n },\n {\n variant: \"tertiary\",\n isDisabled: true,\n css: {\n boxShadow: shadows2.controlTertiaryDisabledLight,\n [labelColor]: colors[\"gray-500\"],\n [iconColor]: colors[\"gray-400\"],\n [loadingIconColor]: colors[\"gray-600\"],\n [darkThemeSelector]: {\n boxShadow: shadows2.controlTertiaryDisabledDark,\n [labelColor]: colors[\"gray-200\"],\n [iconColor]: colors[\"gray-300\"],\n [loadingIconColor]: colors[\"gray-50\"]\n }\n }\n },\n {\n isDisabled: false,\n hasError: true,\n css: {\n boxShadow: shadows2.fieldErrorLight,\n \"&:hover:not(:focus)\": {\n boxShadow: shadows2.fieldErrorLight\n },\n [darkThemeSelector]: {\n boxShadow: shadows2.fieldErrorDark,\n \"&:hover:not(:focus)\": {\n boxShadow: shadows2.fieldErrorDark\n }\n }\n }\n }\n ]\n});\nvar LoadingIconContainer = styled(\"div\", {\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n});\nvar ButtonContent = styled(\"div\", {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"$$buttonGap\",\n truncate: true,\n variants: {\n arrangement: {\n \"hidden-label\": {},\n \"leading-icon\": {\n flexDirection: \"row-reverse\"\n },\n \"leading-label\": {}\n }\n }\n});\nvar DirectionArrow = styled(\"div\", {\n display: \"flex\",\n alignItems: \"center\",\n flexGrow: 1,\n flexBasis: 0\n});\nvar MenuArrow = styled(StyledIcon3, {\n marginLeft: 4,\n height: 9,\n width: 9\n});\nvar PreviousArrow = styled(DirectionArrow, {\n justifyContent: \"flex-start\",\n \"& > *\": {\n marginRight: \"$$buttonGap\"\n }\n});\nvar NextArrow = styled(DirectionArrow, {\n justifyContent: \"flex-end\",\n \"& > *\": {\n marginLeft: \"$$buttonGap\"\n }\n});\nvar ButtonInner = ({\n arrangement = \"leading-label\",\n children,\n direction,\n disabled = false,\n icon: icon2,\n menuArrow,\n loading = false,\n hasError = false,\n size,\n variant = \"primary\",\n width = \"auto\",\n type = \"button\",\n ...rest\n}, ref) => {\n const controlSize = useControlSize(size, \"medium\");\n const isDisabled = disabled || loading;\n return /* @__PURE__ */ jsxs18(BaseButton, {\n ...rest,\n type,\n ref,\n variant,\n size: controlSize,\n width,\n isDisabled,\n disabled: isDisabled,\n hasError,\n children: [\n loading && /* @__PURE__ */ jsx34(LoadingIconContainer, {\n children: /* @__PURE__ */ jsx34(StyledLoadingIcon, {})\n }),\n /* @__PURE__ */ jsx34(PreviousArrow, {\n children: direction === \"previous\" && /* @__PURE__ */ jsx34(StyledIcon3, {\n isLoading: loading,\n icon: \"arrowLeft\"\n })\n }),\n /* @__PURE__ */ jsxs18(ButtonContent, {\n arrangement,\n children: [\n /* @__PURE__ */ jsx34(StyledLabel, {\n size: controlSize,\n isLoading: loading,\n arrangement,\n children\n }),\n icon2 && /* @__PURE__ */ jsx34(StyledIcon3, {\n isLoading: loading,\n icon: icon2\n })\n ]\n }),\n menuArrow && /* @__PURE__ */ jsx34(MenuArrow, {\n isLoading: loading,\n icon: menuArrow === \"dropdown\" ? \"chevronDown\" : \"arrowsVertical\"\n }),\n /* @__PURE__ */ jsx34(NextArrow, {\n children: direction === \"next\" && /* @__PURE__ */ jsx34(StyledIcon3, {\n isLoading: loading,\n icon: \"arrowRight\"\n })\n })\n ]\n });\n};\nvar Button = React145.forwardRef(ButtonInner);\nvar Button_default = Button;\n\n// src/components/CheckboxInput/CheckboxInput.tsx\nimport { useRef as useRef2 } from \"react\";\nimport { useCheckbox } from \"react-aria\";\nimport { useToggleState } from \"react-stately\";\nimport { jsx as jsx35, jsxs as jsxs19 } from \"react/jsx-runtime\";\nvar Container4 = styled(\"label\", {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"$14\",\n minWidth: \"$14\",\n height: \"$14\",\n minHeight: \"$14\",\n borderRadius: \"$4\",\n cursor: \"pointer\",\n userSelect: \"none\",\n transition: sharedTransition,\n \"&:focus\": {\n outline: \"none\"\n },\n variants: {\n state: {\n initial: {},\n checked: {},\n indeterminate: {}\n },\n isDisabled: {\n true: {\n cursor: \"not-allowed\",\n opacity: 0.5\n },\n false: {}\n }\n },\n compoundVariants: [\n {\n state: \"initial\",\n isDisabled: false,\n css: secondaryEnabledStyles\n },\n {\n state: \"checked\",\n isDisabled: false,\n css: primaryEnabledStyles\n },\n {\n state: \"indeterminate\",\n isDisabled: false,\n css: { ...secondaryEnabledStyles, [iconColor]: colors[\"gray-300\"] }\n },\n {\n state: \"initial\",\n isDisabled: true,\n css: secondaryDisabledStyles\n },\n {\n state: \"checked\",\n isDisabled: true,\n css: primaryDisabledStyles\n },\n {\n state: \"indeterminate\",\n isDisabled: true,\n css: secondaryDisabledStyles\n }\n ]\n});\nvar StyledIcon4 = styled(Icon_default, {\n color: iconColor,\n transition: sharedTransition,\n width: \"$12\",\n height: \"$12\"\n});\nvar CheckboxInput = (props) => {\n const { disabled = false, indeterminate = false, checked } = props;\n const ariaProps = {\n ...props,\n isSelected: checked,\n isIndeterminate: indeterminate,\n isDisabled: disabled\n };\n const inputRef = useRef2(null);\n const toggleState = useToggleState(ariaProps);\n const { inputProps } = useCheckbox(ariaProps, toggleState, inputRef);\n let state;\n if (toggleState.isSelected) {\n state = \"checked\";\n } else if (indeterminate) {\n state = \"indeterminate\";\n } else {\n state = \"initial\";\n }\n return /* @__PURE__ */ jsxs19(Container4, {\n state,\n isDisabled: disabled,\n children: [\n state !== \"initial\" && /* @__PURE__ */ jsx35(StyledIcon4, {\n icon: state === \"checked\" ? \"checkmark\" : \"minus\"\n }),\n /* @__PURE__ */ jsx35(VisuallyHidden, {\n children: /* @__PURE__ */ jsx35(\"input\", {\n type: \"checkbox\",\n ...inputProps\n })\n })\n ]\n });\n};\nvar CheckboxInput_default = CheckboxInput;\n\n// src/components/CheckboxInputWithLabel/CheckboxInputWithLabel.tsx\nimport { useLabel as useLabel2 } from \"react-aria\";\n\n// src/components/Label/Label.tsx\nimport { useHover, useLabel } from \"react-aria\";\n\n// src/utilities/Box/Box.tsx\nvar import_classnames = __toESM(require_classnames());\nvar import_lodash8 = __toESM(require_lodash());\nimport React147 from \"react\";\n\n// src/utilities/shared/Align.tsx\nvar alignCSS = (align) => align != null ? {\n alignItems: align\n} : {};\n\n// src/utilities/shared/Fill.tsx\nvar import_lodash4 = __toESM(require_lodash());\nvar fillCSS = (dark, light) => (0, import_lodash4.merge)(\n {},\n light != null ? { backgroundColor: `$${light}` } : {},\n dark != null ? { [darkThemeSelector]: { backgroundColor: `$${dark}` } } : {}\n);\n\n// src/utilities/shared/Gradient.tsx\nvar import_ts_pattern2 = __toESM(require_lib2());\nvar gradientCSS = (gradient) => (0, import_ts_pattern2.match)(gradient).with(\"control-destructive\", () => ({\n backgroundImage: gradients.controlDestructive\n})).with(\"control-primary\", () => ({\n backgroundImage: gradients.controlPrimary\n})).with(\"control-secondary\", () => ({\n backgroundImage: gradients.controlSecondary,\n [darkThemeSelector]: {\n backgroundImage: gradients.controlSecondaryDark\n }\n})).with(\"none\", () => ({\n backgroundImage: \"none\"\n})).with(void 0, () => ({})).exhaustive();\n\n// src/utilities/shared/Justify.tsx\nvar import_ts_pattern3 = __toESM(require_lib2());\nvar justifyCSS = (justify) => (0, import_ts_pattern3.match)(justify).with(\"start\", () => ({ justifyContent: \"flex-start\" })).with(\"end\", () => ({ justifyContent: \"flex-end\" })).with(\"center\", () => ({ justifyContent: \"center\" })).with(\"around\", () => ({ justifyContent: \"space-around\" })).with(\"between\", () => ({ justifyContent: \"space-between\" })).with(\"evenly\", () => ({ justifyContent: \"space-evenly\" })).with(void 0, () => ({})).exhaustive();\n\n// src/utilities/shared/MaxHeight.tsx\nvar maxHeightCSS = (maxHeight) => {\n if (maxHeight === \"full\") {\n return { maxHeight: \"100%\" };\n }\n if (maxHeight === \"screen\") {\n return { maxHeight: \"100vh\" };\n }\n if (maxHeight != null) {\n return {\n maxHeight: `$${maxHeight}`\n };\n }\n return {};\n};\n\n// src/utilities/shared/MaxWidth.tsx\nvar maxWidthCSS = (maxWidth) => {\n if (maxWidth === \"full\") {\n return { maxWidth: \"100%\" };\n }\n if (maxWidth === \"screen\") {\n return { maxWidth: \"100vw\" };\n }\n if (maxWidth != null) {\n return {\n maxWidth: `$${maxWidth}`\n };\n }\n return {};\n};\n\n// src/utilities/shared/MinHeight.tsx\nvar minHeightCSS = (minHeight2) => {\n if (minHeight2 === \"full\") {\n return { minHeight: \"100%\" };\n }\n if (minHeight2 === \"screen\") {\n return { minHeight: \"100vh\" };\n }\n if (minHeight2 != null) {\n return {\n minHeight: `$${minHeight2}`\n };\n }\n return {};\n};\n\n// src/utilities/shared/MinWidth.tsx\nvar minWidthCSS = (minWidth) => {\n if (minWidth === \"full\") {\n return { minWidth: \"100%\" };\n }\n if (minWidth === \"screen\") {\n return { minWidth: \"100vw\" };\n }\n if (minWidth != null) {\n return {\n minWidth: `$${minWidth}`\n };\n }\n return {};\n};\n\n// src/utilities/shared/Overflow.tsx\nvar import_lodash5 = __toESM(require_lodash());\nvar overflowCSSInternal = (overflow) => overflow != null ? { overflow } : {};\nvar overflowCSS = (all, x, y) => all != null ? overflowCSSInternal(all) : (0, import_lodash5.merge)(overflowCSSInternal(x), overflowCSSInternal(y));\n\n// src/utilities/shared/Padding.tsx\nvar import_lodash6 = __toESM(require_lodash());\nvar paddingCSS = ({ all, x, y, top, right, bottom, left } = {}) => (0, import_lodash6.merge)(\n {},\n all != null ? { padding: `$${all}` } : {},\n x != null ? { paddingX: `$${x}` } : {},\n y != null ? { paddingY: `$${y}` } : {},\n top != null ? { paddingTop: `$${top}` } : {},\n right != null ? { paddingRight: `$${right}` } : {},\n bottom != null ? { paddingBottom: `$${bottom}` } : {},\n left != null ? { paddingLeft: `$${left}` } : {}\n);\n\n// src/utilities/shared/Radius.tsx\nvar import_lodash7 = __toESM(require_lodash());\nvar radiusCSSInternal = (value) => value === \"full\" ? 99999 : value;\nvar radiusCSS = (radius = {}) => (0, import_lodash7.merge)(\n radius.all != null ? { borderRadius: radiusCSSInternal(radius.all) } : {},\n radius.top != null ? { borderRadiusTop: radiusCSSInternal(radius.top) } : {},\n radius.right != null ? { borderRadiusRight: radiusCSSInternal(radius.right) } : {},\n radius.bottom != null ? { borderRadiusBottom: radiusCSSInternal(radius.bottom) } : {},\n radius.left != null ? { borderRadiusLeft: radiusCSSInternal(radius.left) } : {},\n radius.topLeft != null ? { borderTopLeftRadius: radiusCSSInternal(radius.topLeft) } : {},\n radius.topRight != null ? { borderTopRightRadius: radiusCSSInternal(radius.topRight) } : {},\n radius.bottomRight != null ? { borderBottomRightRadius: radiusCSSInternal(radius.bottomRight) } : {},\n radius.bottomLeft != null ? { borderBottomLeftRadius: radiusCSSInternal(radius.bottomLeft) } : {}\n);\n\n// src/utilities/shared/Shadow.tsx\nvar import_ts_pattern4 = __toESM(require_lib2());\nvar shadowCSS = (shadow) => (0, import_ts_pattern4.match)(shadow).with(\"surface-top\", () => ({\n boxShadow: shadows2.surfaceTopLight,\n [darkThemeSelector]: { boxShadow: shadows2.surfaceTopDark }\n})).with(\"surface-right\", () => ({\n boxShadow: shadows2.surfaceRightLight,\n [darkThemeSelector]: { boxShadow: shadows2.surfaceRightDark }\n})).with(\"surface-bottom\", () => ({\n boxShadow: shadows2.surfaceBottomLight,\n [darkThemeSelector]: { boxShadow: shadows2.surfaceBottomDark }\n})).with(\"surface-left\", () => ({\n boxShadow: shadows2.surfaceLeftLight,\n [darkThemeSelector]: { boxShadow: shadows2.surfaceLeftDark }\n})).with(\"button-destructive-initial\", () => ({\n boxShadow: shadows2.controlDestructiveInitialLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlDestructiveInitialDark }\n})).with(\"button-destructive-hovered\", () => ({\n boxShadow: shadows2.controlDestructiveHoveredLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlDestructiveHoveredDark }\n})).with(\"button-destructive-disabled\", () => ({\n boxShadow: shadows2.controlDestructiveDisabledLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlDestructiveDisabledDark }\n})).with(\"button-primary-initial\", () => ({\n boxShadow: shadows2.controlPrimaryInitialLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlPrimaryInitialDark }\n})).with(\"button-primary-hovered\", () => ({\n boxShadow: shadows2.controlPrimaryHoveredLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlPrimaryHoveredDark }\n})).with(\"button-primary-disabled\", () => ({\n boxShadow: shadows2.controlPrimaryDisabledLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlPrimaryDisabledDark }\n})).with(\"button-secondary-initial\", () => ({\n boxShadow: shadows2.controlSecondaryInitialLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlSecondaryInitialDark }\n})).with(\"button-secondary-hovered\", () => ({\n boxShadow: shadows2.controlSecondaryHoveredLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlSecondaryHoveredDark }\n})).with(\"button-secondary-disabled\", () => ({\n boxShadow: shadows2.controlSecondaryDisabledLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlSecondaryDisabledDark }\n})).with(\"button-tertiary-initial\", () => ({\n boxShadow: shadows2.controlTertiaryInitialLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlTertiaryInitialDark }\n})).with(\"button-tertiary-hovered\", () => ({\n boxShadow: shadows2.controlTertiaryHoveredLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlTertiaryHoveredDark }\n})).with(\"button-tertiary-disabled\", () => ({\n boxShadow: shadows2.controlTertiaryDisabledLight,\n [darkThemeSelector]: { boxShadow: shadows2.controlTertiaryDisabledDark }\n})).with(\"pane-top\", () => ({\n boxShadow: shadows2.paneTopLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneTopDark }\n})).with(\"pane-top-inset\", () => ({\n boxShadow: shadows2.paneTopInsetLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneTopInsetDark }\n})).with(\"pane-right\", () => ({\n boxShadow: shadows2.paneRightLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneRightDark }\n})).with(\"pane-right-inset\", () => ({\n boxShadow: shadows2.paneRightInsetLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneRightInsetDark }\n})).with(\"pane-bottom\", () => ({\n boxShadow: shadows2.paneBottomLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneBottomDark }\n})).with(\"pane-bottom-inset\", () => ({\n boxShadow: shadows2.paneBottomInsetLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneBottomInsetDark }\n})).with(\"pane-left\", () => ({\n boxShadow: shadows2.paneLeftLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneLeftDark }\n})).with(\"pane-left-inset\", () => ({\n boxShadow: shadows2.paneLeftInsetLight,\n [darkThemeSelector]: { boxShadow: shadows2.paneLeftInsetDark }\n})).with(\"overlay\", () => ({\n boxShadow: shadows2.overlayLight,\n [darkThemeSelector]: { boxShadow: shadows2.overlayDark }\n})).with(\"modal\", () => ({\n boxShadow: shadows2.modalLight,\n [darkThemeSelector]: { boxShadow: shadows2.modalDark }\n})).with(void 0, () => ({})).exhaustive();\n\n// src/utilities/shared/TranslateX.tsx\nvar translateXCSS = (translateX) => translateX != null ? {\n translateX: `$space$${translateX}`\n} : {};\n\n// src/utilities/shared/TranslateY.tsx\nvar translateYCSS = (translateY) => translateY != null ? {\n translateY: `$space$${translateY}`\n} : {};\n\n// src/utilities/Box/Box.tsx\nimport { jsx as jsx36 } from \"react/jsx-runtime\";\nvar BaseBox = styled(\"div\");\nvar Box = React147.forwardRef(\n ({\n align,\n as,\n bg,\n className,\n cursor: cursor2,\n display,\n focus,\n gradient,\n height,\n maxHeight,\n minHeight: minHeight2,\n justify,\n opacity,\n overflow,\n padding: padding2,\n pointerEvents,\n position,\n radius,\n shadow,\n translateX,\n translateY,\n width,\n maxWidth,\n minWidth,\n ...remaining\n }, ref) => {\n const classes = (0, import_classnames.default)(\n {\n \"m-focus-group\": focus === \"group\",\n \"m-focus\": focus === \"self\",\n \"m-focus-within\": focus === \"within\",\n \"m-transition-all m-duration-150 m-ease-linear\": focus\n },\n className\n );\n const baseCSS = {\n cursor: cursor2,\n display,\n pointerEvents,\n position\n };\n const css3 = (0, import_lodash8.merge)(\n baseCSS,\n alignCSS(align),\n justifyCSS(justify),\n opacityCSS(opacity),\n overflowCSS(overflow == null ? void 0 : overflow.all, overflow == null ? void 0 : overflow.x, overflow == null ? void 0 : overflow.y),\n fillCSS(bg == null ? void 0 : bg.dark, bg == null ? void 0 : bg.light),\n gradientCSS(gradient),\n heightCSS(height),\n maxHeightCSS(maxHeight),\n maxWidthCSS(maxWidth),\n minHeightCSS(minHeight2),\n minWidthCSS(minWidth),\n radiusCSS(radius),\n translateXCSS(translateX),\n translateYCSS(translateY),\n widthCSS(width),\n paddingCSS(padding2),\n shadowCSS(shadow)\n );\n return /* @__PURE__ */ jsx36(BaseBox, {\n ...remaining,\n as,\n ref,\n className: classes,\n css: css3\n });\n }\n);\nvar Box_default = Box;\n\n// src/utilities/Stack/Stack.tsx\nvar import_lodash9 = __toESM(require_lodash());\nimport { jsx as jsx37 } from \"react/jsx-runtime\";\nvar BaseStack = styled(\"div\", {});\nvar spacingCSS = (spacing) => spacing != null ? {\n gap: `$${spacing}`\n} : {};\nvar Stack = ({\n as,\n align,\n children,\n direction,\n display = \"flex\",\n height,\n justify,\n spacing,\n width,\n wrap,\n ...remaining\n}) => {\n const baseCSS = {\n display,\n flexDirection: direction,\n flexWrap: wrap\n };\n const css3 = (0, import_lodash9.merge)(\n baseCSS,\n alignCSS(align),\n justifyCSS(justify),\n widthCSS(width),\n heightCSS(height),\n spacingCSS(spacing)\n );\n return /* @__PURE__ */ jsx37(BaseStack, {\n ...remaining,\n as,\n css: css3,\n children\n });\n};\nvar Stack_default = Stack;\n\n// src/utilities/Stack/HStack.tsx\nimport { jsx as jsx38 } from \"react/jsx-runtime\";\nvar HStack = ({\n children,\n reverse,\n ...remaining\n}) => /* @__PURE__ */ jsx38(Stack_default, {\n ...remaining,\n direction: reverse ? \"row-reverse\" : \"row\",\n children\n});\nvar HStack_default = HStack;\n\n// src/components/Label/Label.tsx\nimport { jsx as jsx39 } from \"react/jsx-runtime\";\nvar color = (disabled, interactedWith, invalid) => {\n if (disabled) {\n return { light: \"gray-500\", dark: \"gray-300\" };\n }\n if (invalid && interactedWith) {\n return { light: \"red-700\", dark: \"red-200\" };\n }\n if (invalid) {\n return { light: \"red-600\", dark: \"red-300\" };\n }\n if (interactedWith) {\n return { light: \"gray-700\", dark: \"white\" };\n }\n return { light: \"gray-600\", dark: \"gray-50\" };\n};\nvar cursor = (disabled, htmlFor) => {\n if (htmlFor && disabled) {\n return \"not-allowed\";\n }\n if (htmlFor) {\n return \"pointer\";\n }\n return \"default\";\n};\nvar Label2 = ({\n children,\n disabled,\n htmlFor,\n invalid,\n ...rest\n}) => {\n const { fieldProps, labelProps } = useLabel(rest);\n const { hoverProps, isHovered } = useHover({});\n const interactedWith = !!htmlFor && isHovered;\n return /* @__PURE__ */ jsx39(Box_default, {\n ...hoverProps,\n as: \"label\",\n htmlFor,\n display: \"block\",\n width: \"full\",\n cursor: cursor(disabled, htmlFor),\n ...fieldProps,\n ...labelProps,\n children: /* @__PURE__ */ jsx39(Body_default, {\n color: color(disabled, interactedWith, invalid),\n weight: \"medium\",\n children: /* @__PURE__ */ jsx39(HStack_default, {\n width: \"full\",\n align: \"center\",\n spacing: space(8),\n children\n })\n })\n });\n};\nvar Label_default = Label2;\n\n// src/components/CheckboxInputWithLabel/CheckboxInputWithLabel.tsx\nimport { jsx as jsx40, jsxs as jsxs20 } from \"react/jsx-runtime\";\nvar CheckboxInputWithLabel = ({\n checked = false,\n children,\n disabled = false,\n indeterminate = false,\n invalid,\n name,\n onChange,\n ...rest\n}) => {\n const { labelProps, fieldProps } = useLabel2(rest);\n return /* @__PURE__ */ jsxs20(Label_default, {\n htmlFor: name,\n disabled,\n invalid,\n ...fieldProps,\n ...labelProps,\n children: [\n /* @__PURE__ */ jsx40(CheckboxInput_default, {\n name,\n disabled,\n checked,\n onChange,\n indeterminate,\n ...fieldProps\n }),\n children\n ]\n });\n};\nvar CheckboxInputWithLabel_default = CheckboxInputWithLabel;\n\n// src/components/ComboBox/ComboBox.tsx\nimport * as React151 from \"react\";\nimport {\n mergeProps as mergeProps3,\n OverlayContainer,\n useComboBox,\n useFilter,\n useOverlayPosition\n} from \"react-aria\";\n\n// ../../node_modules/.pnpm/react-merge-refs@2.0.1/node_modules/react-merge-refs/dist/index.mjs\nfunction o(f) {\n return (r) => {\n f.forEach((n) => {\n typeof n == \"function\" ? n(r) : n != null && (n.current = r);\n });\n };\n}\n\n// src/components/ComboBox/ComboBox.tsx\nimport { useComboBoxState } from \"react-stately\";\n\n// ../../node_modules/.pnpm/react-use-measure@2.1.1_sfoxds7t5ydpegc3knd667wn6m/node_modules/react-use-measure/dist/web.js\nvar import_debounce = __toESM(require_debounce());\nimport { useState, useRef as useRef3, useEffect as useEffect2, useMemo } from \"react\";\nfunction useMeasure(_temp) {\n let {\n debounce,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === \"undefined\" ? class ResizeObserver {\n } : window.ResizeObserver);\n if (!ResizeObserver) {\n throw new Error(\"This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills\");\n }\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n });\n const state = useRef3({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n });\n const scrollDebounce = debounce ? typeof debounce === \"number\" ? debounce : debounce.scroll : null;\n const resizeDebounce = debounce ? typeof debounce === \"number\" ? debounce : debounce.resize : null;\n const mounted = useRef3(false);\n useEffect2(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n });\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element)\n return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n };\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size))\n set(state.current.lastBounds = size);\n };\n return [callback, resizeDebounce ? (0, import_debounce.default)(callback, resizeDebounce) : callback, scrollDebounce ? (0, import_debounce.default)(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]);\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach((element) => element.removeEventListener(\"scroll\", scrollChange, true));\n state.current.scrollContainers = null;\n }\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n }\n function addListeners() {\n if (!state.current.element)\n return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach((scrollContainer) => scrollContainer.addEventListener(\"scroll\", scrollChange, {\n capture: true,\n passive: true\n }));\n }\n }\n const ref = (node) => {\n if (!node || node === state.current.element)\n return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n };\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange);\n useEffect2(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]);\n useEffect2(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n}\nfunction useOnWindowResize(onWindowResize) {\n useEffect2(() => {\n const cb = onWindowResize;\n window.addEventListener(\"resize\", cb);\n return () => void window.removeEventListener(\"resize\", cb);\n }, [onWindowResize]);\n}\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect2(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener(\"scroll\", cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener(\"scroll\", cb, true);\n }\n }, [onScroll, enabled]);\n}\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body)\n return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some((prop) => prop === \"auto\" || prop === \"scroll\"))\n result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n}\nvar keys = [\"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\"];\nvar areBoundsEqual = (a, b) => keys.every((key) => a[key] === b[key]);\n\n// src/common/props.ts\nvar toSingleSelectionProps = ({\n value,\n defaultValue,\n onValueChange,\n ...rest\n}) => ({\n ...rest,\n selectedKey: value,\n defaultSelectedKey: defaultValue,\n onSelectionChange: onValueChange\n});\n\n// src/components/BaseInput/BaseInput.tsx\nimport React148, { useState as useState2 } from \"react\";\nimport { mergeProps, useFocus } from \"react-aria\";\nimport { jsx as jsx41, jsxs as jsxs21 } from \"react/jsx-runtime\";\nvar iconColor2 = \"$$iconColor\";\nvar iconSize = \"$$iconSize\";\nvar inputColor = \"$$inputColor\";\nvar inputPadding = \"$$inputPadding\";\nvar placeholderColor = \"$$placeholderColor\";\nvar sidecarColor = \"$$sidecarColor\";\nvar sidecarGap = \"$$sidecarGap\";\nvar Container5 = styled(\"label\", {\n display: \"flex\",\n background: colors.white,\n boxShadow: shadows2.fieldInitialLight,\n position: \"relative\",\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n [inputColor]: colors[\"gray-600\"],\n [iconColor2]: colors[\"gray-600\"],\n [placeholderColor]: colors[\"gray-500\"],\n [sidecarColor]: colors[\"gray-500\"],\n transition: sharedTransition,\n \"&[data-is-focused]\": {\n boxShadow: shadows2.fieldFocusedLight\n },\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fieldInitialDark,\n [inputColor]: colors[\"gray-50\"],\n [iconColor2]: colors[\"gray-100\"],\n [placeholderColor]: colors[\"gray-300\"],\n [sidecarColor]: colors[\"gray-100\"],\n \"&[data-is-focused]\": {\n boxShadow: shadows2.fieldFocusedDark\n }\n },\n variants: {\n size: {\n small: {\n [inputPadding]: \"$space$2 $space$4\",\n [sidecarGap]: \"$space$4\",\n [iconSize]: \"$space$12\",\n fontSize: \"$12\",\n lineHeight: \"$16\",\n borderRadius: \"$4\"\n },\n medium: {\n [inputPadding]: \"$space$4 $space$8\",\n [sidecarGap]: \"$space$8\",\n [iconSize]: \"$space$14\",\n fontSize: \"$14\",\n lineHeight: \"$20\",\n borderRadius: \"$8\"\n },\n large: {\n [inputPadding]: \"$space$8 $space$12\",\n [sidecarGap]: \"$space$8\",\n [iconSize]: \"$space$16\",\n fontSize: \"$14\",\n lineHeight: \"$20\",\n borderRadius: \"$8\"\n },\n \"x-large\": {\n [inputPadding]: \"$space$10 $space$14\",\n [sidecarGap]: \"$space$8\",\n [iconSize]: \"$space$16\",\n fontSize: \"$16\",\n lineHeight: \"$24\",\n borderRadius: \"$8\"\n }\n },\n hasError: {\n true: {\n boxShadow: shadows2.fieldErrorLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fieldErrorDark\n }\n },\n false: {\n \"&:not([data-is-focused]):hover\": {\n boxShadow: shadows2.fieldHoveredLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fieldHoveredDark\n }\n }\n }\n },\n isDisabled: {\n true: {\n background: colors[\"gray-50\"],\n boxShadow: shadows2.fieldDisabledLight,\n opacity: 0.5,\n pointerEvents: \"none\",\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fieldDisabledDark\n }\n },\n false: {}\n }\n }\n});\nvar Input = styled(\"input\", {\n outline: \"none\",\n border: \"none\",\n width: \"100%\",\n background: \"none\",\n padding: inputPadding,\n color: inputColor,\n \"&::placeholder\": {\n color: placeholderColor\n }\n});\nvar Sidecar = styled(\"div\", {\n hStack: sidecarGap,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n padding: inputPadding,\n color: sidecarColor\n});\nvar Prefix = styled(Sidecar, {\n left: 0\n});\nvar Suffix = styled(Sidecar, {\n right: 0\n});\nvar StyledIcon5 = styled(Icon_default, {\n width: iconSize,\n height: iconSize,\n color: iconColor2\n});\nvar BaseInput = React148.forwardRef(\n ({\n disabled = false,\n hasError = false,\n icon: icon2,\n prefix,\n suffix,\n controlSize,\n inputProps = {},\n inputRef\n }, ref) => {\n const size = useControlSize(controlSize, \"medium\");\n const [isFocused, setIsFocused] = useState2(false);\n const { focusProps } = useFocus({ onFocusChange: (value) => setIsFocused(value) });\n const [prefixContainerRef, { width: iconContainerWidth = 0 }] = useMeasure();\n const [suffixContainerRef, { width: sidecarContainerWidth = 0 }] = useMeasure();\n return /* @__PURE__ */ jsxs21(Container5, {\n ref,\n role: \"presentation\",\n size,\n hasError,\n isDisabled: disabled,\n \"data-is-focused\": isFocused ? \"\" : void 0,\n children: [\n (icon2 || prefix) && /* @__PURE__ */ jsx41(ControlSizeProvider, {\n value: \"small\",\n children: /* @__PURE__ */ jsxs21(Prefix, {\n ref: prefixContainerRef,\n children: [\n icon2 && /* @__PURE__ */ jsx41(StyledIcon5, {\n icon: icon2\n }),\n prefix\n ]\n })\n }),\n /* @__PURE__ */ jsx41(Input, {\n ...mergeProps(inputProps, focusProps),\n ref: inputRef,\n style: {\n paddingLeft: iconContainerWidth > 0 ? iconContainerWidth : void 0,\n paddingRight: sidecarContainerWidth > 0 ? sidecarContainerWidth : void 0\n }\n }),\n suffix && /* @__PURE__ */ jsx41(ControlSizeProvider, {\n value: \"small\",\n children: /* @__PURE__ */ jsx41(Suffix, {\n ref: suffixContainerRef,\n children: suffix\n })\n })\n ]\n });\n }\n);\n\n// src/components/ComboBox/ListBox.tsx\nimport * as React149 from \"react\";\nimport { useListBox, useListBoxSection, useOption } from \"react-aria\";\n\n// src/common/menus.ts\nvar contentStyles = {\n vStack: \"$2\",\n overflow: \"hidden\",\n alignItems: \"stretch\",\n backgroundColor: colors.white,\n borderRadius: \"$8\",\n boxShadow: shadows2.overlayLight,\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-700\"],\n boxShadow: shadows2.overlayDark\n }\n};\nvar itemStyles = {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.medium,\n fontSize: \"$14\",\n lineHeight: \"$20\",\n color: colors[\"gray-700\"],\n borderRadius: \"$6\",\n display: \"flex\",\n alignItems: \"center\",\n minHeight: \"$28\",\n padding: \"0 $6\",\n position: \"relative\",\n outline: \"none\",\n userSelect: \"none\",\n paddingLeft: \"$24\",\n \"&[data-disabled]\": {\n color: colors[\"gray-500\"],\n pointerEvents: \"none\"\n },\n \"&:focus, &[data-focused]\": {\n backgroundColor: colors[\"brand-600\"],\n color: colors.white\n },\n [darkThemeSelector]: {\n color: colors[\"gray-100\"],\n \"&[data-disabled]\": {\n color: colors[\"gray-200\"]\n },\n \"&:focus, &[data-focused]\": {\n color: colors.white\n }\n }\n};\nvar labelStyles = {\n paddingLeft: \"$24\",\n fontWeight: fontWeights.regular,\n lineHeight: \"$20\",\n color: colors[\"gray-500\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n }\n};\nvar separatorStyles = {\n height: 1,\n backgroundColor: colors[\"gray-100\"],\n margin: \"$4 -4px\",\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-800\"]\n }\n};\nvar itemIndicatorStyles = {\n position: \"absolute\",\n left: 0,\n width: 24,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n};\nvar scrollButtonStyles = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"$24\",\n backgroundColor: colors.white,\n color: colors[\"gray-500\"],\n cursor: \"default\",\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-800\"],\n color: colors[\"gray-200\"]\n }\n};\n\n// src/text/Small.tsx\nimport { jsx as jsx42 } from \"react/jsx-runtime\";\nvar Small = ({\n children,\n color: color2 = {\n light: \"gray-600\",\n dark: \"gray-200\"\n },\n family = \"regular\",\n weight = \"regular\",\n ...remaining\n}) => /* @__PURE__ */ jsx42(Text_default, {\n ...remaining,\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 16,\n size: 12,\n weight,\n children\n});\nvar Small2 = styled(\"span\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n fontSize: \"$12\",\n lineHeight: \"$16\"\n});\nvar Small_default = Small;\n\n// src/components/ComboBox/ListBox.tsx\nimport { jsx as jsx43, jsxs as jsxs22 } from \"react/jsx-runtime\";\nvar StyledContent2 = styled(\"ul\", { height: \"100%\", overflow: \"auto\" });\nvar StyledItem = styled(\"li\", itemStyles);\nvar StyledItemIndicator = styled(\"div\", itemIndicatorStyles);\nvar StyledLabel2 = styled(\"div\", Small2, labelStyles);\nvar StyledSeparator = styled(\"div\", separatorStyles);\nvar StyledSection = styled(\"li\", {\n vStack: \"$2\",\n alignItems: \"stretch\",\n \"&:first-child\": {\n [`& ${StyledSeparator}`]: {\n display: \"none\"\n }\n }\n});\nvar Option = ({ item, state }) => {\n const ref = React149.useRef(null);\n const { optionProps, isDisabled, isSelected, isFocused } = useOption(\n {\n key: item.key\n },\n state,\n ref\n );\n return /* @__PURE__ */ jsxs22(StyledItem, {\n ...optionProps,\n ref,\n \"data-focused\": isFocused ? \"\" : void 0,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n children: [\n isSelected && /* @__PURE__ */ jsx43(StyledItemIndicator, {\n children: /* @__PURE__ */ jsx43(Icon_default, {\n icon: \"checkmark\",\n size: space(12)\n })\n }),\n item.rendered\n ]\n });\n};\nvar ListBoxSection = ({ section, state }) => {\n const { itemProps, headingProps, groupProps } = useListBoxSection({\n heading: section.rendered,\n \"aria-label\": section[\"aria-label\"]\n });\n return /* @__PURE__ */ jsxs22(StyledSection, {\n ...itemProps,\n children: [\n /* @__PURE__ */ jsx43(StyledSeparator, {}),\n section.rendered && /* @__PURE__ */ jsx43(StyledLabel2, {\n ...headingProps,\n children: section.rendered\n }),\n /* @__PURE__ */ jsx43(\"ul\", {\n ...groupProps,\n children: [...section.childNodes].map((node) => /* @__PURE__ */ jsx43(Option, {\n item: node,\n state\n }, node.key))\n })\n ]\n });\n};\nvar ListBox = (props) => {\n const ref = React149.useRef(null);\n const { listBoxRef = ref, state } = props;\n const { listBoxProps } = useListBox(\n {\n ...props\n },\n state,\n listBoxRef\n );\n return /* @__PURE__ */ jsx43(StyledContent2, {\n ...listBoxProps,\n ref: listBoxRef,\n children: [...state.collection].map(\n (item) => item.type === \"section\" ? /* @__PURE__ */ jsx43(ListBoxSection, {\n section: item,\n state\n }, item.key) : /* @__PURE__ */ jsx43(Option, {\n item,\n state\n }, item.key)\n )\n });\n};\n\n// src/components/ComboBox/Popover.tsx\nimport * as React150 from \"react\";\nimport { DismissButton, FocusScope, mergeProps as mergeProps2, useOverlay } from \"react-aria\";\nimport { jsx as jsx44, jsxs as jsxs23 } from \"react/jsx-runtime\";\nvar Container6 = styled(\"div\", contentStyles, {\n padding: \"$4\",\n overflow: \"auto\"\n});\nvar Popover = (props) => {\n const ref = React150.useRef(null);\n const { popoverRef = ref, isOpen, onClose, children, ...domProps } = props;\n const { overlayProps } = useOverlay(\n {\n isOpen,\n onClose,\n shouldCloseOnBlur: true,\n isDismissable: false\n },\n popoverRef\n );\n return /* @__PURE__ */ jsx44(FocusScope, {\n restoreFocus: true,\n children: /* @__PURE__ */ jsxs23(Container6, {\n ...mergeProps2(overlayProps, domProps),\n ref: popoverRef,\n children: [\n children,\n /* @__PURE__ */ jsx44(DismissButton, {\n onDismiss: onClose\n })\n ]\n })\n });\n};\n\n// src/components/ComboBox/ComboBox.tsx\nimport { Item as Item2, Section } from \"react-stately\";\nimport { jsx as jsx45, jsxs as jsxs24 } from \"react/jsx-runtime\";\nvar iconColor3 = \"$$iconColor\";\nvar iconSize2 = \"$$iconSize\";\nvar StyledIcon6 = styled(Icon_default, {\n width: iconSize2,\n height: iconSize2,\n color: iconColor3\n});\nvar ComboBoxInner = (props, ref) => {\n const renamedProps = toSingleSelectionProps(props);\n const { contains } = useFilter({ sensitivity: \"base\" });\n const state = useComboBoxState({ ...renamedProps, defaultFilter: contains });\n const [measureRef, { width: inputWidth }] = useMeasure();\n const inputRef = React151.useRef(null);\n const listBoxRef = React151.useRef(null);\n const popoverRef = React151.useRef(null);\n const { overlayProps: positionProps } = useOverlayPosition({\n targetRef: inputRef,\n overlayRef: popoverRef,\n placement: renamedProps.placement ?? \"bottom start\",\n offset: 4,\n isOpen: state.isOpen\n });\n const {\n inputProps: { defaultValue, ...inputProps },\n listBoxProps\n } = useComboBox(\n {\n ...renamedProps,\n inputRef,\n listBoxRef,\n popoverRef\n },\n state\n );\n return /* @__PURE__ */ jsxs24(\"div\", {\n ref,\n children: [\n /* @__PURE__ */ jsx45(BaseInput, {\n inputRef: o([inputRef, measureRef]),\n inputProps: mergeProps3(inputProps, {\n onClick: () => state.open()\n }),\n icon: renamedProps.icon,\n disabled: renamedProps.isDisabled,\n hasError: renamedProps.hasError,\n suffix: /* @__PURE__ */ jsx45(StyledIcon6, {\n icon: \"chevronsVertical\"\n })\n }),\n state.isOpen && /* @__PURE__ */ jsx45(OverlayContainer, {\n children: /* @__PURE__ */ jsx45(Popover, {\n ...positionProps,\n popoverRef,\n isOpen: state.isOpen,\n onClose: state.close,\n style: { ...positionProps.style, minWidth: inputWidth, maxWidth: \"400px\" },\n children: /* @__PURE__ */ jsx45(ListBox, {\n ...listBoxProps,\n shouldUseVirtualFocus: true,\n listBoxRef,\n state\n })\n })\n })\n ]\n });\n};\nvar ComboBox = React151.forwardRef(ComboBoxInner);\n\n// src/components/Drawer/CloseButton.tsx\nimport React152 from \"react\";\nimport { jsx as jsx46 } from \"react/jsx-runtime\";\nvar CloseButtonContainer = styled(\"button\", FocusRingSelf, {\n borderRadius: 100,\n height: \"$20\",\n width: \"$20\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxShadow: shadows2.fenceAllLight,\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"],\n boxShadow: shadows2.fenceAllDark\n }\n});\nvar CloseButton = React152.forwardRef(\n (props, ref) => /* @__PURE__ */ jsx46(CloseButtonContainer, {\n ...props,\n ref,\n children: /* @__PURE__ */ jsx46(Icon, {\n icon: \"cross\",\n size: space(8)\n })\n })\n);\n\n// src/components/Drawer/Drawer.tsx\nimport { jsx as jsx47 } from \"react/jsx-runtime\";\nvar Drawer = styled(\"div\", {\n vStack: 0,\n alignItems: \"stretch\",\n height: \"100%\",\n width: \"100%\",\n boxShadow: shadows2.fenceLeftLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceLeftDark\n },\n \"@sm\": {\n maxWidth: 360\n }\n});\nvar DrawerTitle = styled(\"h2\", Body2, {\n fontWeight: fontWeights.medium,\n display: \"block\",\n color: colors[\"gray-800\"],\n [darkThemeSelector]: {\n color: colors.white\n }\n});\nvar DrawerHeader = styled(\"div\", {\n overflow: \"auto\",\n whiteSpace: \"nowrap\",\n hStack: \"$8\",\n height: \"$56\",\n paddingX: \"$20\",\n boxShadow: shadows2.fenceBottomLight,\n flexShrink: 0,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceBottomDark\n }\n});\nvar DrawerContent = styled(\"div\", {\n vStack: \"$16\",\n alignItems: \"stretch\",\n padding: \"$20\",\n overflow: \"auto\"\n});\nvar DrawerFooter = styled(\"div\", {\n overflow: \"auto\",\n whiteSpace: \"nowrap\",\n hStack: \"$8\",\n height: \"$56\",\n paddingX: \"$20\",\n position: \"sticky\",\n flexShrink: 0,\n display: \"flex\",\n bottom: 0,\n boxShadow: \"none\",\n \"&:before\": {\n position: \"absolute\",\n top: 0,\n left: 18,\n right: 18,\n height: \"$1\",\n content: \"\",\n display: \"block\",\n background: colors[\"gray-100\"],\n borderRadius: \"$2\"\n }\n});\nvar DrawerControls = styled(\"div\", {\n hStack: \"$8\",\n marginLeft: \"auto\"\n});\nvar CloseDrawerButton = (props) => /* @__PURE__ */ jsx47(CloseButton, {\n type: \"button\",\n ...props,\n \"aria-label\": props[\"aria-label\"] ?? \"Close drawer\"\n});\n\n// src/components/DropdownMenu/DropdownMenu.tsx\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { createContext as createContext2, forwardRef as forwardRef2, useContext as useContext2, useEffect as useEffect3, useMemo as useMemo2, useState as useState3 } from \"react\";\n\n// src/common/animations.ts\nvar slideUpAndFade = keyframes({\n \"0%\": { opacity: 0, transform: \"translateY(2px)\" },\n \"100%\": { opacity: 1, transform: \"translateY(0)\" }\n});\nvar slideRightAndFade = keyframes({\n \"0%\": { opacity: 0, transform: \"translateX(-2px)\" },\n \"100%\": { opacity: 1, transform: \"translateX(0)\" }\n});\nvar slideDownAndFade = keyframes({\n \"0%\": { opacity: 0, transform: \"translateY(-2px)\" },\n \"100%\": { opacity: 1, transform: \"translateY(0)\" }\n});\nvar slideLeftAndFade = keyframes({\n \"0%\": { opacity: 0, transform: \"translateX(2px)\" },\n \"100%\": { opacity: 1, transform: \"translateX(0)\" }\n});\n\n// src/components/DropdownMenu/DropdownMenu.tsx\nimport { jsx as jsx48, jsxs as jsxs25 } from \"react/jsx-runtime\";\nvar StyledContent3 = styled(DropdownMenuPrimitive.Content, {\n ...contentStyles,\n padding: \"$4\",\n minWidth: 180,\n \"@media (prefers-reduced-motion: no-preference)\": {\n animationDuration: \"150ms\",\n animationTimingFunction: \"ease-out\",\n animationFillMode: \"forwards\",\n willChange: \"transform, opacity\",\n '&[data-state=\"open\"]': {\n '&[data-side=\"top\"]': { animationName: slideUpAndFade },\n '&[data-side=\"right\"]': { animationName: slideRightAndFade },\n '&[data-side=\"bottom\"]': { animationName: slideDownAndFade },\n '&[data-side=\"left\"]': { animationName: slideLeftAndFade }\n }\n }\n});\nvar hasIconStyles = {\n paddingLeft: \"$6\",\n '[data-hasicons=\"true\"] &': {\n paddingLeft: \"$24\"\n }\n};\nvar StyledItem2 = styled(DropdownMenuPrimitive.Item, {\n ...itemStyles,\n ...hasIconStyles\n});\nvar StyledCheckboxItem = styled(DropdownMenuPrimitive.CheckboxItem, {\n ...itemStyles,\n ...hasIconStyles\n});\nvar StyledRadioItem = styled(DropdownMenuPrimitive.RadioItem, {\n ...itemStyles,\n ...hasIconStyles\n});\nvar StyledTriggerItem = styled(DropdownMenuPrimitive.TriggerItem, {\n '&[data-state=\"open\"]:not(:focus)': {\n backgroundColor: colors[\"brand-400\"],\n color: colors.white,\n [darkThemeSelector]: {\n backgroundColor: colors[\"brand-700\"],\n color: colors[\"brand-200\"]\n }\n },\n ...hasIconStyles,\n ...itemStyles\n});\nvar StyledLabel3 = styled(DropdownMenuPrimitive.Label, Small2, labelStyles);\nvar StyledSeparator2 = styled(DropdownMenuPrimitive.Separator, separatorStyles);\nvar StyledItemIndicator2 = styled(DropdownMenuPrimitive.ItemIndicator, itemIndicatorStyles);\nvar StyledItemIcon = styled(\"div\", itemIndicatorStyles);\nvar RightSlot = styled(\"div\", {\n display: \"flex\",\n marginLeft: \"auto\",\n paddingLeft: \"$16\",\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n },\n ':focus > &, [data-state=\"open\"] > &': {\n color: \"inherit\"\n },\n \"[data-disabled] &\": {\n color: colors[\"gray-500\"]\n }\n});\nvar DropdownMenu = DropdownMenuPrimitive.Root;\nvar DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nvar DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\nvar DropdownMenuItemIndicator = StyledItemIndicator2;\nvar DropdownMenuLabel = StyledLabel3;\nvar DropdownMenuSeparator = StyledSeparator2;\nvar DropdownMenuIconContext = createContext2(null);\nvar useDropdownMenuIconContext = () => useContext2(DropdownMenuIconContext);\nvar DropdownMenuContent = forwardRef2(\n ({ children, ...props }, forwardedRef) => {\n const [iconCount, setIconCount] = useState3(0);\n const ctx = useMemo2(\n () => ({\n incrementIcons: () => setIconCount((p2) => p2 + 1),\n decrementIcons: () => setIconCount((p2) => p2 - 1)\n }),\n [setIconCount]\n );\n return /* @__PURE__ */ jsx48(DropdownMenuIconContext.Provider, {\n value: ctx,\n children: /* @__PURE__ */ jsx48(StyledContent3, {\n \"data-hasicons\": iconCount > 0,\n sideOffset: 4,\n ...props,\n ref: forwardedRef,\n children\n })\n });\n }\n);\nvar DropdownMenuSubMenuContent = forwardRef2(\n ({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx48(DropdownMenuContent, {\n sideOffset: 2,\n alignOffset: -4,\n ...props,\n ref: forwardedRef,\n children\n })\n);\nvar DropdownMenuTriggerButton = forwardRef2(\n ({ menuArrow = \"dropdown\", ...props }, forwardedRef) => /* @__PURE__ */ jsx48(DropdownMenuTrigger, {\n asChild: true,\n children: /* @__PURE__ */ jsx48(Button_default, {\n ...props,\n ref: forwardedRef,\n menuArrow\n })\n })\n);\nvar DropdownMenuItem = forwardRef2(\n ({ children, rightContent, icon: icon2, ...props }, forwardedRef) => {\n const ctx = useDropdownMenuIconContext();\n useEffect3(() => {\n if (icon2) {\n ctx.incrementIcons();\n return () => ctx.decrementIcons();\n }\n return () => {\n };\n }, [ctx, icon2]);\n return /* @__PURE__ */ jsxs25(StyledItem2, {\n ...props,\n ref: forwardedRef,\n children: [\n icon2 && /* @__PURE__ */ jsx48(StyledItemIcon, {\n children: /* @__PURE__ */ jsx48(Icon_default, {\n icon: icon2,\n size: space(12)\n })\n }),\n children,\n rightContent && /* @__PURE__ */ jsx48(RightSlot, {\n children: rightContent\n })\n ]\n });\n }\n);\nvar DropdownMenuSubMenuIndicator = () => /* @__PURE__ */ jsx48(RightSlot, {\n children: /* @__PURE__ */ jsx48(Icon_default, {\n icon: \"chevronRight\",\n size: space(10)\n })\n});\nvar DropdownMenuTriggerItem = forwardRef2(\n ({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsxs25(StyledTriggerItem, {\n ...props,\n ref: forwardedRef,\n children: [\n children,\n /* @__PURE__ */ jsx48(DropdownMenuSubMenuIndicator, {})\n ]\n })\n);\nvar DropdownMenuCheckboxItem = forwardRef2(\n ({ children, rightContent, ...props }, forwardedRef) => {\n const ctx = useDropdownMenuIconContext();\n useEffect3(() => {\n ctx.incrementIcons();\n return () => ctx.decrementIcons();\n }, [ctx]);\n return /* @__PURE__ */ jsxs25(StyledCheckboxItem, {\n ...props,\n ref: forwardedRef,\n children: [\n children,\n /* @__PURE__ */ jsx48(DropdownMenuItemIndicator, {\n children: /* @__PURE__ */ jsx48(Icon_default, {\n icon: \"checkmark\",\n size: space(12)\n })\n }),\n rightContent && /* @__PURE__ */ jsx48(RightSlot, {\n children: rightContent\n })\n ]\n });\n }\n);\nvar DropdownMenuRadioItem = forwardRef2(\n ({ children, rightContent, ...props }, forwardedRef) => {\n const ctx = useDropdownMenuIconContext();\n useEffect3(() => {\n ctx.incrementIcons();\n return () => ctx.decrementIcons();\n }, [ctx]);\n return /* @__PURE__ */ jsxs25(StyledRadioItem, {\n ...props,\n ref: forwardedRef,\n children: [\n children,\n /* @__PURE__ */ jsx48(DropdownMenuItemIndicator, {\n children: /* @__PURE__ */ jsx48(Icon_default, {\n icon: \"checkmarkCircle\",\n size: space(12)\n })\n }),\n rightContent && /* @__PURE__ */ jsx48(RightSlot, {\n children: rightContent\n })\n ]\n });\n }\n);\n\n// src/components/EmptyState/EmptyState.tsx\nimport { jsx as jsx49, jsxs as jsxs26 } from \"react/jsx-runtime\";\nvar Container7 = styled(\"div\", {\n vStack: \"$12\",\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n \"&:before\": {\n display: \"block\",\n content: \"\",\n height: \"30%\"\n }\n});\nvar Heading2 = styled(Body2, {\n fontWeight: fontWeights.medium,\n color: colors[\"gray-700\"]\n});\nvar StyledIcon7 = styled(Icon, {\n width: \"$32\",\n height: \"$32\",\n color: colors[\"gray-400\"]\n});\nvar EmptyState = ({ heading, icon: icon2, action }) => /* @__PURE__ */ jsxs26(Container7, {\n children: [\n icon2 && /* @__PURE__ */ jsx49(StyledIcon7, {\n icon: icon2\n }),\n /* @__PURE__ */ jsx49(Heading2, {\n children: heading\n }),\n action && /* @__PURE__ */ jsx49(ControlSizeProvider, {\n value: \"small\",\n children: action\n })\n ]\n});\nvar EmptyState_default = EmptyState;\n\n// src/components/Link/Link.tsx\nimport React154 from \"react\";\nimport { jsx as jsx50 } from \"react/jsx-runtime\";\nvar BaseAnchor = styled(\"a\", Text2, {\n color: colors[\"blue-700\"],\n textDecoration: \"none\",\n \"&:hover\": {\n color: colors[\"blue-800\"],\n textDecoration: \"underline\"\n },\n [darkThemeSelector]: {\n color: colors[\"blue-300\"],\n \"&:hover\": {\n color: colors[\"blue-200\"]\n }\n },\n variants: {\n muted: {\n true: {\n color: colors[\"gray-500\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n }\n },\n false: {}\n },\n invalid: {\n true: {\n color: colors[\"red-600\"],\n [darkThemeSelector]: {\n color: colors[\"red-300\"]\n }\n },\n false: {}\n }\n }\n});\nvar Link = React154.forwardRef(\n ({\n invalid = false,\n muted = false,\n children,\n ...props\n }, ref) => /* @__PURE__ */ jsx50(BaseAnchor, {\n muted,\n invalid,\n ...props,\n ref,\n children\n })\n);\nvar Link_default = Link;\n\n// src/components/List/CollapsibleList.tsx\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport React155 from \"react\";\n\n// src/components/List/ListContent.tsx\nvar ListContent = styled(\"div\", {\n [`&:not(:first-child) ${ListItem_default}:first-child`]: {\n borderRadiusTop: 0\n },\n [`&:not(:last-child) ${ListItem_default}:last-child`]: {\n borderRadiusBottom: 0\n }\n});\n\n// src/components/List/ListItemHeader.tsx\nvar ListItemHeader = styled(\"div\", ListItem_default);\n\n// src/components/List/CollapsibleList.tsx\nimport { jsx as jsx51, jsxs as jsxs27 } from \"react/jsx-runtime\";\nvar BaseCollapsibleListArrow = styled(Icon_default, {\n width: 8,\n height: 8,\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n }\n});\nvar CollapsibleListArrow = () => /* @__PURE__ */ jsx51(BaseCollapsibleListArrow, {\n icon: \"chevronDown\"\n});\nvar BaseCollapsibleListItemHeader = styled(CollapsiblePrimitive.Trigger, ListItemHeader, {\n \"[^data-disabled] &\": {\n cursor: \"pointer\"\n },\n userSelect: \"none\",\n [`& > ${BaseCollapsibleListArrow}`]: {\n transition: \"transform 75ms ease-out\",\n transform: \"rotate(-90deg)\"\n },\n '&[data-state=\"open\"]': {\n [`& > ${BaseCollapsibleListArrow}`]: {\n transform: \"rotate(0)\"\n }\n }\n});\nvar CollapsibleListItemHeader = React155.forwardRef(({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsxs27(BaseCollapsibleListItemHeader, {\n ...props,\n ref: forwardedRef,\n children: [\n /* @__PURE__ */ jsx51(CollapsibleListArrow, {}),\n children\n ]\n}));\nvar openKeyframes = keyframes({\n \"0%\": {\n height: 0,\n clipPath: \"inset(0)\"\n },\n \"99.99%\": {\n clipPath: \"inset(0)\"\n },\n \"100%\": {\n height: \"var(--radix-collapsible-content-height)\",\n clipPath: \"inset(-100vh -100vw)\"\n }\n});\nvar closeKeyframes = keyframes({\n from: {\n height: \"var(--radix-collapsible-content-height)\"\n },\n to: {\n height: 0\n }\n});\nvar BaseCollapsibleListContent = styled(ListContent, {\n '&[data-state=\"open\"]': { animation: `${openKeyframes} 150ms ease-out forwards` },\n '&[data-state=\"closed\"]': {\n animation: `${closeKeyframes} 150ms ease-out forwards`,\n clipPath: \"inset(0)\"\n }\n});\nvar CollapsibleListContent = React155.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx51(CollapsiblePrimitive.Content, {\n asChild: true,\n children: /* @__PURE__ */ jsx51(BaseCollapsibleListContent, {\n ...props,\n ref: forwardedRef\n })\n}));\nvar BaseCollapsibleList = styled(CollapsiblePrimitive.Root, List);\nvar CollapsibleList = React155.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx51(BaseCollapsibleList, {\n ...props,\n ref: forwardedRef\n}));\n\n// src/components/List/ListControls.tsx\nvar ListControls = styled(\"div\", {\n marginLeft: \"auto\"\n});\n\n// src/components/List/ListItemLabel.tsx\nvar ListItemLabel = styled(\"dt\", Small2, {\n fontWeight: fontWeights.regular,\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n }\n});\nvar ListItemLabel_default = ListItemLabel;\n\n// src/components/List/ListItemNavigationArrow.tsx\nimport { jsx as jsx52 } from \"react/jsx-runtime\";\nvar ListItemNavigationArrow = () => /* @__PURE__ */ jsx52(Icon_default, {\n icon: \"chevronRight\",\n size: space(10),\n color: { light: \"gray-200\", dark: \"gray-600\" }\n});\n\n// src/components/List/ListItemPair.tsx\nvar ListItemPair = styled(\"div\", ListItem_default);\nvar ListItemPair_default = ListItemPair;\n\n// src/components/List/ListItemValue.tsx\nvar ListItemValue = styled(\"dd\", Body2, {\n flexGrow: 1,\n display: \"flex\",\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-100\"]\n },\n variants: {\n wordBreak: {\n \"break-all\": {\n wordBreak: \"break-all\"\n },\n \"break-word\": {\n wordBreak: \"break-word\"\n },\n normal: {\n wordBreak: \"normal\"\n }\n },\n align: {\n start: {\n justifyContent: \"start\"\n },\n end: {\n justifyContent: \"flex-end\",\n textAlign: \"right\"\n }\n }\n },\n defaultVariants: {\n align: \"end\"\n }\n});\nvar ListItemValue_default = ListItemValue;\n\n// src/components/List/ListTitle.tsx\nvar ListTitle = styled(\"div\", Body2, {\n fontWeight: fontWeights.medium,\n color: colors[\"gray-800\"],\n [darkThemeSelector]: {\n color: colors[\"gray-100\"]\n }\n});\n\n// src/components/MinList/MinList.tsx\nimport React156 from \"react\";\n\n// src/text/Caption.tsx\nimport { jsx as jsx53 } from \"react/jsx-runtime\";\nvar Caption = ({\n children,\n color: color2 = {\n light: \"gray-600\",\n dark: \"gray-200\"\n },\n family = \"regular\",\n weight = \"regular\",\n ...remaining\n}) => /* @__PURE__ */ jsx53(Text_default, {\n ...remaining,\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 12,\n size: 11,\n transform: \"uppercase\",\n weight,\n children\n});\nvar Caption2 = styled(\"span\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n fontSize: \"$11\",\n lineHeight: \"$12\",\n textTransform: \"uppercase\"\n});\nvar Caption_default = Caption;\n\n// src/components/MinList/MinList.tsx\nimport { jsx as jsx54, jsxs as jsxs28 } from \"react/jsx-runtime\";\nvar MinList = styled(\"div\", {\n position: \"relative\",\n vStack: 0,\n alignItems: \"stretch\",\n padding: \"$8 $16 $12\",\n borderRadius: \"$8\",\n gap: \"$8\",\n boxShadow: shadows2.fenceAllLight,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceAllDark\n }\n});\nvar MinListItem = styled(\"div\", {\n hStack: \"$8\",\n minHeight: \"$20\",\n zIndex: \"auto\"\n});\nvar StyledMinListItemHeader = styled(MinListItem, {\n paddingRight: \"$2\"\n});\nvar StyledHeaderIcon = styled(Icon, {\n width: \"$12\",\n height: \"$12\",\n color: colors[\"gray-500\"],\n [darkThemeSelector]: {\n color: colors[\"gray-100\"]\n }\n});\nvar StyledHeaderChevronIcon = styled(Icon, {\n marginLeft: \"auto\",\n width: \"$8\",\n height: \"$8\",\n color: colors[\"gray-500\"],\n [darkThemeSelector]: {\n color: colors[\"gray-100\"]\n }\n});\nvar MinListTitle = styled(\"div\", Caption2, {\n color: colors[\"gray-600\"],\n fontWeight: fontWeights.bold,\n [darkThemeSelector]: {\n color: colors[\"gray-50\"]\n }\n});\nvar MinListControls = styled(\"div\", {\n marginLeft: \"auto\"\n});\nvar MinListItemHeader = React156.forwardRef(\n ({\n icon: icon2,\n children,\n hasArrow = false,\n ...props\n }, ref) => /* @__PURE__ */ jsxs28(StyledMinListItemHeader, {\n ...props,\n ref,\n children: [\n icon2 && /* @__PURE__ */ jsx54(StyledHeaderIcon, {\n icon: icon2\n }),\n children,\n hasArrow && /* @__PURE__ */ jsx54(StyledHeaderChevronIcon, {\n icon: \"chevronRight\"\n })\n ]\n })\n);\nvar MinListItemPair = styled(MinListItem, {});\nvar MinListItemLabel = styled(\"div\", Small2, {\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"]\n }\n});\nvar MinListItemValue = styled(\"div\", Body2, {\n marginLeft: \"auto\",\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-50\"]\n }\n});\nvar StyledFooterLinkIcon = styled(Icon, {\n width: \"$8\",\n height: \"$8\"\n});\nvar StyledMinListItemFooterLink = styled(\"a\", MinListItem, Caption2, {\n hStack: \"$4\",\n fontWeight: fontWeights.bold,\n alignItems: \"center\",\n justifyContent: \"center\",\n background: colors[\"gray-50\"],\n borderRadius: \"$8\",\n padding: \"$6 $8\",\n color: colors[\"blue-600\"]\n});\nvar MinListItemFooterLink = React156.forwardRef(\n ({\n hasArrow = true,\n children,\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs28(StyledMinListItemFooterLink, {\n ...props,\n ref: forwardedRef,\n children: [\n children,\n hasArrow && /* @__PURE__ */ jsx54(StyledFooterLinkIcon, {\n icon: \"chevronRight\"\n })\n ]\n })\n);\n\n// src/components/ProgressBar/ProgressBar.tsx\nimport { jsx as jsx55 } from \"react/jsx-runtime\";\nvar ProgressBar = ({ progressPercentage }) => /* @__PURE__ */ jsx55(Box_default, {\n position: \"relative\",\n display: \"flex\",\n height: space(4),\n bg: { light: \"brand-300\", dark: \"brand-800\" },\n overflow: { all: \"hidden\" },\n radius: { all: \"full\" },\n children: /* @__PURE__ */ jsx55(Box_default, {\n display: \"flex\",\n bg: { light: \"brand-600\", dark: \"brand-600\" },\n radius: { all: \"full\" },\n className: \"m-transition m-duration-150 m-ease-in-out \",\n style: { width: `${progressPercentage}%` }\n })\n});\nvar ProgressBar_default = ProgressBar;\n\n// src/components/RadialGauge/RadialGauge.tsx\nimport React157 from \"react\";\nimport { useMeter } from \"react-aria\";\n\n// src/components/RadialGauge/arcs.ts\nfunction mat2DotVec2([m00, m01, m10, m11], [vx, vy]) {\n return [m00 * vx + m01 * vy, m10 * vx + m11 * vy];\n}\nfunction vec2Add([ux, uy], [vx, vy]) {\n return [ux + vx, uy + vy];\n}\nfunction radToDeg(rad) {\n return rad * 180 / Math.PI;\n}\nvar centerToEndpointParameterization = (cx7, cy, rx, ry, xAxisRotationRad, startAngleRad, endAngleRad) => {\n const phi = xAxisRotationRad;\n const rotation = [Math.cos(phi), Math.sin(phi), -Math.sin(phi), Math.cos(phi)];\n const center = [cx7, cy];\n const [x1, y1] = vec2Add(\n mat2DotVec2(rotation, [rx * Math.cos(startAngleRad), ry * Math.sin(startAngleRad)]),\n center\n );\n const [x2, y2] = vec2Add(\n mat2DotVec2(rotation, [rx * Math.cos(endAngleRad), ry * Math.sin(endAngleRad)]),\n center\n );\n const deltaAngle = endAngleRad - startAngleRad;\n const largeArcFlag = Math.abs(deltaAngle) > 180;\n const sweepFlag = deltaAngle > 0;\n return { x1, y1, x2, y2, rx, ry, xAxisRotationRad, largeArcFlag, sweepFlag };\n};\nvar svgArcParametersToPathData = ({\n x1,\n y1,\n x2,\n y2,\n rx,\n ry,\n xAxisRotationRad,\n largeArcFlag,\n sweepFlag\n}) => [\n `M ${x1} ${y1}`,\n `A ${rx} ${ry} ${radToDeg(xAxisRotationRad)} ${largeArcFlag ? 1 : 0} ${sweepFlag ? 1 : 0} ${x2} ${y2}`\n].join(\" \");\nvar circularArcPathData = (cx7, cy, radius, startAngleRad, endAngleRad, xAxisRotationRad = -Math.PI) => svgArcParametersToPathData(\n centerToEndpointParameterization(\n cx7,\n cy,\n radius,\n radius,\n xAxisRotationRad,\n startAngleRad,\n endAngleRad\n )\n);\n\n// src/components/RadialGauge/RadialGauge.tsx\nimport { jsx as jsx56, jsxs as jsxs29 } from \"react/jsx-runtime\";\nvar Track = styled(\"path\", {\n stroke: colors[\"gray-100\"],\n strokeLinecap: \"round\",\n fill: \"none\"\n});\nvar Progress = styled(\"path\", {\n strokeLinecap: \"round\",\n fill: \"none\",\n variants: {\n color: {\n neutral: {\n stroke: colors[\"brand-600\"]\n },\n positive: {\n stroke: colors[\"green-600\"]\n }\n }\n }\n});\nvar RadialGaugeSVG = React157.forwardRef(\n ({ minValue, maxValue, value, variant = \"neutral\", width = 100, strokeWidth = 8 }, ref) => {\n const scale = linear([minValue, maxValue], [0, Math.PI]).clamp(true);\n const height = width / 2 + strokeWidth / 2;\n const radius = width / 2 - strokeWidth / 2;\n return /* @__PURE__ */ jsxs29(\"svg\", {\n width,\n height,\n ref,\n children: [\n /* @__PURE__ */ jsx56(Track, {\n d: circularArcPathData(width / 2, height - strokeWidth / 2, radius, 0, Math.PI),\n style: { strokeWidth }\n }),\n /* @__PURE__ */ jsx56(Progress, {\n d: circularArcPathData(width / 2, height - strokeWidth / 2, radius, 0, scale(value)),\n style: { strokeWidth },\n color: variant\n })\n ]\n });\n }\n);\nvar RadialGauge = (props) => {\n const { value, children, minValue, maxValue } = props;\n const { meterProps } = useMeter({ ...props, showValueLabel: true });\n const [boxRef, { width }] = useMeasure();\n const [svgRef, { height }] = useMeasure();\n return /* @__PURE__ */ jsxs29(\"div\", {\n ...meterProps,\n ref: boxRef,\n style: { flex: 1, height, position: \"relative\" },\n children: [\n /* @__PURE__ */ jsx56(\"div\", {\n style: { position: \"absolute\", inset: 0 },\n children: /* @__PURE__ */ jsx56(RadialGaugeSVG, {\n ref: svgRef,\n width,\n minValue,\n maxValue,\n value\n })\n }),\n children && /* @__PURE__ */ jsx56(\"div\", {\n style: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n paddingTop: \"10%\"\n },\n children\n })\n ]\n });\n};\nvar RadialGauge_default = RadialGauge;\n\n// src/components/Rule/Rule.tsx\nimport { jsx as jsx57 } from \"react/jsx-runtime\";\nvar Rule = ({ height = 1 }) => /* @__PURE__ */ jsx57(Box_default, {\n padding: height === 1 ? { top: space(1), bottom: space(2) } : { y: space(1) },\n children: /* @__PURE__ */ jsx57(Box_default, {\n width: \"full\",\n height: space(height),\n bg: { light: \"gray-50\", dark: \"gray-900\" }\n })\n});\nvar Rule_default = Rule;\n\n// src/utilities/Stack/VStack.tsx\nimport { jsx as jsx58 } from \"react/jsx-runtime\";\nvar VStack = ({\n children,\n reverse,\n ...remaining\n}) => /* @__PURE__ */ jsx58(Stack_default, {\n ...remaining,\n direction: reverse ? \"column-reverse\" : \"column\",\n children\n});\nvar VStack_default = VStack;\n\n// src/components/Section/Section.tsx\nimport { jsx as jsx59 } from \"react/jsx-runtime\";\nvar Section2 = ({ children }) => /* @__PURE__ */ jsx59(VStack_default, {\n width: \"full\",\n spacing: space(2),\n children\n});\nvar Section_default = Section2;\n\n// src/components/Surface/Surface.tsx\nimport { jsx as jsx60 } from \"react/jsx-runtime\";\nvar Surface = ({ children, ...remaining }) => /* @__PURE__ */ jsx60(Box_default, {\n ...remaining,\n bg: { dark: \"gray-700\", light: \"gray-50\" },\n children\n});\nvar Surface_default = Surface;\n\n// src/components/Section/SectionContent.tsx\nimport { jsx as jsx61 } from \"react/jsx-runtime\";\nvar SectionContent = ({\n children,\n hasFooter = true,\n siblingAlign = true\n}) => /* @__PURE__ */ jsx61(Surface_default, {\n padding: siblingAlign ? { x: space(16) } : void 0,\n radius: !hasFooter ? { bottom: 8 } : void 0,\n children: /* @__PURE__ */ jsx61(VStack_default, {\n children\n })\n});\nvar SectionContent_default = SectionContent;\n\n// src/components/Section/SectionFooter.tsx\nimport { jsx as jsx62, jsxs as jsxs30 } from \"react/jsx-runtime\";\nvar SectionFooter = ({\n end,\n siblingAlign = true,\n start\n}) => /* @__PURE__ */ jsx62(Surface_default, {\n padding: siblingAlign ? { x: space(16), y: space(12) } : { y: space(12) },\n radius: { bottom: 8 },\n children: /* @__PURE__ */ jsxs30(HStack_default, {\n justify: \"between\",\n spacing: space(12),\n children: [\n start,\n end\n ]\n })\n});\nvar SectionFooter_default = SectionFooter;\n\n// src/components/Section/SectionHeader.tsx\nimport { jsx as jsx63, jsxs as jsxs31 } from \"react/jsx-runtime\";\nvar SectionHeader = ({\n end,\n siblingAlign = true,\n start\n}) => /* @__PURE__ */ jsx63(Surface_default, {\n padding: siblingAlign ? { x: space(16), y: space(12) } : { y: space(12) },\n radius: { top: 8 },\n children: /* @__PURE__ */ jsxs31(HStack_default, {\n justify: \"between\",\n spacing: space(12),\n children: [\n start,\n end\n ]\n })\n});\nvar SectionHeader_default = SectionHeader;\n\n// src/components/Select/BasicSelect.tsx\nimport { forwardRef as forwardRef4 } from \"react\";\n\n// src/components/Select/Select.tsx\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { forwardRef as forwardRef3 } from \"react\";\nimport { jsx as jsx64, jsxs as jsxs32 } from \"react/jsx-runtime\";\nvar StyledContent4 = styled(SelectPrimitive.Content, contentStyles, {\n minWidth: 140\n});\nvar StyledViewport = styled(SelectPrimitive.Viewport, {\n padding: \"$4\"\n});\nvar StyledItem3 = styled(SelectPrimitive.Item, itemStyles);\nvar StyledLabel4 = styled(SelectPrimitive.Label, Small2, labelStyles);\nvar StyledSeparator3 = styled(SelectPrimitive.Separator, separatorStyles);\nvar StyledItemIndicator3 = styled(SelectPrimitive.ItemIndicator, itemIndicatorStyles);\nvar StyledScrollUpButton = styled(SelectPrimitive.ScrollUpButton, scrollButtonStyles);\nvar StyledScrollDownButton = styled(SelectPrimitive.ScrollDownButton, scrollButtonStyles);\nvar Select = SelectPrimitive.Root;\nvar SelectTrigger = SelectPrimitive.Trigger;\nvar SelectValue = SelectPrimitive.Value;\nvar SelectIcon = SelectPrimitive.Icon;\nvar SelectContent = StyledContent4;\nvar SelectViewport = StyledViewport;\nvar SelectGroup = SelectPrimitive.Group;\nvar SelectItemText = SelectPrimitive.ItemText;\nvar SelectItemIndicator = StyledItemIndicator3;\nvar SelectLabel = StyledLabel4;\nvar SelectSeparator = StyledSeparator3;\nvar SelectItem = forwardRef3(\n ({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsxs32(StyledItem3, {\n ...props,\n ref: forwardedRef,\n children: [\n children,\n /* @__PURE__ */ jsx64(SelectItemIndicator, {\n children: /* @__PURE__ */ jsx64(Icon_default, {\n icon: \"checkmark\",\n size: space(12)\n })\n })\n ]\n })\n);\nvar SelectTriggerButton = forwardRef3(\n ({ menuArrow = \"select\", ...props }, forwardedRef) => /* @__PURE__ */ jsx64(SelectTrigger, {\n disabled: props.disabled,\n asChild: true,\n children: /* @__PURE__ */ jsx64(Button_default, {\n ...props,\n ref: forwardedRef,\n menuArrow\n })\n })\n);\nvar SelectScrollUpButton = () => /* @__PURE__ */ jsx64(StyledScrollUpButton, {\n children: /* @__PURE__ */ jsx64(Icon_default, {\n icon: \"chevronUp\",\n size: space(10)\n })\n});\nvar SelectScrollDownButton = () => /* @__PURE__ */ jsx64(StyledScrollDownButton, {\n children: /* @__PURE__ */ jsx64(Icon_default, {\n icon: \"chevronDown\",\n size: space(10)\n })\n});\n\n// src/components/Select/BasicSelect.tsx\nimport { jsx as jsx65, jsxs as jsxs33 } from \"react/jsx-runtime\";\nvar BasicSelect = forwardRef4(\n ({\n value,\n defaultValue,\n onValueChange,\n open,\n defaultOpen,\n onOpenChange,\n dir,\n name,\n autoComplete,\n children,\n controlSize,\n hasError = false,\n width = \"auto\",\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs33(Select, {\n value,\n defaultValue,\n onValueChange,\n open,\n defaultOpen,\n onOpenChange,\n dir,\n name,\n autoComplete,\n children: [\n /* @__PURE__ */ jsx65(SelectTriggerButton, {\n size: controlSize,\n hasError,\n width,\n variant: \"secondary\",\n ref: forwardedRef,\n ...props,\n children: /* @__PURE__ */ jsx65(SelectValue, {})\n }),\n /* @__PURE__ */ jsxs33(SelectContent, {\n children: [\n /* @__PURE__ */ jsx65(SelectScrollUpButton, {}),\n /* @__PURE__ */ jsx65(SelectViewport, {\n children\n }),\n /* @__PURE__ */ jsx65(SelectScrollDownButton, {})\n ]\n })\n ]\n })\n);\nvar BasicSelectItem = forwardRef4(\n ({ children, ...props }, forwardedRef) => /* @__PURE__ */ jsx65(SelectItem, {\n ...props,\n ref: forwardedRef,\n children: /* @__PURE__ */ jsx65(SelectItemText, {\n children\n })\n })\n);\n\n// src/components/ServiceButton/ServiceButton.tsx\nvar import_classnames2 = __toESM(require_classnames());\nimport { jsx as jsx66, jsxs as jsxs34 } from \"react/jsx-runtime\";\nvar ServiceButton = ({\n arrangement = \"icon-and-text\",\n className,\n label,\n icon: icon2,\n size = \"large\",\n ...props\n}) => {\n const classes = (0, import_classnames2.default)(\n className,\n \"m-flex m-group m-focus m-cursor-pointer m-rounded-lg m-w-full m-flex m-items-center m-gap-x-3\",\n {\n \"m-h-9 m-px-3\": size === \"large\",\n \"m-h-12 m-px-4\": size === \"extra-large\"\n },\n \"m-text-base m-leading-6\",\n \"m-text-gray-700 m-shadow-controlTertiaryInitialLight\",\n \"hover:m-text-gray-800 hover:m-shadow-controlTertiaryHoveredLight\",\n \"dark:m-text-gray-50 dark:m-shadow-controlTertiaryInitialDark\",\n \"dark:hover:m-text-white dark:hover:m-shadow-controlTertiaryHoveredDark\"\n );\n const arrowClasses = (0, import_classnames2.default)(\n \"m-ml-auto m-text-xs\",\n \"m-text-gray-600\",\n \"group-hover:m-text-group-700\",\n \"dark:m-text-gray-100\",\n \"dark:group-hover:m-text-gray-50\",\n \"m-transition-all m-duration-150 m-ease-linear\"\n );\n return /* @__PURE__ */ jsxs34(\"button\", {\n ...props,\n className: classes,\n type: \"button\",\n \"aria-label\": label,\n children: [\n icon2,\n arrangement === \"icon-and-text\" ? label : void 0,\n /* @__PURE__ */ jsx66(Icon_default, {\n icon: \"arrowRight\",\n className: arrowClasses\n })\n ]\n });\n};\nvar ServiceButton_default = ServiceButton;\n\n// src/components/Shortcut/Shortcut.tsx\nimport { jsx as jsx67 } from \"react/jsx-runtime\";\nvar Shortcut = ({ children }) => /* @__PURE__ */ jsx67(HStack_default, {\n display: \"inline-flex\",\n align: \"center\",\n spacing: space(2),\n children\n});\nvar Shortcut_default = Shortcut;\n\n// src/components/Shortcut/ShortcutKey.tsx\nimport { jsx as jsx68 } from \"react/jsx-runtime\";\nvar ShortcutKey = ({ children }) => /* @__PURE__ */ jsx68(Box_default, {\n width: \"fit-content\",\n display: \"inline-flex\",\n padding: { x: space(4), y: space(2) },\n bg: { light: \"brand-50\", dark: \"brand-600\" },\n radius: { all: 4 },\n children: /* @__PURE__ */ jsx68(Text_default, {\n color: { dark: \"brand-50\", light: \"brand-800\" },\n lineHeight: 12,\n size: 11,\n variant: \"tabular\",\n weight: \"medium\",\n children\n })\n});\nvar ShortcutKey_default = ShortcutKey;\n\n// src/components/Shortcut/ShortcutPlus.tsx\nimport { jsx as jsx69 } from \"react/jsx-runtime\";\nvar ShortcutPlus = () => /* @__PURE__ */ jsx69(Text_default, {\n color: { dark: \"gray-300\", light: \"gray-500\" },\n lineHeight: 12,\n size: 11,\n variant: \"tabular\",\n weight: \"medium\",\n children: \"+\"\n});\nvar ShortcutPlus_default = ShortcutPlus;\n\n// src/components/Slider/Slider.tsx\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport React160 from \"react\";\nimport { jsx as jsx70, jsxs as jsxs35 } from \"react/jsx-runtime\";\nvar StyledSlider = styled(SliderPrimitive.Root, {\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n userSelect: \"none\",\n touchAction: \"none\",\n width: \"100%\",\n '&[data-orientation=\"horizontal\"]': {\n height: 20\n },\n '&[data-orientation=\"vertical\"]': {\n flexDirection: \"column\",\n width: 20,\n height: \"100%\"\n }\n});\nvar StyledTrack = styled(SliderPrimitive.Track, {\n position: \"relative\",\n flexGrow: 1,\n borderRadius: \"9999px\",\n backgroundColor: colors[\"gray-100\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-700\"]\n },\n '&[data-orientation=\"horizontal\"]': { height: 3 },\n '&[data-orientation=\"vertical\"]': { width: 3 }\n});\nvar StyledRange = styled(SliderPrimitive.Range, {\n position: \"absolute\",\n backgroundColor: colors[\"brand-600\"],\n borderRadius: \"9999px\",\n '&[data-orientation=\"horizontal\"]': { height: \"100%\" },\n '&[data-orientation=\"vertical\"]': { width: \"100%\" },\n \"&[data-disabled]\": {\n backgroundColor: colors[\"gray-300\"]\n }\n});\nvar StyledThumb = styled(SliderPrimitive.Thumb, secondaryEnabledStyles, {\n display: \"block\",\n width: 16,\n height: 16,\n transition: sharedTransition,\n outline: \"none\",\n userSelect: \"none\",\n borderRadius: \"$4\",\n $$dotColor: colors[\"gray-200\"],\n [darkThemeSelector]: {\n $$dotColor: colors[\"gray-800\"]\n },\n [focusSelector]: {\n $$dotColor: colors[\"brand-600\"],\n [darkThemeSelector]: {\n $$dotColor: colors[\"brand-200\"]\n }\n },\n \"&:before\": {\n content: \"\",\n display: \"block\",\n position: \"absolute\",\n width: 6,\n height: 6,\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n borderRadius: \"9999px\",\n backgroundColor: \"$$dotColor\"\n },\n \"&[data-disabled]\": secondaryDisabledStyles\n});\nvar Slider = React160.forwardRef((props, forwardedRef) => {\n const value = props.value ?? props.defaultValue ?? [];\n return /* @__PURE__ */ jsxs35(StyledSlider, {\n ...props,\n ref: forwardedRef,\n children: [\n /* @__PURE__ */ jsx70(StyledTrack, {\n children: /* @__PURE__ */ jsx70(StyledRange, {})\n }),\n value.map((_, i) => /* @__PURE__ */ jsx70(StyledThumb, {}, i))\n ]\n });\n});\n\n// src/components/Table/Table.tsx\nvar import_classnames3 = __toESM(require_classnames());\nimport React161 from \"react\";\n\n// src/components/Table/useCanScrollX.ts\nimport { useLayoutEffect, useRef as useRef7, useState as useState4 } from \"react\";\nvar useCanScrollX = () => {\n const [measureRef, { width }] = useMeasure();\n const scrollWidthRef = useRef7(null);\n const [canScroll, setCanScroll] = useState4(false);\n useLayoutEffect(() => {\n if (scrollWidthRef.current) {\n setCanScroll(scrollWidthRef.current.scrollWidth !== width);\n }\n }, [width]);\n const ref = o([measureRef, scrollWidthRef]);\n return [ref, canScroll];\n};\n\n// src/components/Table/Table.tsx\nimport { jsx as jsx71, jsxs as jsxs36 } from \"react/jsx-runtime\";\nvar TableContainer = styled(\"div\", {\n overflow: \"auto\",\n WebkitOverflowScrolling: \"auto\",\n isolation: \"isolate\"\n});\nvar TableBase = styled(\"div\", {\n width: \"100%\",\n position: \"relative\",\n display: \"table\",\n borderCollapse: \"collapse\"\n});\nvar Table = React161.forwardRef(({ children, ...props }, ref) => {\n const [scrollRef, canScrollX] = useCanScrollX();\n return /* @__PURE__ */ jsx71(TableContainer, {\n ...props,\n ref: o([ref, scrollRef]),\n \"data-can-scroll-x\": canScrollX,\n children: /* @__PURE__ */ jsx71(TableBase, {\n children\n })\n });\n});\nvar TableHead = styled(\"div\", {\n display: \"table-header-group\"\n});\nvar TableBody = styled(\"div\", {\n display: \"table-row-group\"\n});\nvar TableCellBase = css({\n $$cellFocusRingInsetRight: 0,\n $$cellFocusRingInsetLeft: 0,\n display: \"table-cell\",\n padding: \"9px $8\",\n whiteSpace: \"nowrap\",\n position: \"relative\",\n zIndex: 0,\n overflow: \"hidden\",\n color: \"$$rowTextColor\",\n boxShadow: \"$$rowActiveFence\",\n verticalAlign: \"middle\",\n \"&:before\": {\n content: \"\",\n position: \"absolute\",\n inset: \"8px $$cellFocusRingInsetRight 8px $$cellFocusRingInsetLeft\",\n pointerEvents: \"none\"\n },\n \"&:first-child\": {\n paddingLeft: \"$20\",\n paddingRight: \"$16\",\n position: \"sticky\",\n zIndex: 1,\n backgroundColor: \"transparent\",\n fontWeight: fontWeights.medium,\n color: \"$$leadingColumnTextColor\",\n left: 0,\n \"&:before\": {\n $$cellFocusRingInsetLeft: \"12px\",\n borderRadiusLeft: \"$$rowFocusRingBorderRadius\"\n },\n \"&:after\": {\n $$leadingColumnShadowSpace: \"8px\",\n content: \"\",\n position: \"absolute\",\n inset: \"0 $$leadingColumnShadowSpace 0 0\",\n zIndex: -1,\n backgroundColor: \"$$rowBackgroundColor\",\n boxShadow: \"$$rowActiveFence\",\n pointerEvents: \"none\",\n transition: \"box-shadow 150ms ease-out\",\n ...safariOnlyCSS({\n inset: \"-.5px $$leadingColumnShadowSpace -.5px 0\"\n })\n }\n },\n \"&:last-child\": {\n paddingRight: \"$20\",\n \"&:before\": {\n $$cellFocusRingInsetRight: \"12px\",\n borderRadiusRight: \"$$rowFocusRingBorderRadius\"\n }\n },\n \"[data-can-scroll-x=true] &:first-child:after\": {\n boxShadow: \"$$leadingColumnScrollShadow, $$rowActiveFence\"\n }\n});\nvar TableRowBase = styled(\"div\", {\n $$rowBackgroundColor: colors.white,\n $$rowIconColor: colors[\"gray-400\"],\n $$rowTextColor: colors[\"gray-600\"],\n $$leadingColumnTextColor: colors[\"gray-700\"],\n $$rowFocusRingShadow: \"0 0 0 1px #474d81, 0 0 0 4px #8790da\",\n $$rowFocusRingBorderRadius: \"8px\",\n $$rowBorderColor: colors[\"fence-light\"],\n $$rowActiveFence: \"0 0 0 transparent\",\n $$leadingColumnScrollShadow: \"1px 0px 2px rgba(41, 42, 51, 0.04), 3px 0px 5px rgba(41, 42, 51, 0.08)\",\n [darkThemeSelector]: {\n $$rowBackgroundColor: colors[\"gray-800\"],\n $$rowIconColor: colors[\"gray-300\"],\n $$rowTextColor: colors[\"gray-100\"],\n $$leadingColumnTextColor: colors.white,\n $$rowFocusRingShadow: \"0 0 0 1px #c4c8ec, 0 0 0 4px #969bc0\",\n $$rowBorderColor: colors[\"fence-dark\"],\n $$leadingColumnScrollShadow: \"1px 0px 2px rgba(3, 4, 10, 0.6), 3px 0px 5px rgba(3, 4, 10, 0.4)\"\n },\n position: \"relative\",\n display: \"table-row\",\n width: \"100%\",\n outline: \"none\",\n borderTop: `1px solid $$rowBorderColor`,\n \"&:last-child\": {\n borderBottom: `1px solid $$rowBorderColor`\n },\n backgroundColor: \"$$rowBackgroundColor\",\n ...firefoxOnlyCSS({\n backgroundColor: \"transparent\",\n \"&:before\": {\n content: \"\",\n position: \"absolute\",\n inset: 0,\n backgroundColor: \"$$rowBackgroundColor\",\n pointerEvents: \"none\",\n zIndex: -1\n }\n }),\n [`& .${TableCellBase}:before`]: {\n transition: \"box-shadow 150ms ease-out\",\n boxShadow: shadows2.none\n },\n [focusVisibleSelector]: {\n [`&:focus`]: {\n [`& .${TableCellBase}:before`]: {\n boxShadow: \"$$rowFocusRingShadow\"\n }\n }\n },\n [`&.${activeThemeClassName}`]: {\n $$rowBackgroundColor: colors[\"brand-600\"],\n $$rowActiveFence: `inset 0 -1.5px 0 0 ${colors[\"brand-800\"]}, inset 0 1.5px 0 0 ${colors[\"brand-800\"]}`,\n $$rowTextColor: colors[\"brand-50\"],\n $$leadingColumnTextColor: colors[\"brand-50\"],\n $$rowIconColor: colors[\"brand-50\"],\n $$rowFocusRingShadow: \"0px 0px 0px 1px #dfe3f9, 0px 0px 0px 4px #a2a9e3\"\n }\n});\nvar TableRow = React161.forwardRef(\n ({ isSelected, ...props }, ref) => /* @__PURE__ */ jsx71(TableRowBase, {\n ref,\n ...props,\n className: (0, import_classnames3.default)({\n [activeThemeClassName]: isSelected\n })\n })\n);\nvar TableHeadRow = styled(TableRowBase, {\n $$leadingColumnTextColor: colors[\"gray-700\"],\n $$rowTextColor: colors[\"gray-700\"],\n $$rowBackgroundColor: colors[\"gray-50\"],\n [darkThemeSelector]: {\n $$leadingColumnTextColor: colors[\"gray-100\"],\n $$rowTextColor: colors[\"gray-100\"],\n $$rowBackgroundColor: colors[\"gray-700\"]\n }\n});\nvar TableHeadCellBase = styled(\"div\", TableCellBase, {\n paddingTop: \"$8\",\n paddingBottom: 7,\n fontWeight: fontWeights.medium,\n fontFamily: fonts.sans,\n fontSize: \"$12\",\n lineHeight: \"$16\"\n});\nvar TableHeadCellContent = styled(\"span\", {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"$4\"\n});\nvar TableHeadCellSortIcon = styled(Icon_default, {\n width: \"$10\",\n height: \"$10\",\n variants: {\n isVisible: {\n true: {\n visibility: \"visible\"\n },\n false: {\n visibility: \"hidden\"\n }\n }\n },\n defaultVariants: {\n isVisible: false\n }\n});\nvar TableHeadCell = React161.forwardRef(({ children, sortDirection, ...props }, ref) => /* @__PURE__ */ jsx71(TableHeadCellBase, {\n ...props,\n ref,\n children: /* @__PURE__ */ jsxs36(TableHeadCellContent, {\n children: [\n children,\n /* @__PURE__ */ jsx71(TableHeadCellSortIcon, {\n isVisible: sortDirection !== void 0,\n icon: sortDirection === \"ascending\" ? \"chevronUp\" : \"chevronDown\"\n })\n ]\n })\n}));\nvar TableDataCell = styled(\"div\", TableCellBase, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n fontSize: \"$14\",\n lineHeight: \"$20\"\n});\n\n// src/components/Table/NavigableTable.tsx\nimport { jsx as jsx72 } from \"react/jsx-runtime\";\nvar NavigableIcon = styled(Icon_default, {\n color: \"$$rowIconColor\",\n marginTop: -3,\n width: \"$12\",\n height: \"$12\"\n});\nvar NavigableTablePlaceholderCell = () => /* @__PURE__ */ jsx72(TableHeadCell, {\n \"aria-hidden\": true\n});\nvar NavigableTableArrowCell = () => /* @__PURE__ */ jsx72(TableDataCell, {\n style: { width: 0 },\n \"aria-hidden\": true,\n children: /* @__PURE__ */ jsx72(NavigableIcon, {\n icon: \"chevronRight\"\n })\n});\nvar NavigableTableDeselectCell = (props) => {\n const handleClick = (e) => {\n var _a;\n e.preventDefault();\n (_a = props.onClick) == null ? void 0 : _a.call(props, e);\n };\n return /* @__PURE__ */ jsx72(TableDataCell, {\n ...props,\n onClick: handleClick,\n style: { width: 0 },\n \"aria-hidden\": true,\n children: /* @__PURE__ */ jsx72(NavigableIcon, {\n icon: \"crossCircle\"\n })\n });\n};\n\n// src/components/Table/Table2.tsx\nimport React162, { useEffect as useEffect4, useRef as useRef8, useState as useState5 } from \"react\";\nimport { jsx as jsx73, jsxs as jsxs37 } from \"react/jsx-runtime\";\nvar TableContainer2 = styled(\"div\", {\n width: \"100%\"\n});\nvar TableBase2 = styled(\"div\", {\n position: \"relative\",\n display: \"table\",\n width: \"100%\"\n});\nvar Table2 = React162.forwardRef(\n ({ children, ...props }, ref) => {\n const [scrollRef, canScrollX] = useCanScrollX();\n return /* @__PURE__ */ jsx73(TableContainer2, {\n ...props,\n ref: o([ref, scrollRef]),\n \"data-can-scroll-x\": canScrollX,\n children: /* @__PURE__ */ jsx73(TableBase2, {\n children\n })\n });\n }\n);\nvar Head = styled(\"div\", {\n display: \"table-header-group\"\n});\nvar Body3 = styled(\"div\", {\n display: \"table-row-group\"\n});\nvar CellBase = css({\n display: \"table-cell\",\n verticalAlign: \"middle\",\n padding: \"$8\",\n position: \"relative\",\n color: \"$$rowTextColor\",\n boxShadow: \"$$rowShadow\",\n zIndex: \"$$rowZIndex\",\n userSelect: \"none\",\n variants: {\n sizingMode: {\n \"fit-min\": {\n width: \"0%\",\n whiteSpace: \"nowrap\"\n },\n \"fit-max\": {\n whiteSpace: \"nowrap\"\n },\n wrap: {\n maxWidth: 1\n },\n truncate: {\n maxWidth: 1,\n truncate: true\n }\n },\n alignment: {\n start: {\n textAlign: \"left\"\n },\n center: {\n textAlign: \"center\"\n },\n end: {\n textAlign: \"right\"\n }\n }\n }\n});\nvar RowBase = styled(\"div\", {\n $$rowBackgroundColor: colors.white,\n $$rowIconColor: colors[\"gray-400\"],\n $$rowTextColor: colors[\"gray-800\"],\n $$leadingColumnTextColor: colors[\"gray-900\"],\n $$rowShadow: shadows2.fenceTopBottomLight,\n $$rowZIndex: 0,\n $$iconColor: colors[\"gray-700\"],\n [focusVisibleSelector]: {\n \"&:focus\": {\n $$rowZIndex: 2,\n $$rowShadow: shadows2.rowFocusedTopBottomLight\n }\n },\n [darkThemeSelector]: {\n $$rowBackgroundColor: colors[\"gray-800\"],\n $$rowIconColor: colors[\"gray-300\"],\n $$rowTextColor: colors[\"gray-50\"],\n $$leadingColumnTextColor: colors.white,\n $$rowShadow: shadows2.fenceTopBottomDark,\n $$iconColor: colors[\"gray-200\"],\n [focusVisibleSelector]: {\n \"&:focus\": {\n $$rowShadow: shadows2.rowFocusedTopBottomDark\n }\n }\n },\n position: \"relative\",\n width: \"100%\",\n outline: \"none\",\n display: \"table-row\",\n backgroundColor: \"$$rowBackgroundColor\",\n variants: {\n isSelected: {\n true: {\n $$rowBackgroundColor: colors[\"brand-50\"],\n $$rowTextColor: colors[\"brand-700\"],\n $$iconColor: colors[\"brand-600\"],\n $$leadingColumnTextColor: colors[\"brand-800\"],\n $$rowIconColor: colors[\"brand-600\"],\n $$rowShadow: shadows2.rowActiveTopBottomLight,\n $$rowZIndex: 1,\n [darkThemeSelector]: {\n $$rowBackgroundColor: colors[\"brand-900\"],\n $$rowTextColor: colors[\"brand-50\"],\n $$iconColor: colors[\"brand-200\"],\n $$leadingColumnTextColor: colors[\"brand-50\"],\n $$rowIconColor: colors[\"brand-500\"],\n $$rowShadow: shadows2.rowActiveTopBottomDark\n }\n },\n false: {}\n }\n }\n});\nvar RowInner = ({ isSelected, ...props }, ref) => /* @__PURE__ */ jsx73(RowBase, {\n ref,\n ...props,\n isSelected\n});\nvar Row = React162.forwardRef(RowInner);\nvar BaseHeadRow = styled(RowBase, {\n position: \"sticky\",\n top: -1,\n zIndex: 0,\n $$leadingColumnTextColor: colors[\"gray-600\"],\n $$rowTextColor: colors[\"gray-600\"],\n [darkThemeSelector]: {\n $$leadingColumnTextColor: colors[\"gray-100\"],\n $$rowTextColor: colors[\"gray-100\"]\n },\n '&[data-is-pinned=\"true\"]': {\n zIndex: 3\n }\n});\nvar HeadRowInner = (props, ref) => {\n const innerRef = useRef8(null);\n const [isPinned, setIsPinned] = useState5(false);\n useEffect4(() => {\n const observer = new IntersectionObserver(([e]) => setIsPinned(e.intersectionRatio < 1), {\n threshold: [1]\n });\n if (innerRef.current) {\n observer.observe(innerRef.current);\n }\n return () => observer.disconnect();\n }, []);\n return /* @__PURE__ */ jsx73(BaseHeadRow, {\n ...props,\n ref: o([ref, innerRef]),\n \"data-is-pinned\": isPinned\n });\n};\nvar HeadRow = React162.forwardRef(HeadRowInner);\nvar HeadCellBase = styled(\"div\", CellBase, {\n padding: \"$6 $8\",\n fontWeight: fontWeights.medium,\n fontFamily: fonts.sans,\n fontSize: \"$12\",\n lineHeight: \"$16\"\n});\nvar HeadCellContent = styled(\"div\", {\n truncate: true\n});\nvar TableHeadCellSortIcon2 = styled(Icon_default, {\n marginTop: -3,\n marginLeft: \"$4\",\n width: \"$10\",\n height: \"$10\",\n variants: {\n isVisible: {\n true: {\n visibility: \"visible\"\n },\n false: {\n visibility: \"hidden\"\n }\n }\n },\n defaultVariants: {\n isVisible: false\n }\n});\nvar HeadCellInner = ({ children, sortDirection, ...props }, ref) => /* @__PURE__ */ jsx73(HeadCellBase, {\n ...props,\n ref,\n children: /* @__PURE__ */ jsxs37(HeadCellContent, {\n children: [\n children,\n /* @__PURE__ */ jsx73(TableHeadCellSortIcon2, {\n isVisible: !!sortDirection,\n icon: sortDirection === \"asc\" ? \"chevronUp\" : \"chevronDown\"\n })\n ]\n })\n});\nvar HeadCell = React162.forwardRef(HeadCellInner);\nvar CellInnerBase = styled(\"div\", CellBase, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n fontSize: \"$14\",\n lineHeight: \"$16\",\n truncate: true,\n variants: {\n isLeading: {\n true: {\n color: \"$$leadingColumnTextColor\",\n fontWeight: fontWeights.medium\n },\n false: {}\n }\n }\n});\nvar CellInner = ({ children, isLeading, ...props }, ref) => /* @__PURE__ */ jsx73(CellInnerBase, {\n ...props,\n isLeading,\n ref,\n children\n});\nvar Cell = React162.forwardRef(CellInner);\nvar NavigableIcon2 = styled(Icon_default, {\n color: \"$$rowIconColor\",\n marginTop: -1,\n width: \"$8\",\n height: \"$8\"\n});\nvar SelectedRowIndicatorHeadCell = () => /* @__PURE__ */ jsx73(HeadCellBase, {\n style: { padding: 0, minWidth: 16, width: 16 }\n});\nvar BaseSelectedRowIndicatorCell = styled(Cell, {\n boxSizing: \"content-box\",\n maxWidth: \"0\",\n minWidth: \"0\",\n width: \"0%\"\n});\nvar SelectedRowIndicator = styled(\"div\", {\n position: \"absolute\",\n left: \"$12\",\n top: \"$6\",\n bottom: \"$6\",\n width: \"$4\",\n borderRadius: \"$2\",\n variants: {\n isSelected: {\n true: {\n backgroundColor: colors[\"brand-500\"]\n }\n }\n }\n});\nvar SelectedRowIndicatorCell = ({ isSelected = false }) => /* @__PURE__ */ jsx73(BaseSelectedRowIndicatorCell, {\n children: /* @__PURE__ */ jsx73(SelectedRowIndicator, {\n isSelected\n })\n});\nvar BaseSelectRowCell = styled(Cell, {\n paddingRight: \"$20\",\n width: \"1%\",\n whiteSpace: \"nowrap\"\n});\nvar SelectRowCell = (props) => /* @__PURE__ */ jsx73(BaseSelectRowCell, {\n ...props,\n children: /* @__PURE__ */ jsx73(NavigableIcon2, {\n icon: \"chevronRight\"\n })\n});\nvar DeselectRowCell = (props) => /* @__PURE__ */ jsx73(BaseSelectRowCell, {\n ...props,\n children: /* @__PURE__ */ jsx73(NavigableIcon2, {\n icon: \"cross\"\n })\n});\nvar Table22 = {\n Table: Table2,\n Head,\n HeadRow,\n HeadCell,\n Body: Body3,\n Row,\n Cell,\n SelectedRowIndicatorHeadCell,\n SelectedRowIndicatorCell,\n SelectRowCell,\n DeselectRowCell\n};\n\n// src/components/Tabs/Tab.tsx\nimport React163 from \"react\";\n\n// src/utilities/isDefined.ts\nfunction isDefined(value) {\n return typeof value !== \"undefined\" && value != null;\n}\n\n// src/components/Tabs/Tab.tsx\nimport { jsx as jsx74, jsxs as jsxs38 } from \"react/jsx-runtime\";\nvar Container8 = styled(\"button\", FocusRingSelf, Body2, {\n padding: \"$4 $8\",\n borderRadius: \"$8\",\n fontWeight: fontWeights.medium,\n hStack: \"$6\",\n alignItems: \"center\",\n WebkitAppearance: \"none\",\n whiteSpace: \"nowrap\",\n variants: {\n hasAnnotation: {\n true: {\n paddingRight: \"$6\"\n }\n },\n isActive: {\n true: {\n $$annotationBackground: colors.white,\n $$annotationColor: colors[\"brand-600\"],\n $$iconColor: colors.white,\n color: colors.white,\n background: colors[\"brand-600\"]\n },\n false: {\n $$annotationBackground: colors[\"gray-100\"],\n $$annotationColor: colors[\"gray-700\"],\n $$iconColor: colors[\"gray-600\"],\n color: colors[\"gray-700\"],\n background: colors.transparent,\n [darkThemeSelector]: {\n $$annotationBackground: colors[\"gray-700\"],\n $$annotationColor: colors[\"gray-100\"],\n $$iconColor: colors[\"gray-100\"],\n color: colors[\"gray-50\"],\n background: colors.transparent\n },\n \"&:hover\": {\n $$annotationBackground: colors[\"gray-200\"],\n $$annotationColor: colors[\"gray-800\"],\n $$iconColor: colors[\"gray-700\"],\n color: colors[\"gray-800\"],\n background: colors[\"gray-50\"],\n [darkThemeSelector]: {\n $$annotationBackground: colors[\"gray-800\"],\n $$annotationColor: colors[\"gray-100\"],\n $$iconColor: colors[\"gray-50\"],\n color: colors.white,\n background: colors[\"gray-600\"]\n }\n }\n }\n }\n }\n});\nvar StyledIcon8 = styled(Icon_default, {\n color: \"$$iconColor\",\n width: \"$12\",\n height: \"$12\"\n});\nvar Annotation = styled(\"div\", Small2, {\n justifyContent: \"center\",\n transition: \"all 150ms ease-out\",\n display: \"flex\",\n minWidth: \"$20\",\n lineHeight: \"$20\",\n paddingX: \"$4\",\n borderRadius: \"$6\",\n background: \"$$annotationBackground\",\n color: \"$$annotationColor\",\n fontVariantNumeric: \"tabular-nums\",\n fontWeight: fontWeights.medium\n});\nvar Tab2 = React163.forwardRef(\n ({\n active = false,\n annotation,\n children,\n icon: icon2,\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs38(Container8, {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": active ? \"true\" : \"false\",\n isActive: active,\n hasAnnotation: isDefined(annotation),\n ...props,\n ref: forwardedRef,\n children: [\n isDefined(icon2) && /* @__PURE__ */ jsx74(StyledIcon8, {\n icon: icon2\n }),\n children,\n isDefined(annotation) && /* @__PURE__ */ jsx74(Annotation, {\n children: annotation\n })\n ]\n })\n);\nvar Tab_default = Tab2;\n\n// src/components/Tabs/Tab2.tsx\nimport React164 from \"react\";\nimport { jsx as jsx75, jsxs as jsxs39 } from \"react/jsx-runtime\";\nvar Container9 = styled(\"button\", Body2, {\n position: \"relative\",\n $$focusRing: shadows2.none,\n \"&:focus\": {\n outline: \"none\",\n $$focusRing: shadows2.focusRingLight,\n [darkThemeSelector]: {\n $$focusRing: shadows2.focusRingDark\n }\n }\n});\nvar Content6 = styled(\"div\", {\n position: \"relative\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n display: \"inline-flex\",\n transition: \"all 150ms ease-out\",\n fontWeight: fontWeights.medium,\n hStack: \"$6\",\n alignItems: \"center\",\n whiteSpace: \"nowrap\",\n boxShadow: \"$$focusRing\",\n variants: {\n hasAnnotation: {\n true: {\n paddingRight: \"$4\"\n }\n },\n size: {\n small: {\n padding: \"0px $6\",\n fontSize: \"$12\",\n borderRadius: \"$6\"\n },\n medium: {\n padding: \"$4 $6\",\n fontSize: \"$14\",\n borderRadius: \"$8\"\n }\n },\n isActive: {\n true: {\n $$annotationBackground: colors[\"brand-50\"],\n $$annotationColor: colors[\"brand-600\"],\n $$iconColor: colors[\"brand-700\"],\n color: colors[\"brand-700\"],\n background: colors.transparent,\n [darkThemeSelector]: {\n color: colors[\"brand-50\"],\n $$iconColor: colors[\"brand-50\"]\n }\n },\n false: {\n $$annotationBackground: colors[\"gray-100\"],\n $$annotationColor: colors[\"gray-700\"],\n $$iconColor: colors[\"gray-600\"],\n color: colors[\"gray-700\"],\n background: colors.transparent,\n [darkThemeSelector]: {\n $$annotationBackground: colors[\"gray-700\"],\n $$annotationColor: colors[\"gray-100\"],\n $$iconColor: colors[\"gray-100\"],\n color: colors[\"gray-50\"],\n background: colors.transparent\n },\n \"&:hover\": {\n $$annotationBackground: colors[\"gray-200\"],\n $$annotationColor: colors[\"gray-800\"],\n $$iconColor: colors[\"gray-700\"],\n color: colors[\"gray-800\"],\n background: colors.transparent,\n [darkThemeSelector]: {\n $$annotationBackground: colors[\"gray-600\"],\n $$annotationColor: colors[\"gray-100\"],\n $$iconColor: colors[\"gray-50\"],\n color: colors.white,\n background: colors.transparent\n }\n }\n }\n }\n }\n});\nvar StyledIcon9 = styled(Icon_default, {\n color: \"$$iconColor\",\n width: \"$12\",\n height: \"$12\"\n});\nvar Annotation2 = styled(\"div\", Small2, {\n justifyContent: \"center\",\n transition: \"all 150ms ease-out\",\n display: \"flex\",\n minWidth: \"$20\",\n lineHeight: \"$20\",\n paddingX: \"$4\",\n borderRadius: \"$6\",\n background: \"$$annotationBackground\",\n color: \"$$annotationColor\",\n fontVariantNumeric: \"tabular-nums\",\n fontWeight: fontWeights.medium\n});\nvar Underline = styled(\"div\", {\n position: \"absolute\",\n right: 0,\n left: 0,\n bottom: 0,\n borderRadius: \"8px 8px 0px 0px\",\n height: \"4px\",\n variants: {\n isActive: {\n true: {\n background: colors[\"brand-600\"]\n },\n false: {\n background: colors.transparent\n }\n }\n }\n});\nvar Tab22 = React164.forwardRef(\n ({\n active = false,\n annotation,\n size = \"medium\",\n children,\n icon: icon2,\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs39(Container9, {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": active ? \"true\" : \"false\",\n ...props,\n ref: forwardedRef,\n children: [\n /* @__PURE__ */ jsxs39(Content6, {\n isActive: active,\n hasAnnotation: isDefined(annotation),\n size,\n children: [\n isDefined(icon2) && /* @__PURE__ */ jsx75(StyledIcon9, {\n icon: icon2\n }),\n children,\n isDefined(annotation) && /* @__PURE__ */ jsx75(Annotation2, {\n children: annotation\n })\n ]\n }),\n /* @__PURE__ */ jsx75(Underline, {\n isActive: active\n })\n ]\n })\n);\nvar Tab2_default = Tab22;\n\n// src/components/Tabs/Tabs.tsx\nimport { jsx as jsx76 } from \"react/jsx-runtime\";\nvar Tabs = ({ children }) => /* @__PURE__ */ jsx76(HStack_default, {\n role: \"tablist\",\n align: \"center\",\n spacing: space(6),\n children\n});\nvar Tabs_default = Tabs;\n\n// src/components/Tabs/Tabs2.tsx\nimport { jsx as jsx77 } from \"react/jsx-runtime\";\nvar Container10 = styled(\"div\", {\n hStack: \"$6\",\n height: \"100%\",\n alignItems: \"stretch\"\n});\nvar Tabs2 = ({ children }) => /* @__PURE__ */ jsx77(Container10, {\n role: \"tablist\",\n children\n});\nvar Tabs2_default = Tabs2;\n\n// src/components/Textarea/Textarea.tsx\nvar import_classnames4 = __toESM(require_classnames());\nimport React165 from \"react\";\nimport { jsx as jsx78 } from \"react/jsx-runtime\";\nvar minHeight = (size) => {\n if (size === \"small\") {\n return space(20);\n }\n if (size === \"large\") {\n return space(36);\n }\n if (size === \"x-large\") {\n return space(44);\n }\n return space(28);\n};\nvar padding = (size) => {\n if (size === \"small\") {\n return { x: space(4), y: space(2) };\n }\n if (size === \"large\") {\n return { x: space(12), y: space(8) };\n }\n if (size === \"x-large\") {\n return { x: space(14), y: space(10) };\n }\n return { x: space(8), y: space(4) };\n};\nvar Textarea = React165.forwardRef(\n ({\n disabled = false,\n hasError = false,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n rows = 3,\n size = \"medium\",\n value\n }, ref) => {\n const classes = (0, import_classnames4.default)(\n \"m-transition-all m-duration-150 m-ease-linear\",\n \"m-outline-none\",\n \"m-shadow-fieldInitialLight dark:m-shadow-fieldInitialDark\",\n {\n \"hover:m-shadow-fieldHoveredLight dark:hover:m-shadow-fieldHoveredDark\": !disabled,\n \"focus:m-shadow-fieldFocusedLight dark:focus:m-shadow-fieldFocusedDark\": !disabled,\n \"m-shadow-fieldErrorLight dark:m-shadow-fieldErrorDark\": !disabled && hasError,\n \"m-shadow-fieldDisabledLight dark:m-shadow-fieldDisabledDark\": disabled\n },\n \"m-font-sans\",\n \"m-text-gray-700 dark:m-text-white\",\n \"m-placeholder-gray-500 dark:m-placeholder-gray-200\",\n {\n \"m-leading-16 m-text-12\": size === \"small\",\n \"m-leading-20 m-text-14\": size === \"medium\" || size === \"large\",\n \"m-leading-24 m-text-16\": size === \"x-large\"\n }\n );\n const handleOnBlur = (event) => {\n if (onBlur) {\n event.preventDefault();\n onBlur(event);\n }\n };\n const handleOnChange = (event) => {\n if (onChange) {\n event.preventDefault();\n onChange(event);\n }\n };\n const handleOnFocus = (event) => {\n if (onFocus) {\n event.preventDefault();\n onFocus(event);\n }\n };\n return /* @__PURE__ */ jsx78(Box_default, {\n ref,\n as: \"textarea\",\n className: classes,\n name,\n id: name,\n rows,\n placeholder,\n value,\n disabled,\n onBlur: handleOnBlur,\n onChange: handleOnChange,\n onFocus: handleOnFocus,\n position: \"relative\",\n display: \"flex\",\n width: \"full\",\n minHeight: minHeight(size),\n padding: padding(size),\n overflow: { all: \"hidden\" },\n bg: { light: \"white\", dark: \"gray-700\" },\n cursor: disabled ? \"not-allowed\" : \"text\",\n opacity: disabled ? 50 : 100,\n radius: { all: size === \"small\" ? 6 : 8 }\n });\n }\n);\nvar Textarea_default = Textarea;\n\n// src/components/TextInput/TextInput.tsx\nimport React166, { useRef as useRef9 } from \"react\";\nimport { useTextField } from \"react-aria\";\nimport { jsx as jsx79 } from \"react/jsx-runtime\";\nvar TextInput = React166.forwardRef((props, ref) => {\n const { hasError, icon: icon2, prefix, suffix, controlSize, disabled = false } = props;\n const inputRef = useRef9(null);\n const { inputProps } = useTextField({ ...props, isDisabled: disabled }, inputRef);\n return /* @__PURE__ */ jsx79(BaseInput, {\n ref,\n inputRef,\n inputProps,\n hasError,\n disabled,\n icon: icon2,\n prefix,\n suffix,\n controlSize\n });\n});\nvar TextInput_default = TextInput;\n\n// src/components/Toast/Toast.tsx\nimport React167 from \"react\";\nimport { jsx as jsx80, jsxs as jsxs40 } from \"react/jsx-runtime\";\nvar Container11 = styled(\"div\", {\n position: \"relative\",\n hStack: \"$8\",\n width: \"max-content\",\n backgroundColor: \"$$backgroundColor\",\n padding: \"$8 $12\",\n boxShadow: shadows2.overlayLight,\n borderRadius: 100,\n [darkThemeSelector]: {\n boxShadow: shadows2.overlayDark\n },\n \"&:before\": {\n content: \"\",\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 100,\n boxShadow: \"inset 0 0 0 1px $$strokeColor\",\n opacity: 0.5\n },\n variants: {\n variant: {\n alternative: {\n $$backgroundColor: colors[\"blue-50\"],\n $$headingColor: colors[\"blue-800\"],\n $$iconColor: colors[\"blue-700\"],\n $$strokeColor: colors[\"blue-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"blue-900\"],\n $$headingColor: colors[\"blue-50\"],\n $$iconColor: colors[\"blue-100\"],\n $$strokeColor: colors[\"blue-300\"]\n }\n },\n brand: {\n $$backgroundColor: colors[\"brand-50\"],\n $$headingColor: colors[\"brand-800\"],\n $$iconColor: colors[\"brand-700\"],\n $$strokeColor: colors[\"brand-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"brand-900\"],\n $$headingColor: colors[\"brand-50\"],\n $$iconColor: colors[\"brand-100\"],\n $$strokeColor: colors[\"brand-300\"]\n }\n },\n negative: {\n $$backgroundColor: colors[\"red-50\"],\n $$headingColor: colors[\"red-800\"],\n $$iconColor: colors[\"red-700\"],\n $$strokeColor: colors[\"red-600\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"red-900\"],\n $$headingColor: colors[\"red-50\"],\n $$iconColor: colors[\"red-100\"],\n $$strokeColor: colors[\"red-300\"]\n }\n },\n neutral: {\n $$backgroundColor: colors[\"gray-50\"],\n $$headingColor: colors[\"gray-800\"],\n $$iconColor: colors[\"gray-900\"],\n $$strokeColor: colors[\"gray-500\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"gray-700\"],\n $$headingColor: colors[\"gray-50\"],\n $$iconColor: colors[\"gray-100\"],\n $$strokeColor: colors[\"gray-200\"]\n }\n },\n positive: {\n $$backgroundColor: colors[\"green-50\"],\n $$headingColor: colors[\"green-900\"],\n $$iconColor: colors[\"green-800\"],\n $$strokeColor: colors[\"green-700\"],\n [darkThemeSelector]: {\n $$backgroundColor: colors[\"green-900\"],\n $$headingColor: colors[\"green-50\"],\n $$iconColor: colors[\"green-100\"],\n $$strokeColor: colors[\"green-500\"]\n }\n }\n }\n }\n});\nvar StyledIcon10 = styled(Icon_default, {\n color: \"$$iconColor\"\n});\nvar Heading3 = styled(Body2, {\n fontWeight: fontWeights.medium,\n color: \"$$headingColor\"\n});\nvar Toast = React167.forwardRef(\n ({ heading, icon: icon2, variant = \"neutral\", ...props }, forwardedRef) => /* @__PURE__ */ jsxs40(Container11, {\n ...props,\n ref: forwardedRef,\n variant,\n children: [\n isDefined(icon2) && /* @__PURE__ */ jsx80(StyledIcon10, {\n icon: icon2\n }),\n /* @__PURE__ */ jsx80(Heading3, {\n children: heading\n })\n ]\n })\n);\nvar Toast_default = Toast;\n\n// src/components/ToggleInput/ToggleInput.tsx\nvar import_classnames5 = __toESM(require_classnames());\nimport { forwardRef as forwardRef5, useRef as useRef10 } from \"react\";\nimport { useSwitch } from \"react-aria\";\nimport { useToggleState as useToggleState2 } from \"react-stately\";\nimport { jsx as jsx81, jsxs as jsxs41 } from \"react/jsx-runtime\";\nvar ToggleInput = forwardRef5(\n ({ controlSize = \"large\", ...props }, forwardedRef) => {\n const { disabled = false, selected } = props;\n const ariaProps = {\n ...props,\n isSelected: selected,\n isDisabled: disabled\n };\n const ref = useRef10(null);\n const state = useToggleState2(ariaProps);\n const { inputProps } = useSwitch(ariaProps, state, ref);\n const classes = (0, import_classnames5.default)(\"m-group\");\n const switchClasses = (0, import_classnames5.default)(\n `m-transform m-transition m-ease-in-out m-duration-200`,\n {\n \"m-shadow-controlSecondaryInitialLight dark:m-shadow-controlSecondaryInitialDark\": !state.isSelected,\n \"group-hover:m-shadow-controlSecondaryHoveredLight dark:group-hover:m-shadow-controlSecondaryHoveredDark\": !state.isSelected,\n \"group-focus:m-shadow-controlSecondaryFocusedLight dark:group-focus:m-shadow-controlSecondaryFocusedDark\": !state.isSelected,\n \"m-origin-right m-shadow-controlPrimaryInitialLight\": state.isSelected,\n \"group-hover:m-shadow-controlPrimaryHoveredLight dark:group-hover:m-shadow-controlPrimaryHoveredDark\": state.isSelected,\n \"group-focus:m-shadow-controlPrimaryHoveredLight dark:group-focus:m-shadow-controlPrimaryHoveredDark\": state.isSelected\n }\n );\n return /* @__PURE__ */ jsxs41(Box_default, {\n ref: forwardedRef,\n className: classes,\n as: \"label\",\n display: \"inline-flex\",\n align: \"center\",\n width: controlSize === \"small\" ? space(28) : space(32),\n height: controlSize === \"small\" ? space(16) : space(20),\n padding: { x: space(4) },\n bg: {\n light: state.isSelected ? \"brand-600\" : \"gray-100\",\n dark: state.isSelected ? \"brand-600\" : \"gray-600\"\n },\n cursor: \"pointer\",\n radius: { all: \"full\" },\n focus: \"within\",\n role: \"checkbox\",\n \"aria-checked\": state.isSelected,\n children: [\n /* @__PURE__ */ jsx81(VisuallyHidden, {\n children: /* @__PURE__ */ jsx81(\"input\", {\n ...inputProps,\n ref\n })\n }),\n /* @__PURE__ */ jsx81(Box_default, {\n \"aria-hidden\": \"true\",\n display: \"flex\",\n width: controlSize === \"small\" ? space(10) : space(14),\n height: controlSize === \"small\" ? space(10) : space(14),\n bg: { light: \"white\", dark: \"white\" },\n pointerEvents: \"none\",\n radius: { all: \"full\" },\n translateX: state.isSelected ? space(10) : 0,\n className: switchClasses\n })\n ]\n });\n }\n);\nvar ToggleInput_default = ToggleInput;\n\n// src/components/Units/Form/CompositeField.tsx\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useContext as useContext5 } from \"react\";\nimport { mergeProps as mergeProps4, useId as useId2, useLabel as useLabel3 } from \"react-aria\";\n\n// src/components/Units/Form/common/CompositeAria.tsx\nimport { createContext as createContext3 } from \"react\";\nvar CompositeAriaContext = createContext3({});\n\n// src/components/Units/Form/common/ErrorMessageRegistry.tsx\nimport React169, { createContext as createContext4, useCallback, useContext as useContext3, useEffect as useEffect5, useState as useState6 } from \"react\";\n\n// src/components/Units/Form/common/styles.tsx\nvar PrimaryFieldLabel = styled(\"label\", Body2, {\n fontWeight: fontWeights.medium,\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"]\n }\n});\nvar SecondaryFieldLabel = styled(\"label\", ListItemLabel_default, {\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"]\n }\n});\nvar ErrorMessage = styled(\"div\", ListItem_default, {\n position: \"relative\",\n fontSize: \"$14\",\n minHeight: \"unset\",\n lineHeight: \"$20\",\n color: colors[\"red-700\"],\n backgroundColor: colors[\"red-50\"],\n padding: \"$4 $8 $4 $16\",\n boxShadow: shadows2.fenceErrorAllLight,\n zIndex: 1,\n \"&:before\": {\n position: \"absolute\",\n content: '\" \"',\n display: \"block\",\n width: \"$4\",\n left: \"$4\",\n top: \"$4\",\n bottom: \"$4\",\n borderRadius: \"$4\",\n backgroundColor: colors[\"red-600\"]\n },\n [darkThemeSelector]: {\n color: colors[\"red-50\"],\n backgroundColor: colors[\"red-900\"],\n boxShadow: shadows2.fenceErrorAllDark,\n \"&:before\": {\n backgroundColor: colors[\"red-300\"]\n }\n }\n});\nvar FieldDescription = styled(\"div\", Small2, {\n display: \"contents\",\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n }\n});\n\n// src/components/Units/Form/common/ErrorMessageRegistry.tsx\nimport { Fragment as Fragment6, jsx as jsx82 } from \"react/jsx-runtime\";\nvar ErrorMessageRegistryContext = createContext4(null);\nvar useErrorMessages = () => {\n const [messages, setMessages] = useState6({});\n const registerMessage = useCallback(\n (id, message) => {\n setMessages((prev) => ({ ...prev, [id]: message }));\n },\n [setMessages]\n );\n const unregisterMessage = useCallback(\n (id) => {\n setMessages((prev) => ({ ...prev, [id]: void 0 }));\n },\n [setMessages]\n );\n return { messages, registerMessage, unregisterMessage };\n};\nvar ErrorMessageFakePortal = ({\n errorMessage,\n id\n}) => {\n const { registerMessage, unregisterMessage } = useContext3(ErrorMessageRegistryContext);\n useEffect5(() => {\n registerMessage(id, /* @__PURE__ */ jsx82(ErrorMessage, {\n id,\n children: errorMessage\n }));\n return () => unregisterMessage(id);\n }, [id, errorMessage, registerMessage, unregisterMessage]);\n return null;\n};\nvar ErrorMessages = ({ messages }) => /* @__PURE__ */ jsx82(Fragment6, {\n children: Object.values(messages).filter(isDefined).map((message, index) => /* @__PURE__ */ jsx82(React169.Fragment, {\n children: message\n }, index))\n});\n\n// src/components/Units/Form/createCustomFieldPropsProvider.tsx\nimport * as React170 from \"react\";\nimport { useMemo as useMemo3 } from \"react\";\nimport { jsx as jsx83 } from \"react/jsx-runtime\";\nvar CustomFieldPropsContext = React170.createContext({\n inputProps: {},\n fieldProps: {}\n});\nfunction useCustomFieldProps() {\n return React170.useContext(CustomFieldPropsContext);\n}\nfunction createCustomFieldPropsProvider(fn) {\n return function FieldPropsProvider(props) {\n const { inputProps, fieldProps } = fn(props);\n const value = useMemo3(() => ({ inputProps, fieldProps }), [inputProps, fieldProps]);\n return /* @__PURE__ */ jsx83(CustomFieldPropsContext.Provider, {\n value,\n children: props.children\n });\n };\n}\n\n// src/components/Units/Form/CompositeField.tsx\nimport { Fragment as Fragment7, jsx as jsx84, jsxs as jsxs42 } from \"react/jsx-runtime\";\nvar CompositeField = (props) => {\n const { fieldProps: customFieldProps, inputProps: customInputProps } = useCustomFieldProps();\n const {\n label = customFieldProps.label,\n errorMessage = customFieldProps.errorMessage,\n element\n } = props;\n const { labelProps, fieldProps: inputProps } = useLabel3({\n label\n });\n const errorId = useId2();\n const ariaPropsFromContext = useContext5(CompositeAriaContext);\n const ariaProps = errorMessage ? { \"aria-describedby\": errorId } : ariaPropsFromContext;\n return /* @__PURE__ */ jsxs42(Fragment7, {\n children: [\n /* @__PURE__ */ jsx84(VisuallyHidden, {\n as: \"label\",\n ...labelProps,\n children: label\n }),\n /* @__PURE__ */ jsx84(Slot, {\n ...mergeProps4(customInputProps, inputProps, ariaProps),\n children: element\n }),\n errorMessage && /* @__PURE__ */ jsx84(ErrorMessageFakePortal, {\n id: errorId,\n errorMessage\n })\n ]\n });\n};\n\n// src/components/Units/Form/FieldContainer.tsx\nimport React172 from \"react\";\nimport { jsx as jsx85 } from \"react/jsx-runtime\";\nvar Base4 = styled(\"div\", List_default);\nvar FieldContainerContext = React172.createContext(false);\nfunction useFieldContainerContext() {\n return React172.useContext(FieldContainerContext);\n}\nvar FieldContainer = React172.forwardRef((props, ref) => /* @__PURE__ */ jsx85(FieldContainerContext.Provider, {\n value: true,\n children: /* @__PURE__ */ jsx85(Base4, {\n ...props,\n ref\n })\n}));\nvar MaybeFieldContainer = ({ children }) => {\n const isInsideFieldContainer = useFieldContainerContext();\n const WrapperEl = isInsideFieldContainer ? React172.Fragment : FieldContainer;\n return /* @__PURE__ */ jsx85(WrapperEl, {\n children\n });\n};\n\n// src/components/Units/Form/MinimalCheckboxField.tsx\nimport { mergeProps as mergeProps5, useField } from \"react-aria\";\nimport { jsx as jsx86, jsxs as jsxs43 } from \"react/jsx-runtime\";\nvar Container12 = styled(\"div\", {\n display: \"grid\",\n gap: 0,\n columnGap: \"$8\",\n alignItems: \"stretch\",\n gridTemplateColumns: \"min-content auto\",\n gridTemplateRows: \"fit-content fit-content\",\n gridTemplateAreas: '\"control label\" \"none help-text\"'\n});\nvar Control = styled(\"div\", {\n gridArea: \"control\",\n display: \"flex\",\n alignItems: \"center\"\n});\nvar Label5 = styled(\"div\", {\n gridArea: \"label\",\n vStack: 0,\n width: \"100%\",\n alignItems: \"stretch\"\n});\nvar HelpText = styled(\"div\", {\n gridArea: \"help-text\",\n vStack: 0,\n alignItems: \"stretch\"\n});\nvar ErrorText = styled(\"div\", Small2, {\n color: colors[\"red-700\"],\n [darkThemeSelector]: {\n color: colors[\"red-200\"]\n }\n});\nvar MinimalCheckboxField = (props) => {\n const { fieldProps: customFieldProps, inputProps: customInputProps } = useCustomFieldProps();\n const {\n label = customFieldProps.label,\n errorMessage = customFieldProps.errorMessage,\n description,\n ...extraInputProps\n } = props;\n const {\n labelProps,\n fieldProps: inputProps,\n descriptionProps,\n errorMessageProps\n } = useField({\n label,\n description,\n errorMessage\n });\n return /* @__PURE__ */ jsxs43(Container12, {\n children: [\n /* @__PURE__ */ jsx86(Control, {\n children: /* @__PURE__ */ jsx86(CheckboxInput_default, {\n ...mergeProps5(customInputProps, inputProps, extraInputProps)\n })\n }),\n /* @__PURE__ */ jsx86(Label5, {\n children: /* @__PURE__ */ jsx86(PrimaryFieldLabel, {\n ...labelProps,\n children: label\n })\n }),\n (isDefined(description) || isDefined(errorMessage)) && /* @__PURE__ */ jsxs43(HelpText, {\n children: [\n /* @__PURE__ */ jsx86(FieldDescription, {\n ...descriptionProps,\n children: description\n }),\n errorMessage && /* @__PURE__ */ jsx86(ErrorText, {\n ...errorMessageProps,\n children: errorMessage\n })\n ]\n })\n ]\n });\n};\n\n// src/components/Units/Form/PrimaryField.tsx\nimport { Slot as Slot2 } from \"@radix-ui/react-slot\";\nimport { mergeProps as mergeProps6, useField as useField2 } from \"react-aria\";\n\n// src/components/Units/Form/common/FieldCompositeProvider.tsx\nimport { useMemo as useMemo4 } from \"react\";\nimport { jsx as jsx87 } from \"react/jsx-runtime\";\nvar FieldCompositeProvider = ({\n children,\n registerMessage,\n unregisterMessage,\n describedBy\n}) => {\n const describedByPropsValue = useMemo4(() => ({ \"aria-describedby\": describedBy }), [describedBy]);\n const registryValue = useMemo4(\n () => ({ registerMessage, unregisterMessage }),\n [registerMessage, unregisterMessage]\n );\n return /* @__PURE__ */ jsx87(CompositeAriaContext.Provider, {\n value: describedByPropsValue,\n children: /* @__PURE__ */ jsx87(ErrorMessageRegistryContext.Provider, {\n value: registryValue,\n children\n })\n });\n};\n\n// src/components/Units/Form/common/useDescriptionAndErrorIds.ts\nimport { useId as useId3 } from \"react-aria\";\nvar useDescriptionAndErrorIds = (errorMessage, description) => {\n const descriptionId = useId3();\n const errorMessageId = useId3();\n const describedBy = [\n isDefined(errorMessage) ? errorMessageId : null,\n isDefined(description) ? descriptionId : null\n ].filter(isDefined).join(\" \");\n return { descriptionId, errorMessageId, describedBy };\n};\n\n// src/components/Units/Form/PrimaryField.tsx\nimport { jsx as jsx88, jsxs as jsxs44 } from \"react/jsx-runtime\";\nvar Container13 = styled(ListItem_default, {\n vStack: \"$8\",\n alignItems: \"stretch\",\n display: \"flex\",\n paddingY: \"$12\"\n});\nvar Label6 = styled(\"div\", {\n hStack: \"$12\"\n});\nvar Controls = styled(\"div\", {\n hStack: \"$8\",\n marginLeft: \"auto\"\n});\nvar PrimaryField = (props) => {\n const { fieldProps: customFieldProps, inputProps: customInputProps } = useCustomFieldProps();\n const {\n label = customFieldProps.label,\n description = customFieldProps.description,\n errorMessage = customFieldProps.errorMessage,\n controls,\n element\n } = props;\n const {\n labelProps,\n fieldProps: inputProps,\n descriptionProps,\n errorMessageProps\n } = useField2({\n label,\n description,\n errorMessage\n });\n return /* @__PURE__ */ jsxs44(MaybeFieldContainer, {\n children: [\n /* @__PURE__ */ jsxs44(Container13, {\n children: [\n /* @__PURE__ */ jsxs44(Label6, {\n children: [\n /* @__PURE__ */ jsx88(PrimaryFieldLabel, {\n ...labelProps,\n children: label\n }),\n controls && /* @__PURE__ */ jsx88(Controls, {\n children: /* @__PURE__ */ jsx88(ControlSizeProvider, {\n value: \"small\",\n children: controls\n })\n })\n ]\n }),\n /* @__PURE__ */ jsx88(ControlSizeProvider, {\n value: \"large\",\n children: /* @__PURE__ */ jsx88(Slot2, {\n ...mergeProps6(customInputProps, inputProps),\n children: element\n })\n }),\n description && /* @__PURE__ */ jsx88(FieldDescription, {\n ...descriptionProps,\n children: description\n })\n ]\n }),\n errorMessage && /* @__PURE__ */ jsx88(ErrorMessage, {\n ...errorMessageProps,\n children: errorMessage\n })\n ]\n });\n};\nvar PrimaryFieldComposite = ({\n label,\n controls,\n fields,\n errorMessage,\n description\n}) => {\n const { messages, registerMessage, unregisterMessage } = useErrorMessages();\n const { descriptionId, errorMessageId, describedBy } = useDescriptionAndErrorIds(\n errorMessage,\n description\n );\n return /* @__PURE__ */ jsx88(FieldCompositeProvider, {\n registerMessage,\n unregisterMessage,\n describedBy,\n children: /* @__PURE__ */ jsxs44(MaybeFieldContainer, {\n children: [\n /* @__PURE__ */ jsxs44(Container13, {\n children: [\n /* @__PURE__ */ jsxs44(Label6, {\n children: [\n /* @__PURE__ */ jsx88(PrimaryFieldLabel, {\n children: label\n }),\n controls && /* @__PURE__ */ jsx88(ControlSizeProvider, {\n value: \"small\",\n children: /* @__PURE__ */ jsx88(Controls, {\n children: controls\n })\n })\n ]\n }),\n /* @__PURE__ */ jsx88(ControlSizeProvider, {\n value: \"large\",\n children: fields\n }),\n description && /* @__PURE__ */ jsx88(FieldDescription, {\n id: descriptionId,\n children: description\n })\n ]\n }),\n /* @__PURE__ */ jsx88(ErrorMessages, {\n messages\n }),\n errorMessage && /* @__PURE__ */ jsx88(ErrorMessage, {\n id: errorMessageId,\n children: errorMessage\n })\n ]\n })\n });\n};\n\n// src/components/Units/Form/PrimaryToggleField.tsx\nimport { mergeProps as mergeProps7, useField as useField3 } from \"react-aria\";\nimport { jsx as jsx89, jsxs as jsxs45 } from \"react/jsx-runtime\";\nvar Container14 = styled(ListItem_default, {\n display: \"grid\",\n paddingY: \"$12\",\n gap: 0,\n columnGap: \"$8\",\n gridTemplateColumns: \"min-content auto\",\n gridTemplateRows: \"fit-content fit-content fit-content\",\n gridTemplateAreas: '\"control label\" \"none help-text\" \"none sub-fields\"'\n});\nvar Control2 = styled(\"div\", {\n display: \"flex\",\n gridArea: \"control\"\n});\nvar Label7 = styled(\"div\", {\n vStack: 0,\n width: \"100%\",\n alignItems: \"stretch\",\n gridArea: \"label\"\n});\nvar HelpText2 = styled(\"div\", {\n gridArea: \"help-text\",\n vStack: 0,\n alignItems: \"stretch\"\n});\nvar SubFieldsContainer = styled(\"div\", {\n gridArea: \"sub-fields\",\n marginTop: \"$8\",\n vStack: \"$8\",\n alignItems: \"stretch\",\n width: \"100%\"\n});\nvar PrimaryToggleField = (props) => {\n const { fieldProps: customFieldProps, inputProps: customInputProps } = useCustomFieldProps();\n const {\n label = customFieldProps.label,\n errorMessage = customFieldProps.errorMessage,\n description,\n subFields,\n ...extraInputProps\n } = props;\n const {\n labelProps,\n fieldProps: inputProps,\n descriptionProps,\n errorMessageProps\n } = useField3({\n label,\n description,\n errorMessage\n });\n return /* @__PURE__ */ jsxs45(MaybeFieldContainer, {\n children: [\n /* @__PURE__ */ jsxs45(Container14, {\n children: [\n /* @__PURE__ */ jsx89(Control2, {\n children: /* @__PURE__ */ jsx89(ToggleInput_default, {\n controlSize: \"small\",\n ...mergeProps7(customInputProps, inputProps, extraInputProps)\n })\n }),\n /* @__PURE__ */ jsx89(Label7, {\n children: /* @__PURE__ */ jsx89(PrimaryFieldLabel, {\n ...labelProps,\n children: label\n })\n }),\n /* @__PURE__ */ jsx89(HelpText2, {\n children: description && /* @__PURE__ */ jsx89(FieldDescription, {\n ...descriptionProps,\n children: description\n })\n }),\n subFields && /* @__PURE__ */ jsx89(SubFieldsContainer, {\n children: subFields\n })\n ]\n }),\n errorMessage && /* @__PURE__ */ jsx89(ErrorMessage, {\n ...errorMessageProps,\n children: errorMessage\n })\n ]\n });\n};\n\n// src/components/Units/Form/SecondaryField.tsx\nimport { Slot as Slot3 } from \"@radix-ui/react-slot\";\nimport { mergeProps as mergeProps8, useField as useField4 } from \"react-aria\";\nimport { jsx as jsx90, jsxs as jsxs46 } from \"react/jsx-runtime\";\nvar Container15 = styled(ListItemPair_default, {});\nvar Label8 = styled(\"div\", {\n vStack: 0,\n alignItems: \"start\"\n});\nvar Control3 = styled(\"div\", ListItemValue_default, {\n hStack: \"$8\"\n});\nvar SecondaryField = (props) => {\n const { fieldProps: customFieldProps, inputProps: customInputProps } = useCustomFieldProps();\n const {\n label = customFieldProps.label,\n description = customFieldProps.description,\n errorMessage = customFieldProps.errorMessage,\n element\n } = props;\n const {\n labelProps,\n fieldProps: inputProps,\n descriptionProps,\n errorMessageProps\n } = useField4({\n label,\n description,\n errorMessage\n });\n return /* @__PURE__ */ jsxs46(MaybeFieldContainer, {\n children: [\n /* @__PURE__ */ jsxs46(Container15, {\n children: [\n /* @__PURE__ */ jsxs46(Label8, {\n children: [\n /* @__PURE__ */ jsx90(SecondaryFieldLabel, {\n ...labelProps,\n children: label\n }),\n description && /* @__PURE__ */ jsx90(FieldDescription, {\n ...descriptionProps,\n children: description\n })\n ]\n }),\n /* @__PURE__ */ jsx90(Control3, {\n children: /* @__PURE__ */ jsx90(ControlSizeProvider, {\n value: \"small\",\n children: /* @__PURE__ */ jsx90(Slot3, {\n ...mergeProps8(inputProps, customInputProps),\n children: element\n })\n })\n })\n ]\n }),\n errorMessage && /* @__PURE__ */ jsx90(ErrorMessage, {\n ...errorMessageProps,\n children: errorMessage\n })\n ]\n });\n};\nvar SecondaryFieldComposite = ({\n label,\n fields,\n errorMessage,\n description\n}) => {\n const { messages, registerMessage, unregisterMessage } = useErrorMessages();\n const { descriptionId, errorMessageId, describedBy } = useDescriptionAndErrorIds(\n errorMessage,\n description\n );\n return /* @__PURE__ */ jsxs46(FieldCompositeProvider, {\n registerMessage,\n unregisterMessage,\n describedBy,\n children: [\n /* @__PURE__ */ jsxs46(Container15, {\n children: [\n /* @__PURE__ */ jsxs46(Label8, {\n children: [\n /* @__PURE__ */ jsx90(SecondaryFieldLabel, {\n children: label\n }),\n description && /* @__PURE__ */ jsx90(FieldDescription, {\n id: descriptionId,\n children: description\n })\n ]\n }),\n /* @__PURE__ */ jsx90(Control3, {\n children: /* @__PURE__ */ jsx90(ControlSizeProvider, {\n value: \"small\",\n children: fields\n })\n })\n ]\n }),\n /* @__PURE__ */ jsx90(ErrorMessages, {\n messages\n }),\n errorMessage && /* @__PURE__ */ jsx90(ErrorMessage, {\n id: errorMessageId,\n children: errorMessage\n })\n ]\n });\n};\n\n// src/formatting/Capsule/atoms/CapsuleContainer.tsx\nimport React174 from \"react\";\nimport { jsx as jsx91, jsxs as jsxs47 } from \"react/jsx-runtime\";\nvar CapsuleContainerBox = styled(\"div\", {\n cursor: \"pointer\",\n $$iconColor: colors[\"gray-400\"],\n $$suppliedIconOpacity: 0,\n $$clickedIconOpacity: 0,\n flex: \"0 0 auto\",\n hStack: \"$6\",\n display: \"inline-flex\",\n borderRadius: \"$4\",\n padding: \"0 $6\",\n transition: \"all 50ms ease-out\",\n width: \"fit-content\",\n \"&:hover\": {\n boxShadow: shadows2.fenceAllLight\n },\n \"&:focus\": {\n boxShadow: shadows2.fenceFocusedLight,\n outline: \"none\"\n },\n [darkThemeSelector]: {\n \"&:hover\": {\n boxShadow: shadows2.fenceAllDark\n },\n \"&:focus, &:focus-within\": {\n boxShadow: shadows2.fenceFocusedDark\n }\n },\n variants: {\n arrangement: {\n \"leading-icon\": {\n marginRight: \"-6px\",\n flexDirection: \"row-reverse\"\n },\n \"leading-label\": {\n marginLeft: \"-6px\",\n flexDirection: \"row\"\n }\n },\n isClicked: {\n true: {\n $$suppliedIconOpacity: 0,\n $$clickedIconOpacity: 1,\n $$iconColor: colors[\"brand-400\"],\n color: colors[\"brand-700\"],\n backgroundColor: colors[\"brand-50\"],\n \"&, &:hover, &:focus\": {\n boxShadow: shadows2.fenceActiveAllLight\n },\n [darkThemeSelector]: {\n $$iconColor: colors[\"brand-300\"],\n color: colors[\"brand-50\"],\n backgroundColor: colors[\"brand-900\"],\n \"&, &:hover, &:focus\": {\n boxShadow: shadows2.fenceActiveAllDark\n }\n }\n },\n false: {\n \"&:hover, &:focus\": {\n $$suppliedIconOpacity: 1\n },\n [darkThemeSelector]: {\n $$iconColor: colors[\"gray-200\"],\n \"&:focus, &:focus-within\": {\n $$suppliedIconOpacity: 1\n }\n }\n }\n }\n }\n});\nvar IconContainer = styled(\"div\", {\n position: \"relative\",\n display: \"inline-flex\"\n});\nvar StyledIcon11 = styled(Icon_default, {\n opacity: \"$$suppliedIconOpacity\",\n color: \"$$iconColor\",\n width: \"$12\",\n height: \"$12\",\n willChange: \"opacity, color\",\n transition: \"all 50ms ease-out\",\n [darkThemeSelector]: {\n color: \"$$iconColor\"\n }\n});\nvar ClickedCheckmarkIcon = styled(StyledIcon11, {\n opacity: \"$$clickedIconOpacity\",\n position: \"absolute\",\n inset: 0\n});\nvar CapsuleContainer = React174.forwardRef(\n ({ arrangement = \"leading-label\", isClicked, children, icon: icon2, ...props }, ref) => /* @__PURE__ */ jsxs47(CapsuleContainerBox, {\n ...props,\n role: \"button\",\n ref,\n arrangement,\n isClicked,\n children: [\n children,\n /* @__PURE__ */ jsxs47(IconContainer, {\n children: [\n /* @__PURE__ */ jsx91(StyledIcon11, {\n icon: icon2\n }),\n /* @__PURE__ */ jsx91(ClickedCheckmarkIcon, {\n icon: \"checkmarkCircle\"\n })\n ]\n })\n ]\n })\n);\nvar CapsuleContainer_default = CapsuleContainer;\n\n// src/formatting/Capsule/atoms/CapsuleTooltip.tsx\nvar CapsuleTooltip = styled(\"div\", Small2, {\n display: \"flex\",\n width: \"fit-content\",\n backgroundColor: colors.white,\n boxShadow: shadows2.modalLight,\n borderRadius: \"$6\",\n paddingX: \"$4\",\n color: colors[\"brand-600\"],\n [darkThemeSelector]: {\n color: colors[\"brand-100\"],\n backgroundColor: colors[\"gray-700\"],\n boxShadow: shadows2.modalDark\n },\n \"@media (prefers-reduced-motion: no-preference)\": {\n animationDuration: \"150ms\",\n animationTimingFunction: \"ease-out\",\n animationFillMode: \"forwards\",\n willChange: \"transform, opacity\",\n '&[data-state=\"instant-open\"], &[data-state=\"delayed-open\"]': {\n '&[data-side=\"top\"]': { animationName: slideUpAndFade },\n '&[data-side=\"right\"]': { animationName: slideLeftAndFade },\n '&[data-side=\"bottom\"]': { animationName: slideDownAndFade },\n '&[data-side=\"left\"]': { animationName: slideRightAndFade }\n }\n }\n});\nvar CapsuleTooltip_default = CapsuleTooltip;\n\n// src/formatting/Capsule/CopyCapsule.tsx\nimport * as Tooltip from \"@radix-ui/react-tooltip\";\nimport { useCallback as useCallback3 } from \"react\";\n\n// src/utilities/clipboard.ts\nvar copyTextToClipboard = async (text) => {\n if (\"clipboard\" in navigator) {\n await navigator.clipboard.writeText(text);\n } else {\n document.execCommand(\"copy\", true, text);\n }\n};\n\n// src/utilities/defer.ts\nvar defer = (timeout) => new Promise((resolve2) => {\n setTimeout(resolve2, timeout);\n});\n\n// src/utilities/useTimedToggle.ts\nimport { useCallback as useCallback2, useEffect as useEffect6, useRef as useRef11, useState as useState7 } from \"react\";\nvar useTimedToggle = (timeoutMS = 1e3) => {\n const timerRef = useRef11(null);\n const [startTime, setStartTime] = useState7(null);\n useEffect6(() => {\n const startOrStop = () => {\n if (startTime != null) {\n const delta = Date.now() - startTime;\n if (delta >= timeoutMS) {\n setStartTime(null);\n } else {\n timerRef.current = setTimeout(startOrStop, delta);\n }\n }\n };\n startOrStop();\n return () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n }, [startTime, timeoutMS]);\n const show = useCallback2(() => {\n setStartTime(Date.now());\n }, [setStartTime]);\n const hide = useCallback2(() => {\n setStartTime(null);\n }, [setStartTime]);\n const toggle = () => setStartTime((prev) => prev ? null : Date.now());\n return {\n value: startTime != null,\n timeout: timeoutMS,\n show,\n hide,\n toggle\n };\n};\nvar useTimedToggleWithProgress = (timeoutMS = 1e3) => {\n const frameRef = useRef11(null);\n const [startTime, setStartTime] = useState7(null);\n const [timeElapsed, setTimeElapsed] = useState7(null);\n useEffect6(() => {\n const handleFrame = () => {\n if (startTime != null) {\n const delta = Date.now() - startTime;\n setTimeElapsed(delta);\n if (delta >= timeoutMS) {\n setStartTime(null);\n setTimeElapsed(null);\n } else {\n frameRef.current = requestAnimationFrame(handleFrame);\n }\n }\n };\n frameRef.current = requestAnimationFrame(handleFrame);\n return () => {\n if (frameRef.current) {\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n }\n };\n }, [startTime, setTimeElapsed, timeoutMS]);\n const show = useCallback2(() => {\n setStartTime(Date.now());\n }, [setStartTime]);\n const hide = useCallback2(() => {\n setStartTime(null);\n }, [setStartTime]);\n const toggle = () => setStartTime((prev) => prev ? null : Date.now());\n return {\n value: startTime != null,\n timeElapsed,\n timeRemaining: timeElapsed != null ? timeoutMS - timeElapsed : 0,\n timeout: timeoutMS,\n progress: timeElapsed != null ? timeElapsed / timeoutMS : 0,\n show,\n hide,\n toggle\n };\n};\n\n// src/formatting/Capsule/CopyCapsule.tsx\nimport { jsx as jsx92, jsxs as jsxs48 } from \"react/jsx-runtime\";\nvar CopyCapsule = ({\n arrangement,\n children,\n tooltip = \"Copied!\",\n textValue,\n ...props\n}) => {\n const { value: isClicked, hide, show } = useTimedToggle();\n const handleClick = useCallback3(\n async (e) => {\n e.stopPropagation();\n e.preventDefault();\n await copyTextToClipboard(textValue);\n hide();\n await defer(50);\n show();\n },\n [textValue, hide, show]\n );\n return /* @__PURE__ */ jsx92(Tooltip.Provider, {\n children: /* @__PURE__ */ jsxs48(Tooltip.Root, {\n open: isClicked,\n children: [\n /* @__PURE__ */ jsx92(Tooltip.Trigger, {\n asChild: true,\n children: /* @__PURE__ */ jsx92(CapsuleContainer_default, {\n \"aria-label\": props[\"aria-label\"],\n arrangement,\n icon: \"copy\",\n onClick: handleClick,\n isClicked,\n children\n })\n }),\n /* @__PURE__ */ jsx92(Tooltip.Content, {\n side: \"top\",\n sideOffset: -2,\n asChild: true,\n children: /* @__PURE__ */ jsx92(CapsuleTooltip_default, {\n children: tooltip\n })\n })\n ]\n })\n });\n};\nvar CopyCapsule_default = CopyCapsule;\n\n// src/formatting/FormattedMoney/FormattedMoney.tsx\nimport { Fragment as Fragment8, jsx as jsx93 } from \"react/jsx-runtime\";\nvar formatMoney = ({ amount, hideCentsIfZero = true }) => {\n const hasCents = amount % 1 !== 0;\n const fractionDigits = !hasCents && hideCentsIfZero ? 0 : 2;\n const formatter = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits: fractionDigits,\n maximumFractionDigits: fractionDigits\n });\n return formatter.format(amount);\n};\nvar FormattedMoney = ({\n amount,\n hideCentsIfZero = true\n}) => /* @__PURE__ */ jsx93(Fragment8, {\n children: formatMoney({ amount, hideCentsIfZero })\n});\nvar FormattedMoney_default = FormattedMoney;\n\n// src/global.ts\nvar injectGlobalMetricStyles = globalCss({\n body: {\n fontSize: 16,\n fontFamily: fonts.sans,\n fontWeight: fontWeights.regular,\n background: colors.white,\n color: colors[\"gray-600\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"],\n background: colors[\"gray-800\"]\n },\n \"@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 13/10), only screen and (min-resolution: 120dpi)\": {\n \"-webkit-font-smoothing\": \"antialiased\",\n \"-moz-osx-font-smoothing\": \"grayscale\"\n }\n }\n});\n\n// src/layouts/CaptivePageLayout/CaptivePageLayout.tsx\nimport { jsx as jsx94, jsxs as jsxs49 } from \"react/jsx-runtime\";\nvar Box2 = styled(\"div\");\nvar CaptivePageLayout = ({\n content,\n sideContent,\n footer\n}) => /* @__PURE__ */ jsxs49(Box2, {\n css: { display: \"grid\", minHeight: \"100vh\", \"@lg\": { gridTemplateColumns: \"1fr 1fr\" } },\n children: [\n /* @__PURE__ */ jsxs49(Box2, {\n css: {\n display: \"grid\",\n gridTemplateRows: \"auto min-content\",\n backgroundColor: \"white\",\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-800\"]\n }\n },\n children: [\n /* @__PURE__ */ jsx94(Box2, {\n css: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n children: /* @__PURE__ */ jsx94(Box2, {\n css: {\n width: \"100%\",\n maxWidth: 536,\n padding: \"$32 $80\"\n },\n children: content\n })\n }),\n /* @__PURE__ */ jsx94(Box2, {\n css: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\"\n },\n children: /* @__PURE__ */ jsx94(Box2, {\n css: { width: \"100%\", maxWidth: 536, padding: \"$32 $80\" },\n children: footer\n })\n })\n ]\n }),\n /* @__PURE__ */ jsx94(Box2, {\n css: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n background: colors.captiveChecker,\n [darkThemeSelector]: {\n background: colors.captiveCheckerDark\n }\n },\n children: sideContent\n })\n ]\n});\nvar CaptivePageLayout_default = CaptivePageLayout;\n\n// src/text/BodyMono.tsx\nimport { jsx as jsx95 } from \"react/jsx-runtime\";\nvar BodyMono = ({\n children,\n color: color2 = {\n light: \"gray-600\",\n dark: \"gray-200\"\n },\n weight = \"regular\",\n ...remaining\n}) => /* @__PURE__ */ jsx95(Text_default, {\n ...remaining,\n color: { light: color2.light, dark: color2.dark },\n family: \"monospace\",\n lineHeight: 20,\n size: 13,\n weight,\n children\n});\nvar BodyMono2 = styled(\"span\", Text2, {\n fontFamily: fonts.mono,\n fontWeight: fontWeights.regular,\n fontSize: \"$13\",\n lineHeight: \"$20\"\n});\nvar BodyMono_default = BodyMono;\n\n// src/text/Heading.tsx\nimport { jsx as jsx96 } from \"react/jsx-runtime\";\nvar Heading4 = ({\n as,\n children,\n color: color2 = {\n light: \"gray-800\",\n dark: \"white\"\n },\n family = \"regular\",\n weight = \"medium\",\n ...remaining\n}) => /* @__PURE__ */ jsx96(Text_default, {\n ...remaining,\n as: as ?? \"h2\",\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 28,\n size: 20,\n weight,\n children\n});\nvar Heading22 = styled(\"h2\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.medium,\n fontSize: \"$20\",\n lineHeight: \"$28\",\n color: colors[\"gray-800\"],\n [darkThemeSelector]: {\n color: colors.white\n }\n});\nvar Heading_default = Heading4;\n\n// src/text/SmallMono.tsx\nimport { jsx as jsx97 } from \"react/jsx-runtime\";\nvar SmallMono = ({\n children,\n color: color2 = {\n light: \"gray-600\",\n dark: \"gray-200\"\n },\n weight = \"regular\",\n ...remaining\n}) => /* @__PURE__ */ jsx97(Text_default, {\n ...remaining,\n color: { light: color2.light, dark: color2.dark },\n family: \"monospace\",\n lineHeight: 16,\n size: 11,\n weight,\n children\n});\nvar SmallMono2 = styled(\"span\", Text2, {\n fontFamily: fonts.mono,\n fontWeight: fontWeights.regular,\n fontSize: \"$11\",\n lineHeight: \"$16\"\n});\nvar SmallMono_default = SmallMono;\n\n// src/text/Subheading.tsx\nimport { jsx as jsx98 } from \"react/jsx-runtime\";\nvar Subheading = ({\n as,\n children,\n color: color2 = {\n light: \"gray-800\",\n dark: \"white\"\n },\n family = \"regular\",\n weight = \"medium\",\n ...remaining\n}) => /* @__PURE__ */ jsx98(Text_default, {\n ...remaining,\n as: as || \"h3\",\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 24,\n size: 16,\n weight,\n children\n});\nvar Subheading2 = styled(\"h3\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.medium,\n fontSize: \"$16\",\n lineHeight: \"$24\"\n});\nvar Subheading_default = Subheading;\n\n// src/text/Title.tsx\nimport { jsx as jsx99 } from \"react/jsx-runtime\";\nvar Title = ({\n as,\n children,\n color: color2 = {\n light: \"gray-800\",\n dark: \"white\"\n },\n family = \"regular\",\n weight = \"medium\",\n ...remaining\n}) => /* @__PURE__ */ jsx99(Text_default, {\n ...remaining,\n as: as ?? \"h1\",\n color: { light: color2.light, dark: color2.dark },\n family,\n lineHeight: 32,\n size: 24,\n weight,\n children\n});\nvar Title2 = styled(\"h1\", Text2, {\n fontFamily: fonts.sans,\n fontWeight: fontWeights.medium,\n fontSize: \"$24\",\n lineHeight: \"$32\"\n});\nvar Title_default = Title;\n\n// src/ui/DesktopSidebar/DesktopSidebar.tsx\nimport { jsx as jsx100 } from \"react/jsx-runtime\";\nvar Container16 = styled(\"div\", {\n position: \"relative\",\n overflowY: \"auto\",\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n boxShadow: shadows2.fenceRightLight,\n background: colors.white,\n [darkThemeSelector]: {\n boxShadow: shadows2.fenceRightDark,\n background: colors[\"gray-800\"]\n }\n});\nvar DesktopSidebar = ({ children }) => /* @__PURE__ */ jsx100(Container16, {\n children\n});\nvar DesktopSidebar_default = DesktopSidebar;\n\n// src/ui/Sidebars/SidebarGroup.tsx\nvar SidebarGroup = styled(\"div\", {\n vStack: \"$4\",\n alignItems: \"stretch\",\n padding: \"14px $12\"\n});\nvar SidebarGroup_default = SidebarGroup;\n\n// src/ui/DesktopSidebar/DesktopSidebarLocationControlGroup.tsx\nimport { jsx as jsx101 } from \"react/jsx-runtime\";\nvar Container17 = styled(SidebarGroup_default, {\n height: \"$56\",\n justifyContent: \"center\",\n flexShrink: 0\n});\nvar DesktopSidebarLocationControlGroup = ({\n children\n}) => /* @__PURE__ */ jsx101(Container17, {\n children\n});\nvar DesktopSidebarLocationControlGroup_default = DesktopSidebarLocationControlGroup;\n\n// src/ui/DesktopSidebar/DesktopSidebarNavItem.tsx\nimport React177 from \"react\";\n\n// src/ui/Sidebars/SidebarNavItem.tsx\nimport React176 from \"react\";\n\n// src/ui/Sidebars/SidebarFormFactorContext.tsx\nimport { createContext as createContext6, useContext as useContext6 } from \"react\";\nvar SidebarFormFactorContext = createContext6(\"desktop\");\nvar useSidebarFormFactor = () => useContext6(SidebarFormFactorContext);\n\n// src/ui/Sidebars/SidebarNavItem.tsx\nimport { jsx as jsx102, jsxs as jsxs50 } from \"react/jsx-runtime\";\nvar Container18 = styled(\"a\", FocusRingSelf, {\n hStack: \"$8\",\n width: \"100%\",\n borderRadius: \"$8\",\n $$labelColor: colors[\"gray-600\"],\n $$iconColor: colors[\"gray-500\"],\n [darkThemeSelector]: {\n $$labelColor: colors[\"gray-50\"],\n $$iconColor: colors[\"gray-100\"]\n },\n \"&:hover\": {\n backgroundColor: colors[\"gray-50\"],\n $$labelColor: colors[\"gray-700\"],\n $$iconColor: colors[\"gray-600\"],\n [darkThemeSelector]: {\n backgroundColor: colors[\"gray-700\"],\n $$labelColor: colors.white,\n $$iconColor: colors[\"gray-50\"]\n }\n },\n variants: {\n isSelected: {\n true: {\n \"&, &:hover\": {\n $$labelColor: colors[\"brand-800\"],\n $$iconColor: colors[\"brand-700\"],\n backgroundColor: colors[\"brand-50\"]\n }\n },\n false: {}\n },\n size: {\n medium: {\n padding: \"$4 $8\"\n },\n large: {\n padding: \"$8 $12\"\n }\n }\n },\n defaultVariants: {\n size: \"medium\"\n }\n});\nvar StyledIcon12 = styled(Icon, {\n color: \"$$iconColor\"\n});\nvar Label9 = styled(Body2, {\n fontWeight: fontWeights.medium,\n color: \"$$labelColor\",\n [darkThemeSelector]: {\n color: \"$$labelColor\"\n }\n});\nvar SidebarNavItem = React176.forwardRef(\n ({\n as = \"a\",\n size,\n label,\n icon: icon2,\n isSelected,\n ...props\n }, forwardedRef) => {\n const formFactor = useSidebarFormFactor();\n const defaultedSize = size ?? (formFactor === \"mobile\" ? \"large\" : \"medium\");\n return /* @__PURE__ */ jsxs50(Container18, {\n as,\n ref: forwardedRef,\n ...props,\n isSelected,\n size: defaultedSize,\n children: [\n icon2 && /* @__PURE__ */ jsx102(StyledIcon12, {\n icon: icon2\n }),\n /* @__PURE__ */ jsx102(Label9, {\n children: label\n })\n ]\n });\n }\n);\n\n// src/ui/DesktopSidebar/DesktopSidebarNavItem.tsx\nimport { jsx as jsx103 } from \"react/jsx-runtime\";\nvar DesktopSidebarNavItem = React177.forwardRef(\n ({ size = \"medium\", ...props }, forwardedRef) => /* @__PURE__ */ jsx103(SidebarNavItem, {\n ref: forwardedRef,\n size,\n ...props\n })\n);\nvar DesktopSidebarNavItem_default = DesktopSidebarNavItem;\n\n// src/ui/Header/Header.tsx\nimport { jsx as jsx104, jsxs as jsxs51 } from \"react/jsx-runtime\";\nvar Container19 = styled(\"div\", {\n display: \"grid\",\n gridTemplateColumns: \"minmax(min-content, 1fr) min-content minmax(min-content, 1fr)\",\n alignItems: \"center\",\n gap: \"$8\",\n height: \"$40\",\n paddingX: \"$12\",\n boxShadow: shadows2.fenceBottomLight,\n background: colors.white,\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fenceBottomDark\n }\n});\nvar NavigationContainer = styled(\"div\", { hStack: \"$2\" });\nvar ControlsContainer = styled(\"div\", { hStack: \"$8\", justifyContent: \"end\" });\nvar Header2 = ({ controls, logo, navigation }) => /* @__PURE__ */ jsxs51(Container19, {\n children: [\n /* @__PURE__ */ jsx104(NavigationContainer, {\n children: navigation\n }),\n /* @__PURE__ */ jsx104(\"div\", {\n children: logo\n }),\n /* @__PURE__ */ jsx104(ControlsContainer, {\n children: controls\n })\n ]\n});\nvar Header_default = Header2;\n\n// src/ui/Header/HeaderLogo.tsx\nimport { jsx as jsx105, jsxs as jsxs52 } from \"react/jsx-runtime\";\nvar Container20 = styled(\"div\", {\n display: \"inline-block\",\n padding: \"$4 $8\",\n cursor: \"pointer\",\n borderRadius: \"$8\",\n transition: \"all 150ms ease-out\",\n \"&:hover\": {\n backgroundColor: colors[\"gray-50\"]\n },\n [darkThemeSelector]: {\n \"&:hover\": {\n backgroundColor: colors[\"gray-900\"]\n }\n }\n});\nvar MobileLogo = styled(\"div\", {\n \"@maxSm\": {\n display: \"none\"\n }\n});\nvar DesktopLogo = styled(\"div\", {\n \"@sm\": {\n display: \"none\"\n }\n});\nvar HeaderLogo = ({ href, onClick }) => /* @__PURE__ */ jsxs52(Container20, {\n as: href ? \"a\" : \"button\",\n href,\n onClick,\n children: [\n /* @__PURE__ */ jsx105(MobileLogo, {\n children: /* @__PURE__ */ jsx105(Logo_default, {\n variant: \"full\",\n height: 4\n })\n }),\n /* @__PURE__ */ jsx105(DesktopLogo, {\n children: /* @__PURE__ */ jsx105(Logo_default, {\n variant: \"initial\",\n height: 3\n })\n })\n ]\n});\nvar HeaderLogo_default = HeaderLogo;\n\n// src/ui/Header/HeaderNavItem.tsx\nimport React178 from \"react\";\nimport { jsx as jsx106, jsxs as jsxs53 } from \"react/jsx-runtime\";\nvar Container21 = styled(\"a\", FocusRingSelf, {\n $$labelColor: colors[\"gray-600\"],\n backgroundColor: \"transparent\",\n hStack: \"$4\",\n padding: \"$6 $8\",\n borderRadius: \"$8\",\n variants: {\n isSelected: {\n true: { backgroundColor: colors[\"brand-50\"], $$labelColor: colors[\"brand-800\"] },\n false: {}\n }\n }\n});\nvar IconContainer2 = styled(\"div\", {\n display: \"none\",\n \"@md\": {\n display: \"inline-flex\"\n }\n});\nvar Label10 = styled(\"div\", Small2, {\n fontWeight: fontWeights.medium,\n color: \"$$labelColor\"\n});\nvar HeaderNavItem = React178.forwardRef(\n ({\n as = \"a\",\n label,\n icon: icon2,\n isSelected,\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs53(Container21, {\n as,\n ref: forwardedRef,\n ...props,\n isSelected,\n children: [\n /* @__PURE__ */ jsx106(IconContainer2, {\n children: /* @__PURE__ */ jsx106(ProductIcon_default, {\n selected: isSelected,\n product: icon2\n })\n }),\n /* @__PURE__ */ jsx106(Label10, {\n children: label\n })\n ]\n })\n);\nvar HeaderNavItem_default = HeaderNavItem;\n\n// src/ui/MobileSidebar/MobileSidebar.tsx\nimport { jsx as jsx107 } from \"react/jsx-runtime\";\nvar Container22 = styled(\"div\", {\n position: \"relative\",\n background: colors.white,\n width: \"100%\",\n height: \"100%\",\n overflowY: \"auto\",\n boxShadow: shadows2.paneBottomLight,\n vStack: 0,\n alignItems: \"stretch\",\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.paneBottomDark\n },\n variants: {\n isOpen: {\n false: {\n height: \"min-content\"\n },\n true: {\n bottom: 0\n }\n }\n }\n});\nvar MobileSidebar = ({ children }) => /* @__PURE__ */ jsx107(SidebarFormFactorContext.Provider, {\n value: \"mobile\",\n children: /* @__PURE__ */ jsx107(Container22, {\n children\n })\n});\n\n// src/ui/MobileSidebar/MobileSidebarLocationControlContainer.tsx\nimport { jsx as jsx108 } from \"react/jsx-runtime\";\nvar Container23 = styled(\"div\", {\n background: colors.white,\n position: \"sticky\",\n bottom: 0,\n marginTop: \"auto\",\n padding: \"$12\",\n boxShadow: shadows2.fenceTopLight,\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fenceTopDark\n }\n});\nvar MobileSidebarLocationControlContainer = ({ children }) => /* @__PURE__ */ jsx108(Container23, {\n children\n});\n\n// src/ui/MobileSidebar/MobileSidebarToggle.tsx\nimport { jsx as jsx109, jsxs as jsxs54 } from \"react/jsx-runtime\";\nvar Container24 = styled(\"button\", FocusRingSelf, {\n hStack: \"$8\",\n padding: \"$12 $20\",\n width: \"100%\"\n});\nvar StyledIcon13 = styled(Icon_default, {\n color: colors[\"gray-400\"],\n [darkThemeSelector]: {\n color: colors[\"gray-600\"]\n }\n});\nvar MobileSidebarToggle = ({\n label,\n icon: icon2 = \"menu\",\n ...props\n}) => /* @__PURE__ */ jsxs54(Container24, {\n ...props,\n children: [\n /* @__PURE__ */ jsx109(StyledIcon13, {\n icon: icon2\n }),\n /* @__PURE__ */ jsx109(Subheading2, {\n children: label\n })\n ]\n});\nvar MobileSidebarToggle_default = MobileSidebarToggle;\n\n// src/ui/MobileSidebar/MobileSidebarToggleContainer.tsx\nimport { jsx as jsx110 } from \"react/jsx-runtime\";\nvar Container25 = styled(\"div\", {\n position: \"sticky\",\n top: 0,\n boxShadow: shadows2.fenceBottomLight,\n background: colors.white,\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fenceBottomDark\n }\n});\nvar MobileSidebarToggleContainer = ({\n children\n}) => /* @__PURE__ */ jsx110(Container25, {\n children\n});\nvar MobileSidebarToggleContainer_default = MobileSidebarToggleContainer;\n\n// src/ui/Sidebars/SidebarDivider.tsx\nvar SidebarDivider = styled(\"div\", {\n position: \"relative\",\n height: 0,\n width: \"100%\",\n overflow: \"visible\",\n paddingX: \"$12\",\n \"&::before\": {\n content: \"\",\n position: \"absolute\",\n top: 0,\n width: \"calc(100% - 24px)\",\n borderBottom: `1px solid ${colors[\"gray-100\"]}`\n }\n});\nvar SidebarDivider_default = SidebarDivider;\n\n// src/ui/Sidebars/SidebarGroupLabel.tsx\nimport { jsx as jsx111 } from \"react/jsx-runtime\";\nvar Label11 = styled(\"h5\", Caption2, {\n padding: \"0 $8\",\n marginBottom: \"$4\",\n fontWeight: fontWeights.medium,\n color: colors[\"gray-500\"],\n [darkThemeSelector]: {\n color: colors[\"gray-200\"]\n }\n});\nvar SidebarGroupLabel = ({\n children\n}) => /* @__PURE__ */ jsx111(Label11, {\n children\n});\nvar SidebarGroupLabel_default = SidebarGroupLabel;\n\n// src/ui/Sidebars/SidebarLocationControl.tsx\nimport React182 from \"react\";\nimport { HiddenSelect, OverlayContainer as OverlayContainer2, useButton, useSelect } from \"react-aria\";\nimport { useSelectState } from \"react-stately\";\n\n// src/components/ListBox/ListBox.tsx\nvar import_classnames7 = __toESM(require_classnames());\nimport { useRef as useRef13 } from \"react\";\nimport { useListBox as useListBox2 } from \"react-aria\";\nimport { useListState } from \"react-stately\";\n\n// src/components/ListBox/ListBoxOption.tsx\nvar import_classnames6 = __toESM(require_classnames());\nimport { useRef as useRef12 } from \"react\";\nimport { useOption as useOption2 } from \"react-aria\";\nimport { jsx as jsx112 } from \"react/jsx-runtime\";\nvar getColor = (isFocused, isSelected, isDisabled) => {\n if (isSelected) {\n return { light: \"white\", dark: \"white\" };\n }\n if (isFocused) {\n return { light: \"gray-600\", dark: \"gray-100\" };\n }\n if (isDisabled) {\n return { light: \"gray-300\", dark: \"gray-300\" };\n }\n return { light: \"gray-500\", dark: \"gray-100\" };\n};\nfunction ListBoxOption({\n item,\n state,\n size = \"medium\"\n}) {\n const ref = useRef12(null);\n const { optionProps, isSelected, isFocused, isDisabled } = useOption2(\n { key: item.key },\n state,\n ref\n );\n const classes = (0, import_classnames6.default)(\n \"m-outline-none m-flex\",\n {\n \"m-cursor-pointer\": !isDisabled,\n \"m-cursor-not-allowed\": isDisabled\n },\n {\n \"m-bg-gray-50 dark:m-bg-gray-600\": !isSelected && isFocused,\n \"m-bg-brand-600\": isSelected\n },\n {\n \"m-rounded-4 m-px-1.5 m-py-0.5\": size === \"small\",\n \"m-rounded-6 m-px-2 m-py-1\": size === \"medium\",\n \"m-rounded-6 m-px-3 m-py-2\": size === \"large\" || size === \"x-large\"\n }\n );\n const Content8 = size === \"small\" ? Small_default : Body_default;\n return /* @__PURE__ */ jsx112(\"li\", {\n ...optionProps,\n ref,\n className: classes,\n children: /* @__PURE__ */ jsx112(Content8, {\n color: getColor(isFocused, isSelected, isDisabled),\n children: item.rendered\n })\n });\n}\nvar ListBoxOption_default = ListBoxOption;\n\n// src/components/ListBox/ListBox.tsx\nimport { jsx as jsx113 } from \"react/jsx-runtime\";\nfunction ListBox2(props) {\n const ref = useRef13(null);\n const state = useListState(props);\n const { size, listBoxRef = ref, listBoxState = state } = props;\n const { listBoxProps } = useListBox2(props, listBoxState, listBoxRef);\n const classes = (0, import_classnames7.default)(\"m-overflow-auto m-outline-none m-flex m-flex-col m-gap-y-0.5\");\n return /* @__PURE__ */ jsx113(\"ul\", {\n ...listBoxProps,\n ref: listBoxRef,\n className: classes,\n children: Array.from(listBoxState.collection).map((item) => /* @__PURE__ */ jsx113(ListBoxOption_default, {\n item,\n state: listBoxState,\n size\n }, item.key))\n });\n}\nvar ListBox_default = ListBox2;\n\n// src/ui/Sidebars/SelectArrows.tsx\nimport { jsx as jsx114, jsxs as jsxs55 } from \"react/jsx-runtime\";\nvar BaseSVG4 = styled(\"svg\", {\n marginLeft: \"auto\",\n color: colors[\"gray-400\"],\n pointerEvents: \"none\",\n flexShrink: 0,\n [darkThemeSelector]: {\n color: colors[\"gray-300\"]\n },\n variants: {\n size: {\n small: {\n width: \"$6\"\n },\n medium: {\n width: \"$8\"\n },\n large: {\n width: \"$8\"\n },\n \"x-large\": {\n width: \"$8\"\n }\n }\n }\n});\nvar SelectArrows = ({ size }) => /* @__PURE__ */ jsxs55(BaseSVG4, {\n size,\n width: \"8\",\n height: \"12\",\n viewBox: \"0 0 8 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /* @__PURE__ */ jsx114(\"path\", {\n fill: \"currentColor\",\n d: \"M7.84245 5.0205C8.06868 4.70222 8.04932 4.24939 7.79696 3.95595L4.66616 0.315675C4.30417 -0.105225 3.69583 -0.105225 3.33384 0.315675L0.203043 3.95595C-0.0493234 4.24939 -0.0686772 4.70222 0.157546 5.0205C0.436488 5.41294 0.966738 5.44046 1.27792 5.07865L3.33384 2.68816C3.69583 2.26726 4.30417 2.26726 4.66616 2.68816L6.72209 5.07865C7.03326 5.44047 7.56351 5.41294 7.84245 5.0205Z\"\n }),\n /* @__PURE__ */ jsx114(\"path\", {\n fill: \"currentColor\",\n d: \"M0.157546 6.9795C-0.0686768 7.29778 -0.0493236 7.75061 0.203042 8.04405L3.33384 11.6843C3.69583 12.1052 4.30417 12.1052 4.66616 11.6843L7.79696 8.04405C8.04932 7.75061 8.06868 7.29778 7.84245 6.9795C7.56351 6.58706 7.03326 6.55954 6.72208 6.92135L4.66616 9.31184C4.30417 9.73274 3.69583 9.73274 3.33384 9.31184L1.27791 6.92135C0.966737 6.55953 0.436488 6.58706 0.157546 6.9795Z\"\n })\n ]\n});\n\n// src/ui/Sidebars/SelectPopover.tsx\nimport React181 from \"react\";\nimport { DismissButton as DismissButton2, FocusScope as FocusScope2, useOverlay as useOverlay2, useOverlayPosition as useOverlayPosition2 } from \"react-aria\";\nimport { jsx as jsx115, jsxs as jsxs56 } from \"react/jsx-runtime\";\nvar Container26 = styled(\"div\", {\n position: \"absolute\",\n width: \"fit-content\",\n padding: \"$4\",\n overflow: \"auto\",\n background: colors.white,\n boxShadow: shadows2.overlayLight,\n [darkThemeSelector]: {\n background: colors[\"gray-700\"],\n boxShadow: shadows2.overlayDark\n },\n variants: {\n size: {\n small: { borderRadius: \"$6\" },\n medium: { borderRadius: \"$8\" },\n large: { borderRadius: \"$10\" },\n \"x-large\": { borderRadius: \"$10\" }\n }\n }\n});\nfunction SelectPopover(props) {\n const ref = React181.useRef(null);\n const { isOpen, onClose, children, triggerRef, width, popoverRef = ref, size = \"medium\" } = props;\n const { overlayProps } = useOverlay2(\n {\n isOpen,\n onClose,\n shouldCloseOnBlur: true,\n isDismissable: true\n },\n popoverRef\n );\n const { overlayProps: positionProps } = useOverlayPosition2({\n targetRef: triggerRef,\n overlayRef: popoverRef,\n placement: \"bottom\",\n offset: size === \"small\" ? 4 : 8,\n isOpen\n });\n return /* @__PURE__ */ jsx115(FocusScope2, {\n restoreFocus: true,\n children: /* @__PURE__ */ jsxs56(Container26, {\n ...overlayProps,\n ...positionProps,\n ref: popoverRef,\n size,\n style: { ...positionProps.style, width, minWidth: \"fit-content\" },\n children: [\n children,\n /* @__PURE__ */ jsx115(DismissButton2, {\n onDismiss: onClose\n })\n ]\n })\n });\n}\nvar SelectPopover_default = SelectPopover;\n\n// src/ui/Sidebars/SidebarLocationControl.tsx\nimport { jsx as jsx116, jsxs as jsxs57 } from \"react/jsx-runtime\";\nvar Container27 = styled(\"div\", {\n position: \"relative\",\n width: \"100%\"\n});\nvar Button2 = styled(\"button\", FocusRingSelf, {\n alignItems: \"center\",\n display: \"flex\",\n borderRadius: \"$6\",\n flexDirection: \"row\",\n gap: \"$8\",\n width: \"100%\",\n font: fonts.sans,\n color: colors[\"gray-700\"],\n [darkThemeSelector]: {\n color: colors[\"gray-50\"]\n },\n variants: {\n size: {\n medium: {\n gap: \"$6\",\n lineHeight: \"$20\",\n fontSize: \"$14\",\n paddingX: \"$8\",\n paddingY: \"$4\"\n },\n large: {\n gap: \"$8\",\n lineHeight: \"$24\",\n fontSize: \"$16\",\n paddingX: \"$12\",\n paddingY: \"$8\"\n }\n }\n }\n});\nvar RenderedText = styled(\"span\", { truncate: true });\nvar SidebarLocationControl = ({\n size = \"medium\",\n ...props\n}) => {\n var _a;\n const renamedProps = toSingleSelectionProps(props);\n const formFactor = useSidebarFormFactor();\n const defaultedSize = size ?? (formFactor === \"mobile\" ? \"large\" : \"medium\");\n const state = useSelectState(renamedProps);\n const triggerRef = React182.useRef(null);\n const popoverRef = React182.useRef(null);\n const [triggerMeasureRef, { width: triggerWidth }] = useMeasure();\n const { triggerProps, valueProps, menuProps } = useSelect(\n { ...renamedProps, label: null },\n state,\n triggerRef\n );\n const { buttonProps } = useButton(triggerProps, triggerRef);\n return /* @__PURE__ */ jsxs57(Container27, {\n children: [\n /* @__PURE__ */ jsx116(HiddenSelect, {\n state,\n triggerRef,\n label: renamedProps[\"aria-label\"]\n }),\n /* @__PURE__ */ jsxs57(Button2, {\n ...buttonProps,\n ref: o([triggerMeasureRef, triggerRef]),\n type: \"button\",\n size: defaultedSize,\n children: [\n /* @__PURE__ */ jsx116(Icon_default, {\n icon: \"location\",\n color: { light: \"gray-500\", dark: \"gray-300\" }\n }),\n /* @__PURE__ */ jsx116(RenderedText, {\n ...valueProps,\n children: (_a = state.selectedItem) == null ? void 0 : _a.rendered\n }),\n /* @__PURE__ */ jsx116(SelectArrows, {\n size: defaultedSize,\n \"aria-hidden\": \"true\"\n })\n ]\n }),\n state.isOpen && /* @__PURE__ */ jsx116(OverlayContainer2, {\n children: /* @__PURE__ */ jsx116(SelectPopover_default, {\n triggerRef,\n popoverRef,\n size: defaultedSize,\n width: triggerWidth,\n isOpen: state.isOpen,\n onClose: state.close,\n children: /* @__PURE__ */ jsx116(ListBox_default, {\n ...menuProps,\n listBoxState: state,\n listBoxRef: popoverRef,\n size: defaultedSize\n })\n })\n })\n ]\n });\n};\n\n// src/ui/TabBar/TabBar.tsx\nimport { jsx as jsx117 } from \"react/jsx-runtime\";\nvar Container28 = styled(\"div\", {\n hStack: \"$2\",\n background: colors.white,\n boxShadow: shadows2.fenceTopLight,\n padding: \"$6 $12\",\n [darkThemeSelector]: {\n background: colors[\"gray-800\"],\n boxShadow: shadows2.fenceTopDark\n }\n});\nvar TabBar = ({ children }) => /* @__PURE__ */ jsx117(Container28, {\n children\n});\nvar TabBar_default = TabBar;\n\n// src/ui/TabBar/TabBarNavItem.tsx\nimport React183 from \"react\";\nimport { jsx as jsx118, jsxs as jsxs58 } from \"react/jsx-runtime\";\nvar Container29 = styled(\"a\", FocusRingSelf, {\n flex: 1,\n vStack: \"$4\",\n padding: \"$6 $12\",\n borderRadius: \"$8\",\n variants: {\n isSelected: {\n true: { backgroundColor: colors[\"brand-600\"] },\n false: {}\n }\n }\n});\nvar Label12 = styled(\"div\", Small2, {\n fontWeight: fontWeights.medium,\n variants: {\n isSelected: {\n true: {\n color: colors.white\n },\n false: {}\n }\n }\n});\nvar TabBarNavItem = React183.forwardRef(\n ({\n as = \"a\",\n label,\n icon: icon2,\n isSelected,\n ...props\n }, forwardedRef) => /* @__PURE__ */ jsxs58(Container29, {\n as,\n ref: forwardedRef,\n ...props,\n isSelected,\n children: [\n /* @__PURE__ */ jsx118(ProductIcon_default, {\n selected: isSelected,\n product: icon2\n }),\n /* @__PURE__ */ jsx118(Label12, {\n isSelected,\n children: label\n })\n ]\n })\n);\nvar TabBarNavItem_default = TabBarNavItem;\nexport {\n Accordion_default as Accordion,\n AccordionContent_default as AccordionContent,\n AccordionItem_default as AccordionItem,\n AccordionTrigger_default as AccordionTrigger,\n Alert_default as Alert,\n Badge_default as Badge,\n Band_default as Band,\n BandWithIcon_default as BandWithIcon,\n BasicSelect,\n BasicSelectItem,\n Body_default as Body,\n Body2,\n BodyMono_default as BodyMono,\n BodyMono2,\n Box_default as Box,\n Button_default as Button,\n CapsuleContainer_default as CapsuleContainer,\n CapsuleTooltip_default as CapsuleTooltip,\n Caption_default as Caption,\n Caption2,\n CaptivePageLayout_default as CaptivePageLayout,\n CheckboxInput_default as CheckboxInput,\n CheckboxInputWithLabel_default as CheckboxInputWithLabel,\n CloseButton,\n CloseDrawerButton,\n CollapsibleList,\n CollapsibleListContent,\n CollapsibleListItemHeader,\n ComboBox,\n Item2 as ComboBoxItem,\n CompositeField,\n ConnectLogo_default as ConnectLogo,\n ControllerIcon_default as ControllerIcon,\n CopyCapsule_default as CopyCapsule,\n DesktopSidebar_default as DesktopSidebar,\n DesktopSidebarLocationControlGroup_default as DesktopSidebarLocationControlGroup,\n DesktopSidebarNavItem_default as DesktopSidebarNavItem,\n DeviceIcon_default as DeviceIcon,\n DeviceIconSize,\n Drawer,\n DrawerContent,\n DrawerControls,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuItemIndicator,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuSubMenuContent,\n DropdownMenuSubMenuIndicator,\n DropdownMenuTrigger,\n DropdownMenuTriggerButton,\n DropdownMenuTriggerItem,\n EmptyState_default as EmptyState,\n FieldContainer,\n FocusRingSelf,\n FormattedMoney_default as FormattedMoney,\n HStack_default as HStack,\n HardwareIcon_default as HardwareIcon,\n Header_default as Header,\n HeaderLogo_default as HeaderLogo,\n HeaderNavItem_default as HeaderNavItem,\n Heading_default as Heading,\n Heading22 as Heading2,\n Icon_default as Icon,\n Label_default as Label,\n Link_default as Link,\n List_default as List,\n ListControls,\n ListItem_default as ListItem,\n ListItemHeader,\n ListItemLabel_default as ListItemLabel,\n ListItemNavigationArrow,\n ListItemPair_default as ListItemPair,\n ListItemValue_default as ListItemValue,\n ListTitle,\n LoadingIcon_default as LoadingIcon,\n Logo_default as Logo,\n ManufacturerIcon_default as ManufacturerIcon,\n MinList,\n MinListControls,\n MinListItemFooterLink,\n MinListItemHeader,\n MinListItemLabel,\n MinListItemPair,\n MinListItemValue,\n MinListTitle,\n MinimalCheckboxField,\n MobileSidebar,\n MobileSidebarLocationControlContainer,\n MobileSidebarToggle_default as MobileSidebarToggle,\n MobileSidebarToggleContainer_default as MobileSidebarToggleContainer,\n NavigableTableArrowCell,\n NavigableTableDeselectCell,\n NavigableTablePlaceholderCell,\n PrimaryField,\n PrimaryFieldComposite,\n PrimaryToggleField,\n ProductIcon_default as ProductIcon,\n ProgressBar_default as ProgressBar,\n ProviderIcon_default as ProviderIcon,\n ProviderIconProvider,\n RadialGauge_default as RadialGauge,\n Rule_default as Rule,\n SecondaryField,\n SecondaryFieldComposite,\n Section_default as Section,\n SectionContent_default as SectionContent,\n SectionFooter_default as SectionFooter,\n SectionHeader_default as SectionHeader,\n Select,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectTriggerButton,\n SelectValue,\n SelectViewport,\n ServiceButton_default as ServiceButton,\n ServiceIcon_default as ServiceIcon,\n ServiceIconService,\n Shortcut_default as Shortcut,\n ShortcutKey_default as ShortcutKey,\n ShortcutPlus_default as ShortcutPlus,\n SidebarDivider_default as SidebarDivider,\n SidebarGroup_default as SidebarGroup,\n SidebarGroupLabel_default as SidebarGroupLabel,\n SidebarLocationControl,\n SidebarNavItem,\n Skeleton_default as Skeleton,\n Slider,\n Small_default as Small,\n Small2,\n SmallMono_default as SmallMono,\n SmallMono2,\n Spinner_default as Spinner,\n Stack_default as Stack,\n Subheading_default as Subheading,\n Subheading2,\n Surface_default as Surface,\n SwitchIcon_default as SwitchIcon,\n Tab_default as Tab,\n Tab2_default as Tab2,\n TabBar_default as TabBar,\n TabBarNavItem_default as TabBarNavItem,\n Table,\n Table22 as Table2,\n TableBody,\n TableDataCell,\n TableHead,\n TableHeadCell,\n TableHeadRow,\n TableRow,\n Tabs_default as Tabs,\n Tabs2_default as Tabs2,\n Text_default as Text,\n TextInput_default as TextInput,\n Textarea_default as Textarea,\n Title_default as Title,\n Title2,\n Toast_default as Toast,\n ToggleInput_default as ToggleInput,\n VStack_default as VStack,\n activeThemeClassName,\n activeThemeSelector,\n breakpoints,\n createCustomFieldPropsProvider,\n darkThemeSelector,\n focusVisibleClassName,\n focusVisibleSelector,\n formatMoney,\n injectGlobalMetricStyles,\n space,\n theme,\n useTimedToggle,\n useTimedToggleWithProgress\n};\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n//# sourceMappingURL=index.mjs.map","class Subscribable {\n constructor() {\n this.listeners = [];\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n this.listeners.push(listener);\n this.onSubscribe();\n return () => {\n this.listeners = this.listeners.filter(x => x !== listener);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.length > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => array2.indexOf(x) === -1);\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error('undefined'));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject('Missing queryFn'));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = [];\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n return this.createResult(query, options);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n\n if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n var _this$currentMutation;\n\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.setOptions(this.options);\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation2;\n\n (_this$currentMutation2 = this.currentMutation) == null ? void 0 : _this$currentMutation2.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use client';\nimport { useSyncExternalStore as useSyncExternalStore$1 } from 'use-sync-external-store/shim/index.js';\n\nconst useSyncExternalStore = useSyncExternalStore$1;\n\nexport { useSyncExternalStore };\n//# sourceMappingURL=useSyncExternalStore.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","function shouldThrowError(_useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary(...params);\n }\n\n return !!_useErrorBoundary;\n}\n\nexport { shouldThrowError };\n//# sourceMappingURL=utils.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { shouldThrowError } from './utils.mjs';\n\nconst ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {\n if (options.suspense || options.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nconst useClearResetErrorBoundary = errorResetBoundary => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nconst getHasError = ({\n result,\n errorResetBoundary,\n useErrorBoundary,\n query\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(useErrorBoundary, [result.error, query]);\n};\n\nexport { ensurePreventErrorBoundaryRetry, getHasError, useClearResetErrorBoundary };\n//# sourceMappingURL=errorBoundaryUtils.mjs.map\n","const ensureStaleTime = defaultedOptions => {\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n }\n }\n};\nconst willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nconst shouldSuspend = (defaultedOptions, result, isRestoring) => (defaultedOptions == null ? void 0 : defaultedOptions.suspense) && willFetch(result, isRestoring);\nconst fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).then(({\n data\n}) => {\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n}).catch(error => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n});\n\nexport { ensureStaleTime, fetchOptimistic, shouldSuspend, willFetch };\n//# sourceMappingURL=suspense.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { notifyManager } from '@tanstack/query-core';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary.mjs';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { useIsRestoring } from './isRestoring.mjs';\nimport { ensurePreventErrorBoundaryRetry, useClearResetErrorBoundary, getHasError } from './errorBoundaryUtils.mjs';\nimport { ensureStaleTime, shouldSuspend, fetchOptimistic } from './suspense.mjs';\n\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({\n context: options.context\n });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions._optimisticResults = isRestoring ? 'isRestoring' : 'optimistic'; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n ensureStaleTime(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(() => new Observer(queryClient, defaultedOptions));\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore(React.useCallback(onStoreChange => isRestoring ? () => undefined : observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer, isRestoring]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n React.useEffect(() => {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (shouldSuspend(defaultedOptions, result, isRestoring)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n } // Handle error boundary\n\n\n if (getHasError({\n result,\n errorResetBoundary,\n useErrorBoundary: defaultedOptions.useErrorBoundary,\n query: observer.getCurrentQuery()\n })) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\n\nexport { useBaseQuery };\n//# sourceMappingURL=useBaseQuery.mjs.map\n","'use client';\nimport { parseQueryArgs, QueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.mjs';\n\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}\n\nexport { useQuery };\n//# sourceMappingURL=useQuery.mjs.map\n","'use client';\nimport * as React from 'react';\nimport { useSyncExternalStore } from './useSyncExternalStore.mjs';\nimport { parseMutationArgs, MutationObserver, notifyManager } from '@tanstack/query-core';\nimport { useQueryClient } from './QueryClientProvider.mjs';\nimport { shouldThrowError } from './utils.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n const queryClient = useQueryClient({\n context: options.context\n });\n const [observer] = React.useState(() => new MutationObserver(queryClient, options));\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = useSyncExternalStore(React.useCallback(onStoreChange => observer.subscribe(notifyManager.batchCalls(onStoreChange)), [observer]), () => observer.getCurrentResult(), () => observer.getCurrentResult());\n const mutate = React.useCallback((variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n }, [observer]);\n\n if (result.error && shouldThrowError(observer.options.useErrorBoundary, [result.error])) {\n throw result.error;\n }\n\n return { ...result,\n mutate,\n mutateAsync: result.mutate\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nfunction noop() {}\n\nexport { useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","/**\n * @remix-run/router v1.5.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n\n function getCurrentLocation() {\n return entries[index];\n }\n\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return getCurrentLocation();\n },\n\n createHref,\n\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\n\n\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\n\n\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\n\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\n\nfunction parsePath(path) {\n let parsedPath = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex(); // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location); // try...catch because iOS limits us to 100 pushState calls :/\n\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n\n let history = {\n get action() {\n return action;\n },\n\n get location() {\n return getLocation(window, globalHistory);\n },\n\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n\n createHref(to) {\n return createHref(window, to);\n },\n\n createURL,\n\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n\n push,\n replace,\n\n go(n) {\n return globalHistory.go(n);\n }\n\n };\n return history;\n} //#endregion\n\nvar ResultType;\n\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\n\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\n\nfunction isIndexRoute(route) {\n return route.index === true;\n} // Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\n\n\nfunction convertRoutesToDataRoutes(routes, detectErrorBoundary, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n\n if (manifest === void 0) {\n manifest = {};\n }\n\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, {\n hasErrorBoundary: detectErrorBoundary(route),\n id\n });\n\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, {\n id,\n hasErrorBoundary: detectErrorBoundary(route),\n children: undefined\n });\n\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, detectErrorBoundary, treePath, manifest);\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\n\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n invariant( // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n\n routes.forEach((route, index) => {\n var _route$path;\n\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\n\n\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments; // Optional path segments are denoted by a trailing `?`\n\n let isOptional = first.endsWith(\"?\"); // Compute the corresponding required segment: `foo?` -> `foo`\n\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = []; // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\"))); // Then if this is an optional value, add all child versions without\n\n if (isOptional) {\n result.push(...restExploded);\n } // for absolute paths, ensure `/` instead of empty segment\n\n\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\n\n\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n\n let path = originalPath;\n\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n } // ensure `/` is added at the beginning if the path is absolute\n\n\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1; // only apply the splat if it's the last segment\n\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n const starParam = params[star]; // Apply the splat\n\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, \"Missing \\\":\" + key + \"\\\" param\");\n }\n\n return param;\n } // Remove any optional markers from optional static segments\n\n\n return segment.replace(/\\?$/g, \"\");\n }) // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\n\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let paramNames = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\n\n\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n } // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n\n\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\n\n\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n/**\n * @private\n */\n\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n\n let to;\n\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from; // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original \"to\" had one\n\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\"); // Or if this was a link to the current path which has a trailing slash\n\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n/**\n * @private\n */\n\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\n\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\n\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\n\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\"); // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref) => {\n let [key, value] = _ref;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key); // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal) {\n let aborted = false;\n\n if (!this.done) {\n let onAbort = () => this.cancel();\n\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n\n}\n\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\n\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n\n return value._data;\n}\n\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\n\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n\n let responseInit = init;\n\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\n\nclass ErrorResponse {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\n\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultDetectErrorBoundary = route => Boolean(route.hasErrorBoundary); //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\n\n\nfunction createRouter(init) {\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let detectErrorBoundary = init.detectErrorBoundary || defaultDetectErrorBoundary; // Routes keyed by ID\n\n let manifest = {}; // Routes in tree format for matching\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes, detectErrorBoundary, undefined, manifest);\n let inFlightDataRoutes; // Config driven behavior flags\n\n let future = _extends({\n v7_normalizeFormMethod: false\n }, init.future); // Cleanup function for history\n\n\n let unlistenHistory = null; // Externally-provided functions to call on all state changes\n\n let subscribers = new Set(); // Externally-provided object to hold scroll restoration locations during routing\n\n let savedScrollPositions = null; // Externally-provided function to get scroll restoration keys\n\n let getScrollRestorationKey = null; // Externally-provided function to get current scroll position\n\n let getScrollPosition = null; // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, init.basename);\n let initialErrors = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n\n let initialized = // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some(m => m.route.lazy) && ( // And we have to either have no loaders or have been provided hydrationData\n !initialMatches.some(m => m.route.loader) || init.hydrationData != null);\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n }; // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n\n let pendingAction = Action.Pop; // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n\n let pendingPreventScrollReset = false; // AbortController for the active navigation\n\n let pendingNavigationController; // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n\n let isUninterruptedRevalidation = false; // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n\n let isRevalidationRequired = false; // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n\n let cancelledDeferredRoutes = []; // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n\n let cancelledFetcherLoads = []; // AbortControllers for any in-flight fetchers\n\n let fetchControllers = new Map(); // Track loads based on the order in which they started\n\n let incrementingLoadId = 0; // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n\n let pendingNavigationLoadId = -1; // Fetchers that triggered data reloads as a result of their actions\n\n let fetchReloadIds = new Map(); // Fetchers that triggered redirect navigations from their actions\n\n let fetchRedirectIds = new Set(); // Most recent href/match for fetcher.load calls for fetchers\n\n let fetchLoadMatches = new Map(); // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n\n let activeDeferreds = new Map(); // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n\n let blockerFunctions = new Map(); // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n\n let ignoreNextHistoryUpdate = false; // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1); // Put the blocker into a blocked state\n\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n }); // Re-do the same POP navigation we just blocked\n\n init.history.go(delta);\n },\n\n reset() {\n deleteBlocker(blockerKey);\n updateState({\n blockers: new Map(router.state.blockers)\n });\n }\n\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }); // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location);\n }\n\n return router;\n } // Clean up a router and it's side effects\n\n\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n } // Subscribe to state updates for the router\n\n\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n } // Update our state and notify the calling context of the change\n\n\n function updateState(newState) {\n state = _extends({}, state, newState);\n subscribers.forEach(subscriber => subscriber(state));\n } // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n\n\n function completeNavigation(location, newState) {\n var _location$state, _location$state2;\n\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n } // Always preserve any existing loaderData from re-used routes\n\n\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData; // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n } // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n\n\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers: new Map(state.blockers)\n }));\n\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n } // Reset stateful navigation vars\n\n\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n } // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n\n\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(to, future, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state); // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n }); // Send the same navigation through\n\n navigate(to, opts);\n },\n\n reset() {\n deleteBlocker(blockerKey);\n updateState({\n blockers: new Map(state.blockers)\n });\n }\n\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace\n });\n } // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n\n\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n }); // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n\n if (state.navigation.state === \"submitting\") {\n return;\n } // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n\n\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n } // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n\n\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n } // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n\n\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true; // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, init.basename); // Short circuit with a 404 on the root error boundary if we match nothing\n\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse); // Cancel all pending deferred on 404s since we don't keep any routes\n\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n });\n return;\n } // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n\n\n if (isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n });\n return;\n } // Create a controller/Request for this navigation\n\n\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace\n });\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation = _extends({\n state: \"loading\",\n location\n }, opts.submission);\n\n loadingNavigation = navigation; // Create a GET request for the loaders\n\n request = new Request(request.url, {\n signal: request.signal\n });\n } // Call loaders\n\n\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, pendingActionData, pendingError);\n\n if (shortCircuited) {\n return;\n } // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n\n\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n } // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n\n\n async function handleAction(request, location, submission, matches, opts) {\n interruptActiveLoads(); // Put us in a submitting state\n\n let navigation = _extends({\n state: \"submitting\",\n location\n }, submission);\n\n updateState({\n navigation\n }); // Call our action and get the result\n\n let result;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, detectErrorBoundary, router.basename);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace;\n\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n } // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n\n\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n\n if (!loadingNavigation) {\n let navigation = _extends({\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission);\n\n loadingNavigation = navigation;\n } // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n\n\n let activeSubmission = submission || fetcherSubmission ? submission || fetcherSubmission : loadingNavigation.formMethod && loadingNavigation.formAction && loadingNavigation.formData && loadingNavigation.formEncType ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType\n } : undefined;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, routesToUse, init.basename, pendingActionData, pendingError); // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId)); // Short circuit if we have no loaders to run\n\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}));\n return {\n shortCircuited: true\n };\n } // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n\n\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(rf => fetchControllers.set(rf.key, pendingNavigationController));\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n } // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n\n\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key)); // If any loaders returned a redirect Response, start a new REPLACE navigation\n\n let redirect = findRedirect(results);\n\n if (redirect) {\n await startRedirectNavigation(state, redirect, {\n replace\n });\n return {\n shortCircuited: true\n };\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds); // Wire up subscribers to update loaderData as promises settle\n\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n return _extends({\n loaderData,\n errors\n }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\n } // Trigger a fetcher load/submit for the given fetcher key\n\n\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = matchRoutes(routesToUse, href, init.basename);\n\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: href\n }));\n return;\n }\n\n let {\n path,\n submission\n } = normalizeNavigateOptions(href, future, opts, true);\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n } // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n\n\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n } // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n\n\n async function handleFetcherAction(key, routeId, path, match, requestMatches, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error);\n return;\n } // Put this fetcher into it's submitting state\n\n\n let existingFetcher = state.fetchers.get(key);\n\n let fetcher = _extends({\n state: \"submitting\"\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the action for the fetcher\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, detectErrorBoundary, router.basename);\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n\n let loadingFetcher = _extends({\n state: \"loading\"\n }, submission, {\n data: undefined,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true\n });\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n } // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n\n\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, init.basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = _extends({\n state: \"loading\",\n data: actionResult.data\n }, submission, {\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, routesToUse, init.basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n ); // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n let doneFetcher = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n let didAbortFetchLoads = abortStaleFetchLoads(loadId); // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState(_extends({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors)\n }, didAbortFetchLoads ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n isRevalidationRequired = false;\n }\n } // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n\n\n async function handleFetcherLoader(key, routeId, path, match, matches, submission) {\n let existingFetcher = state.fetchers.get(key); // Put this fetcher into it's loading state\n\n let loadingFetcher = _extends({\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the loader for this fetcher route match\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, detectErrorBoundary, router.basename); // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n } // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n\n\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n } // If the loader threw a redirect Response, start a new REPLACE navigation\n\n\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key); // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error\n }\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\"); // Put the fetcher back into an idle state\n\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n\n\n async function startRedirectNavigation(state, redirect, _temp) {\n var _window;\n\n let {\n submission,\n replace,\n isFetchActionRedirect\n } = _temp === void 0 ? {} : _temp;\n\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, // TODO: This can be removed once we get rid of useTransition in Remix v2\n _extends({\n _isRedirect: true\n }, isFetchActionRedirect ? {\n _isFetchActionRedirect: true\n } : {}));\n invariant(redirectLocation, \"Expected a location on the redirect navigation\"); // Check if this an absolute external redirect that goes to a new origin\n\n if (ABSOLUTE_URL_REGEX.test(redirect.location) && isBrowser && typeof ((_window = window) == null ? void 0 : _window.location) !== \"undefined\") {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, init.basename || \"/\") == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n\n return;\n }\n } // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n\n\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push; // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n\n let {\n formMethod,\n formAction,\n formEncType,\n formData\n } = state.navigation;\n\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData\n };\n } // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n\n\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && submission && isMutationMethod(submission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, submission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n },\n fetcherSubmission: submission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, detectErrorBoundary, router.basename)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, request.signal), f.match, f.matches, manifest, detectErrorBoundary, router.basename);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, request.signal, false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, request.signal, true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true; // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n\n cancelledDeferredRoutes.push(...cancelActiveDeferreds()); // Abort in-flight fetcher loads\n\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key, routeId, error) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n });\n }\n\n function deleteFetcher(key) {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone() {\n let doneKeys = [];\n\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n } // Utility function to update blockers, ensuring valid state transitions\n\n\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER; // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n state.blockers.set(key, newBlocker);\n updateState({\n blockers: new Map(state.blockers)\n });\n }\n\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n\n if (blockerFunctions.size === 0) {\n return;\n } // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n\n\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n } // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n\n\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n } // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n\n\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n\n getScrollRestorationKey = getKey || (location => location.key); // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n\n\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n\n if (typeof y === \"number\") {\n return y;\n }\n }\n\n return null;\n }\n\n function _internalSetRoutes(newRoutes) {\n inFlightDataRoutes = newRoutes;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n\n get state() {\n return state;\n },\n\n get routes() {\n return dataRoutes;\n },\n\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let detectErrorBoundary = (opts == null ? void 0 : opts.detectErrorBoundary) || defaultDetectErrorBoundary;\n let dataRoutes = convertRoutesToDataRoutes(routes, detectErrorBoundary, undefined, manifest);\n let basename = (opts ? opts.basename : null) || \"/\";\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n\n async function query(request, _temp2) {\n let {\n requestContext\n } = _temp2 === void 0 ? {} : _temp2;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n\n if (isResponse(result)) {\n return result;\n } // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n\n\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n\n\n async function queryRoute(request, _temp3) {\n let {\n routeId,\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let result = await queryImpl(request, location, matches, requestContext, match);\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n } // Pick off the right state value to return\n\n\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n var _result$activeDeferre;\n\n let data = Object.values(result.loaderData)[0];\n\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n\n return e.response;\n } // Redirects are always returned since they don't propagate to catch\n // boundaries\n\n\n if (isRedirectResponse(e)) {\n return e;\n }\n\n throw e;\n }\n }\n\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, detectErrorBoundary, basename, true, isRouteRequest, requestContext);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n }); // action status codes take precedence over loader status codes\n\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n } // Create a GET request for the loaders\n\n\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null; // Short circuit if we have no loaders to run (queryRoute())\n\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy); // Short circuit if we have no loaders to run (query())\n\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, detectErrorBoundary, basename, true, isRouteRequest, requestContext))]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n } // Process and commit output from loaders\n\n\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds); // Add a null for any non-loader matches for proper revalidation on the client\n\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute\n };\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\n\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n\n return newContext;\n}\n\nfunction isSubmissionNavigation(opts) {\n return opts != null && \"formData\" in opts;\n} // Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\n\n\nfunction normalizeNavigateOptions(to, future, opts, isFetcher) {\n if (isFetcher === void 0) {\n isFetcher = false;\n }\n\n let path = typeof to === \"string\" ? to : createPath(to); // Return location verbatim on non-submission navigations\n\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n } // Create a Submission on non-GET navigations\n\n\n let submission;\n\n if (opts.formData) {\n let formMethod = opts.formMethod || \"get\";\n submission = {\n formMethod: future.v7_normalizeFormMethod ? formMethod.toUpperCase() : formMethod.toLowerCase(),\n formAction: stripHashFromPath(path),\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData: opts.formData\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n } // Flatten submission onto URLSearchParams for GET submissions\n\n\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData); // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n} // Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\n\n\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(history, state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, fetchLoadMatches, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n let defaultShouldRevalidate = // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired || // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() || // Search params affect all loaders\n currentUrl.search !== nextUrl.search; // Pick navigation matches that are net-new or qualify for revalidation\n\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (match.route.loader == null) {\n return false;\n } // Always call the loader on new route instances and pending defer cancellations\n\n\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n } // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n\n\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: defaultShouldRevalidate || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n }); // Pick fetcher.loads that need to be revalidated\n\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some(m => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename); // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n\n if (!fetcherMatches) {\n revalidatingFetchers.push(_extends({\n key\n }, f, {\n matches: null,\n match: null\n }));\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push(_extends({\n key,\n matches: fetcherMatches,\n match: fetcherMatch\n }, f));\n return;\n } // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n\n\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate\n }));\n\n if (shouldRevalidate) {\n revalidatingFetchers.push(_extends({\n key,\n matches: fetcherMatches,\n match: fetcherMatch\n }, f));\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id; // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n\n let isMissingData = currentLoaderData[match.route.id] === undefined; // Always load if this is a net-new route or we don't yet have data\n\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (// param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\n\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\n\n\nasync function loadLazyRouteModule(route, detectErrorBoundary, manifest) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy(); // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\"); // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n\n let routeUpdates = {};\n\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined && // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n } // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to detectErrorBoundary\n\n\n Object.assign(routeToUpdate, routeUpdates); // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `detectErrorBoundary` function to set the `hasErrorBoundary` route\n // property since the logic will differ between frameworks.\n hasErrorBoundary: detectErrorBoundary(_extends({}, routeToUpdate)),\n lazy: undefined\n });\n}\n\nasync function callLoaderOrAction(type, request, match, matches, manifest, detectErrorBoundary, basename, isStaticRequest, isRouteRequest, requestContext) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n if (isStaticRequest === void 0) {\n isStaticRequest = false;\n }\n\n if (isRouteRequest === void 0) {\n isRouteRequest = false;\n }\n\n let resultType;\n let result;\n let onReject;\n\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n\n onReject = () => reject();\n\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: requestContext\n }), abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([runHandler(handler), loadLazyRouteModule(match.route, detectErrorBoundary, manifest)]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, detectErrorBoundary, manifest);\n handler = match.route[type];\n\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n throw getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else {\n invariant(handler, \"Could not find the \" + type + \" to run on the \\\"\" + match.route.id + \"\\\" route\");\n result = await runHandler(handler);\n }\n\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status; // Process redirects\n\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\"); // Support relative routing in internal redirects\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(match => match.pathnameBase);\n let resolvedLocation = resolveTo(location, routePathnames, new URL(request.url).pathname);\n invariant(createPath(resolvedLocation), \"Unable to resolve redirect location: \" + location); // Prepend the basename to the redirect location if we have one\n\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname = path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n } // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n\n\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null\n };\n } // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n\n\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result\n };\n }\n\n let data;\n let contentType = result.headers.get(\"Content-Type\"); // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n\n return {\n type: ResultType.data,\n data: result\n };\n} // Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\n\n\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType,\n formData\n } = submission; // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n\n init.method = formMethod.toUpperCase();\n init.body = formEncType === \"application/x-www-form-urlencoded\" ? convertFormDataToSearchParams(formData) : formData;\n } // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {}; // Process loader results into state.loaderData/state.errors\n\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error; // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {}; // Prefer higher error values if lower errors bubble to the same boundary\n\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n } // Clear our any prior loaderData for the throwing route\n\n\n loaderData[id] = undefined; // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n } // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n\n\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }); // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\n\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds); // Process results from our revalidating fetchers\n\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index]; // Process fetcher non-redirect errors\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return {\n loaderData,\n errors\n };\n}\n\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n\n for (let match of matches) {\n let id = match.route.id;\n\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n\n return mergedLoaderData;\n} // Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\n\n\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\n\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\n\nfunction getInternalRouterError(status, _temp4) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp4 === void 0 ? {} : _temp4;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n\n return new ErrorResponse(status || 500, statusText, new Error(errorMessage), true);\n} // Find any returned redirect errors, starting from the lowest match\n\n\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\n\nfunction isHashChangeOnly(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash;\n}\n\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\n\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\n\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || ResultType.error);\n}\n\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\n\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\n\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signal, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index]; // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n\n let aborted = await result.deferredData.resolveData(signal);\n\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\n\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n} // Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\n\n\nfunction createUseMatchesMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\n\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n } // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n\n\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n} //#endregion\n\nexport { AbortedDeferredError, Action, ErrorResponse, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getPathContributingMatches as UNSAFE_getPathContributingMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.10.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getPathContributingMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, isRouteErrorResponse, createMemoryHistory, stripBasename, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, resolvePath } from '@remix-run/router';\nimport * as React from 'react';\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction isPolyfill(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nconst is = typeof Object.is === \"function\" ? Object.is : isPolyfill; // Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\n\nconst {\n useState,\n useEffect,\n useLayoutEffect,\n useDebugValue\n} = React;\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore$2(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\"You are using an outdated, pre-release alpha of React 18 that \" + \"does not support useSyncExternalStore. The \" + \"use-sync-external-store shim will not work correctly. Upgrade \" + \"to a newer pre-release.\");\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n const value = getSnapshot();\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n\n if (!is(value, cachedValue)) {\n console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\");\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n const [{\n inst\n }, forceUpdate] = useState({\n inst: {\n value,\n getSnapshot\n }\n }); // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [subscribe, value, getSnapshot]);\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\n/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\nconst canUseDOM = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore$2;\nconst useSyncExternalStore = \"useSyncExternalStore\" in React ? (module => module.useSyncExternalStore)(React) : shim;\n\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\n\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname; // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\n\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\n\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\"); // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\n\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\n\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\n\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\n\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterStateContext || undefined); // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n\n\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n\n if (process.env.NODE_ENV !== \"production\") {\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" prop on\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"\")));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\n\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location\n };\n } // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n\n\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n\n render() {\n return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n\n}\n\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext); // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\n\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) {\n if (dataRouterState != null && dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches; // If we have data errors, trim matches to the highest error boundary\n\n let errors = dataRouterState == null ? void 0 : dataRouterState.errors;\n\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for the current errors: \" + errors) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null; // Only data routers handle errors\n\n let errorElement = null;\n\n if (dataRouterState) {\n if (match.route.ErrorBoundary) {\n errorElement = /*#__PURE__*/React.createElement(match.route.ErrorBoundary, null);\n } else if (match.route.errorElement) {\n errorElement = match.route.errorElement;\n } else {\n errorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n\n let getChildren = () => {\n let children = outlet;\n\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n }\n\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches\n },\n children: children\n });\n }; // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n\n\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook;\n\n(function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterHook || (DataRouterHook = {}));\n\nvar DataRouterStateHook;\n\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\n\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\n\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\n\n\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\n\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n };\n}\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\n\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(match => {\n let {\n pathname,\n params\n } = match; // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id],\n handle: match.route.handle\n };\n }), [matches, loaderData]);\n}\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\n\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n\n return state.loaderData[routeId];\n}\n/**\n * Returns the loaderData for the given routeId\n */\n\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n/**\n * Returns the action data for the nearest ancestor Route action\n */\n\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useActionData must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n return Object.values((state == null ? void 0 : state.actionData) || {})[0];\n}\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\n\nfunction useRouteError() {\n var _state$errors;\n\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError); // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n\n if (error) {\n return error;\n } // Otherwise look for errors from our data router state\n\n\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\n\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n/**\n * Returns the error from the nearest ancestor value\n */\n\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\n\nfunction useBlocker(shouldBlock) {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n let blockerFunction = React.useCallback(args => {\n return typeof shouldBlock === \"function\" ? !!shouldBlock(args) : !!shouldBlock;\n }, [shouldBlock]);\n let blocker = router.getBlocker(blockerKey, blockerFunction); // Cleanup on unmount\n\n React.useEffect(() => () => router.deleteBlocker(blockerKey), [router, blockerKey]); // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n\n return state.blockers.get(blockerKey) || blocker;\n}\nconst alreadyWarned = {};\n\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router\n } = _ref;\n let getState = React.useCallback(() => router.state, [router]); // Sync router state to our component state to force re-renders\n\n let state = useSyncExternalStore(router.subscribe, getState, // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n getState);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]); // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\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 mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\n\nvar w = WINDOW || {};\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 = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\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 if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\n\nvar d = UNITS_IN_GRID;\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}\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 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\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\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}\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}\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}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\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}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, 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: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\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({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, 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\nfunction asIcon (_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 var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\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 maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, 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}\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 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\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 val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.15.4\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\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/**\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 */\n\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,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\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\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\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\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\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\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\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\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] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\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 === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\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.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]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\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 performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.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 if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\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 classParser (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 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\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser (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\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser (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 blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\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 return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\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}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, 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};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\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.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([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 onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\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 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 return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\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\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\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\\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: 0.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\\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\\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\\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\\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\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\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: 0.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: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\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\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\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\\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\\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\\n.fa-flip-both, .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\\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:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\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\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\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\\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\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library =\n/*#__PURE__*/\nfunction () {\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 = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\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 ? {\n 0: definition\n } : definition;\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 if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\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 Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\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 var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\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 var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\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 === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\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 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\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 return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\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\n return keys;\n}\n\nfunction _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\n return target;\n}\n\nfunction _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\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded$1 = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded$1);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar _excluded = [\"forwardedRef\"];\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { useMemo } from \"react\";\nimport dayjs from \"dayjs\";\n\ninterface FormattedDateProps {\n value: string | Date | dayjs.Dayjs;\n format?: string;\n withTime?: boolean;\n withHumanFormatting?: boolean;\n}\n\nconst FormattedDate: React.FunctionComponent = ({\n value,\n format,\n withTime = false,\n withHumanFormatting = false,\n}) => {\n const momentValue = useMemo(() => dayjs(value), [value]);\n\n let formattingString;\n if (withHumanFormatting && momentValue.isSame(dayjs(), \"day\")) {\n formattingString = format || \"HH:MM:ss\";\n } else if (withHumanFormatting && momentValue.isSame(dayjs().subtract(1, \"day\"), \"day\")) {\n formattingString = \"[yesterday], HH:MM:ss\";\n } else {\n formattingString = format || (withTime ? \"MMM D, YYYY. HH:MM:ss\" : \"MMM D, YYYY\");\n }\n\n return <>{momentValue.format(formattingString)};\n};\n\nexport default FormattedDate;\n","import { useEffect, useState } from \"react\";\n\nexport default function useLocalStorage

(\n key: string,\n initialValue?: P,\n poll = false,\n): [P | undefined, (value: P) => void] {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n return initialValue;\n }\n });\n\n const setValue = (value: P) => {\n try {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {}\n };\n\n useEffect(() => {\n if (!poll) {\n return;\n }\n\n const pollingFn = () => {\n const item = window.localStorage.getItem(key);\n const parsedItem = item ? JSON.parse(item) : null;\n\n if (parsedItem === null) {\n return;\n }\n\n if (JSON.stringify(storedValue) !== JSON.stringify(parsedItem)) {\n setStoredValue(parsedItem);\n }\n\n setTimeout(pollingFn, 250);\n };\n\n setTimeout(pollingFn, 250);\n }, [poll, storedValue, key]);\n\n return [storedValue, setValue];\n}\n","import React, { useEffect, useMemo } from \"react\";\nimport useLocalStorage from \"../../frontend/src/hooks/useLocalStorage\";\n\nexport type FlashMessage = {\n type: \"success\";\n message: string;\n};\n\nconst FlashMessageTemplate: React.FunctionComponent<{\n message: FlashMessage;\n}> = ({ message }) => {\n const color = useMemo(() => {\n switch (message.type) {\n case \"success\":\n return \"green\";\n default:\n break;\n }\n }, [message]);\n\n const icon = useMemo(() => {\n if (message.type === \"success\") {\n return (\n \n \n \n );\n }\n // else if (message.type === \"warning\") {\n // return (\n // \n // \n // \n // );\n // }\n }, [message]);\n\n return (\n

\n
\n
{icon}
\n
\n

{message.message}

\n
\n
\n
\n );\n};\n\nconst FlashMessages: React.FunctionComponent = () => {\n const [messages, setMessages] = useLocalStorage(\"flashMessages\", [], true);\n\n useEffect(() => {\n const timer = setTimeout(() => setMessages([]), 3000);\n\n return () => {\n clearTimeout(timer);\n };\n }, []);\n\n return messages && messages.length > 0 ? (\n
\n {messages.map((m, i) => (\n \n ))}\n
\n ) : null;\n};\n\nexport default FlashMessages;\n","import React from \"react\";\nimport { Address } from \"@meterup/api\";\n\ninterface FormattedAddressProps {\n address: Partial
;\n emphasiseLine1?: boolean;\n showAddress2?: boolean;\n multiline?: boolean;\n}\n\nconst FormattedAddress: React.FunctionComponent = ({\n address,\n emphasiseLine1 = false,\n showAddress2 = false,\n multiline = true,\n}) =>\n address ? (\n \n {address.address1}\n {showAddress2 && address.address2 ? (\n {address.address2}\n ) : multiline ? (\n
\n ) : (\n \", \"\n )}\n {address.city}, {address.state} {address.postalCode}\n
\n ) : (\n <>\n );\n\nexport default FormattedAddress;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport { formatMoney } from \"@meterup/metric\";\n\nimport styles from \"./FormattedMonthlyAmount.module.css\";\n\nexport interface FormattedMonthlyAmountProps {\n amount: number;\n}\n\nconst FormattedMonthlyAmount: React.FunctionComponent = ({\n amount,\n}) => {\n const formattedAmount = formatMoney({ amount, hideCentsIfZero: true });\n const [roundedAmount, cents] = formattedAmount.toString().split(\".\");\n\n return (\n
\n {roundedAmount}\n \n {cents}\n \n \n /mo\n \n
\n );\n};\n\nexport default FormattedMonthlyAmount;\n","import React from \"react\";\n\ninterface FormattedSpeedProps {\n mbps: number;\n}\n\nconst FormattedSpeed: React.FunctionComponent = ({ mbps }) => (\n <>\n {mbps > 1024 ? Math.round(Math.round((mbps / 1024) * 100) / 100) : Math.round(mbps)}{\" \"}\n {mbps > 1024 ? \"Gbps\" : \"Mbps\"}\n \n);\n\nexport default FormattedSpeed;\n","import { useCallback } from \"react\";\nimport useLocalStorage from \"../../../frontend/src/hooks/useLocalStorage\";\nimport { FlashMessage } from \"../FlashMessages\";\n\n/**\n * Return a function which queues up a flash message.\n *\n * @todo support more than one flash message\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport default function useFlashMessage(flashMessage: FlashMessage) {\n const [, setMessages] = useLocalStorage(\"flashMessages\", []);\n\n return useCallback(() => {\n setMessages([flashMessage]);\n }, [flashMessage]);\n}\n","import React from \"react\";\nimport cx from \"classnames\";\nimport { Direction } from \"../old-modal-types\";\n\nconst ModalBackground = ({\n visible,\n direction,\n onClose,\n}: {\n visible: boolean;\n direction: Direction;\n onClose: () => void;\n}) => (\n \n
\n \n);\n\nexport default ModalBackground;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport ModalBackground from \"./ModalBackground\";\nimport { ModalViewProps, StandardModal } from \"../old-modal-types\";\n\nconst SuccessModal: React.FunctionComponent> = ({\n visible,\n direction,\n modal,\n onClose,\n}) => (\n
\n
\n \n\n \n ​\n \n\n \n
\n
\n \n \n \n
\n
\n

\n {modal.title}\n

\n
\n

{modal.message}

\n
\n
\n
\n\n
\n \n {modal.confirmText}\n \n
\n
\n
\n \n);\n\nexport default SuccessModal;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport { Direction } from \"../old-modal-types\";\n\nconst ModalWrapper: React.FC<{\n visible: boolean;\n direction: Direction;\n}> = ({ visible, direction, children }) => (\n \n {children}\n \n);\n\nexport default ModalWrapper;\n","import React from \"react\";\nimport ModalBackground from \"./ModalBackground\";\nimport ModalWrapper from \"./ModalWrapper\";\nimport { ModalViewProps, StandardModal } from \"../old-modal-types\";\n\nconst WarningModal: React.FunctionComponent> = ({\n modal,\n visible,\n direction,\n onClose,\n}) => (\n
\n
\n \n\n \n ​\n \n\n \n
\n
\n \n \n \n
\n
\n

\n {modal.title}\n

\n
\n

{modal.message}

\n
\n
\n
\n
\n \n {modal.confirmText}\n \n {modal.showCancel && (\n \n Cancel\n \n )}\n
\n
\n
\n
\n);\n\nexport default WarningModal;\n","import React from \"react\";\nimport ModalBackground from \"./ModalBackground\";\nimport ModalWrapper from \"./ModalWrapper\";\nimport { ActionModal, ModalViewProps } from \"../old-modal-types\";\n\nconst WarningModal: React.FunctionComponent> = ({\n modal,\n visible,\n direction,\n onClose,\n}) => (\n
\n
\n \n\n \n ​\n \n\n \n {modal.content(onClose)}\n \n
\n
\n);\n\nexport default WarningModal;\n","import React, { createContext, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport SuccessModal from \"./ModalProvider/SuccessModal\";\nimport WarningModal from \"./ModalProvider/WarningModal\";\nimport ActionModal from \"./ModalProvider/ActionModal\";\nimport {\n ActionModal as ActionModalType,\n Direction,\n ModalType,\n StandardModal,\n} from \"./old-modal-types\";\n\ntype OnShowModalCallback = (modal: Modal) => void;\n\nexport const ModalContext = createContext<{\n onShowModal: OnShowModalCallback;\n onHideModal: () => void;\n}>({\n onShowModal: () => {\n throw new Error(\n \"Whoops! You managed to call the onShowModal callback without the correct context set. Something's gone terribly wrong!\",\n );\n },\n onHideModal: () => {\n throw new Error(\n \"Whoops! You managed to call the onHideModal callback without the correct context set. Something's gone terribly wrong!\",\n );\n },\n});\n\nexport type Modal = StandardModal | ActionModalType;\n\nconst modalViews: {\n [k in ModalType | \"action\"]: any;\n} = {\n warning: WarningModal,\n success: SuccessModal,\n action: ActionModal,\n};\n\nconst ModalProvider: React.FunctionComponent = ({ children }) => {\n const [modal, setModal] = useState();\n const [visible, setVisible] = useState(false);\n const [direction, setDirection] = useState(\"entering\");\n\n const onShowModal = useCallback((modal: Modal) => {\n setModal(modal);\n setDirection(\"entering\");\n setVisible(true);\n setTimeout(() => setDirection(\"leaving\"), 300);\n }, []);\n\n const onHideModal = useCallback(() => {\n setDirection(\"leaving\");\n setVisible(false);\n setTimeout(() => {\n setDirection(\"entering\");\n setModal(undefined);\n }, 200);\n }, []);\n\n const ModalView = useMemo(() => modal && modalViews[modal.type], [\n modal,\n onHideModal,\n visible,\n direction,\n ]);\n\n const location = useLocation();\n\n useEffect(() => {\n document.addEventListener(\"keyup\", (e) => e.key === \"Escape\" && onHideModal());\n }, [onHideModal]);\n\n useEffect(() => {\n onHideModal();\n }, [location.pathname]);\n\n return (\n \n {children}\n {ModalView && modal && (\n \n )}\n \n );\n};\n\nexport default ModalProvider;\n","import { useCallback, useContext } from \"react\";\n\nimport { Modal, ModalContext } from \"../ModalProvider\";\n\n/**\n * When called within a component which is a descendent of ModalProvider,\n * return a function which shows a modal, animate its entry and manage its state.\n *\n * This will take the modal of the\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport default function useModal(modal: Modal) {\n const { onShowModal, onHideModal } = useContext(ModalContext);\n const onConfirm = useCallback(\n (args: any[] | any) => () => {\n const result = modal.type !== \"action\" ? modal.onConfirm(...args) : null;\n if (result) {\n onHideModal();\n }\n },\n [modal],\n );\n\n return {\n onShowModal: useCallback(\n (...args) => onShowModal({ ...modal, onConfirm: onConfirm(args) } as any),\n [modal],\n ),\n onHideModal,\n };\n}\n","import React, { useState, useCallback, useEffect } from \"react\";\n\ninterface ProviderLogoProps {\n name: string;\n path?: string;\n}\n\nconst ProviderLogo: React.FunctionComponent = ({ name, path = \"\" }) => {\n const [showImage, setShowImage] = useState(path.length > 0);\n const ASSET_DOMAIN = \"https://public.meter.com\"; // TODO: Dynamic based on ENV\n\n useEffect(() => {\n setShowImage(true);\n }, [path]);\n\n const onError = useCallback((event) => {\n setShowImage(false);\n }, []);\n\n if (path && showImage) {\n const assetUrl = ASSET_DOMAIN + path;\n return (\n \n );\n }\n\n return <>{name};\n};\n\n// RRF = React Final Form\nexport default ProviderLogo;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","module.exports = require('./head');\n","import React, { useCallback } from \"react\";\n\nimport { BasicSelect, BasicSelectItem, SelectProps } from \"@meterup/metric\";\nimport first from \"lodash/first\";\nimport { FieldRenderProps } from \"react-final-form\";\n\n// Mixed interface between React Final Form and our pure SelectForm\ninterface SelectFieldProps extends FieldRenderProps, SelectProps {}\n\n// TODO: Can we move this to the fornt-end component library?\nexport default function SelectField({\n // React Final Form\n input,\n meta,\n placeholder,\n\n // Frontend components\n size,\n options,\n disabled,\n}: SelectFieldProps) {\n // TODO: The error mark up should not be here\n const displayError = meta.error && meta.touched;\n const onChange = useCallback(\n (val: string) => {\n input.onChange(val);\n },\n [input],\n );\n\n return (\n
\n \n {options.map(({ label, value }) => (\n \n {label}\n \n ))}\n \n {displayError && {meta.error}}\n
\n );\n}\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return () => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null ? void 0 : opts.onChange == null ? void 0 : opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? accessorKey.replace('.', '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n }\n }),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n })\n };\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, table));\n }, column);\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column;\n}\n\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n Object.assign(header, feature.createHeader == null ? void 0 : feature.createHeader(header, table));\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n return {\n // Header Groups\n\n getHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getHeaderGroups',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugHeaders;\n }\n }),\n getCenterHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterHeaderGroups',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugHeaders;\n }\n }),\n getLeftHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftHeaderGroups',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugHeaders;\n }\n }),\n getRightHeaderGroups: memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightHeaderGroups',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugHeaders;\n }\n }),\n // Footer Groups\n\n getFooterGroups: memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFooterGroups',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugHeaders;\n }\n }),\n getLeftFooterGroups: memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFooterGroups',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugHeaders;\n }\n }),\n getCenterFooterGroups: memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFooterGroups',\n debug: () => {\n var _table$options$debugA7;\n return (_table$options$debugA7 = table.options.debugAll) != null ? _table$options$debugA7 : table.options.debugHeaders;\n }\n }),\n getRightFooterGroups: memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFooterGroups',\n debug: () => {\n var _table$options$debugA8;\n return (_table$options$debugA8 = table.options.debugAll) != null ? _table$options$debugA8 : table.options.debugHeaders;\n }\n }),\n // Flat Headers\n\n getFlatHeaders: memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFlatHeaders',\n debug: () => {\n var _table$options$debugA9;\n return (_table$options$debugA9 = table.options.debugAll) != null ? _table$options$debugA9 : table.options.debugHeaders;\n }\n }),\n getLeftFlatHeaders: memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftFlatHeaders',\n debug: () => {\n var _table$options$debugA10;\n return (_table$options$debugA10 = table.options.debugAll) != null ? _table$options$debugA10 : table.options.debugHeaders;\n }\n }),\n getCenterFlatHeaders: memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterFlatHeaders',\n debug: () => {\n var _table$options$debugA11;\n return (_table$options$debugA11 = table.options.debugAll) != null ? _table$options$debugA11 : table.options.debugHeaders;\n }\n }),\n getRightFlatHeaders: memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightFlatHeaders',\n debug: () => {\n var _table$options$debugA12;\n return (_table$options$debugA12 = table.options.debugAll) != null ? _table$options$debugA12 : table.options.debugHeaders;\n }\n }),\n // Leaf Headers\n\n getCenterLeafHeaders: memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafHeaders',\n debug: () => {\n var _table$options$debugA13;\n return (_table$options$debugA13 = table.options.debugAll) != null ? _table$options$debugA13 : table.options.debugHeaders;\n }\n }),\n getLeftLeafHeaders: memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafHeaders',\n debug: () => {\n var _table$options$debugA14;\n return (_table$options$debugA14 = table.options.debugAll) != null ? _table$options$debugA14 : table.options.debugHeaders;\n }\n }),\n getRightLeafHeaders: memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafHeaders',\n debug: () => {\n var _table$options$debugA15;\n return (_table$options$debugA15 = table.options.debugAll) != null ? _table$options$debugA15 : table.options.debugHeaders;\n }\n }),\n getLeafHeaders: memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeafHeaders',\n debug: () => {\n var _table$options$debugA16;\n return (_table$options$debugA16 = table.options.debugAll) != null ? _table$options$debugA16 : table.options.debugHeaders;\n }\n })\n };\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n return {\n getSize: () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n },\n getStart: position => {\n const columns = !position ? table.getVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n const index = columns.findIndex(d => d.id === column.id);\n if (index > 0) {\n const prevSiblingColumn = columns[index - 1];\n return prevSiblingColumn.getStart(position) + prevSiblingColumn.getSize();\n }\n return 0;\n },\n resetSize: () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n },\n getCanResize: () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n },\n getIsResizing: () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n }\n };\n },\n createHeader: (header, table) => {\n return {\n getSize: () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n },\n getStart: () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n },\n getResizeHandler: () => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null ? void 0 : e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaOffset = clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0);\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n document.removeEventListener('mousemove', mouseEvents.moveHandler);\n document.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n document.removeEventListener('touchmove', touchEvents.moveHandler);\n document.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n document.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n document.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n document.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n document.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n }\n };\n },\n createTable: table => {\n return {\n setColumnSizing: updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater),\n setColumnSizingInfo: updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater),\n resetColumnSizing: defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n },\n resetHeaderSizeInfo: defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n },\n getTotalSize: () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n },\n getLeftTotalSize: () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n },\n getCenterTotalSize: () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n },\n getRightTotalSize: () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n }\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst Expanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetExpanded: () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n },\n setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n },\n resetExpanded: defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n },\n getCanSomeRowsExpand: () => {\n return table.getRowModel().flatRows.some(row => row.getCanExpand());\n },\n getToggleAllRowsExpandedHandler: () => {\n return e => {\n e.persist == null ? void 0 : e.persist();\n table.toggleAllRowsExpanded();\n };\n },\n getIsSomeRowsExpanded: () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n },\n getIsAllRowsExpanded: () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n },\n getExpandedDepth: () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n },\n getPreExpandedRowModel: () => table.getSortedRowModel(),\n getExpandedRowModel: () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleExpanded: expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n },\n getIsExpanded: () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n },\n getCanExpand: () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n }\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _row$getValue, _row$getValue$toStrin, _row$getValue$toStrin2;\n const search = filterValue.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : (_row$getValue$toStrin = _row$getValue.toString()) == null ? void 0 : (_row$getValue$toStrin2 = _row$getValue$toStrin.toLowerCase()) == null ? void 0 : _row$getValue$toStrin2.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2, _row$getValue2$toStri;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : (_row$getValue2$toStri = _row$getValue2.toString()) == null ? void 0 : _row$getValue2$toStri.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3, _row$getValue3$toStri;\n return ((_row$getValue3 = row.getValue(columnId)) == null ? void 0 : (_row$getValue3$toStri = _row$getValue3.toString()) == null ? void 0 : _row$getValue3$toStri.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst Filters = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n globalFilter: undefined,\n // filtersProgress: 1,\n // facetProgress: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100,\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode, _table$getCoreRowMode2;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null ? void 0 : (_table$getCoreRowMode2 = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode2.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoFilterFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n },\n getFilterFn: () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn()\n // @ts-ignore \n : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n },\n getCanFilter: () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n },\n getCanGlobalFilter: () => {\n var _column$columnDef$ena2, _table$options$enable3, _table$options$enable4, _table$options$getCol;\n return ((_column$columnDef$ena2 = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena2 : true) && ((_table$options$enable3 = table.options.enableGlobalFilter) != null ? _table$options$enable3 : true) && ((_table$options$enable4 = table.options.enableFilters) != null ? _table$options$enable4 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n },\n getIsFiltered: () => column.getFilterIndex() > -1,\n getFilterValue: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = table.getState().columnFilters) == null ? void 0 : (_table$getState$colum2 = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum2.value;\n },\n getFilterIndex: () => {\n var _table$getState$colum3, _table$getState$colum4;\n return (_table$getState$colum3 = (_table$getState$colum4 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum4.findIndex(d => d.id === column.id)) != null ? _table$getState$colum3 : -1;\n },\n setFilterValue: value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousfilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousfilter ? previousfilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousfilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n },\n _getFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id),\n getFacetedRowModel: () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n },\n _getFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id),\n getFacetedUniqueValues: () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n },\n _getFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id),\n getFacetedMinMaxValues: () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n }\n // () => [column.getFacetedRowModel()],\n // facetedRowModel => getRowModelMinMaxValues(facetedRowModel, column.id),\n };\n },\n\n createRow: (row, table) => {\n return {\n columnFilters: {},\n columnFiltersMeta: {}\n };\n },\n createTable: table => {\n return {\n getGlobalAutoFilterFn: () => {\n return filterFns.includesString;\n },\n getGlobalFilterFn: () => {\n var _table$options$filter3, _table$options$filter4;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn()\n // @ts-ignore\n : (_table$options$filter3 = (_table$options$filter4 = table.options.filterFns) == null ? void 0 : _table$options$filter4[globalFilterFn]) != null ? _table$options$filter3 : filterFns[globalFilterFn];\n },\n setColumnFilters: updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null ? void 0 : table.options.onColumnFiltersChange(updateFn);\n },\n setGlobalFilter: updater => {\n table.options.onGlobalFilterChange == null ? void 0 : table.options.onGlobalFilterChange(updater);\n },\n resetGlobalFilter: defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n },\n resetColumnFilters: defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n },\n getPreFilteredRowModel: () => table.getCoreRowModel(),\n getFilteredRowModel: () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n },\n _getGlobalFacetedRowModel: table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__'),\n getGlobalFacetedRowModel: () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n },\n _getGlobalFacetedUniqueValues: table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__'),\n getGlobalFacetedUniqueValues: () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n },\n _getGlobalFacetedMinMaxValues: table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__'),\n getGlobalFacetedMinMaxValues: () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n }\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n let min = 0;\n let max = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (typeof value === 'number') {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n });\n return (min + max) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst Grouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null ? void 0 : _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n return {\n toggleGrouping: () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n },\n getCanGroup: () => {\n var _ref, _ref2, _ref3, _column$columnDef$ena;\n return (_ref = (_ref2 = (_ref3 = (_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) != null ? _ref3 : table.options.enableGrouping) != null ? _ref2 : true) != null ? _ref : !!column.accessorFn;\n },\n getIsGrouped: () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n },\n getGroupedIndex: () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n },\n getToggleGroupingHandler: () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n },\n getAutoAggregationFn: () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n },\n getAggregationFn: () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n }\n };\n },\n createTable: table => {\n return {\n setGrouping: updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater),\n resetGrouping: defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n },\n getPreGroupedRowModel: () => table.getFilteredRowModel(),\n getGroupedRowModel: () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n }\n };\n },\n createRow: row => {\n return {\n getIsGrouped: () => !!row.groupingColumnId,\n _groupingValuesCache: {}\n };\n },\n createCell: (cell, column, row, table) => {\n return {\n getIsGrouped: () => column.getIsGrouped() && column.id === row.groupingColumnId,\n getIsPlaceholder: () => !cell.getIsGrouped() && column.getIsGrouped(),\n getIsAggregated: () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n }\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst Ordering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createTable: table => {\n return {\n setColumnOrder: updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater),\n resetColumnOrder: defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n },\n _getOrderColumnsFn: memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getOrderColumnsFn'\n // debug: () => table.options.debugAll ?? table.options.debugTable,\n })\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst Pagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n return {\n _autoResetPageIndex: () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n },\n setPagination: updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n },\n resetPagination: defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n },\n setPageIndex: updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n },\n resetPageIndex: defaultState => {\n var _table$initialState$p2, _table$initialState, _table$initialState$p3;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n },\n resetPageSize: defaultState => {\n var _table$initialState$p4, _table$initialState2, _table$initialState2$;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize);\n },\n setPageSize: updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n },\n setPageCount: updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n }),\n getPageOptions: memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPageOptions',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getCanPreviousPage: () => table.getState().pagination.pageIndex > 0,\n getCanNextPage: () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n },\n previousPage: () => {\n return table.setPageIndex(old => old - 1);\n },\n nextPage: () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n },\n getPrePaginationRowModel: () => table.getExpandedRowModel(),\n getPaginationRowModel: () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n },\n getPageCount: () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize);\n }\n };\n }\n};\n\n//\n\nconst getDefaultPinningState = () => ({\n left: [],\n right: []\n});\nconst Pinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n return {\n pin: position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n },\n getCanPin: () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_table$options$enable = table.options.enablePinning) != null ? _table$options$enable : true);\n });\n },\n getIsPinned: () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n },\n getPinnedIndex: () => {\n var _table$getState$colum, _table$getState$colum2, _table$getState$colum3;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null ? void 0 : (_table$getState$colum3 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum3.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n }\n };\n },\n createRow: (row, table) => {\n return {\n getCenterVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getCenterVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getLeftVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left,,], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getLeftVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n }),\n getRightVisibleCells: memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getRightVisibleCells',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n return {\n setColumnPinning: updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater),\n resetColumnPinning: defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultPinningState());\n },\n getIsSomeColumnsPinned: position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n },\n getLeftLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getLeftLeafColumns',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getRightLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRightLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getCenterLeafColumns: memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, {\n key: process.env.NODE_ENV === 'development' && 'getCenterLeafColumns',\n debug: () => {\n var _table$options$debugA6;\n return (_table$options$debugA6 = table.options.debugAll) != null ? _table$options$debugA6 : table.options.debugColumns;\n }\n })\n };\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n\n createTable: table => {\n return {\n setRowSelection: updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater),\n resetRowSelection: defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n },\n toggleAllRowsSelected: value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n },\n toggleAllPageRowsSelected: value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, table);\n });\n return rowSelection;\n }),\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n getPreSelectedRowModel: () => table.getCoreRowModel(),\n getSelectedRowModel: memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSelectedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n }),\n getFilteredSelectedRowModel: memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getFilteredSelectedRowModel',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugTable;\n }\n }),\n getGroupedSelectedRowModel: memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, {\n key: process.env.NODE_ENV === 'production' && 'getGroupedSelectedRowModel',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugTable;\n }\n }),\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n getIsAllRowsSelected: () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n },\n getIsAllPageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n },\n getIsSomeRowsSelected: () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n },\n getIsSomePageRowsSelected: () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n },\n getToggleAllRowsSelectedHandler: () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n },\n getToggleAllPageRowsSelectedHandler: () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n toggleSelected: value => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, table);\n return selectedRowIds;\n });\n },\n getIsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n },\n getIsSomeSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n },\n getIsAllSubRowsSelected: () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n },\n getCanSelect: () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n },\n getCanSelectSubRows: () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n },\n getCanMultiSelect: () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n },\n getToggleSelectedHandler: () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, table) => {\n var _row$subRows;\n const row = table.getRow(id);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n if (row.subRows && row.subRows.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n }\n return false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst Sorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto'\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n return {\n getAutoSortingFn: () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n },\n getAutoSortDir: () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n },\n getSortingFn: () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n },\n toggleSorting: (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n },\n getFirstSortDir: () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n },\n getNextSortingOrder: multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n },\n getCanSort: () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n },\n getCanMultiSort: () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n },\n getIsSorted: () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n },\n getSortIndex: () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n },\n clearSorting: () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n },\n getToggleSortingHandler: () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null ? void 0 : e.persist();\n column.toggleSorting == null ? void 0 : column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n }\n };\n },\n createTable: table => {\n return {\n setSorting: updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater),\n resetSorting: defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n },\n getPreSortedRowModel: () => table.getGroupedRowModel(),\n getSortedRowModel: () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n }\n };\n }\n};\n\n//\n\nconst Visibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n return {\n toggleVisibility: value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n },\n getIsVisible: () => {\n var _table$getState$colum, _table$getState$colum2;\n return (_table$getState$colum = (_table$getState$colum2 = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum2[column.id]) != null ? _table$getState$colum : true;\n },\n getCanHide: () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n },\n getToggleVisibilityHandler: () => {\n return e => {\n column.toggleVisibility == null ? void 0 : column.toggleVisibility(e.target.checked);\n };\n }\n };\n },\n createRow: (row, table) => {\n return {\n _getAllVisibleCells: memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, {\n key: process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n getVisibleCells: memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], {\n key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, {\n key,\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n });\n };\n return {\n getVisibleFlatColumns: makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns()),\n getVisibleLeafColumns: makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns()),\n getLeftVisibleLeafColumns: makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns()),\n getRightVisibleLeafColumns: makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns()),\n getCenterVisibleLeafColumns: makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns()),\n setColumnVisibility: updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater),\n resetColumnVisibility: defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n },\n toggleAllColumnsVisible: value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n },\n getIsAllColumnsVisible: () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible())),\n getIsSomeColumnsVisible: () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible()),\n getToggleAllColumnsVisibilityHandler: () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n }\n };\n }\n};\n\nconst features = [Headers, Visibility, Ordering, Pinning, Filters, Sorting, Grouping, Expanding, Pagination, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$initialState;\n if (options.debugAll || options.debugTable) {\n console.info('Creating Table Instance...');\n }\n let table = {\n _features: features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features: features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null ? void 0 : table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n getRow: id => {\n const row = table.getRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`);\n }\n throw new Error();\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null ? void 0 : _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, {\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugColumns;\n },\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumnDef'\n }),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugColumns;\n }\n }),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () => {\n var _table$options$debugA3;\n return (_table$options$debugA3 = table.options.debugAll) != null ? _table$options$debugA3 : table.options.debugColumns;\n }\n }),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () => {\n var _table$options$debugA4;\n return (_table$options$debugA4 = table.options.debugAll) != null ? _table$options$debugA4 : table.options.debugColumns;\n }\n }),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () => {\n var _table$options$debugA5;\n return (_table$options$debugA5 = table.options.debugAll) != null ? _table$options$debugA5 : table.options.debugColumns;\n }\n }),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n table._features.forEach(feature => {\n return Object.assign(table, feature.createTable == null ? void 0 : feature.createTable(table));\n });\n return table;\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), {\n key: process.env.NODE_ENV === 'development' && 'cell.getContext',\n debug: () => table.options.debugAll\n })\n };\n table._features.forEach(feature => {\n Object.assign(cell, feature.createCell == null ? void 0 : feature.createCell(cell, column, row, table));\n }, {});\n return cell;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugRows;\n }\n }),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, {\n key: process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => {\n var _table$options$debugA2;\n return (_table$options$debugA2 = table.options.debugAll) != null ? _table$options$debugA2 : table.options.debugRows;\n }\n })\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n Object.assign(row, feature == null ? void 0 : feature.createRow == null ? void 0 : feature.createRow(row, table));\n }\n return row;\n};\n\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys = 'nested.foo.0.bar'\n// const test2: DeepKeys = 'nested.bar'\n\n// const helper = createColumnHelper()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredRowsById[i] = row;\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = columnFilters.map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFilteredRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedUniqueValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n var _facetedRowModel$flat;\n if (!facetedRowModel) return undefined;\n const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);\n if (typeof firstValue === 'undefined') {\n return undefined;\n }\n let facetedMinMaxValues = [firstValue, firstValue];\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value;\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value;\n }\n }\n }\n return facetedMinMaxValues;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {}\n });\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = [...rows];\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = typeof aValue === 'undefined';\n const bUndefined = typeof bValue === 'undefined';\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined ? 0 : aUndefined ? columnInfo.sortUndefined : -columnInfo.sortUndefined;\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._autoResetPageIndex();\n }\n });\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n },\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }\n });\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, {\n key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',\n debug: () => {\n var _table$options$debugA;\n return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;\n }\n });\n}\n\nexport { ColumnSizing, Expanding, Filters, Grouping, Headers, Ordering, Pagination, Pinning, RowSelection, Sorting, Visibility, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null ? void 0 : options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","import \"regenerator-runtime/runtime.js\";\n\nimport React from \"react\";\n\nimport { TextInput } from \"@meterup/metric\";\nimport debounce from \"lodash/debounce\";\n\ninterface SearchInputProps {\n totalRowCount: number;\n globalFilter: string;\n setGlobalFilter: (value: string) => void;\n}\n\nexport default function SearchInput({\n totalRowCount,\n globalFilter,\n setGlobalFilter,\n}: SearchInputProps) {\n const [value, setValue] = React.useState(globalFilter);\n const onChange = debounce((value) => {\n setGlobalFilter(value || undefined);\n }, 200);\n const placeholder = `${totalRowCount} record${totalRowCount === 1 ? \"\" : \"s\"}...`;\n const handleOnChange = (value: string) => {\n setValue(value);\n onChange(value);\n };\n return (\n \n );\n}\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseProperty = require('./_baseProperty');\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nmodule.exports = asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nmodule.exports = unicodeSize;\n","var asciiSize = require('./_asciiSize'),\n hasUnicode = require('./_hasUnicode'),\n unicodeSize = require('./_unicodeSize');\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nmodule.exports = stringSize;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n stringSize = require('./_stringSize');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nmodule.exports = size;\n","import React from \"react\";\n\nimport { flexRender, Row as ReactRow } from \"@tanstack/react-table\";\nimport cx from \"classnames\";\n\ninterface RowProps {\n row: ReactRow;\n onClick?: () => void;\n}\n\nexport default function Row({ row, onClick }: RowProps) {\n return (\n \n {row.getVisibleCells().map((cell, i) => (\n // eslint-disable-next-line react/jsx-key\n \n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n \n ))}\n \n );\n}\n","import React from \"react\";\n\nimport { Spinner } from \"@meterup/metric\";\nimport { Row } from \"@tanstack/react-table\";\nimport size from \"lodash/size\";\n\nimport RowComponent from \"./Row\";\n\ntype TableBodyContentsProps = {\n loading: boolean;\n maxColumns: number;\n onClickRow: (row: Row) => void;\n rows: Row[];\n};\n\nconst CLASS_NAMES = \"bg-white divide-y divide-gray-50\";\n\nexport default function TableBody({\n loading,\n maxColumns,\n onClickRow,\n rows,\n}: TableBodyContentsProps) {\n if (loading) {\n return (\n \n \n \n \n \n \n \n );\n }\n if (size(rows) === 0) {\n return (\n \n \n \n No rows found\n \n \n \n );\n }\n\n return (\n \n {rows.map((row: Row) => (\n \n ))}\n \n );\n}\n","/* eslint-disable react/jsx-key */\nimport React, { useCallback, useMemo, useState } from \"react\";\n\nimport { HStack, Icon, StackProps } from \"@meterup/metric\";\nimport { styled } from \"@meterup/ui\";\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getSortedRowModel,\n Header,\n HeaderGroup,\n Row,\n SortingState,\n TableOptions,\n useReactTable,\n} from \"@tanstack/react-table\";\n\nimport { useEffectDebugger } from \"../utils/debugging\";\nimport SearchInput from \"./SearchInput\";\nimport TableBody from \"./TableBody\";\n\nconst TableWrapper = styled(\"div\", {\n overflowY: \"auto\",\n marginY: \"$8\",\n marginX: \"$16\",\n});\n\ntype RenderSortIconProps = {\n header: Header;\n setSortBy: (sortBy: SortingState) => void;\n};\n\nfunction RenderSortIcon({ header, setSortBy }: RenderSortIconProps) {\n const isSorted = header.column.getIsSorted();\n if (!isSorted) {\n return null;\n }\n\n if (isSorted === \"desc\") {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n}\n\ntype InnerHeaderProps = {\n header: Header;\n};\n\nfunction InnerHeader({ header }: InnerHeaderProps) {\n const { column, getContext, getSize, id } = header;\n const { columnDef, getIsSorted, setSortBy, getToggleSortingHandler } = column;\n const stackProps: StackProps<\"div\"> = {\n style: {\n width: getSize(),\n },\n };\n\n if (getIsSorted()) {\n stackProps.onClick = getToggleSortingHandler();\n stackProps.style!.cursor = \"pointer\";\n }\n\n return (\n \n {flexRender(columnDef.header, getContext())}\n\n \n \n );\n}\n\ninterface TableProps {\n columns: ColumnDef[];\n data: RecordType[];\n loading: boolean;\n showSearch?: boolean;\n defaultSortBy?: SortingState;\n renderFilters?: () => React.ReactNode;\n onClickRow?: (row: Row) => void;\n meta?: any;\n}\n\nexport default function Table({\n columns,\n data,\n showSearch = false,\n loading = true,\n renderFilters,\n onClickRow,\n defaultSortBy,\n meta,\n}: TableProps) {\n const innerOnClickRow = useCallback(\n (row: Row) => {\n if (onClickRow) {\n onClickRow(row);\n }\n },\n [onClickRow],\n );\n const [globalFilter, setGlobalFilter] = useState(\"\");\n const [sortBy, setSortBy] = useState(defaultSortBy || []);\n\n const tableOptions = useMemo>(\n () => ({\n columns,\n data,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting: sortBy,\n globalFilter,\n },\n enableSortingRemoval: false,\n onGlobalFilterChange: setGlobalFilter,\n onSortingChange: setSortBy,\n meta,\n }),\n [columns, data, sortBy, globalFilter, setSortBy, meta],\n );\n\n const table = useReactTable(tableOptions);\n\n const maxColumns = useMemo(\n () =>\n table\n .getHeaderGroups()\n .map((g: any) => g.headers.length)\n .reduce((c: number, i: number) => (i > c ? i : c), 1),\n [table],\n );\n\n const headerGroups = useMemo(() => table.getHeaderGroups(), [table]);\n\n const rowModel = table.getRowModel();\n const rows = useMemo(() => rowModel.rows, [rowModel]);\n\n return (\n
\n \n
\n
\n {(showSearch || renderFilters) && (\n
\n {renderFilters && (\n
\n Filters\n
\n )}\n
\n {renderFilters && renderFilters()}\n {showSearch && (\n \n )}\n
\n
\n )}\n\n
\n \n \n {headerGroups.map((headerGroup: HeaderGroup) => (\n \n {headerGroup.headers.map((header: Header) => (\n \n \n \n ))}\n \n ))}\n \n \n
\n
\n
\n
\n
\n
\n );\n}\n\nTable.whyDidYouRender = true;\n","import React from \"react\";\nimport { FieldRenderProps } from \"react-final-form\";\nimport { Textarea, TextareaProps } from \"@meterup/metric\";\n\n// Mixed interface between React Final Form and our pure TextareaForm\ninterface TextareaFieldProps extends FieldRenderProps, TextareaProps {}\n\n// TODO: Can we move this to the fornt-end component library?\nconst TextareaField: React.FunctionComponent = ({\n // React Final Form\n input,\n meta,\n placeholder,\n\n // Frontend components\n size,\n disabled,\n}) => {\n // TODO: The error mark up should not be here\n const displayError = meta.error && meta.touched;\n return (\n
\n \n {displayError && {meta.error}}\n
\n );\n};\n\n// RRF = React Final Form\nexport default TextareaField;\n","import React from \"react\";\nimport { FieldRenderProps } from \"react-final-form\";\nimport { TextInput, TextInputProps } from \"@meterup/metric\";\n\n// Mixed interface between React Final Form and our pure TextInputForm\nexport interface TextInputFieldProps extends FieldRenderProps, TextInputProps { }\n\n// TODO: Can we move this to the fornt-end component library?\nconst TextInputField: React.FunctionComponent = ({\n // React Final Form\n input,\n meta,\n placeholder,\n\n // Frontend components\n controlSize,\n size,\n type,\n icon,\n prefix,\n suffix,\n autocomplete,\n disabled,\n ariaLabel,\n ...props\n}) => {\n // TODO: The error mark up should not be here\n const displayError = meta.error && meta.touched;\n const inputType = input.type as TextInputProps[\"type\"];\n const internalOnChange = (value: string) => {\n return input.onChange({ target: { value } });\n };\n\n return (\n
\n \n {displayError && {meta.error}}\n
\n );\n};\n\n// RRF = React Final Form\nexport default TextInputField;\n\n","import { parsePhoneNumberFromString } from \"libphonenumber-js\";\n\nexport const allOf = (...validators: ((value: any) => string | undefined)[]) => (value: any) =>\n validators.reduce((error, validator) => error || validator(value), undefined);\n\nexport const required = (value: string) =>\n value || parseInt(value) === 0 ? undefined : \"Required\";\n\nexport const naturalNumber = (value: string) =>\n !isNaN(parseInt(value)) && parseInt(value) === parseFloat(value) && parseInt(value) > 0\n ? undefined\n : \"Must be a positive integer\";\n\nexport const validEmail = (value: string) =>\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n value,\n )\n ? undefined\n : \"Must be a valid email address\";\n\nexport const validTelephone = (value: string) =>\n parsePhoneNumberFromString(value, \"US\")?.isValid()\n ? undefined\n : \"Must be a valid US telephone number\";\n\nexport const futureDate = (value: string) =>\n new Date(value) > new Date() ? undefined : \"Must be a future date\";\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import { styled } from \"../styled\";\n\nexport const SearchForm = styled(\"form\", {\n \"& > label\": {\n borderRadius: \"30px\",\n transition: \"width 250ms linear 0\",\n },\n\n variants: {\n state: {\n entering: {\n \"& > label\": {\n // maxWidth: 0,\n // minWidth: 0,\n width: 50,\n },\n },\n entered: {\n \"& > label\": {\n // maxWidth: 220,\n // minWidth: 220,\n width: 220,\n },\n },\n exiting: {\n \"& > label\": {\n // maxWidth: 0,\n // minWidth: 220,\n // width: 0,\n width: 50,\n },\n },\n exited: {\n \"& > label\": {\n // maxWidth: 0,\n // minWidth: 220,\n width: 50,\n // width: 0,\n },\n },\n },\n },\n});\n","import React, { useCallback } from \"react\";\n\nimport { Icon } from \"@meterup/metric\";\n\nimport { styled } from \"../styled\";\n\nconst ClearIconWrapper = styled(\"span\", {\n cursor: \"pointer\",\n});\n\ntype ClearInputButtonProps = {\n onClick: (e: React.SyntheticEvent) => void;\n visible?: boolean;\n};\n\nexport default function ClearInputButton({ onClick: onClickProp, visible }: ClearInputButtonProps) {\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n onClickProp(e);\n },\n [onClickProp],\n );\n if (!visible) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from \"react\";\n\nimport { Icon, TextInput } from \"@meterup/metric\";\nimport { useEvent } from \"@meterup/react-aria\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport { styled } from \"../styled\";\nimport { SearchForm } from \"../styles/SearchForm\";\nimport ClearInputButton from \"./ClearInputButton\";\n\nfunction preventDefault(e: React.FormEvent) {\n e.preventDefault();\n}\n\nconst ClearIconWrapper = styled(\"span\", {\n cursor: \"pointer\",\n});\n\ntype SearchButtonInputProps = {\n setValue: (e: string) => void;\n value: string;\n};\n\nexport default function SearchButtonInput({ setValue, value }: SearchButtonInputProps) {\n const [isFocused, setIsFocused] = React.useState(false);\n const isExpanded = useMemo(() => isFocused || value.length > 0, [isFocused, value.length]);\n const windowRef = useRef(window as Window);\n const timeoutRef = useRef();\n const formRef = useRef(null);\n const inputRef = useRef(null);\n const searchFormRef = useRef(null);\n const handleBlurOrFocus = useCallback(() => {\n if (timeoutRef.current) {\n windowRef.current.clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }, []);\n useEvent(windowRef, \"blur\", handleBlurOrFocus);\n const handleChange = useCallback(\n (val: string) => {\n setValue(val);\n },\n [setValue],\n );\n const onBlur = useCallback(() => {\n if (value.length === 0) {\n if (!timeoutRef.current) {\n timeoutRef.current = windowRef.current.setTimeout(() => {\n setIsFocused(false);\n timeoutRef.current = undefined;\n }, 50);\n }\n }\n }, [value.length]);\n const onEntered = useCallback(() => {\n if (isFocused && searchFormRef.current) {\n searchFormRef.current.focus();\n }\n }, [isFocused]);\n useEffect(() => {\n if (formRef.current) {\n inputRef.current = formRef.current.querySelector(\"input\");\n }\n }, []);\n const onClickClearInput = useCallback(() => {\n setValue(\"\");\n if (searchFormRef.current) {\n searchFormRef.current.blur();\n }\n setIsFocused(false);\n }, [setValue]);\n const onClickForm = useCallback(() => {\n if (!isFocused) {\n setIsFocused(true);\n }\n }, [isFocused]);\n const onKeyUp = useCallback(\n (e: React.KeyboardEvent) => {\n const { code } = e;\n const { current: inputEl } = inputRef;\n if (code === \"Escape\" && isFocused && inputEl) {\n setValue(\"\");\n setTimeout(() => {\n inputEl.blur();\n }, 0);\n }\n },\n [isFocused, setValue],\n );\n\n return (\n \n {(state) => (\n \n }\n />\n \n )}\n \n );\n}\n\nSearchButtonInput.whyDidYouRender = true;\n","import { styled } from \"../../styled\";\n\nexport const TdContentWrapper = styled(\"div\", {\n height: \"100%\",\n flex: 1,\n flexDirection: \"column\",\n padding: \"$10 $8 $10 $20\",\n display: \"flex\",\n overflow: \"hidden\",\n \"& > div\": {\n textOverflow: \"ellipsis\",\n },\n // justifyContent: \"center\",\n variants: {\n position: {\n last: {\n padding: \"$10 $8 $10 $8\",\n },\n lastHeader: {\n padding: 0,\n },\n },\n },\n});\n","import { styled } from \"../../styled\";\nimport { TdContentWrapper } from \"./TdContentWrapper\";\n\nexport const InnerTd = styled(\"div\", {\n alignItems: \"stretch\",\n display: \"flex\",\n height: \"100%\",\n position: \"relative\",\n variants: {\n type: {\n header: {\n height: \"auto\",\n // boxShadow: \"$fenceBottomLight, $fenceTopLight\",\n // boxShadow: \"$fenceBottomLight\",\n\n [`& ${TdContentWrapper}`]: {\n padding: \"$6 $8\",\n },\n },\n last: {\n boxShadow: \"$fenceLeftLight\",\n padding: \"$10 $8\",\n },\n lastEmpty: {\n boxShadow: \"$fenceLeftLight\",\n padding: \"$16 $8\",\n },\n lastHeader: {\n boxShadow: \"$fenceLeftLight, $fenceBottomLight\",\n padding: \"$6 $8\",\n height: \"auto\",\n },\n },\n },\n});\n","import { css, styled } from \"../../styled\";\nimport { InnerTd } from \"./InnerTd\";\nimport { TdContentWrapper } from \"./TdContentWrapper\";\n\n// export const Table = styled(\"table\", {\n// width: \"100%\",\n// display: \"block\",\n// overflowX: \"hidden\",\n// whiteSpace: \"nowrap\",\n// boxShadow: \"$fenceBottomLight\",\n// position: \"relative\",\n//\n// \"&:hover\": {\n// overflowX: \"auto\",\n//\n// \"&::-webkit-scrollbar\": {\n// \"-webkit-appearance\": \"none\",\n// },\n// \"&::-webkit-scrollbar:horizontal\": {\n// height: \"12px\",\n// },\n// \"&::-webkit-scrollbar:vertical\": {\n// width: \"12px\",\n// },\n// \"&::-webkit-scrollbar-track\": {\n// backgroundColor: \"transparent\",\n// borderRadius: \"8px\",\n// },\n// \"&::-webkit-scrollbar-thumb\": {\n// borderRadius: \"8px\",\n// backgroundColor: \"rgba(0, 0, 0, .5)\",\n// border: \"2px solid white\",\n// },\n// \"&::before\": {\n// content: '\"\"',\n// position: \"absolute\",\n// zIndex: 1,\n// top: 0,\n// right: 0,\n// bottom: 0,\n// width: \"12px\",\n// pointerEvents: \"none\",\n// background: \"linear-gradient(to right, rgba(255, 255, 255, 1) 70%, rgba(255, 255, 255, 0))\",\n// },\n// },\n// });\n\nexport const THead = styled(\"thead\", {\n width: \"100%\",\n});\n\nexport const StickyTableHeader = styled(\"thead\", {\n position: \"sticky\",\n top: 0,\n zIndex: 5,\n background: \"$white\",\n});\n\nexport const TBody = styled(\"tbody\", {});\n\nexport const Th = css({\n padding: \"$6 $8\",\n color: \"$gray-600\",\n textAlign: \"left\",\n fontWeight: 500,\n fontSize: \"$12\",\n lineHeight: \"8px\",\n height: \"28px\",\n width: \"100%\",\n boxShadow: \"$fenceBottomLight\",\n \"&:first-child\": {\n backgroundColor: \"$white\",\n width: \"247px\",\n padding: 0,\n position: \"sticky\",\n left: 0,\n boxShadow: \"$fenceRightLight, $fenceLeftLight, $fenceBottomLight\",\n lineHeight: \"$16\",\n },\n \"&:nth-child(2)\": {\n boxShadow: \"$fenceRightLight, $fenceLeftLight, $fenceBottomLight\",\n // boxShadow: \"$fenceBottomLight, $fenceRightLight\",\n },\n \"&:nth-child(3)\": {\n padding: \"10px 8px 10px 13px\",\n },\n \"&:last-child\": {\n lineHeight: \"$16\",\n backgroundColor: \"$white\",\n padding: 0,\n },\n});\n\nexport const StickyTh = styled(\"th\", Th, {\n \"&:last-child\": {\n position: \"sticky\",\n right: 0,\n zIndex: 2,\n },\n});\n\nconst TdVariants = {\n positionInRow: {\n first: {\n color: \"$gray-700\",\n position: \"sticky\",\n zIndex: 2,\n left: 0,\n padding: 0,\n // boxShadow: \"$fenceLeftLight, $fenceTopLight\",\n boxShadow: \"$fenceRightLight, $fenceBottomLight, $fenceLeftLight\",\n\n [`& > ${TdContentWrapper}`]: {\n padding: \"$10 $8\",\n },\n },\n secondSticky: {\n padding: 0,\n position: \"relative\",\n\n [`& > ${TdContentWrapper}`]: {\n padding: \"$10 $8\",\n },\n\n \"& > div > div:first-child\": {\n // padding: \"$10 0 $10 $10\",\n marginRight: \"$20\",\n },\n },\n last: {\n height: \"100%\",\n padding: 0,\n },\n },\n};\n\nexport const Td = css({\n padding: \"8px\",\n color: \"$gray-600\",\n backgroundColor: \"$white\",\n\n variants: TdVariants,\n \"&.first2\": {},\n \"&.first\": {},\n \"&.second\": {\n padding: \"10px 8px 10px 13px\",\n },\n\n \"&.last\": {},\n});\n\nexport const StickyTd = styled(\"td\", Td, {\n // boxShadow: \"$fenceTopLight\",\n boxShadow: \"$fenceBottomLight\",\n fontSize: \"$12\",\n lineHeight: \"$16\",\n color: \"$gray-700\",\n \"&.first\": {\n // maxWidth: \"247px\",\n // width: \"247px\",\n },\n variants: {\n positionInRow: {\n ...TdVariants.positionInRow,\n last: {\n ...TdVariants.positionInRow.last,\n position: \"sticky\",\n right: 0,\n zIndex: 2,\n height: \"100%\",\n padding: 0,\n // paddingRight: \"$8\",\n\n \"& > a\": {\n color: \"$gray-700\",\n },\n },\n },\n },\n});\n\nexport const Tr = styled(\"tr\", {\n cursor: \"pointer\",\n boxShadow: \"$fenceBottomLight\",\n\n [`& ${StickyTh} ${InnerTd} ${TdContentWrapper}`]: {\n // paddingLeft: \"$20\",\n },\n\n \"& > th\": {\n \"&:first-child\": {\n // width: \"40%\",\n },\n // \"&:last-child\": {\n // width: \"35%\",\n // },\n },\n\n variants: {\n positionInGroup: {\n first: {\n [`& ${StickyTd}`]: {\n \"&:nth-child(2)\": {\n boxShadow: \"$fenceBottomLight, $fenceRightLight\",\n },\n \"&:nth-child(3)\": {\n // padding: \"$10 $20\",\n },\n },\n },\n rest: {},\n },\n theme: {\n light: {\n [`& ${StickyTh}:nth-child(2)`]: {\n boxShadow: \"unset\",\n },\n },\n default: {\n [`& ${StickyTh}:nth-child(2)`]: {\n boxShadow: \"$fenceRightLight\",\n },\n },\n },\n },\n\n compoundVariants: [\n {\n positionInGroup: \"first\",\n theme: \"light\",\n css: {\n [`& ${StickyTd}:nth-child(2)`]: {\n boxShadow: \"$fenceBottomLight\",\n },\n },\n },\n ],\n\n defaultVariants: {\n positionInGroup: \"rest\",\n theme: \"default\",\n },\n});\n\nexport const FormRowInputCell = styled(\"form\", {\n \"& > label\": {\n width: \"100%\",\n flex: 1,\n \"& > input\": {\n width: \"100%\",\n flex: 1,\n },\n },\n \"& label, & input\": {\n cursor: \"text !important\",\n },\n});\n\nexport const RightShadow = styled(\"div\", {\n // boxShadow: \"$fenceLeftLight\",\n padding: 0,\n alignSelf: \"center\",\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n bottom: 0,\n right: \"-10px\",\n width: \"10px\",\n});\n\nexport const StickyFinalRow = styled(Tr, {\n position: \"sticky\",\n bottom: 0,\n boxShadow: \"$fenceTopLight\",\n zIndex: 199,\n backgroundColor: \"$white\",\n cursor: \"unset !important\",\n\n \"& > td\": {\n boxShadow: \"unset !important\",\n\n \"& > div\": {\n boxShadow: \"unset !important\",\n display: \"flex\",\n // width: \"100% !important\",\n // flex: 1,\n\n \"& > div\": {\n flex: 1,\n },\n },\n },\n\n [`& ${StickyTd}`]: {\n \"&:first-child\": {\n [`& > ${TdContentWrapper}`]: {\n paddingTop: \"$8\",\n margin: \"0 auto\",\n },\n [`& > ${RightShadow}}`]: {\n display: \"none\",\n },\n },\n },\n});\n\nexport const TableContainer = styled(\"div\", {\n overflowY: \"hidden\",\n});\n\nexport const Table = styled(\"table\", {\n // width: \"100%\",\n display: \"block\",\n overflowX: \"hidden\",\n whiteSpace: \"nowrap\",\n // boxShadow: \"$fenceBottomLight\",\n\n \"&:hover\": {\n overflowX: \"auto\",\n\n \"&::-webkit-scrollbar\": {\n // width: \"10px\",\n \"-webkit-appearance\": \"none\",\n },\n \"&::-webkit-scrollbar:horizontal\": {\n height: \"12px\",\n },\n \"&::-webkit-scrollbar:vertical\": {\n width: \"12px\",\n },\n \"&::-webkit-scrollbar-track\": {\n backgroundColor: \"#fff\",\n borderRadius: \"8px\",\n },\n \"&::-webkit-scrollbar-thumb\": {\n borderRadius: \"8px\",\n backgroundColor: \"rgba(0, 0, 0, .5)\",\n border: \"2px solid white\",\n // boxShadow: \"inset 0 0 6px rgba(0,0,0,0.5)\",\n },\n },\n //\n // [`& ${StickyTd}`]: {\n // paddingRight: 12,\n // },\n // [`& ${StickyTh}`]: {\n // paddingRight: 12,\n // },\n\n variants: {\n hover: {\n true: {\n [`& ${StickyTd}`]: {\n paddingRight: 0,\n },\n [`& ${StickyTh}`]: {\n paddingRight: 0,\n },\n },\n false: {},\n },\n },\n});\n","import React from \"react\";\n\nimport { styled } from \"../../styled\";\nimport { InnerTd } from \"../../styles/Table/InnerTd\";\nimport { RightShadow, StickyTd, StickyTh } from \"../../styles/Table/table-styles\";\nimport { TdContentWrapper } from \"../../styles/Table/TdContentWrapper\";\n\nconst FirstTdContentWrapper = styled(TdContentWrapper, {\n padding: \"$6 $8\",\n});\n\ninterface FirstCellProps {\n children: React.ReactNode;\n}\n\ninterface LastCellTdProps {\n children: React.ReactNode;\n isSticky?: boolean;\n numRows: number;\n}\n\nexport function FirstCell({ children }: FirstCellProps) {\n return (\n \n {children}\n  \n \n );\n}\n\nexport function FirstCellTd({ children, isSticky = true, numRows }: LastCellTdProps) {\n return (\n \n {children}\n \n );\n}\n\nexport function FirstCellTh({ children, style }: FirstCellProps) {\n return (\n \n \n {children}\n  \n \n \n );\n}\n","import { styled } from \"../styled\";\n\nexport const AlertWrapper = styled(\"div\", {\n boxShadow: \"$fenceBottomLight\",\n \"& > div\": {\n borderRadius: 0,\n },\n});\n","import React from \"react\";\n\nimport { IconName } from \"@fortawesome/free-solid-svg-icons\";\nimport { Icon } from \"@meterup/metric\";\nimport { Header } from \"@tanstack/react-table\";\n\ntype SortIconProps = {\n header: Header;\n};\n\nexport default function SortIcon({\n header,\n}: SortIconProps) {\n const isSorted = header.column.getIsSorted();\n if (!isSorted) {\n return null;\n }\n\n let iconName: IconName = \"chevronDown\";\n\n if (isSorted === \"asc\") {\n iconName = \"chevronUp\";\n }\n\n return (\n \n \n \n );\n}\n","import React, { useCallback } from \"react\";\n\nimport { HStack, StackProps } from \"@meterup/metric\";\nimport { flexRender, Header } from \"@tanstack/react-table\";\n\nimport SortIcon from \"./SortIcon\";\n\ntype SortableHeaderProps = {\n header: Header;\n};\n\nexport default function SortableHeader({\n header,\n}: SortableHeaderProps) {\n const {\n table: { setSorting },\n } = header.getContext();\n const { column, getContext, getSize, id } = header;\n const {\n columnDef,\n getCanSort,\n getIsSorted,\n getCanMultiSort,\n toggleSorting,\n } = column;\n const stackProps: StackProps<\"div\"> = {\n style: {\n width: getSize(),\n },\n };\n\n const toggleSortingCallback = useCallback(\n (e: React.SyntheticEvent) => {\n e.stopPropagation();\n const sorted = getIsSorted();\n if (sorted === \"desc\") {\n setSorting((prev) => prev.filter((s) => s.id !== id));\n return;\n }\n if (sorted === \"asc\") {\n toggleSorting(true, getCanMultiSort());\n return;\n }\n\n toggleSorting(false, getCanMultiSort());\n },\n [getCanMultiSort, getIsSorted, id, setSorting, toggleSorting],\n );\n if (getCanSort()) {\n stackProps.onClick = toggleSortingCallback;\n stackProps.style!.cursor = \"pointer\";\n }\n\n return (\n \n {flexRender(columnDef.header, getContext())}\n\n \n \n );\n}\n","import lodashGet from \"lodash/get\";\nimport lodashIsFunction from \"lodash/isFunction\";\n\nexport function get(object: T | undefined, key: K): T[K] | undefined {\n return lodashGet(object, key);\n}\n\nexport function isFunction any>(value: any): value is T {\n return lodashIsFunction(value);\n}\n","/*\n * Fuzzy\n * https://github.com/myork/fuzzy\n *\n * Copyright (c) 2012 Matt York\n * Licensed under the MIT license.\n */\n\n(function() {\n\nvar root = this;\n\nvar fuzzy = {};\n\n// Use in node or in browser\nif (typeof exports !== 'undefined') {\n module.exports = fuzzy;\n} else {\n root.fuzzy = fuzzy;\n}\n\n// Return all elements of `array` that have a fuzzy\n// match against `pattern`.\nfuzzy.simpleFilter = function(pattern, array) {\n return array.filter(function(str) {\n return fuzzy.test(pattern, str);\n });\n};\n\n// Does `pattern` fuzzy match `str`?\nfuzzy.test = function(pattern, str) {\n return fuzzy.match(pattern, str) !== null;\n};\n\n// If `pattern` matches `str`, wrap each matching character\n// in `opts.pre` and `opts.post`. If no match, return null\nfuzzy.match = function(pattern, str, opts) {\n opts = opts || {};\n var patternIdx = 0\n , result = []\n , len = str.length\n , totalScore = 0\n , currScore = 0\n // prefix\n , pre = opts.pre || ''\n // suffix\n , post = opts.post || ''\n // String to compare against. This might be a lowercase version of the\n // raw string\n , compareString = opts.caseSensitive && str || str.toLowerCase()\n , ch;\n\n pattern = opts.caseSensitive && pattern || pattern.toLowerCase();\n\n // For each character in the string, either add it to the result\n // or wrap in template if it's the next string in the pattern\n for(var idx = 0; idx < len; idx++) {\n ch = str[idx];\n if(compareString[idx] === pattern[patternIdx]) {\n ch = pre + ch + post;\n patternIdx += 1;\n\n // consecutive characters should increase the score more than linearly\n currScore += 1 + currScore;\n } else {\n currScore = 0;\n }\n totalScore += currScore;\n result[result.length] = ch;\n }\n\n // return rendered string if we have a match for every char\n if(patternIdx === pattern.length) {\n // if the string is an exact match with pattern, totalScore should be maxed\n totalScore = (compareString === pattern) ? Infinity : totalScore;\n return {rendered: result.join(''), score: totalScore};\n }\n\n return null;\n};\n\n// The normal entry point. Filters `arr` for matches against `pattern`.\n// It returns an array with matching values of the type:\n//\n// [{\n// string: 'lah' // The rendered string\n// , index: 2 // The index of the element in `arr`\n// , original: 'blah' // The original element in `arr`\n// }]\n//\n// `opts` is an optional argument bag. Details:\n//\n// opts = {\n// // string to put before a matching character\n// pre: ''\n//\n// // string to put after matching character\n// , post: ''\n//\n// // Optional function. Input is an entry in the given arr`,\n// // output should be the string to test `pattern` against.\n// // In this example, if `arr = [{crying: 'koala'}]` we would return\n// // 'koala'.\n// , extract: function(arg) { return arg.crying; }\n// }\nfuzzy.filter = function(pattern, arr, opts) {\n if(!arr || arr.length === 0) {\n return [];\n }\n if (typeof pattern !== 'string') {\n return arr;\n }\n opts = opts || {};\n return arr\n .reduce(function(prev, element, idx, arr) {\n var str = element;\n if(opts.extract) {\n str = opts.extract(element);\n }\n var rendered = fuzzy.match(pattern, str, opts);\n if(rendered != null) {\n prev[prev.length] = {\n string: rendered.rendered\n , score: rendered.score\n , index: idx\n , original: element\n };\n }\n return prev;\n }, [])\n\n // Sort by score. Browsers are inconsistent wrt stable/unstable\n // sorting, so force stable by using the index in the case of tie.\n // See http://ofb.net/~sethml/is-sort-stable.html\n .sort(function(a,b) {\n var compare = b.score - a.score;\n if(compare) return compare;\n return a.index - b.index;\n });\n};\n\n\n}());\n\n","import fuzzy from \"fuzzy\";\n\nexport function isString(val?: any) {\n return typeof val === \"string\" || val instanceof String;\n}\n\nexport function leafMatches(val: any, pattern: string, columnId?: string): boolean {\n let value = val;\n\n if (typeof value === \"boolean\") {\n value = `${value}`;\n }\n if (typeof value === \"number\" || value instanceof Number) {\n value = `${value}`;\n }\n if (isString(value)) {\n return fuzzy.test(pattern, value.toString());\n }\n\n if (!value) {\n return false;\n }\n if (Array.isArray(val)) {\n return !!val.find((v) => leafMatches(v, pattern));\n }\n if (value instanceof Date) {\n return leafMatches(val.toString(), pattern);\n }\n return !!Object.keys(val).find((k) => leafMatches(val[k], pattern, columnId));\n}\n","import React from \"react\";\n\nimport { styled } from \"../styled\";\n\nconst ExpandFlexEl = styled(\"div\", {\n flex: 1,\n});\n\nexport function ExpandFlex({ children }: { children?: React.ReactNode }) {\n return {children || <> };\n}\n","import { HStack } from \"@meterup/metric\";\n\nimport { styled } from \"../../styled\";\n\nexport const TabsBarContainer = styled(HStack, {\n width: \"auto\",\n});\n","import { Box } from \"@meterup/metric\";\n\nimport { styled } from \"../../styled\";\n\nconst Header = styled(Box, {\n zIndex: 1,\n});\n\nexport default Header;\n","import { Box } from \"@meterup/metric\";\n\nimport { TabsBarContainer } from \"../../components/Tabs/TabsBarContainer\";\nimport { styled } from \"../../styled\";\nimport Header from \"./Header\";\n\nexport const BaseDataViewWrapper = styled(Box, {\n boxShadow: \"$fenceBottomLight\",\n padding: \"0 $20\",\n\n [`& ${TabsBarContainer}`]: {\n marginTop: \"$14\",\n\n \"& + div + div\": {\n marginTop: 0,\n },\n },\n\n [`& ${Header}`]: {\n margin: \"$14 0\",\n },\n});\n","import React, { useMemo, useRef, useState } from \"react\";\n\nimport { HStack } from \"@meterup/metric\";\n\nimport { isFunction } from \"../utils\";\nimport { ExpandFlex } from \"../components/ExpandFlex\";\nimport { styled } from \"../styled\";\nimport { BaseDataViewWrapper } from \"./components/BaseDataViewWrapper\";\nimport { BaseDataViewProps } from \"./types\";\n\nconst Buttons = styled(HStack, {\n // marginTop: \"0 !important\",\n});\n\n// const TopWrapper = styled(HStack, LabelRow, {\n// paddingBottom: 0,\n// });\n\n// Current variation works as the plain Companies view\n//\n// To make companies view work, we need to:\n// - Add drawer (as Context-able?)\n//\n// Need to add the variation that involves nested tabs.\n// I think to do that we make this either take a Heading or Tabs. Then we just pick one or the other\n// Then to display nested tabs, we just nest this thing inside a parent component with tabs. Can probably re-use similar Box as VStack then HStack as LabelRow stuff\nexport default function BaseDataView({\n buttons,\n header,\n children,\n\n drawerContent,\n}: BaseDataViewProps) {\n // If we only support the use case of plumbing search through flat tables, I think it's\n // fine to just use the local state and not bubble it up?\n const [drawerIsOpen, setDrawerIsOpen] = useState(false);\n const [drawerElement, setDrawerElement] = useState(null);\n const parentRef = useRef(null);\n\n const derivedDrawerContent = useMemo(() => {\n if (drawerContent) {\n return drawerContent({\n closeDrawer: () => setDrawerIsOpen(false),\n });\n }\n return null;\n }, [drawerContent]);\n const derivedDrawerIsOpen = useMemo(\n () => drawerIsOpen && (drawerElement !== null || derivedDrawerContent !== null),\n [derivedDrawerContent, drawerElement, drawerIsOpen],\n );\n const derivedButtons = useMemo(() => {\n if (isFunction(buttons)) {\n return buttons({\n openDrawer: () => setDrawerIsOpen(true),\n });\n }\n return buttons;\n }, [buttons]);\n\n return (\n
\n \n {header}\n \n \n {derivedButtons}\n \n \n {children}\n
\n );\n}\n\nBaseDataView.whyDidYouRender = true;\n","import React, { useMemo } from \"react\";\n\nimport { ColumnSizingState } from \"@tanstack/react-table\";\n\ntype DataViewContentProps = {\n children?: React.ReactNode;\n columnSizingState?: ColumnSizingState;\n renderContent?: (columnSizingState: ColumnSizingState) => React.ReactNode;\n};\n\nexport default function DataViewContent({\n children: childrenProp,\n columnSizingState,\n renderContent,\n}: DataViewContentProps) {\n console.log(\"I'm a DataViewContent component!\");\n const children = useMemo(() => {\n if (renderContent) {\n return renderContent(columnSizingState);\n }\n return childrenProp;\n }, [childrenProp, columnSizingState, renderContent]);\n return <>{children};\n}\n","import { styled } from \"../styled\";\n\nexport const DetailsArrow = styled(\"div\", {\n display: \"flex\",\n // alignItems: \"center\",\n padding: \"0 $8\",\n});\n","export type DefaultPreventable = {\n preventDefault: () => void;\n};\n\nexport function preventDefault(event: T): T {\n event.preventDefault();\n return event;\n}\n\nexport type StopPropagationAble = {\n stopPropagation: () => void;\n};\n\nexport function stopPropagation(event: T): T {\n event.stopPropagation();\n return event;\n}\n","import { HStack } from \"@meterup/metric\";\n\nimport { ExpandFlex } from \"../../components/ExpandFlex\";\nimport { styled } from \"../../styled\";\nimport { DetailsArrow } from \"../../styles/DetailsArrow\";\n\nexport const CellWrapper = styled(HStack, {\n variants: {\n variant: {\n lastTdSticky: {\n boxShadow: \"$fenceLeftLight\",\n },\n \"lastTdSticky-NoArrow\": {\n height: \"100%\",\n boxShadow: \"$fenceLeftLight\",\n [`& ${DetailsArrow}`]: {\n display: \"none\",\n },\n [`& ${ExpandFlex}`]: {\n display: \"none\",\n },\n },\n },\n },\n});\n\nexport const InnerCellWrapper = styled(\"div\", {\n display: \"block\",\n // overflow: \"hidden\",\n \"& > div\": {\n textOverflow: \"ellipsis\",\n },\n});\n","import React, { useMemo } from \"react\";\n\nimport { HStack, Icon } from \"@meterup/metric\";\nimport { Cell, flexRender, Row } from \"@tanstack/react-table\";\nimport { Link } from \"react-router-dom\";\n\nimport { ExpandFlex } from \"../components/ExpandFlex\";\nimport { log } from \"../Log.utils\";\nimport { DetailsArrow } from \"../styles/DetailsArrow\";\nimport { InnerTd } from \"../styles/Table/InnerTd\";\nimport { RightShadow, StickyTd, Tr } from \"../styles/Table/table-styles\";\nimport { TdContentWrapper } from \"../styles/Table/TdContentWrapper\";\nimport { stopPropagation } from \"../utils/eventHandlers\";\nimport { CellWrapper, InnerCellWrapper } from \"./components/CellWrapper\";\nimport { DataViewTheme } from \"./types\";\n\ntype CellRows = {\n row: Row;\n cells: {\n leading: Cell[];\n trailing: Cell[];\n };\n};\n\nfunction partitionCells(\n cells: Cell[],\n numLeading = 0,\n): CellRows[\"cells\"] {\n if (numLeading === 0) {\n return {\n leading: [],\n trailing: cells,\n };\n }\n\n const leading = cells.slice(0, numLeading);\n const trailing = cells.slice(numLeading, cells.length);\n\n return {\n leading,\n trailing,\n };\n}\n\nfunction renderCell(cell: Cell) {\n const cellContext = cell.getContext();\n const isAgg = cell.getIsAggregated();\n\n return flexRender(\n isAgg ? cell.column.columnDef.aggregatedCell : cell.column.columnDef.cell,\n cellContext,\n );\n}\n\nfunction cssProps(cell: Cell, numRows = 1) {\n if (cell.id === \"address\") {\n log(\n \"cssProps for address\",\n \"size\",\n cell.column.columnDef.size,\n \"cell\",\n cell,\n \"numRows\",\n numRows,\n );\n }\n return {\n style: {\n // height: Math.min(80, 40 * numRows),\n ...(numRows > 1 ? { height: `${40 * numRows}px` } : {}),\n width: `${cell.column.getSize()}px`,\n maxWidth: `${cell.column.getSize()}px`,\n },\n };\n}\n\nfunction dataProps(cell: Cell) {\n return {\n \"data-column-id\": cell.column.id,\n };\n}\n\ntype DataViewRowProps> = {\n as?: As;\n chevronLink?: (r: RecordType) => string;\n lastColumnIsSticky?: boolean;\n numLeadingStickyColumns?: number;\n onClickRecord: (record: RecordType) => (e: React.SyntheticEvent) => void;\n row: Row;\n theme?: DataViewTheme;\n trailingChevron?: boolean;\n};\n\nexport type PartitionCellRows = {\n cells: CellRows[\"cells\"];\n row: Row;\n}[];\n\nexport function partitionCellRows(\n row: Row,\n numLeadingStickyColumns = 0,\n): PartitionCellRows {\n const { subRows } = row;\n const topLevelCells = row.getVisibleCells();\n if (subRows.length === 0) {\n return [{ row, cells: partitionCells(topLevelCells, numLeadingStickyColumns) }];\n }\n const aggregated = topLevelCells.map((cell) => {\n if (cell.getIsAggregated()) {\n return cell;\n }\n return null;\n });\n\n return subRows.map((subRow) => {\n const cells = subRow.getVisibleCells();\n const mappedCells = aggregated.map((aggCell, i) => {\n if (aggCell) {\n return aggCell;\n }\n return cells[i];\n });\n return { row: subRow, cells: partitionCells(mappedCells, numLeadingStickyColumns) };\n });\n}\n\nexport default function DataViewRow>({\n as = Tr,\n chevronLink,\n lastColumnIsSticky = true,\n numLeadingStickyColumns = 0,\n onClickRecord,\n row,\n theme = \"default\",\n trailingChevron = false,\n}: DataViewRowProps) {\n const cellRows = useMemo[]>(\n () => partitionCellRows(row, numLeadingStickyColumns),\n [numLeadingStickyColumns, row],\n );\n return (\n <>\n {cellRows.map((cellRow, cellRowIdx) => {\n const isFirst = cellRowIdx === 0;\n const { row: innerRow, cells } = cellRow;\n const { original } = innerRow;\n const { leading, trailing } = cells;\n const numSubRows = cellRows.length;\n return (\n \n {isFirst\n ? leading.map((cell, leadingIdx) => (\n \n {/* */}\n \n {renderCell(cell)}\n \n  \n {/* */}\n \n ))\n : null}\n {trailing.map((cell, trailingIdx) => {\n // const normalizedIdx = trailingIdx + numLeadingStickyColumns;\n const isAggregated = cell.getIsAggregated();\n const isLast = trailing.length - 1 === trailingIdx;\n\n if (isFirst && (isAggregated || (isLast && lastColumnIsSticky))) {\n return (\n \n \n \n
{renderCell(cell)}
\n
\n \n \n \n
\n \n );\n }\n if (isAggregated && !isFirst) {\n return null;\n }\n\n return (\n \n \n \n
{renderCell(cell)}
\n
\n
\n
\n );\n })}\n {trailingChevron ? (\n \n \n \n
\n {chevronLink ? (\n \n \n \n ) : (\n \n )}\n
\n
\n
\n ) : null}\n \n );\n })}\n \n );\n}\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","var baseSum = require('./_baseSum'),\n identity = require('./identity');\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nmodule.exports = sum;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIteratee = require('./_baseIteratee'),\n baseSum = require('./_baseSum');\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n","import { useCallback, useState } from \"react\";\n\nimport { get, isFunction } from \"../../utils\";\nimport { Column, ColumnDef } from \"@tanstack/react-table\";\nimport sum from \"lodash/sum\";\nimport sumBy from \"lodash/sumBy\";\n\nimport { log } from \"../../Log.utils\";\nimport { InnerCellWrapper } from \"../components/CellWrapper\";\n\nexport function portionOfTotal(total: number, weight: number, sumOfWeights: number) {\n return Math.ceil(total * (weight / sumOfWeights));\n}\n\nexport type Portions = {\n initial?: Record;\n minValues?: Record;\n total: number;\n weights: Record;\n};\nexport type PortionsRet = {\n totalAssigned: number;\n values: Record;\n};\nexport type HeightProps =\n | {\n table: {\n height: number;\n paddingBottom: number;\n };\n tableParentDiv: {\n height: number;\n };\n}\n | {\n table: {};\n tableParentDiv: {};\n}\n | {\n table: {};\n tableParentDiv: {\n height: number;\n };\n};\n\nclass PortionsResult implements PortionsRet {\n constructor(public totalAssigned: number, public values: Record) {}\n}\n\nexport function portions({ initial, minValues, total, weights }: Portions): PortionsRet {\n const keys = Object.keys(weights);\n const values = keys.map((key) => weights[key]);\n const weightSum = sum(values);\n let totalAssigned = 0;\n const allocations = keys.reduce((acc, key, i) => {\n const minValue = get(minValues, key) || 0;\n const initialValue = get(initial, key) || 0;\n const allocated =\n initialValue + Math.ceil(Math.max(minValue, portionOfTotal(total, values[i], weightSum)));\n totalAssigned += allocated;\n return { ...acc, [key]: allocated };\n }, {} as Record);\n\n return new PortionsResult(totalAssigned, allocations);\n}\n\nexport function distributeTotal(\n total: number,\n weights: Record,\n minValues: Record,\n) {\n // const keys = Object.keys(weights);\n // const values = keys.map((key) => weights[key]);\n // const weightSum = sum(values);\n // let remainingTotal = total;\n // let allocatedTotal = 0;\n // const firstPass = keys.reduce((acc, key, i) => {\n // const minValue = minValues[key] || 0;\n // const allocated = Math.ceil(Math.max(minValue, portionOfTotal(total, values[i], weightSum)));\n // allocatedTotal += allocated;\n // remainingTotal -= allocated;\n // return { ...acc, [key]: allocated };\n // }, {} as Record);\n const { totalAssigned, values: initialValues } = portions({\n minValues,\n total,\n weights,\n });\n if (totalAssigned < total) {\n log(\n \"totalAssigned < total\",\n \"totAss\",\n totalAssigned,\n \"tot\",\n total,\n \"initialValues\",\n initialValues,\n \"weights\",\n weights,\n \"minValues\",\n minValues,\n );\n }\n\n return initialValues;\n}\n\nfunction getColumnWeights(\n columns: Column[],\n sizeWeights?: Record,\n): Record {\n return columns.reduce((acc, column) => {\n const { id } = column;\n if (!id) return acc;\n return { ...acc, [id]: get(sizeWeights, id) || 1 };\n }, {} as Record);\n}\n\ntype CellSizingFn = (columnNode: HTMLElement[]) => number;\n\nfunction getMinWidthsFromNoWrapColumns(\n noWrapColumns: string[],\n tableEl: HTMLElement | null,\n cellSizing?: Record,\n newWidths: Record,\n): Record {\n const minWidths: Record = {};\n if (!noWrapColumns) return minWidths;\n\n noWrapColumns.forEach((id) => {\n if (!tableEl) return;\n\n const columnNode = Array.from(tableEl.querySelectorAll(`td[data-column-id='${id}']`));\n const cellSizingFn = get(cellSizing, id);\n let newWidth = 0;\n if (isFunction(cellSizingFn)) {\n newWidth = cellSizingFn(columnNode);\n } else {\n newWidth = Math.max(\n ...columnNode.map((node) => {\n const innerWrapper = node.querySelector(InnerCellWrapper.toString());\n return innerWrapper\n ? Math.ceil(innerWrapper.getBoundingClientRect().width)\n : Math.ceil(node.getBoundingClientRect().width);\n }),\n );\n }\n\n minWidths[id] = newWidth;\n });\n\n return minWidths;\n}\n\nexport function widthsOfFirstRow(table: HTMLTableElement) {\n const tbody = table.querySelector(\"tbody\");\n if (!tbody) {\n return null;\n }\n\n const firstRow = tbody.querySelector(\"tr\");\n if (!firstRow) {\n return null;\n }\n\n const tdElements = firstRow.querySelectorAll(\"td\");\n\n return Array.from(tdElements).map((td) => td.clientWidth);\n}\n\nfunction sumPaddingOfFirstRow(table: HTMLTableElement): number {\n const tbody = table.querySelector(\"tbody\");\n if (!tbody) {\n return 0;\n }\n\n const firstRow = tbody.querySelector(\"tr\");\n if (!firstRow) {\n return 0;\n }\n\n const tdElements = firstRow.querySelectorAll(\"td\");\n let sumOfPadding = 0;\n\n tdElements.forEach((td) => {\n const computedStyle = window.getComputedStyle(td);\n\n const paddingLeft = parseFloat(computedStyle.paddingLeft);\n const paddingRight = parseFloat(computedStyle.paddingRight);\n\n sumOfPadding += paddingLeft + paddingRight;\n });\n\n return sumOfPadding;\n}\n\ntype UseRecalculateDimensionsParams = {\n cellSizing?: Record;\n columns: ColumnDef[];\n minColumnWidth: number | undefined;\n debug?: boolean;\n dimensions: {\n joinedHeight: number;\n innerTableHeight: number;\n tableHeight: number;\n };\n noWrapColumns: string[] | undefined;\n sizeWeights: Record | undefined;\n tableRef: React.RefObject;\n};\n\nexport default function useRecalculateDimensions({\n cellSizing,\n columns,\n debug,\n // dimensions,\n minColumnWidth,\n noWrapColumns,\n sizeWeights,\n tableRef,\n }: UseRecalculateDimensionsParams) {\n const [dimensions, setDimensions] = useState({\n tableHeight: 0,\n joinedHeight: 0,\n innerTableHeight: 0,\n });\n const recalculate = useCallback(\n () => () => {\n // Calculate initial column widths based on the specified size.\n const columnWidths = columns.reduce(\n (acc, column) => (column.id && column.size ? { ...acc, [column.id]: column.size } : acc),\n {} as Record,\n );\n\n const newWidths = { ...columnWidths };\n\n // Ensure columns have at least the minimum width.\n columns.forEach((column) => {\n const { id, minSize } = column;\n if (id && !newWidths[id]) {\n newWidths[id] = minSize || minColumnWidth;\n }\n });\n\n const tableEl = tableRef.current;\n\n // Calculate minimum widths for noWrap columns based on their contents.\n const minWidths = getMinWidthsFromNoWrapColumns(\n noWrapColumns,\n tableEl,\n cellSizing,\n newWidths,\n );\n\n if (tableEl) {\n const { clientWidth } = tableEl;\n const tableHeight = document.body.scrollHeight - tableEl.getBoundingClientRect().top;\n const innerTableHeight = sumBy(\n Array.from(tableEl.children),\n (child) => child.getBoundingClientRect().height,\n );\n\n // Update dimensions if they have changed.\n if (\n dimensions.tableHeight !== tableHeight ||\n dimensions.innerTableHeight !== innerTableHeight\n ) {\n setDimensions({\n tableHeight,\n joinedHeight: tableHeight,\n innerTableHeight,\n });\n }\n\n const paddingSum = sumPaddingOfFirstRow(tableEl);\n const availableWidth = clientWidth - paddingSum;\n // Distribute remaining width among columns based on their weights.\n const weights = getColumnWeights(columns, sizeWeights);\n const distributedWidths = distributeTotal(availableWidth, weights, minWidths);\n\n Object.keys(distributedWidths).forEach((id) => {\n newWidths[id] = distributedWidths[id];\n });\n }\n\n return newWidths;\n },\n [\n columns,\n tableRef,\n noWrapColumns,\n cellSizing,\n minColumnWidth,\n dimensions.tableHeight,\n dimensions.innerTableHeight,\n sizeWeights,\n ],\n );\n\n return { dimensions, recalculate };\n}\n","export const exceedsLimit = \"exceeds-limit\";\n\ntype AnchorInfo = {\n parentAnchor: HTMLAnchorElement | null;\n levelsUp: number | typeof exceedsLimit;\n};\n\nexport function getParentAnchor(element: HTMLElement, maxLevels = 10): AnchorInfo {\n let parent = element.parentNode;\n let levels = 0;\n let anchor: HTMLAnchorElement | null = null;\n\n while (parent !== null && levels < maxLevels) {\n if (parent instanceof HTMLAnchorElement) {\n anchor = parent;\n break;\n }\n parent = parent.parentNode;\n levels += 1;\n }\n\n return { parentAnchor: anchor, levelsUp: levels === maxLevels ? exceedsLimit : levels };\n}\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Alert, Box, VStack } from \"@meterup/metric\";\nimport {\n Column,\n ColumnDef,\n getCoreRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n Row,\n SortingState,\n TableOptions,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport debounce from \"lodash/debounce\";\nimport get from \"lodash/get\";\nimport isString from \"lodash/isString\";\n\nimport SearchButtonInput from \"../components/SearchButtonInput\";\nimport { FirstCellTh } from \"../components/Table/FirstCell\";\nimport { logError } from \"../Log.utils\";\nimport { styled } from \"../styled\";\nimport { AlertWrapper } from \"../styles/AlertWrapper\";\nimport { InnerTd } from \"../styles/Table/InnerTd\";\nimport {\n StickyFinalRow,\n StickyTableHeader,\n StickyTd,\n StickyTh,\n Table,\n Tr,\n} from \"../styles/Table/table-styles\";\nimport { TdContentWrapper } from \"../styles/Table/TdContentWrapper\";\nimport SortableHeader from \"../Table/components/SortableHeader\";\nimport { isFunction } from \"../utils\";\nimport { leafMatches } from \"../utils/filters\";\nimport BaseDataView from \"./BaseDataView\";\nimport DataViewContent from \"./DataViewContent\";\nimport DataViewRow, { PartitionCellRows, partitionCellRows } from \"./DataViewRow\";\nimport useRecalculateDimensions, {\n HeightProps,\n widthsOfFirstRow,\n} from \"./hooks/useRecalculateDimensions\";\nimport {\n CellSizingFn,\n DataViewTheme,\n LastColumnVariant,\n OnClickRowProps,\n OnOpenDrawerProps,\n OpenDrawerProps,\n RestDataViewProps,\n} from \"./types\";\nimport { getParentAnchor } from \"./utils\";\n\nconst ContentWrapper = styled(VStack, {\n paddingBottom: \"$2\",\n\n variants: {\n variant: {\n light: {\n [`& ${StickyTd}`]: {\n \"&:nth-child(2)\": {\n // boxShadow: \"$fenceBottomLight, $fenceTopLight\",\n boxShadow: \"$fenceBottomLight\",\n },\n },\n [`& ${StickyTh}`]: {\n \"&:nth-child(2)\": {\n // boxShadow: \"$fenceBottomLight, $fenceTopLight\",\n boxShadow: \"$fenceBottomLight\",\n },\n },\n },\n },\n default: {},\n },\n});\n\nfunction isChildContent(\n element: React.ReactNode,\n childComponent: E,\n): element is React.ReactElement {\n return React.isValidElement(element) && element.type === childComponent;\n}\n\ntype FormatColumnForSearchFn = (row: Row) => any;\n\ntype DataViewProps = {\n formatColumnForSearch?: Record>;\n searchValue?: string;\n setSearchValue?: (value: string) => void;\n\n cellSizing?: Record;\n chevronLink?: (row: RecordType) => string;\n children?: React.ReactNode;\n columns: ColumnDef[];\n data: RecordType[];\n defaultSorting?: SortingState;\n grouping?: string[];\n ignoreRowClick?: boolean;\n lastColumnVariant?: LastColumnVariant;\n lastColumnIsSticky?: boolean;\n minColumnWidth?: number;\n // noWrapColumns?: string[];\n noWrapColumns?: string[];\n numLeadingStickyColumns?: number;\n sizeWeights?: Record;\n staticHeight?: boolean;\n theme?: DataViewTheme;\n finalRow?: (columns?: Column[]) => Row;\n\n onClickRow?: (props: OnClickRowProps) => void;\n onOpenDrawer?: (props: OnOpenDrawerProps) => React.ReactElement | undefined;\n} & RestDataViewProps;\n\n// Current variation works as the plain Companies view\n//\n// To make companies view work, we need to:\n// - Add drawer (as Context-able?)\n//\n// Need to add the variation that involves nested tabs.\n// I think to do that we make this either take a Heading or Tabs. Then we just pick one or the other\n// than to display nested tabs, we just nest this thing inside a parent component with tabs. Can probably re-use similar Box as VStack then HStack as LabelRow stuff\nexport default function DataView({\n formatColumnForSearch,\n searchValue: searchValueProp,\n setSearchValue: setSearchValueProp,\n buttons,\n cellSizing,\n chevronLink,\n children: childrenProp,\n columns,\n data,\n defaultSorting,\n grouping,\n finalRow,\n ignoreRowClick,\n lastColumnVariant = \"default\",\n minColumnWidth = 100,\n noWrapColumns,\n numLeadingStickyColumns = 1,\n sizeWeights,\n staticHeight = false,\n theme = \"default\",\n\n onOpenDrawer,\n onClickRow,\n\n ...props\n}: DataViewProps) {\n if (onOpenDrawer && onClickRow) {\n logError(\n \"Cannot have both onOpenDrawer and onClickRow. onOpenDrawer will take precedence and onClickRow will be ignored.\",\n );\n }\n // If we only support the use case of plumbing search through flat tables, I think it's\n // fine to just use the local state and not bubble it up?\n const [internalSearchValue, setInternalSearchValue] = useState(\"\");\n const [searchValue, setSearchValue] = useMemo(() => {\n if (isString(searchValueProp) && isFunction(setSearchValueProp)) {\n return [searchValueProp, setSearchValueProp];\n }\n\n return [internalSearchValue, setInternalSearchValue];\n }, [internalSearchValue, searchValueProp, setSearchValueProp]);\n const globalFilterFn = useCallback(\n (row: Row, columnId: string, filterValue: any) => {\n const searchFn = get(formatColumnForSearch, columnId);\n if (isFunction(searchFn)) {\n return leafMatches(searchFn(row), filterValue);\n }\n\n return leafMatches(row.getValue(columnId), filterValue, columnId);\n },\n [formatColumnForSearch],\n );\n const [sorting, setSorting] = useState(defaultSorting || []);\n const tableOptions = useMemo>(\n () => ({\n columns,\n data,\n enableFilters: true,\n state: {\n globalFilter: searchValue,\n expanded: true,\n sorting,\n ...(grouping ? { grouping } : {}),\n },\n filterFns: {\n fuzzy: () => true,\n },\n enableGrouping: true,\n enableSorting: true,\n enableMultiSorting: false,\n // enableSortingRemoval: true,\n getColumnCanGlobalFilter: () => true,\n enableGlobalFilter: true,\n filterFromLeafRows: true,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onSortingChange: setSorting,\n globalFilterFn,\n // debugAll: true,\n // debugTable: true,\n // debugRows: true,\n // debugColumns: true,\n // debugHeaders: true,\n }),\n [columns, data, globalFilterFn, grouping, searchValue, sorting],\n );\n const table = useReactTable(tableOptions);\n const onClickRecord = useCallback(\n (record: RecordType) => (e: React.SyntheticEvent) => {\n if (ignoreRowClick) {\n return;\n }\n const { target } = e;\n if (target instanceof Element) {\n const parent = getParentAnchor(target, 3);\n if (parent.levelsUp !== \"exceeds-limit\") {\n return;\n }\n }\n e.preventDefault();\n if (!onClickRow) {\n return;\n }\n onClickRow({ record, openDrawer: () => null });\n },\n [ignoreRowClick, onClickRow],\n );\n const enhancedButtons = useCallback(\n (openDrawerProps: OpenDrawerProps) => (\n <>\n {isFunction(buttons) ? buttons(openDrawerProps) : buttons}\n \n \n ),\n [buttons, searchValue, setSearchValue],\n );\n const [colWidths, setColWidths] = useState>();\n const rowModel = table.getSortedRowModel();\n const rows = useMemo[]>(() => rowModel.rows, [rowModel]);\n const partitionedCellRows = useMemo(() => {\n if (rows.length === 0) {\n return [] as PartitionCellRows;\n }\n const [firstRow] = rows;\n return partitionCellRows(firstRow, numLeadingStickyColumns);\n }, [numLeadingStickyColumns, rows]);\n const tableRef = useRef(null);\n const { recalculate: doRecalculate, dimensions } = useRecalculateDimensions({\n cellSizing,\n columns,\n minColumnWidth,\n noWrapColumns,\n sizeWeights,\n tableRef,\n });\n const recalculate = useCallback(() => {\n const dims = doRecalculate();\n table.setColumnSizing(dims);\n }, [doRecalculate, table]);\n const [columnsOrdered, setColumnsOrdered] = useState[]>();\n useEffect(() => {\n recalculate();\n const fn = debounce(recalculate, 250, {});\n window.addEventListener(\"resize\", fn);\n window.addEventListener(\"focus\", fn);\n const tableRefEl = tableRef.current;\n let disconnect = () => null;\n if (tableRefEl) {\n const observer = new ResizeObserver(([observerEntry]) => {\n const tbl = observerEntry.target;\n\n const calculatedColumnWidths = widthsOfFirstRow(tbl);\n if (!calculatedColumnWidths || partitionedCellRows.length === 0) {\n return;\n }\n const {\n cells: { leading, trailing },\n } = partitionedCellRows[0];\n const leadingIds = leading.map((cell) => cell.column.id);\n const trailingIds = trailing.map((cell) => cell.column.id);\n const allIds = [...leadingIds, ...trailingIds];\n const columnWidthMap = {};\n calculatedColumnWidths.forEach((width, idx) => {\n const id = allIds[idx];\n if (id) {\n columnWidthMap[id] = width;\n }\n });\n const leadingCols = leading.map((cell) => cell.column);\n const trailingCols = trailing.map((cell) => cell.column);\n setColumnsOrdered([...leadingCols, ...trailingCols]);\n setColWidths(columnWidthMap);\n });\n observer.observe(tableRefEl);\n disconnect = () => observer.disconnect();\n }\n\n // disconnect the ResizeObserver on cleanup\n return () => {\n window.removeEventListener(\"resize\", fn);\n window.removeEventListener(\"focus\", fn);\n disconnect();\n };\n }, [columns, partitionedCellRows, recalculate]);\n const lastColumnIsSticky = [\"lastTdSticky\", \"lastTdSticky-NoArrow\"].includes(lastColumnVariant);\n const heightProps = useMemo(() => {\n const { innerTableHeight, joinedHeight, tableHeight } = dimensions;\n if (!tableHeight) {\n return { table: {}, tableParentDiv: {} };\n }\n const tableParentDiv = { height: joinedHeight };\n\n const tableOverflowsAvailableSpace = innerTableHeight > tableHeight;\n if (staticHeight && tableOverflowsAvailableSpace) {\n return {\n table: { height: tableHeight },\n tableParentDiv,\n };\n }\n\n return { table: {}, tableParentDiv };\n }, [dimensions, staticHeight]);\n\n // const rowModel = table.getGroupedRowModel();\n const children = useMemo(() => {\n if (!childrenProp) {\n return null;\n }\n const childProp = React.Children.only(childrenProp);\n if (isChildContent(childProp, DataViewContent)) {\n const sizing = table.getState().columnSizing;\n return React.cloneElement(childProp, {\n columnSizingState: colWidths || sizing,\n });\n }\n throw new Error(\"Invalid child provided, must be instance of DataViewContent.\");\n }, [childrenProp, colWidths, table]);\n const finalRowData = useMemo(() => {\n if (!finalRow) {\n return null;\n }\n\n return finalRow(columnsOrdered);\n }, [columnsOrdered, finalRow]);\n\n return (\n \n \n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header, idx, headers) => {\n const colDef = header.column.columnDef;\n const size = header.column.getSize();\n const { header: text } = colDef;\n const extraProps = size ? { css: { width: size } } : {};\n if (idx === 0) {\n return (\n \n \n \n );\n }\n if (idx === headers.length - 1 && lastColumnIsSticky) {\n return (\n \n \n {text}\n \n \n );\n }\n return (\n \n \n \n );\n })}\n {!lastColumnIsSticky && (\n \n \n  \n \n \n )}\n \n ))}\n \n \n {rows.map((row) => (\n \n ))}\n {finalRowData ? (\n null}\n numLeadingStickyColumns={numLeadingStickyColumns}\n row={finalRowData}\n theme={theme}\n trailingChevron={false}\n />\n ) : null}\n \n
\n {rows.length === 0 && (\n \n \n \n )}\n {children}\n
\n
\n );\n}\n\nDataView.whyDidYouRender = true;\n","import React, { useMemo } from \"react\";\n\nimport { css } from \"../styled\";\n\nexport type NavItemPropsType = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport const styledNavItem = css({\n variants: {\n selected: {\n true: {\n \"---iconColor\": \"$brand-700 !important\",\n backgroundColor: \"$brand-50 !important\",\n color: \"$brand-800 !important\",\n\n \"& > span\": {\n color: \"$brand-800 !important\",\n },\n },\n false: {},\n },\n },\n});\n\nexport function NavItem({ children, className, ...other }: NavItemPropsType) {\n const origClasses = useMemo(() => {\n if (!className) {\n return [];\n }\n return className.split(/\\s+/);\n }, [className]);\n const isSelected = useMemo(\n () => origClasses.filter((c) => c.indexOf(\"isSelected\") !== -1).length > 0,\n [origClasses],\n );\n const classes = useMemo(\n () =>\n // const withoutSelected = origClasses.filter((c) => c.indexOf(\"isSelected\") === -1);\n // return withoutSelected.join(\" \");\n origClasses.join(\" \"),\n [origClasses],\n );\n\n return (\n \n {children}\n \n );\n}\n","import { styled } from \"../../styled\";\n\nexport const Wrapper = styled(\"div\", {\n height: \"100vh\",\n width: \"100%\",\n display: \"grid\",\n position: \"relative\",\n gridTemplateColumns: \"1fr\",\n gridTemplateRows: \"min-content minmax(0, 1fr)\",\n gridTemplateAreas: '\"header\" \"content\"',\n});\n\nexport const ContentWrapper = styled(\"div\", {\n gridArea: \"content\",\n // overflow: \"auto\",\n zIndex: 1,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#fff\",\n overflow: \"hidden\",\n display: \"flex\",\n});\n\nexport const NewWrapper = styled(\"div\", {\n display: \"grid\",\n gridTemplateColumns: \"260px 1fr\",\n gridTemplateRows: \"100vh\",\n backgroundColor: \"#fff\",\n flex: 1,\n // gridGap: \"10px\",\n});\n\nexport const NewContentWrapper = styled(\"div\", {\n // gridArea: \"content\",\n zIndex: 1,\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#fff\",\n overflow: \"hidden\",\n display: \"flex\",\n // height: \"100vh\",\n // width: \"100%\",\n position: \"relative\",\n});\n\nexport const ChildrenWrapper = styled(\"div\", {\n flex: 1,\n width: \"100%\",\n // overflow: \"auto\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n});\n\nexport const HeaderWrapper = styled(\"div\", {\n gridArea: \"header\",\n zIndex: 2,\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * Browser-safe usage of process\n */\nvar defaultEnvironment = \"production\";\nvar env = typeof process === \"undefined\" || process.env === undefined\n ? defaultEnvironment\n : process.env.NODE_ENV || defaultEnvironment;\n\nexport { env };\n","var createDefinition = function (propNames) { return ({\n isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\nfunction loadFeatures(features) {\n for (var key in features) {\n if (features[key] === null)\n continue;\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { featureDefinitions, loadFeatures };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { featureDefinitions } from './definitions.mjs';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.mjs';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement)\n return null;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (env !== \"production\" && preloadedFeatures && lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n }\n }\n return features;\n}\n\nexport { useFeatures };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","var isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { __read } from 'tslib';\nimport { useState, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { isBrowser } from './is-browser.mjs';\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nvar prefersReducedMotion = { current: null };\nvar hasDetected = false;\nfunction initPrefersReducedMotion() {\n hasDetected = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n var motionMediaQuery_1 = window.matchMedia(\"(prefers-reduced-motion)\");\n var setReducedMotionPreferences = function () {\n return (prefersReducedMotion.current = motionMediaQuery_1.matches);\n };\n motionMediaQuery_1.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * \n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasDetected && initPrefersReducedMotion();\n var _a = __read(useState(prefersReducedMotion.current), 1), shouldReduceMotion = _a[0];\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\nfunction useReducedMotionConfig() {\n var reducedMotionPreference = useReducedMotion();\n var reducedMotion = useContext(MotionConfigContext).reducedMotion;\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotion, useReducedMotionConfig };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { useReducedMotionConfig } from '../../utils/use-reduced-motion.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n var lazyContext = useContext(LazyContext);\n var parent = useVisualElementContext();\n var presenceContext = useContext(PresenceContext);\n var shouldReduceMotion = useReducedMotionConfig();\n var visualElementRef = useRef(undefined);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n if (!createVisualElement)\n createVisualElement = lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState: visualState,\n parent: parent,\n props: props,\n presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,\n shouldReduceMotion: shouldReduceMotion,\n });\n }\n var visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(function () {\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n });\n useEffect(function () {\n var _a;\n (_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n });\n useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback(function (instance) {\n var _a;\n instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n var _a;\n if (currentValues === void 0) { currentValues = {}; }\n if (currentVelocity === void 0) { currentVelocity = {}; }\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n var props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\nfunction checkIfControllingVariants(props) {\n var _a;\n return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" ||\n isVariantLabel(props.initial) ||\n isVariantLabel(props.animate) ||\n isVariantLabel(props.whileHover) ||\n isVariantLabel(props.whileDrag) ||\n isVariantLabel(props.whileTap) ||\n isVariantLabel(props.whileFocus) ||\n isVariantLabel(props.exit));\n}\nfunction checkIfVariantNode(props) {\n return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };\n","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (checkIfControllingVariants(props)) {\n var initial = props.initial, animate = props.animate;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n var _a = getCurrentTreeVariants(props, useContext(MotionContext)), initial = _a.initial, animate = _a.animate;\n return useMemo(function () { return ({ initial: initial, animate: animate }); }, [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nvar globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nvar id = 1;\nfunction useProjectionId() {\n return useConstant(function () {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { createContext } from 'react';\n\nvar LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nvar SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useContext } from 'react';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useProjection(projectionId, _a, visualElement, ProjectionNodeConstructor) {\n var _b;\n var layoutId = _a.layoutId, layout = _a.layout, drag = _a.drag, dragConstraints = _a.dragConstraints, layoutScroll = _a.layoutScroll;\n var initialPromotionConfig = useContext(SwitchLayoutGroupContext);\n if (!ProjectionNodeConstructor ||\n !visualElement ||\n (visualElement === null || visualElement === void 0 ? void 0 : visualElement.projection)) {\n return;\n }\n visualElement.projection = new ProjectionNodeConstructor(projectionId, visualElement.getLatestValues(), (_b = visualElement.parent) === null || _b === void 0 ? void 0 : _b.projection);\n visualElement.projection.setOptions({\n layoutId: layoutId,\n layout: layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement: visualElement,\n scheduleRender: function () { return visualElement.scheduleRender(); },\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialPromotionConfig,\n layoutScroll: layoutScroll,\n });\n}\n\nexport { useProjection };\n","import { __extends } from 'tslib';\nimport React__default from 'react';\n\nvar VisualElementHandler = /** @class */ (function (_super) {\n __extends(VisualElementHandler, _super);\n function VisualElementHandler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n VisualElementHandler.prototype.getSnapshotBeforeUpdate = function () {\n this.updateProps();\n return null;\n };\n VisualElementHandler.prototype.componentDidUpdate = function () { };\n VisualElementHandler.prototype.updateProps = function () {\n var _a = this.props, visualElement = _a.visualElement, props = _a.props;\n if (visualElement)\n visualElement.setProps(props);\n };\n VisualElementHandler.prototype.render = function () {\n return this.props.children;\n };\n return VisualElementHandler;\n}(React__default.Component));\n\nexport { VisualElementHandler };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures, featureDefinitions } from './features/definitions.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { useProjection } from './features/use-projection.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent(_a) {\n var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, projectionNodeConstructor = _a.projectionNodeConstructor, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n var layoutId = useLayoutId(props);\n props = __assign(__assign({}, props), { layoutId: layoutId });\n /**\n * If we're rendering in a static environment, we only visually update the component\n * as a result of a React-rerender rather than interactions or animations. This\n * means we don't need to load additional memory structures like VisualElement,\n * or any gesture/animation features.\n */\n var config = useContext(MotionConfigContext);\n var features = null;\n var context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n var projectionId = config.isStatic ? undefined : useProjectionId();\n /**\n *\n */\n var visualState = useVisualState(props, config.isStatic);\n if (!config.isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, __assign(__assign({}, config), props), createVisualElement);\n useProjection(projectionId, props, context.visualElement, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n features = useFeatures(props, context.visualElement, preloadedFeatures);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: __assign(__assign({}, config), props) },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, config.isStatic, context.visualElement))));\n }\n return forwardRef(MotionComponent);\n}\nfunction useLayoutId(_a) {\n var _b;\n var layoutId = _a.layoutId;\n var layoutGroupId = (_b = useContext(LayoutGroupContext)) === null || _b === void 0 ? void 0 : _b.id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n var componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: function (_target, key) {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","var scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n return transformAxes.forEach(function (axesKey) {\n return transformProps.push(operationKey + axesKey);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","var isMotionValue = function (value) {\n return Boolean(value !== null && typeof value === \"object\" && value.getVelocity);\n};\n\nexport { isMotionValue };\n","import { sortTransformProps } from './transform.mjs';\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform, transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += \"\".concat(translateAlias[key] || key, \"(\").concat(transform[key], \") \");\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return \"\".concat(originX, \" \").concat(originY, \" \").concat(originZ);\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType('deg');\nconst percent = createUnitType('%');\nconst px = createUnitType('px');\nconst vh = createUnitType('vh');\nconst vw = createUnitType('vw');\nconst progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = '';\n let g = '';\n let b = '';\n let a = '';\n if (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [name, value] = v.slice(0, -1).split('(');\n if (name === 'drop-shadow')\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, '');\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), { transform: Math.round });\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.mjs';\n\nvar numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale: scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform, buildTransformOrigin } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { isTransformProp, isTransformOriginProp } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n var _a;\n var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (transformTemplate) {\n style.transform = transformTemplate({}, \"\");\n }\n else if (!latestValues.transform && style.transform) {\n style.transform = \"none\";\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n}\n\nexport { buildHTMLStyles };\n","var createHtmlRenderState = function () { return ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n var vars = state.vars, style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n if (props.transformValues) {\n style = props.transformValues(style);\n }\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n if (Boolean(props.drag) && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : \"pan-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"whileDrag\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"whileFocus\",\n \"whileTap\",\n \"whileHover\",\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n \"layoutScroll\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = function (key) {\n return key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n };\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n var filteredProps = {};\n for (var key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return \"\".concat(pxOriginX, \" \").concat(pxOriginY);\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 0) { useDashCase = true; }\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n var pathLength = px.transform(length);\n var pathSpacing = px.transform(spacing);\n attrs[keys.array] = \"\".concat(pathLength, \" \").concat(pathSpacing);\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, _a, options, transformTemplate) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs, style = state.style, dimensions = state.dimensions;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n }, [visualState]);\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n var useRender = function (Component, props, projectionId, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","function renderHTML(element, _a, styleProp, projection) {\n var style = _a.style, vars = _a.vars;\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (var key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (var key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var style = props.style;\n var newValues = {};\n for (var key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","var isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = function (instance) { return onMount(props, instance, state); };\n }\n return state;\n}\nvar makeUseVisualState = function (config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic\n ? makeState(config, props, context, presenceContext)\n : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n var initial = props.initial, animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n }\n var initialAnimationIsBlocked = blockInitialAnimation || initial === false;\n var variantToSet = initialAnimationIsBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n for (var key in target) {\n var valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n var index = initialAnimationIsBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (var key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function (props, instance, _a) {\n var renderState = _a.renderState, latestValues = _a.latestValues;\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { __assign } from 'tslib';\nimport { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n var baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });\n}\n\nexport { createDomMotionConfig };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n if (options === void 0) { options = { passive: true }; }\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n var onFocus = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n var onBlur = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n var openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n };\n}\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function (parent, child) {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","function hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false,\n });\n from = 0;\n to = 100;\n }\n const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n var eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n var _a;\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n var _a;\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(visualElement.getInstance(), event.target)\n ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n var _a;\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","var warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","import { __rest, __assign } from 'tslib';\n\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nvar observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nvar observers = new WeakMap();\nvar fireObserverCallback = function (entry) {\n var _a;\n (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n};\nvar fireAllObserverCallbacks = function (entries) {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver(_a) {\n var root = _a.root, options = __rest(_a, [\"root\"]);\n var lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n var rootObservers = observers.get(lookupRoot);\n var key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, __assign({ root: root }, options));\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n var rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return function () {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport(_a) {\n var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;\n var state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n var useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nvar thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? \"some\" : _b, once = _a.once;\n useEffect(function () {\n if (!shouldObserve)\n return;\n var options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin: rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n var intersectionCallback = function (entry) {\n var _a;\n var isIntersecting = entry.isIntersecting;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n var props = visualElement.getProps();\n var callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback === null || callback === void 0 ? void 0 : callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var _b = _a.fallback, fallback = _b === void 0 ? true : _b;\n useEffect(function () {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(function () {\n var _a;\n state.hasEnteredView = true;\n var onViewportEnter = visualElement.getProps().onViewportEnter;\n onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","var makeRenderlessComponent = function (hook) { return function (props) {\n hook(props);\n return null;\n}; };\n\nexport { makeRenderlessComponent };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useConstant } from './use-constant.mjs';\n\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useId = function () { return useConstant(incrementId); };\n/**\n * Ideally we'd use the following code to support React 18 optionally.\n * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).\n * Need to come up with a different way of figuring this out.\n */\n// export const useId = (React as any).useId\n// ? (React as any).useId\n// : () => useConstant(incrementId)\n\nexport { useId };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useId when released in React\n var id = useId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n var prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (var i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\".concat(definition, \"'\"));\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(target, \" via the `style` property.\"));\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nvar isZeroValueString = function (v) { return /^0[^.\\s]+$/.test(v); };\n\nexport { isZeroValueString };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (var i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n function MotionValue(init) {\n var _this = this;\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"6.5.1\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n // Update velocity subscribers\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @privateRemarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\n };\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\n return this.prev;\n };\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n };\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.hasAnimated = true;\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\n };\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n\nexport { auto };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes), false), [color, complex], false);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n var resolved = resolveVariant(visualElement, definition);\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b, _c;\n var _d;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] =\n (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './variants.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\n\nfunction animateVisualElement(visualElement, definition, options) {\n if (options === void 0) { options = {}; }\n visualElement.notifyAnimationStart(definition);\n var animation;\n if (Array.isArray(definition)) {\n var animations = definition.map(function (variant) {\n return animateVariant(visualElement, variant, options);\n });\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n var resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(function () {\n return visualElement.notifyAnimationComplete(definition);\n });\n}\nfunction animateVariant(visualElement, variant, options) {\n var _a;\n if (options === void 0) { options = {}; }\n var resolved = resolveVariant(visualElement, variant, options.custom);\n var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getAnimation = resolved\n ? function () { return animateTarget(visualElement, resolved, options); }\n : function () { return Promise.resolve(); };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : function () { return Promise.resolve(); };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n var when = transition.when;\n if (when) {\n var _c = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, _a) {\n var _b;\n var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;\n var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n if (transitionOverride)\n transition = transitionOverride;\n var animations = [];\n var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n for (var key in target) {\n var value = visualElement.getValue(key);\n var valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n var valueTransition = __assign({ delay: delay }, transition);\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && isTransformProp(key)) {\n valueTransition = __assign(__assign({}, valueTransition), { type: false, delay: 0 });\n }\n var animation = startAnimation(key, value, valueTarget, valueTransition);\n animations.push(animation);\n }\n return Promise.all(animations).then(function () {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) {\n if (i === void 0) { i = 0; }\n return i * staggerChildren;\n }\n : function (i) {\n if (i === void 0) { i = 0; }\n return maxStaggerDuration - i * staggerChildren;\n };\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach(function (child, i) {\n animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation(_a, key) {\n var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;\n var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { animateVisualElement } from './animation.mjs';\nimport { AnimationType } from './types.mjs';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.mjs';\n\nvar variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder), false).reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return function (animations) {\n return Promise.all(animations.map(function (_a) {\n var animation = _a.animation, options = _a.options;\n return animateVisualElement(visualElement, animation, options);\n }));\n };\n}\nfunction createAnimationState(visualElement) {\n var animate = animateList(visualElement);\n var state = createState();\n var allAnimatedKeys = {};\n var isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n var buildResolvedTypeValues = function (acc, definition) {\n var resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n }\n return acc;\n };\n function isAnimated(key) {\n return allAnimatedKeys[key] !== undefined;\n }\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n var _a;\n var props = visualElement.getProps();\n var context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n var animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n var removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n var encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n var removedVariantIndex = Infinity;\n var _loop_1 = function (i) {\n var type = reversePriorityOrder[i];\n var typeState = state[type];\n var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n var propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n var activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = __assign({}, encounteredKeys);\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n return \"continue\";\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n var variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n var shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n var definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;\n var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n var markToAnimate = function (key) {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (var key in allKeys) {\n var next = resolvedValues[key];\n var prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) { return ({\n animation: animation,\n options: __assign({ type: type }, options),\n }); })), false));\n }\n };\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (var i = 0; i < numAnimationTypes; i++) {\n _loop_1(i);\n }\n allAnimatedKeys = __assign({}, encounteredKeys);\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n var fallbackAnimation_1 = {};\n removedKeys.forEach(function (key) {\n var fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation_1[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation_1 });\n }\n var shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n var animations = animateChanges(options, type);\n for (var key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n isAnimated: isAnimated,\n animateChanges: animateChanges,\n setActive: setActive,\n setAnimateFunction: setAnimateFunction,\n getState: function () { return state; },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (isVariantLabels(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive) {\n if (isActive === void 0) { isActive = false; }\n return {\n isActive: isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n var _a;\n return _a = {},\n _a[AnimationType.Animate] = createTypeState(true),\n _a[AnimationType.InView] = createTypeState(),\n _a[AnimationType.Hover] = createTypeState(),\n _a[AnimationType.Tap] = createTypeState(),\n _a[AnimationType.Drag] = createTypeState(),\n _a[AnimationType.Focus] = createTypeState(),\n _a[AnimationType.Exit] = createTypeState(),\n _a;\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement, animate = _a.animate;\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom, visualElement = props.visualElement;\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n visualElement.isPresent = isPresent;\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `\r\n * \r\n * \r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => {\r\n const { children, ...data } = props;\r\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\r\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\r\n const result = {\r\n defaultValues: control._defaultValues,\r\n };\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\r\n updateFormState(formStateData);\r\n const { name, ...formState } = formStateData;\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.next,\r\n });\r\n return () => {\r\n subscription && subscription.unsubscribe();\r\n };\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n *
\r\n * \r\n * {dirtyFields.firstName &&

Field is dirty.

}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _mounted = React.useRef(true);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n isLoading: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n useSubscribe({\r\n disabled,\r\n next: (value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\r\n updateFormState({\r\n ...control._formState,\r\n ...value,\r\n }),\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => {\r\n _mounted.current = true;\r\n const isDirty = control._proxyFormState.isDirty && control._getDirty();\r\n if (isDirty !== control._formState.isDirty) {\r\n control._subjects.state.next({\r\n isDirty,\r\n });\r\n }\r\n _localProxyFormState.current.isValid && control._updateValid(true);\r\n return () => {\r\n _mounted.current = false;\r\n };\r\n }, [control]);\r\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names, defaultValue);\r\n }\r\n if (Array.isArray(names)) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isPlainObject = (tempObject) => {\r\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\r\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\r\n};\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\r\n (isArray || isObject(data))) {\r\n copy = isArray ? [] : {};\r\n if (!Array.isArray(data) && !isPlainObject(data)) {\r\n copy = data;\r\n }\r\n else {\r\n for (const key in data) {\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.values,\r\n next: (formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\r\n }\r\n },\r\n });\r\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\r\n React.useEffect(() => control._removeUnmounted());\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n *
\r\n * \r\n *

{fieldState.isTouched && \"Touched\"}

\r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, {\r\n ...props.rules,\r\n value,\r\n }));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._state.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n }), [name]),\r\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n }), [name, control]),\r\n ref: (elm) => {\r\n const field = get(control._fields, name);\r\n if (field && elm) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n select: () => elm.select(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n },\r\n },\r\n formState,\r\n fieldState: Object.defineProperties({}, {\r\n invalid: {\r\n enumerable: true,\r\n get: () => !!get(formState.errors, name),\r\n },\r\n isDirty: {\r\n enumerable: true,\r\n get: () => !!get(formState.dirtyFields, name),\r\n },\r\n isTouched: {\r\n enumerable: true,\r\n get: () => !!get(formState.touchedFields, name),\r\n },\r\n error: {\r\n enumerable: true,\r\n get: () => get(formState.errors, name),\r\n },\r\n }),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n *
\r\n * (\r\n * <>\r\n * \r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\r\n * \r\n * )}\r\n * />\r\n * \r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? {\r\n ...errors[name],\r\n types: {\r\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\r\n [type]: message || true,\r\n },\r\n }\r\n : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const { _f, ...currentField } = field;\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus) {\r\n _f.ref.focus();\r\n break;\r\n }\r\n else if (_f.refs && _f.refs[0].focus) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(currentField)) {\r\n focusFieldBy(currentField, callback);\r\n }\r\n }\r\n }\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar getValidationModes = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nvar updateFieldArrayRootError = (errors, error, name) => {\r\n const fieldArrayErrors = compact(get(errors, name));\r\n set(fieldArrayErrors, 'root', error[name]);\r\n set(errors, name, fieldArrayErrors);\r\n return errors;\r\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\r\n if (!isWeb) {\r\n return false;\r\n }\r\n const owner = value ? value.ownerDocument : 0;\r\n return (value instanceof\r\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\r\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n const inputValue = get(formValues, name);\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\r\n inputRef.reportValidity();\r\n }\r\n };\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\r\n isUndefined(ref.value) &&\r\n isUndefined(inputValue)) ||\r\n (isHTMLElement(ref) && ref.value === '') ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = {\r\n type: exceedMax ? maxType : minType,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\r\n };\r\n };\r\n if (isFieldArray\r\n ? !Array.isArray(inputValue) || !inputValue.length\r\n : required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.required,\r\n message,\r\n ref: inputRef,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber ||\r\n (inputValue ? +inputValue : inputValue);\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(inputValue);\r\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\r\n const isTime = ref.type == 'time';\r\n const isWeek = ref.type == 'week';\r\n if (isString(maxOutput.value) && inputValue) {\r\n exceedMax = isTime\r\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\r\n : isWeek\r\n ? inputValue > maxOutput.value\r\n : valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value) && inputValue) {\r\n exceedMin = isTime\r\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\r\n : isWeek\r\n ? inputValue < minOutput.value\r\n : valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) &&\r\n !isEmpty &&\r\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = {\r\n type: INPUT_VALIDATION_RULES.pattern,\r\n message,\r\n ref,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue, formValues);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = {\r\n ...validateError,\r\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\r\n };\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const key in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\r\n if (validateError) {\r\n validationResult = {\r\n ...validateError,\r\n ...appendErrorsCurry(key, validateError.message),\r\n };\r\n setCustomValidity(validateError.message);\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = {\r\n ref: inputRef,\r\n ...validationResult,\r\n };\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\r\n}\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction isEmptyArray(obj) {\r\n for (const key in obj) {\r\n if (!isUndefined(obj[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction unset(object, path) {\r\n const paths = Array.isArray(path)\r\n ? path\r\n : isKey(path)\r\n ? [path]\r\n : stringToPath(path);\r\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\r\n const index = paths.length - 1;\r\n const key = paths[index];\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n if (index !== 0 &&\r\n ((isObject(childObject) && isEmptyObject(childObject)) ||\r\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\r\n unset(object, paths.slice(0, -1));\r\n }\r\n return object;\r\n}\n\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n *
console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * \r\n * ))}\r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n props.rules &&\r\n control.register(name, props.rules);\r\n useSubscribe({\r\n next: ({ values, name: fieldArrayName, }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current);\r\n if (Array.isArray(fieldValues)) {\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }\r\n },\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._state.action = false;\r\n isWatched(name, control._names) &&\r\n control._subjects.state.next({\r\n ...control._formState,\r\n });\r\n if (_actioned.current &&\r\n (!getValidationModes(control._options.mode).isOnSubmit ||\r\n control._formState.isSubmitted)) {\r\n if (control._options.resolver) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n const existingError = get(control._formState.errors, name);\r\n if (existingError ? !error && existingError.type : error && error.type) {\r\n error\r\n ? set(control._formState.errors, name, error)\r\n : unset(control._formState.errors, name);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n const field = get(control._fields, name);\r\n if (field && field._f) {\r\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\r\n control._subjects.state.next({\r\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\r\n }));\r\n }\r\n }\r\n }\r\n control._subjects.values.next({\r\n name,\r\n values: { ...control._formValues },\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => !!key && key.startsWith(control._names.focus || ''));\r\n control._names.focus = '';\r\n control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => ({\r\n ...field,\r\n [keyName]: ids.current[index] || generateId(),\r\n })), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next && observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : { ...markFieldsDirty(data[key]) };\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : value\r\n ? +value\r\n : value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? rule\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}, flushRootRender) {\r\n let _options = {\r\n ...defaultOptions,\r\n ...props,\r\n };\r\n let _formState = {\r\n submitCount: 0,\r\n isDirty: false,\r\n isLoading: true,\r\n isValidating: false,\r\n isSubmitted: false,\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n touchedFields: {},\r\n dirtyFields: {},\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\r\n ? cloneObject(_options.defaultValues || _options.values) || {}\r\n : {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _state = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n values: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback) => (wait) => {\r\n clearTimeout(timer);\r\n timer = setTimeout(callback, wait);\r\n };\r\n const _updateValid = async (shouldUpdateValid) => {\r\n if (_proxyFormState.isValid || shouldUpdateValid) {\r\n const isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuiltInValidation(_fields, true);\r\n if (isValid !== _formState.isValid) {\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n };\r\n const _updateIsValidating = (value) => _proxyFormState.isValidating &&\r\n _subjects.state.next({\r\n isValidating: value,\r\n });\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _state.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n name,\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => {\r\n set(_formState.errors, name, error);\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _state.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let shouldUpdateField = false;\r\n let isPreviousDirty = false;\r\n const output = {\r\n name,\r\n };\r\n if (!isBlurEvent || shouldDirty) {\r\n if (_proxyFormState.isDirty) {\r\n isPreviousDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n shouldUpdateField = isPreviousDirty !== output.isDirty;\r\n }\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isPreviousDirty = get(_formState.dirtyFields, name);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n shouldUpdateField =\r\n shouldUpdateField ||\r\n (_proxyFormState.dirtyFields &&\r\n isPreviousDirty !== !isCurrentFieldPristine);\r\n }\r\n if (isBlurEvent) {\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (!isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n shouldUpdateField =\r\n shouldUpdateField ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n }\r\n shouldUpdateField && shouldRender && _subjects.state.next(output);\r\n return shouldUpdateField ? output : {};\r\n };\r\n const shouldRenderByError = (name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid &&\r\n isBoolean(isValid) &&\r\n _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback = debounce(() => updateErrors(name, error));\r\n delayErrorCallback(props.delayError);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n delayErrorCallback = null;\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) {\r\n const updatedFormState = {\r\n ...fieldState,\r\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\r\n errors: _formState.errors,\r\n name,\r\n };\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n _subjects.state.next(updatedFormState);\r\n }\r\n _updateIsValidating(false);\r\n };\r\n const _executeSchema = async (name) => _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const { _f, ...fieldValue } = field;\r\n if (_f) {\r\n const isFieldArrayRoot = _names.array.has(_f.name);\r\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation, isFieldArrayRoot);\r\n if (fieldError[_f.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n !shouldOnlyCheckValid &&\r\n (get(fieldError, _f.name)\r\n ? isFieldArrayRoot\r\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\r\n : set(_formState.errors, _f.name, fieldError[_f.name])\r\n : unset(_formState.errors, _f.name));\r\n }\r\n fieldValue &&\r\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\r\n ...(_state.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue),\r\n }, isGlobal, defaultValue);\r\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.values.next({\r\n name,\r\n values: { ..._formValues },\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: { ..._formValues },\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\r\n _subjects.values.next({\r\n name,\r\n values: { ..._formValues },\r\n });\r\n !_state.mount && flushRootRender();\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = getCurrentFieldValue();\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n delayErrorCallback && delayErrorCallback(0);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.values.next({\r\n name,\r\n type: event.type,\r\n values: { ..._formValues },\r\n });\r\n if (shouldSkipValidation) {\r\n _proxyFormState.isValid && _updateValid();\r\n return (shouldRender &&\r\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\r\n _updateIsValidating(true);\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n if (error) {\r\n isValid = false;\r\n }\r\n else if (_proxyFormState.isValid) {\r\n isValid = await executeBuiltInValidation(_fields, true);\r\n }\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _updateIsValidating(true);\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuiltInValidation(_fields);\r\n }\r\n _subjects.state.next({\r\n ...(!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name }),\r\n ...(_options.resolver || !name ? { isValid } : {}),\r\n errors: _formState.errors,\r\n isValidating: false,\r\n });\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = {\r\n ..._defaultValues,\r\n ...(_state.mount ? _formValues : {}),\r\n };\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name &&\r\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\r\n _subjects.state.next({\r\n errors: name ? _formState.errors : {},\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, {\r\n ...error,\r\n ref,\r\n });\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.values.subscribe({\r\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.values.next({\r\n values: { ..._formValues },\r\n });\r\n _subjects.state.next({\r\n ..._formState,\r\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\r\n });\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n ...(field || {}),\r\n _f: {\r\n ...(field && field._f ? field._f : { ref: { name } }),\r\n name,\r\n mount: true,\r\n ...options,\r\n },\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return {\r\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\r\n ...(_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {}),\r\n name,\r\n onChange,\r\n onBlur: onChange,\r\n ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: {\r\n ...field._f,\r\n ...(radioOrCheckbox\r\n ? {\r\n refs: [\r\n ...refs.filter(live),\r\n fieldRef,\r\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\r\n ],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef }),\r\n },\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\r\n _names.unMount.add(name);\r\n }\r\n },\r\n };\r\n };\r\n const _focusError = () => _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => key && get(_formState.errors, key), _names.mount);\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuiltInValidation(_fields);\r\n }\r\n unset(_formState.errors, 'root');\r\n if (isEmptyObject(_formState.errors)) {\r\n _subjects.state.next({\r\n errors: {},\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid({ ..._formState.errors }, e);\r\n }\r\n _focusError();\r\n setTimeout(_focusError);\r\n }\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors),\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next({ ..._formState });\r\n }\r\n };\r\n const _reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\r\n for (const fieldName of _names.mount) {\r\n get(_formState.dirtyFields, fieldName)\r\n ? set(values, fieldName, get(_formValues, fieldName))\r\n : setValue(fieldName, get(values, fieldName));\r\n }\r\n }\r\n else {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n if (isHTMLElement(fieldReference)) {\r\n const form = fieldReference.closest('form');\r\n if (form) {\r\n form.reset();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n _fields = {};\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _subjects.array.next({\r\n values: { ...values },\r\n });\r\n _subjects.values.next({\r\n values: { ...values },\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n !_state.mount && flushRootRender();\r\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _state.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty\r\n ? _formState.isDirty\r\n : !!(keepStateOptions.keepDefaultValues &&\r\n !deepEqual(formValues, _defaultValues)),\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirtyValues\r\n ? _formState.dirtyFields\r\n : keepStateOptions.keepDefaultValues && formValues\r\n ? getDirtyFields(_defaultValues, formValues)\r\n : {},\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\r\n ? formValues(_formValues)\r\n : formValues, keepStateOptions);\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name);\r\n const fieldReference = field && field._f;\r\n if (fieldReference) {\r\n const fieldRef = fieldReference.refs\r\n ? fieldReference.refs[0]\r\n : fieldReference.ref;\r\n if (fieldRef.focus) {\r\n fieldRef.focus();\r\n options.shouldSelect && fieldRef.select();\r\n }\r\n }\r\n };\r\n const _updateFormState = (updatedFormState) => {\r\n _formState = {\r\n ..._formState,\r\n ...updatedFormState,\r\n };\r\n };\r\n if (isFunction(_options.defaultValues)) {\r\n _options.defaultValues().then((values) => {\r\n reset(values, _options.resetOptions);\r\n _subjects.state.next({\r\n isLoading: false,\r\n });\r\n });\r\n }\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _reset,\r\n _updateFormState,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _state() {\r\n return _state;\r\n },\r\n set _state(value) {\r\n _state = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = {\r\n ..._options,\r\n ...value,\r\n };\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to manage the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n *
\r\n * \r\n * \r\n * {errors.exampleRequired && This field is required}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n isLoading: true,\r\n isSubmitted: false,\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n submitCount: 0,\r\n dirtyFields: {},\r\n touchedFields: {},\r\n errors: {},\r\n defaultValues: isFunction(props.defaultValues)\r\n ? undefined\r\n : props.defaultValues,\r\n });\r\n if (!_formControl.current) {\r\n _formControl.current = {\r\n ...createFormControl(props, () => updateFormState((formState) => ({ ...formState }))),\r\n formState,\r\n };\r\n }\r\n const control = _formControl.current.control;\r\n control._options = props;\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n next: (value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\r\n updateFormState({ ...control._formState });\r\n }\r\n },\r\n });\r\n React.useEffect(() => {\r\n if (props.values && !deepEqual(props.values, control._defaultValues)) {\r\n control._reset(props.values, control._options.resetOptions);\r\n }\r\n }, [props.values, control]);\r\n React.useEffect(() => {\r\n if (!control._state.mount) {\r\n control._updateValid();\r\n control._state.mount = true;\r\n }\r\n if (control._state.watch) {\r\n control._state.watch = false;\r\n control._subjects.state.next({ ...control._formState });\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import{get as r,set as i}from\"react-hook-form\";var e=function(i,e,t){if(i&&\"reportValidity\"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||\"\"),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&\"reportValidity\"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i){return e(i,t,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};\n//# sourceMappingURL=resolvers.module.js.map\n","import{appendErrors as r}from\"react-hook-form\";import{validateFieldsNatively as e,toNestError as o}from\"@hookform/resolvers\";var n=function(e,o){for(var n={};e.length;){var s=e[0],t=s.code,i=s.message,a=s.path.join(\".\");if(!n[a])if(\"unionErrors\"in s){var u=s.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:t};if(\"unionErrors\"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var c=n[a].types,f=c&&c[s.code];n[a]=r(a,o,n,t,f?[].concat(f,s.message):s.message)}e.shift()}return n},s=function(r,s,t){return void 0===t&&(t={}),function(i,a,u){try{return Promise.resolve(function(o,n){try{var a=Promise.resolve(r[\"sync\"===t.mode?\"parse\":\"parseAsync\"](i,s)).then(function(r){return u.shouldUseNativeValidation&&e({},u),{errors:{},values:t.rawValues?i:r}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:o(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{s as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n","import React, { useCallback, useRef } from \"react\";\n\nimport { TextInput, TextInputProps } from \"@meterup/metric\";\n\ntype TextInputWrapperProps = Omit & {\n onChange: (e: React.ChangeEvent) => void;\n};\n\nexport function TextInputWrapper(props: TextInputWrapperProps) {\n const { onChange, ...rest } = props;\n const ref = useRef();\n const onChangeInner = useCallback(\n (value) => {\n onChange({\n target: {\n value,\n focus: () => {\n const { current } = ref;\n if (current) {\n current.focus();\n }\n },\n },\n });\n },\n [onChange],\n );\n\n return ;\n}\n","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}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\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}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","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++) arr2[i] = arr[i];\n return arr2;\n}","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}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import 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}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useState, useCallback } from 'react';\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n var onChange = useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = useCallback(function (value, actionMeta) {\n var newValue;\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexport { useStateManager as u };\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}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(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}","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}","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}","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}","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}","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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import 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}","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.5\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.5\",\n\t\t\"@emotion/cache\": \"^11.10.5\",\n\t\t\"@emotion/serialize\": \"^1.1.1\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.5\",\n\t\t\"@emotion/css-prettifier\": \"1.1.1\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.5\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}function i(t){return f(t)?(t.nodeName||\"\").toLowerCase():\"\"}let r;function l(){if(r)return r;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(r=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),r):navigator.userAgent}function c(t){return t instanceof n(t).HTMLElement}function s(t){return t instanceof n(t).Element}function f(t){return t instanceof n(t).Node}function u(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function a(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function d(t){return[\"table\",\"td\",\"th\"].includes(i(t))}function h(t){const e=/firefox/i.test(l()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function p(){return!/^((?!chrome|android).)*safari/i.test(l())}function g(t){return[\"html\",\"body\",\"#document\"].includes(i(t))}const m=Math.min,y=Math.max,x=Math.round;function w(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,l=t.offsetHeight,c=x(n)!==r||x(i)!==l;return c&&(n=r,i=l),{width:n,height:i,fallback:c}}function v(t){return s(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!c(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=w(e);let l=(r?x(n.width):n.width)/o,s=(r?x(n.height):n.height)/i;return l&&Number.isFinite(l)||(l=1),s&&Number.isFinite(s)||(s=1),{x:l,y:s}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),f=v(t);let u=b;e&&(i?s(i)&&(u=L(i)):u=L(t));const a=f?n(f):window,d=!p()&&o;let h=(c.left+(d&&(null==(r=a.visualViewport)?void 0:r.offsetLeft)||0))/u.x,g=(c.top+(d&&(null==(l=a.visualViewport)?void 0:l.offsetTop)||0))/u.y,m=c.width/u.x,y=c.height/u.y;if(f){const t=n(f),e=i&&s(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,g*=t.y,m*=t.x,y*=t.y,h+=e.x,g+=e.y,o=n(o).frameElement}}return{width:m,height:y,top:g,right:h+m,bottom:g+y,left:h,x:h,y:g}}function R(t){return((f(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return s(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t,e,n){const o=c(e),r=R(e),l=E(t,!0,\"fixed\"===n,e);let s={scrollLeft:0,scrollTop:0};const f={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==i(e)||a(r))&&(s=T(e)),c(e)){const t=E(e,!0);f.x=t.x+e.clientLeft,f.y=t.y+e.clientTop}else r&&(f.x=C(r));return{x:l.left+s.scrollLeft-f.x,y:l.top+s.scrollTop-f.y,width:l.width,height:l.height}}function W(t){if(\"html\"===i(t))return t;const e=t.assignedSlot||t.parentNode||(u(t)?t.host:null)||R(t);return u(e)?e.host:e}function D(t){return c(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function S(t){const e=n(t);let r=D(t);for(;r&&d(r)&&\"static\"===o(r).position;)r=D(r);return r&&(\"html\"===i(r)||\"body\"===i(r)&&\"static\"===o(r).position&&!h(r))?e:r||function(t){let e=W(t);for(;c(e)&&!g(e);){if(h(e))return e;e=W(e)}return null}(t)||e}function A(t){const e=W(t);return g(e)?t.ownerDocument.body:c(e)&&a(e)?e:A(e)}function H(t,e){var o;void 0===e&&(e=[]);const i=A(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],a(i)?i:[]):e.concat(i,H(i))}function O(e,i,r){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=p();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,r)):s(i)?function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=c(t)?L(t):{x:1,y:1},l=t.clientWidth*r.x,s=t.clientHeight*r.y,f=i*r.x,u=o*r.y;return{top:u,left:f,right:f+l,bottom:u+s,x:f,y:u,width:l,height:s}}(i,r):t(function(t){var e;const n=R(t),i=T(t),r=null==(e=t.ownerDocument)?void 0:e.body,l=y(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),c=y(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let s=-i.scrollLeft+C(t);const f=-i.scrollTop;return\"rtl\"===o(r||n).direction&&(s+=y(n.clientWidth,r?r.clientWidth:0)-l),{width:l,height:c,x:s,y:f}}(R(e)))}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:r,strategy:l}=t;const c=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let r=H(t).filter((t=>s(t)&&\"body\"!==i(t))),l=null;const c=\"fixed\"===o(t).position;let f=c?W(t):t;for(;s(f)&&!g(f);){const t=o(f),e=h(f);(c?e||l:e||\"static\"!==t.position||!l||![\"absolute\",\"fixed\"].includes(l.position))?l=t:r=r.filter((t=>t!==f)),f=W(f)}return e.set(t,r),r}(e,this._c):[].concat(n),f=[...c,r],u=f[0],a=f.reduce(((t,n)=>{const o=O(e,n,l);return t.top=y(o.top,t.top),t.right=m(o.right,t.right),t.bottom=m(o.bottom,t.bottom),t.left=y(o.left,t.left),t}),O(e,u,l));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const r=c(n),l=R(n);if(n===l)return e;let s={scrollLeft:0,scrollTop:0},f={x:1,y:1};const u={x:0,y:0};if((r||!r&&\"fixed\"!==o)&&((\"body\"!==i(n)||a(l))&&(s=T(n)),c(n))){const t=E(n);f=L(n),u.x=t.x+n.clientLeft,u.y=t.y+n.clientTop}return{width:e.width*f.x,height:e.height*f.y,x:e.x*f.x-s.scrollLeft*f.x+u.x,y:e.y*f.y-s.scrollTop*f.y+u.y}},isElement:s,getDimensions:function(t){return w(t)},getOffsetParent:S,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||S,r=this.getDimensions;return{reference:F(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,f=i&&!c,u=f||r?[...s(t)?H(t):t.contextElement?H(t.contextElement):[],...H(e)]:[];u.forEach((t=>{f&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let a,d=null;if(l){let o=!0;d=new ResizeObserver((()=>{o||n(),o=!1})),s(t)&&!c&&d.observe(t),s(t)||!t.contextElement||c||d.observe(t.contextElement),d.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,a=requestAnimationFrame(e)}(),n(),()=>{var t;u.forEach((t=>{f&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=d)||t.disconnect(),d=null,c&&cancelAnimationFrame(a)}}const V=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,V as computePosition,H as getOverflowAncestors,P as platform};\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2 } from '@emotion/react';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { useContext, useRef, useState, useMemo, useCallback, createContext } from 'react';\nimport { createPortal } from 'react-dom';\nimport { autoUpdate } from '@floating-ui/dom';\nimport useLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar _excluded$3 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\nfunction classNames(prefix, state) {\n for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n classNameList[_key - 2] = arguments[_key];\n }\n var arr = [].concat(classNameList);\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getClassNames;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$3);\n return _objectSpread({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n var cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n className = props.className;\n return {\n css: getStyles(name, props),\n className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n if (typeof _newValue === 'string') return _newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n properties[_key2 - 1] = arguments[_key2];\n }\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nfunction getMenuPlacement(_ref) {\n var preferredMaxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n preferredPlacement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n controlHeight = _ref.controlHeight;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n switch (preferredPlacement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (preferredPlacement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = preferredMaxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (preferredPlacement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = preferredMaxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n }\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n var _objectSpread2;\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _objectSpread((_objectSpread2 = {\n label: 'menu'\n }, _defineProperty(_objectSpread2, alignToControl(placement), '100%'), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"width\", '100%'), _defineProperty(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n backgroundColor: colors.neutral0,\n borderRadius: borderRadius,\n boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n marginBottom: spacing.menuGutter,\n marginTop: spacing.menuGutter\n });\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n var children = props.children,\n minMenuHeight = props.minMenuHeight,\n maxMenuHeight = props.maxMenuHeight,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition,\n menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n theme = props.theme;\n var _ref3 = useContext(PortalPlacementContext) || {},\n setPortalPlacement = _ref3.setPortalPlacement;\n var ref = useRef(null);\n var _useState = useState(maxMenuHeight),\n _useState2 = _slicedToArray(_useState, 2),\n maxHeight = _useState2[0],\n setMaxHeight = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n placement = _useState4[0],\n setPlacement = _useState4[1];\n var controlHeight = theme.spacing.controlHeight;\n useLayoutEffect(function () {\n var menuEl = ref.current;\n if (!menuEl) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: menuEl,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n controlHeight: controlHeight\n });\n setMaxHeight(state.maxHeight);\n setPlacement(state.placement);\n setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n return children({\n ref: ref,\n placerProps: _objectSpread(_objectSpread({}, props), {}, {\n placement: placement || coercePlacement(menuPlacement),\n maxHeight: maxHeight\n })\n });\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'menu', {\n menu: true\n }), {\n ref: innerRef\n }, innerProps), children);\n};\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return _objectSpread({\n maxHeight: maxHeight,\n overflowY: 'auto',\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n }, unstyled ? {} : {\n paddingBottom: baseUnit,\n paddingTop: baseUnit\n });\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'menuList', {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }), {\n ref: innerRef\n }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return _objectSpread({\n textAlign: 'center'\n }, unstyled ? {} : {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'noOptionsMessage', {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }), innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'loadingMessage', {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }), innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = function MenuPortal(props) {\n var appendTo = props.appendTo,\n children = props.children,\n controlElement = props.controlElement,\n innerProps = props.innerProps,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition;\n var menuPortalRef = useRef(null);\n var cleanupRef = useRef(null);\n var _useState5 = useState(coercePlacement(menuPlacement)),\n _useState6 = _slicedToArray(_useState5, 2),\n placement = _useState6[0],\n setPortalPlacement = _useState6[1];\n var portalPlacementContext = useMemo(function () {\n return {\n setPortalPlacement: setPortalPlacement\n };\n }, []);\n var _useState7 = useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n computedPosition = _useState8[0],\n setComputedPosition = _useState8[1];\n var updateComputedPosition = useCallback(function () {\n if (!controlElement) return;\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n setComputedPosition({\n offset: offset,\n rect: rect\n });\n }\n }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n useLayoutEffect(function () {\n updateComputedPosition();\n }, [updateComputedPosition]);\n var runAutoUpdate = useCallback(function () {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (controlElement && menuPortalRef.current) {\n cleanupRef.current = autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {\n elementResize: 'ResizeObserver' in window\n });\n }\n }, [controlElement, updateComputedPosition]);\n useLayoutEffect(function () {\n runAutoUpdate();\n }, [runAutoUpdate]);\n var setMenuPortalElement = useCallback(function (menuPortalElement) {\n menuPortalRef.current = menuPortalElement;\n runAutoUpdate();\n }, [runAutoUpdate]);\n\n // bail early if required elements aren't present\n if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = jsx(\"div\", _extends({\n ref: setMenuPortalElement\n }, getStyleProps(_objectSpread(_objectSpread({}, props), {}, {\n offset: computedPosition.offset,\n position: menuPosition,\n rect: computedPosition.rect\n }), 'menuPortal', {\n 'menu-portal': true\n }), innerProps), children);\n return jsx(PortalPlacementContext.Provider, {\n value: portalPlacementContext\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'container', {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return _objectSpread({\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n }, unstyled ? {} : {\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n });\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n hasValue = props.hasValue;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'valueContainer', {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'indicatorsContainer', {\n indicators: true\n }), innerProps), children);\n};\n\nvar _templateObject;\nvar _excluded$2 = [\"size\"];\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogTG9hZGluZ0luZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2xvYWRpbmdJbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2xvYWRpbmctaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgIH0pfVxuICAgICAgey4uLmlubmVyUHJvcHN9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return _objectSpread({\n label: 'indicatorContainer',\n display: 'flex',\n transition: 'color 150ms'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2,\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'dropdownIndicator', {\n indicator: true,\n 'dropdown-indicator': true\n }), innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'clearIndicator', {\n indicator: true,\n 'clear-indicator': true\n }), innerProps), children || jsx(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return _objectSpread({\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n width: 1\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2\n });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n 'indicator-separator': true\n })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return _objectSpread({\n label: 'loadingIndicator',\n display: 'flex',\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2\n });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/css$2({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogTG9hZGluZ0luZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBpbm5lclByb3BzLCBpc1J0bCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2xvYWRpbmdJbmRpY2F0b3InLCB7XG4gICAgICAgIGluZGljYXRvcjogdHJ1ZSxcbiAgICAgICAgJ2xvYWRpbmctaW5kaWNhdG9yJzogdHJ1ZSxcbiAgICAgIH0pfVxuICAgICAgey4uLmlubmVyUHJvcHN9XG4gICAgPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezB9IG9mZnNldD17aXNSdGx9IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MTYwfSBvZmZzZXQgLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXszMjB9IG9mZnNldD17IWlzUnRsfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcbkxvYWRpbmdJbmRpY2F0b3IuZGVmYXVsdFByb3BzID0geyBzaXplOiA0IH07XG4iXX0= */\")\n });\n};\nvar LoadingIndicator = function LoadingIndicator(props) {\n var innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'loadingIndicator', {\n indicator: true,\n 'loading-indicator': true\n }), innerProps), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css$1 = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return _objectSpread({\n label: 'control',\n alignItems: 'center',\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms'\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n });\n};\nvar Control = function Control(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef\n }, getStyleProps(props, 'control', {\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }), innerProps), children);\n};\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n var spacing = _ref.theme.spacing;\n return unstyled ? {} : {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\nvar Group = function Group(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'group', {\n group: true\n }), innerProps), jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n getClassNames: getClassNames,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n colors = _ref2$theme.colors,\n spacing = _ref2$theme.spacing;\n return _objectSpread({\n label: 'group',\n cursor: 'default',\n display: 'block'\n }, unstyled ? {} : {\n color: colors.neutral40,\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n });\n};\nvar GroupHeading = function GroupHeading(props) {\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n return jsx(\"div\", _extends({}, getStyleProps(props, 'groupHeading', {\n 'group-heading': true\n }), innerProps));\n};\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread(_objectSpread({\n visibility: isDisabled ? 'hidden' : 'visible',\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle), unstyled ? {} : {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n color: colors.neutral80\n });\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\nvar Input = function Input(props) {\n var cx = props.cx,\n value = props.value;\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n return jsx(\"div\", _extends({}, getStyleProps(props, 'input', {\n 'input-container': true\n }), {\n \"data-value\": value || ''\n }), jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'multiValue',\n display: 'flex',\n minWidth: 0\n }, unstyled ? {} : {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n margin: spacing.baseUnit / 2\n });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return _objectSpread({\n overflow: 'hidden',\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n padding: 3,\n paddingLeft: 6\n });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return _objectSpread({\n alignItems: 'center',\n display: 'flex'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || jsx(CrossIcon, {\n size: 14\n }));\n}\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n components = props.components,\n data = props.data,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValue', {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n })), innerProps),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: _objectSpread({}, getStyleProps(props, 'multiValueLabel', {\n 'multi-value__label': true\n })),\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValueRemove', {\n 'multi-value__remove': true\n })), {}, {\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n};\n\nvar optionCSS = function optionCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'option',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n }, unstyled ? {} : {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n });\n};\nvar Option = function Option(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'option', {\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }), {\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'placeholder',\n gridArea: '1 / 1 / 2 / 3'\n }, unstyled ? {} : {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'placeholder', {\n placeholder: true\n }), innerProps), children);\n};\n\nvar css = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'singleValue',\n gridArea: '1 / 1 / 2 / 3',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({}, getStyleProps(props, 'singleValue', {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }), innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread(_objectSpread({}, components), props.components);\n};\n\nexport { isMobileDevice as A, multiValueAsValue as B, singleValueAsValue as C, valueTernary as D, classNames as E, defaultComponents as F, notNullish as G, isDocumentElement as H, cleanValue as I, scrollIntoView as J, noop as K, handleInputChange as L, MenuPlacer as M, clearIndicatorCSS as a, containerCSS as b, components as c, css$1 as d, dropdownIndicatorCSS as e, groupHeadingCSS as f, groupCSS as g, indicatorSeparatorCSS as h, indicatorsContainerCSS as i, inputCSS as j, loadingMessageCSS as k, loadingIndicatorCSS as l, menuCSS as m, menuListCSS as n, menuPortalCSS as o, multiValueCSS as p, multiValueLabelCSS as q, removeProps as r, supportsPassiveEvents as s, multiValueRemoveCSS as t, noOptionsMessageCSS as u, optionCSS as v, placeholderCSS as w, css as x, valueContainerCSS as y, isTouchCapable as z };\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nexport { memoizeOne as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _createSuper from '@babel/runtime/helpers/esm/createSuper';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport * as React from 'react';\nimport { useMemo, Fragment, useRef, useCallback, useEffect, Component } from 'react';\nimport { r as removeProps, s as supportsPassiveEvents, a as clearIndicatorCSS, b as containerCSS, d as css$1, e as dropdownIndicatorCSS, g as groupCSS, f as groupHeadingCSS, i as indicatorsContainerCSS, h as indicatorSeparatorCSS, j as inputCSS, l as loadingIndicatorCSS, k as loadingMessageCSS, m as menuCSS, n as menuListCSS, o as menuPortalCSS, p as multiValueCSS, q as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, B as multiValueAsValue, C as singleValueAsValue, D as valueTernary, E as classNames, F as defaultComponents, G as notNullish, H as isDocumentElement, I as cleanValue, J as scrollIntoView, K as noop, M as MenuPlacer } from './index-a86253bb.esm.js';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2\n};\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n case 'clear':\n return 'All selected options have been cleared.';\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live'];\n\n // Update aria live message configuration when prop changes\n var messages = useMemo(function () {\n return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]);\n\n // Update aria live selected option when prop changes\n var ariaSelected = useMemo(function () {\n var message = '';\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value;\n // select-option when !isMulti does not return option so we assume selected option is value\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n // If there is just one item from the action then get its label\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : '';\n\n // If there are multiple items from the action then return an array of labels\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n var onChangeProps = _objectSpread({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n message = messages.onChange(onChangeProps);\n }\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: focusableOptions,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n var ScreenReaderText = jsx(Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext));\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n return jsx(Fragment, null, jsx(A11yText, {\n id: id\n }, isInitialFocus && ScreenReaderText), jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n // Remove animation props not meant for HTML elements\n var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\nvar _ref2$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9ICgpID0+XG4gIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmOiBSZWZDYWxsYmFjazxIVE1MRWxlbWVudD4gPSAoZWxlbWVudCkgPT4ge1xuICAgIHNldFNjcm9sbENhcHR1cmVUYXJnZXQoZWxlbWVudCk7XG4gICAgc2V0U2Nyb2xsTG9ja1RhcmdldChlbGVtZW50KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIHtsb2NrRW5hYmxlZCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXtibHVyU2VsZWN0SW5wdXR9XG4gICAgICAgICAgY3NzPXt7IHBvc2l0aW9uOiAnZml4ZWQnLCBsZWZ0OiAwLCBib3R0b206IDAsIHJpZ2h0OiAwLCB0b3A6IDAgfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7Y2hpbGRyZW4odGFyZ2V0UmVmKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufVxuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n return jsx(Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2$1\n }), children(targetRef));\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1a0ro4n-requiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%\"\n} : {\n name: \"5kkxb2-requiredInput-RequiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar RequiredInput = function RequiredInput(_ref) {\n var name = _ref.name,\n onFocus = _ref.onFocus;\n return jsx(\"input\", {\n required: true,\n name: name,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n onFocus: onFocus,\n css: _ref2\n // Prevent `Switching from uncontrolled to controlled` error\n ,\n value: \"\",\n onChange: function onChange() {}\n });\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // initialize with source styles\n var styles = _objectSpread({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n classNames: {},\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true,\n unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n var isSelected = _isOptionSelected(props, option, selectValue);\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(notNullish);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n return optionsAccumulator;\n }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n}\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n var _super = _createSuper(Select);\n // Misc. Instance Properties\n // ------------------------------\n\n // TODO\n\n // Refs\n // ------------------------------\n\n // Lifecycle\n // ------------------------------\n\n function Select(_props) {\n var _this;\n _classCallCheck(this, Select);\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n _this.focusedOptionRef = null;\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n _this.menuListRef = null;\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n _this.inputRef = null;\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n _this.ariaOnChange(newValue, actionMeta);\n onChange(newValue, actionMeta);\n };\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n _this.setValue(multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n return;\n }\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var candidate = _this.getOptionValue(removedValue);\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this.focusInput();\n };\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n _this.onChange(valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n _this.getStyles = function (key, props) {\n var unstyled = _this.props.unstyled;\n var base = defaultStyles[key](props, unstyled);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n _this.getClassNames = function (key, props) {\n var _this$props$className, _this$props$className2;\n return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n };\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread({\n value: value\n }, actionMeta)\n });\n };\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this.focusInput();\n };\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n var openMenuOnClick = _this.props.openMenuOnClick;\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n _this.focusInput();\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n event.preventDefault();\n };\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this.clearValue();\n event.preventDefault();\n _this.openAfterFocus = false;\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n }\n\n // reset move vars\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onControlMouseDown(event);\n };\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onClearIndicatorMouseDown(event);\n };\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onDropdownIndicatorMouseDown(event);\n };\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n _this.openAfterFocus = false;\n };\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n return;\n }\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n _this.onMenuClose();\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n _this.setState({\n focusedOption: focusedOption\n });\n };\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n _this.onValueInputFocus = function (e) {\n e.preventDefault();\n e.stopPropagation();\n _this.focus();\n };\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n break;\n case 'Tab':\n if (_this.isComposing) return;\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this.selectOption(focusedOption);\n break;\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n _this.selectOption(focusedOption);\n break;\n }\n return;\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n\n // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n if (_props.menuIsOpen && _this.state.selectValue.length) {\n var focusableOptions = _this.buildFocusableOptions();\n var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n _this.state.focusedOption = focusableOptions[optionIndex];\n }\n return _this;\n }\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n if (this.props.autoFocus) {\n this.focusInput();\n }\n\n // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programmatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: true\n });\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n\n // ==============================\n // Consumer Handlers\n // ==============================\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n // only scroll if the menu isn't already open\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue;\n\n // Only multiselects support value focusing\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n }\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n }\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value:\n // ==============================\n // Getters\n // ==============================\n\n function getTheme() {\n // Use the default theme if there are no customisations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _objectSpread(_objectSpread({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getClassNames = this.getClassNames,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getClassNames: getClassNames,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n }, {\n key: \"startListeningComposition\",\n value:\n // ==============================\n // Composition Handlers\n // ==============================\n\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value:\n // ==============================\n // Touch Handlers\n // ==============================\n\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value:\n // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen,\n required = _this$props8.required;\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input');\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = _objectSpread(_objectSpread(_objectSpread({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n 'aria-required': required,\n role: 'combobox'\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox'),\n 'aria-owns': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n if (inputValue) {\n return null;\n }\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n var menuUI;\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n });\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name,\n required = _this$props13.required;\n var selectValue = this.state.selectValue;\n if (required && !this.hasValue() && !isDisabled) {\n return /*#__PURE__*/React.createElement(RequiredInput, {\n name: name,\n onFocus: this.onValueInputFocus\n });\n }\n if (!name || isDisabled) return;\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: \"\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = cleanValue(value);\n var newMenuOptionsState = {};\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n }\n // some updates should toggle the state of the input visibility\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n }\n\n // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n return _objectSpread(_objectSpread(_objectSpread({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n return Select;\n}(Component);\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, defaultProps as a, getOptionLabel$1 as b, createFilter as c, defaultTheme as d, getOptionValue$1 as g, mergeStyles as m };\n","import { u as useStateManager } from './useStateManager-7e1e8489.esm.js';\nexport { u as useStateManager } from './useStateManager-7e1e8489.esm.js';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport { S as Select } from './Select-457c486b.esm.js';\nexport { c as createFilter, d as defaultTheme, m as mergeStyles } from './Select-457c486b.esm.js';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nexport { c as components } from './index-a86253bb.esm.js';\nimport '@babel/runtime/helpers/objectSpread2';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/classCallCheck';\nimport '@babel/runtime/helpers/createClass';\nimport '@babel/runtime/helpers/inherits';\nimport '@babel/runtime/helpers/createSuper';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport 'memoize-one';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\nimport '@floating-ui/dom';\nimport 'use-isomorphic-layout-effect';\n\nvar StateManagedSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var baseSelectProps = useStateManager(props);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, baseSelectProps));\n});\n\nvar NonceProvider = (function (_ref) {\n var nonce = _ref.nonce,\n children = _ref.children,\n cacheKey = _ref.cacheKey;\n var emotionCache = useMemo(function () {\n return createCache({\n key: cacheKey,\n nonce: nonce\n });\n }, [cacheKey, nonce]);\n return /*#__PURE__*/React.createElement(CacheProvider, {\n value: emotionCache\n }, children);\n});\n\nexport default StateManagedSelect;\nexport { NonceProvider };\n","import React from \"react\";\n\nimport { Icon } from \"@meterup/metric\";\nimport { ClearIndicatorProps, components } from \"react-select\";\n\nexport function ClearIndicator(props: ClearIndicatorProps) {\n return (\n \n \n \n );\n}\n","import React from \"react\";\n\nimport { Icon } from \"@meterup/metric\";\nimport { components, DropdownIndicatorProps } from \"react-select\";\n\nexport function DropdownIndicator(props: DropdownIndicatorProps) {\n return (\n \n \n \n );\n}\n","export type Option = {\n label: Label;\n value: Value;\n};\n\nexport type StringsOption = Option;\n\nexport function getLabel(option: Option): Label {\n return option.label;\n}\n\nexport function getValue(option: Option): Value {\n return option.value;\n}\n","export const stroke = {\n initialLight: \"#EDEFF5\",\n paneLight: \"#E4E6F0\",\n controlBase: {\n initialLight: \"rgba(78, 81, 97, 0.12)\",\n },\n} as const;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import { color } from \"d3-color\";\n\n/**\n * Sets the opacity of the given CSS color specifier string and returns the new color formatted as an rgba() string.\n * @param specifier\n * @param opacity\n */\nexport const fade = (specifier: string, opacity: number): string => {\n const c = color(specifier);\n\n if (c) {\n c.opacity = opacity;\n return c.formatRgb();\n }\n\n return \"rgba(0,0,0,0)\";\n};\n","import { CSSProperties, useMemo } from \"react\";\n\nimport { theme } from \"@meterup/metric\";\nimport identity from \"lodash/identity\";\nimport { ValueContainerProps } from \"react-select\";\nimport { StylesConfig } from \"react-select/dist/declarations/src/styles\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nimport { stroke } from \"../../../colors\";\nimport { fade } from \"../../../utils/stolen-from-frontends/fade\";\n\ntype CustomStylesSize = \"small\" | \"medium\" | \"large\";\ntype UseCustomStylesProps = {\n controlPositioning: boolean;\n singleLine: boolean;\n capsuleStyle: boolean;\n custom?: StylesConfig>;\n plain: boolean;\n showIndicator: boolean;\n size: CustomStylesSize;\n unstyled?: boolean;\n};\n\nexport function useCustomStyles({\n controlPositioning = true,\n custom = identity,\n singleLine = false,\n capsuleStyle = true,\n plain = false,\n showIndicator = false,\n size = \"large\",\n unstyled = false,\n}: UseCustomStylesProps): StylesConfig> {\n return useMemo(() => {\n const styles = {\n option: (provided, state) => ({\n ...provided,\n color:\n state.isSelected || state.isFocused ? \"var(--colors-white)\" : \"var(--colors-gray-700)\",\n backgroundColor:\n state.isSelected || state.isFocused ? \"var(--colors-brand-600)\" : \"var(--colors-white)\",\n fontFamily: \"var(--fonts-sans)\",\n fontWeight: \"var(--fontWeights-medium)\",\n padding: \"0 var(--space-6)\",\n fontSize: \"var(--fontSizes-14)\",\n lineHeight: \"var(--lineHeights-20)\",\n borderRadius: \"var(--radii-6)\",\n display: \"flex\",\n alignItems: \"center\",\n // minHeight: \"var(--sizes-28)\",\n // position: \"relative\",\n outline: \"none\",\n userSelect: \"none\",\n cursor: \"pointer\",\n \"&:hover\": {\n color: \"var(--colors-white)\",\n backgroundColor: \"var(--colors-brand-600)\",\n },\n }),\n control: (provided, state) => {\n if (unstyled) {\n return {};\n }\n const { minHeight, ...rest } = provided;\n const heights = false && size !== \"small\" ? { minHeight } : { minHeight: \"0px\" };\n if (plain) {\n return heights;\n }\n return {\n // none of react-select's styles are passed to \n ...rest,\n border: \"0 none\",\n cursor: \"text\",\n borderColor: \"none\",\n borderRadius: \"unset\",\n borderWidth: 0,\n boxShadow: \"unset\",\n overflow: \"hidden\",\n flexWrap: singleLine ? \"nowrap\" : \"wrap\",\n ...heights,\n };\n },\n singleValue: (provided, state) => {\n const opacity = state.isDisabled ? 0.5 : 1;\n const transition = \"opacity 300ms\";\n\n if (capsuleStyle) {\n return {\n ...provided,\n opacity,\n transition,\n borderRadius: 99999,\n width: \"fit-content\",\n fontWeight: \"var(--fontWeights-medium)\",\n fontSize: \"var(--fontSizes-12)\",\n lineHeight: \"var(--lineHeights-16)\",\n color: \"var(--colors-gray-700)\",\n padding: \"var(--space-2) var(--space-6)\",\n backgroundColor: fade(theme.theme.colors[\"gray-100\"].value, 0.75),\n \"---labelColor\": \"var(--colors-gray-700)\",\n \"---iconColor\": \"var(--colors-gray-600)\",\n };\n }\n\n return provided;\n },\n multiValue: (provided, state) => {\n const base = {\n padding: \"0 var(--space-2)\",\n };\n if (plain) {\n return base;\n }\n return {\n ...provided,\n ...base,\n borderRadius: \"var(--radii-8)\",\n // backgroundColor: \"var(--colors-brand-600)\",\n backgroundColor: \"var(--colors-brand-white)\",\n boxShadow: \"var(--shadows-controlTertiaryInitialLight)\",\n \"---labelColor\": \"var(--colors-gray-600)\",\n \"---iconColor\": \"var(--colors-gray-500)\",\n \"&:hover\": {\n boxShadow: \"var(--shadows-controlTertiaryHoveredLight)\",\n \"---labelColor\": \"var(--colors-gray-700)\",\n \"---iconColor\": \"var(--colors-gray-600)\",\n },\n };\n },\n multiValueLabel: (provided, state) => ({\n ...provided,\n // color: \"var(--colors-gray-500)\",\n // color: \"var(--colors-white)\",\n color: \"var(--colors-gray-600)\",\n fontSize: \"var(--fontSizes-14)\",\n lineHeight: \"var(--lineHeights-20)\",\n background: \"none\",\n backgroundColor: \"unset\",\n \"&:hover\": {\n color: \"var(--colors-gray-700)\",\n },\n }),\n multiValueRemove: (provided, state) => ({\n ...provided,\n color: \"var(--colors-gray-500)\",\n \"&:hover\": {\n color: \"var(--colors-gray-600)\",\n backgroundColor: \"unset\",\n \"& > svg\": {\n textShadow: \"var(--shadows-controlTertiaryHoveredLight)\",\n },\n },\n }),\n indicatorsContainer: (provided) => {\n if (showIndicator) {\n return {\n ...provided,\n cursor: \"pointer\",\n display: \"flex\",\n gap: \"var(--space-8)\",\n ...(singleLine\n ? {\n paddingRight: \"var(--space-8)\",\n }\n : {}),\n\n ...(size === \"small\"\n ? {\n \"& > div\": {\n paddingTop: 0,\n paddingBottom: 0,\n },\n }\n : {}),\n };\n }\n return {\n display: \"none\",\n };\n },\n clearIndicator: (provided) => ({\n ...provided,\n padding: 0,\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n paddingLeft: 0,\n }),\n indicatorSeparator: () => ({\n display: \"none\",\n }),\n input: (provided) => {\n return {\n ...provided,\n // ...(size === \"small\"\n // ? { paddingTop: 0, paddingBottom: 0, marginTop: 0, marginBottom: 0 }\n // : {}),\n };\n },\n container: (provided) => {\n if (unstyled) {\n return {};\n }\n let container = {\n ...provided,\n // borderRadius: \"var(--radii-8) var(--radii-8) 0 0\",\n borderRadius: \"var(--radii-8)\",\n // boxShadow:\n // \"var(--shadows-fenceLeftLight), var(--shadows-fenceRightLight), var(--shadows-fenceTopLight)\",\n // padding: \"var(--space-8) var(--space-12)\",\n padding: \"var(--space-4) var(--space-8)\",\n border: `1px solid ${stroke.controlBase.initialLight}`,\n backgroundColor: \"white\",\n position: \"unset\",\n };\n if (size === \"medium\" || size === \"small\") {\n container = {\n ...container,\n padding: \"0 var(--space-4)\",\n // boxShadow: \"var(--shadows-fenceAllLight)\",\n boxShadow: \"var(--shadows-fieldInitialLight)\",\n borderRadius: \"var(--radii-8)\",\n overflow: \"hidden\",\n // \"&:focus-within\": {\n // boxShadow: \"var(--shadows-fieldFocusedLight)\",\n // },\n };\n }\n // if (!controlPositioning) {\n // container.overflow = \"hidden\";\n // }\n return container;\n },\n placeholder: (provided, state) => ({\n ...provided,\n width: state.isMulti ? \"500px\" : \"100%\",\n fontSize: \"var(--fontSizes-14)\",\n color: \"var(--colors-gray-500)\",\n }),\n valueContainer: (provided, state: ValueContainerProps>) => {\n if (state.isMulti) {\n return {\n ...provided,\n padding: 0,\n };\n }\n return {\n ...provided,\n paddingTop: 0,\n ...(size === \"medium\" ? { paddingBottom: 0 } : {}),\n };\n },\n menu: (provided) => {\n const menu: CSSProperties = {\n // ...provided,\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"var(--space-2)\",\n borderRadius: \"var(--radii-8)\",\n boxShadow: \"var(--shadows-overlayLight)\",\n // left: 0,\n width: \"auto\",\n // padding: 0,\n padding: \"var(--space-4)\",\n minWidth: 250,\n background: \"var(--colors-white)\",\n };\n\n if (controlPositioning) {\n return {\n ...menu,\n bottom: \"100%\",\n position: \"absolute\",\n };\n }\n\n return {\n ...provided,\n ...menu,\n };\n },\n groupHeading: (provided) => ({\n ...provided,\n padding: \"0 var(--space-6)\",\n fontWeight: \"var(--fontWeights-regular)\",\n color: \"var(--colors-gray-500)\",\n fontSize: \"var(--fontSizes-12)\",\n lineHeight: \"var(--lineHeights-16)\",\n // height: 1,\n // backgroundColor: colors['gray-100'],\n // margin: '$8 -4px',\n }),\n group: (provided) => ({\n ...provided,\n borderTop: \"1px solid var(--colors-gray-100)\",\n \"&:first-of-type\": {\n borderTop: \"0 none\",\n },\n }),\n menuPortal: (provided) => ({\n ...provided,\n zIndex: 9999,\n }),\n };\n return custom(styles);\n }, [capsuleStyle, controlPositioning, custom, plain, showIndicator, singleLine, size, unstyled]);\n}\n","/**\n * react-number-format - 5.1.4\n * Author : Sudhanshu Yadav\n * Copyright (c) 2016, 2023 to Sudhanshu Yadav, released under the MIT license.\n * https://github.com/s-yadav/react-number-format\n */\n\nimport React, { useRef, useState, useMemo, useEffect } from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n { t[p] = s[p]; } }\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n { for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n { t[p[i]] = s[p[i]]; }\r\n } }\r\n return t;\r\n}\n\nvar SourceType;\n(function (SourceType) {\n SourceType[\"event\"] = \"event\";\n SourceType[\"props\"] = \"prop\";\n})(SourceType || (SourceType = {}));\n\n// basic noop function\nfunction noop() { }\nfunction charIsNumber(char) {\n return !!(char || '').match(/\\d/);\n}\nfunction isNil(val) {\n return val === null || val === undefined;\n}\nfunction isNanValue(val) {\n return typeof val === 'number' && isNaN(val);\n}\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n}\nfunction getThousandsGroupRegex(thousandsGroupStyle) {\n switch (thousandsGroupStyle) {\n case 'lakh':\n return /(\\d+?)(?=(\\d\\d)+(\\d)(?!\\d))(\\.\\d+)?/g;\n case 'wan':\n return /(\\d)(?=(\\d{4})+(?!\\d))/g;\n case 'thousand':\n default:\n return /(\\d)(?=(\\d{3})+(?!\\d))/g;\n }\n}\nfunction applyThousandSeparator(str, thousandSeparator, thousandsGroupStyle) {\n var thousandsGroupRegex = getThousandsGroupRegex(thousandsGroupStyle);\n var index = str.search(/[1-9]/);\n index = index === -1 ? str.length : index;\n return (str.substring(0, index) +\n str.substring(index, str.length).replace(thousandsGroupRegex, '$1' + thousandSeparator));\n}\nfunction usePersistentCallback(cb) {\n var callbackRef = useRef(cb);\n // keep the callback ref upto date\n callbackRef.current = cb;\n /**\n * initialize a persistent callback which never changes\n * through out the component lifecycle\n */\n var persistentCbRef = useRef(function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return callbackRef.current.apply(callbackRef, args);\n });\n return persistentCbRef.current;\n}\n//spilt a float number into different parts beforeDecimal, afterDecimal, and negation\nfunction splitDecimal(numStr, allowNegative) {\n if ( allowNegative === void 0 ) allowNegative = true;\n\n var hasNegation = numStr[0] === '-';\n var addNegation = hasNegation && allowNegative;\n numStr = numStr.replace('-', '');\n var parts = numStr.split('.');\n var beforeDecimal = parts[0];\n var afterDecimal = parts[1] || '';\n return {\n beforeDecimal: beforeDecimal,\n afterDecimal: afterDecimal,\n hasNegation: hasNegation,\n addNegation: addNegation,\n };\n}\nfunction fixLeadingZero(numStr) {\n if (!numStr)\n { return numStr; }\n var isNegative = numStr[0] === '-';\n if (isNegative)\n { numStr = numStr.substring(1, numStr.length); }\n var parts = numStr.split('.');\n var beforeDecimal = parts[0].replace(/^0+/, '') || '0';\n var afterDecimal = parts[1] || '';\n return (\"\" + (isNegative ? '-' : '') + beforeDecimal + (afterDecimal ? (\".\" + afterDecimal) : ''));\n}\n/**\n * limit decimal numbers to given scale\n * Not used .fixedTo because that will break with big numbers\n */\nfunction limitToScale(numStr, scale, fixedDecimalScale) {\n var str = '';\n var filler = fixedDecimalScale ? '0' : '';\n for (var i = 0; i <= scale - 1; i++) {\n str += numStr[i] || filler;\n }\n return str;\n}\nfunction repeat(str, count) {\n return Array(count + 1).join(str);\n}\nfunction toNumericString(num) {\n var _num = num + ''; // typecast number to string\n // store the sign and remove it from the number.\n var sign = _num[0] === '-' ? '-' : '';\n if (sign)\n { _num = _num.substring(1); }\n // split the number into cofficient and exponent\n var ref = _num.split(/[eE]/g);\n var coefficient = ref[0];\n var exponent = ref[1];\n // covert exponent to number;\n exponent = Number(exponent);\n // if there is no exponent part or its 0, return the coffiecient with sign\n if (!exponent)\n { return sign + coefficient; }\n coefficient = coefficient.replace('.', '');\n /**\n * for scientific notation the current decimal index will be after first number (index 0)\n * So effective decimal index will always be 1 + exponent value\n */\n var decimalIndex = 1 + exponent;\n var coffiecientLn = coefficient.length;\n if (decimalIndex < 0) {\n // if decimal index is less then 0 add preceding 0s\n // add 1 as join will have\n coefficient = '0.' + repeat('0', Math.abs(decimalIndex)) + coefficient;\n }\n else if (decimalIndex >= coffiecientLn) {\n // if decimal index is less then 0 add leading 0s\n coefficient = coefficient + repeat('0', decimalIndex - coffiecientLn);\n }\n else {\n // else add decimal point at proper index\n coefficient =\n (coefficient.substring(0, decimalIndex) || '0') + '.' + coefficient.substring(decimalIndex);\n }\n return sign + coefficient;\n}\n/**\n * This method is required to round prop value to given scale.\n * Not used .round or .fixedTo because that will break with big numbers\n */\nfunction roundToPrecision(numStr, scale, fixedDecimalScale) {\n //if number is empty don't do anything return empty string\n if (['', '-'].indexOf(numStr) !== -1)\n { return numStr; }\n var shouldHaveDecimalSeparator = (numStr.indexOf('.') !== -1 || fixedDecimalScale) && scale;\n var ref = splitDecimal(numStr);\n var beforeDecimal = ref.beforeDecimal;\n var afterDecimal = ref.afterDecimal;\n var hasNegation = ref.hasNegation;\n var floatValue = parseFloat((\"0.\" + (afterDecimal || '0')));\n var floatValueStr = afterDecimal.length <= scale ? (\"0.\" + afterDecimal) : floatValue.toFixed(scale);\n var roundedDecimalParts = floatValueStr.split('.');\n var intPart = beforeDecimal\n .split('')\n .reverse()\n .reduce(function (roundedStr, current, idx) {\n if (roundedStr.length > idx) {\n return ((Number(roundedStr[0]) + Number(current)).toString() +\n roundedStr.substring(1, roundedStr.length));\n }\n return current + roundedStr;\n }, roundedDecimalParts[0]);\n var decimalPart = limitToScale(roundedDecimalParts[1] || '', scale, fixedDecimalScale);\n var negation = hasNegation ? '-' : '';\n var decimalSeparator = shouldHaveDecimalSeparator ? '.' : '';\n return (\"\" + negation + intPart + decimalSeparator + decimalPart);\n}\n/** set the caret positon in an input field **/\nfunction setCaretPosition(el, caretPos) {\n el.value = el.value;\n // ^ this is used to not only get 'focus', but\n // to make sure we don't have it everything -selected-\n // (it causes an issue in chrome, and having it doesn't hurt any other browser)\n if (el !== null) {\n /* @ts-ignore */\n if (el.createTextRange) {\n /* @ts-ignore */\n var range = el.createTextRange();\n range.move('character', caretPos);\n range.select();\n return true;\n }\n // (el.selectionStart === 0 added for Firefox bug)\n if (el.selectionStart || el.selectionStart === 0) {\n el.focus();\n el.setSelectionRange(caretPos, caretPos);\n return true;\n }\n // fail city, fortunately this never happens (as far as I've tested) :)\n el.focus();\n return false;\n }\n}\nfunction findChangeRange(prevValue, newValue) {\n var i = 0, j = 0;\n var prevLength = prevValue.length;\n var newLength = newValue.length;\n while (prevValue[i] === newValue[i] && i < prevLength)\n { i++; }\n //check what has been changed from last\n while (prevValue[prevLength - 1 - j] === newValue[newLength - 1 - j] &&\n newLength - j > i &&\n prevLength - j > i) {\n j++;\n }\n return {\n from: { start: i, end: prevLength - j },\n to: { start: i, end: newLength - j },\n };\n}\n/*\n Returns a number whose value is limited to the given range\n*/\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction geInputCaretPosition(el) {\n /*Max of selectionStart and selectionEnd is taken for the patch of pixel and other mobile device caret bug*/\n return Math.max(el.selectionStart, el.selectionEnd);\n}\nfunction addInputMode() {\n return (typeof navigator !== 'undefined' &&\n !(navigator.platform && /iPhone|iPod/.test(navigator.platform)));\n}\nfunction getDefaultChangeMeta(value) {\n return {\n from: {\n start: 0,\n end: 0,\n },\n to: {\n start: 0,\n end: value.length,\n },\n lastValue: '',\n };\n}\nfunction getMaskAtIndex(mask, index) {\n if ( mask === void 0 ) mask = ' ';\n\n if (typeof mask === 'string') {\n return mask;\n }\n return mask[index] || ' ';\n}\nfunction getCaretPosition(newFormattedValue, lastFormattedValue, curValue, curCaretPos, boundary, isValidInputCharacter) {\n /**\n * if something got inserted on empty value, add the formatted character before the current value,\n * This is to avoid the case where typed character is present on format characters\n */\n var firstAllowedPosition = boundary.findIndex(function (b) { return b; });\n var prefixFormat = newFormattedValue.slice(0, firstAllowedPosition);\n if (!lastFormattedValue && !curValue.startsWith(prefixFormat)) {\n curValue = prefixFormat + curValue;\n curCaretPos = curCaretPos + prefixFormat.length;\n }\n var curValLn = curValue.length;\n var formattedValueLn = newFormattedValue.length;\n // create index map\n var addedIndexMap = {};\n var indexMap = new Array(curValLn);\n for (var i = 0; i < curValLn; i++) {\n indexMap[i] = -1;\n for (var j = 0, jLn = formattedValueLn; j < jLn; j++) {\n if (curValue[i] === newFormattedValue[j] && addedIndexMap[j] !== true) {\n indexMap[i] = j;\n addedIndexMap[j] = true;\n break;\n }\n }\n }\n /**\n * For current caret position find closest characters (left and right side)\n * which are properly mapped to formatted value.\n * The idea is that the new caret position will exist always in the boundary of\n * that mapped index\n */\n var pos = curCaretPos;\n while (pos < curValLn && (indexMap[pos] === -1 || !isValidInputCharacter(curValue[pos]))) {\n pos++;\n }\n // if the caret position is on last keep the endIndex as last for formatted value\n var endIndex = pos === curValLn || indexMap[pos] === -1 ? formattedValueLn : indexMap[pos];\n pos = curCaretPos - 1;\n while (pos > 0 && indexMap[pos] === -1)\n { pos--; }\n var startIndex = pos === -1 || indexMap[pos] === -1 ? 0 : indexMap[pos] + 1;\n /**\n * case where a char is added on suffix and removed from middle, example 2sq345 becoming $2,345 sq\n * there is still a mapping but the order of start index and end index is changed\n */\n if (startIndex > endIndex)\n { return endIndex; }\n /**\n * given the current caret position if it closer to startIndex\n * keep the new caret position on start index or keep it closer to endIndex\n */\n return curCaretPos - startIndex < endIndex - curCaretPos ? startIndex : endIndex;\n}\n/* This keeps the caret within typing area so people can't type in between prefix or suffix or format characters */\nfunction getCaretPosInBoundary(value, caretPos, boundary, direction) {\n var valLn = value.length;\n // clamp caret position to [0, value.length]\n caretPos = clamp(caretPos, 0, valLn);\n if (direction === 'left') {\n while (caretPos >= 0 && !boundary[caretPos])\n { caretPos--; }\n // if we don't find any suitable caret position on left, set it on first allowed position\n if (caretPos === -1)\n { caretPos = boundary.indexOf(true); }\n }\n else {\n while (caretPos <= valLn && !boundary[caretPos])\n { caretPos++; }\n // if we don't find any suitable caret position on right, set it on last allowed position\n if (caretPos > valLn)\n { caretPos = boundary.lastIndexOf(true); }\n }\n // if we still don't find caret position, set it at the end of value\n if (caretPos === -1)\n { caretPos = valLn; }\n return caretPos;\n}\nfunction caretUnknownFormatBoundary(formattedValue) {\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n boundaryAry[i] = Boolean(charIsNumber(formattedValue[i]) || charIsNumber(formattedValue[i - 1]));\n }\n return boundaryAry;\n}\nfunction useInternalValues(value, defaultValue, valueIsNumericString, format, removeFormatting, onValueChange) {\n if ( onValueChange === void 0 ) onValueChange = noop;\n\n var propValues = useRef();\n var getValues = usePersistentCallback(function (value) {\n var formattedValue, numAsString;\n if (isNil(value) || isNanValue(value)) {\n numAsString = '';\n formattedValue = '';\n }\n else if (typeof value === 'number' || valueIsNumericString) {\n numAsString = typeof value === 'number' ? toNumericString(value) : value;\n formattedValue = format(numAsString);\n }\n else {\n numAsString = removeFormatting(value, undefined);\n formattedValue = value;\n }\n return { formattedValue: formattedValue, numAsString: numAsString };\n });\n var ref = useState(function () {\n return getValues(defaultValue);\n });\n var values = ref[0];\n var setValues = ref[1];\n var _onValueChange = function (values, sourceInfo) {\n setValues({\n formattedValue: values.formattedValue,\n numAsString: values.value,\n });\n onValueChange(values, sourceInfo);\n };\n useMemo(function () {\n //if element is moved to uncontrolled mode, don't reset the value\n if (!isNil(value)) {\n propValues.current = getValues(value);\n setValues(propValues.current);\n }\n else {\n propValues.current = undefined;\n }\n }, [value, getValues]);\n return [values, _onValueChange];\n}\n\nfunction defaultRemoveFormatting(value) {\n return value.replace(/[^0-9]/g, '');\n}\nfunction defaultFormat(value) {\n return value;\n}\nfunction NumberFormatBase(props) {\n var type = props.type; if ( type === void 0 ) type = 'text';\n var displayType = props.displayType; if ( displayType === void 0 ) displayType = 'input';\n var customInput = props.customInput;\n var renderText = props.renderText;\n var getInputRef = props.getInputRef;\n var format = props.format; if ( format === void 0 ) format = defaultFormat;\n var removeFormatting = props.removeFormatting; if ( removeFormatting === void 0 ) removeFormatting = defaultRemoveFormatting;\n var defaultValue = props.defaultValue;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var isAllowed = props.isAllowed;\n var onChange = props.onChange; if ( onChange === void 0 ) onChange = noop;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onMouseUp = props.onMouseUp; if ( onMouseUp === void 0 ) onMouseUp = noop;\n var onFocus = props.onFocus; if ( onFocus === void 0 ) onFocus = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var propValue = props.value;\n var getCaretBoundary = props.getCaretBoundary; if ( getCaretBoundary === void 0 ) getCaretBoundary = caretUnknownFormatBoundary;\n var isValidInputCharacter = props.isValidInputCharacter; if ( isValidInputCharacter === void 0 ) isValidInputCharacter = charIsNumber;\n var otherProps = __rest(props, [\"type\", \"displayType\", \"customInput\", \"renderText\", \"getInputRef\", \"format\", \"removeFormatting\", \"defaultValue\", \"valueIsNumericString\", \"onValueChange\", \"isAllowed\", \"onChange\", \"onKeyDown\", \"onMouseUp\", \"onFocus\", \"onBlur\", \"value\", \"getCaretBoundary\", \"isValidInputCharacter\"]);\n var ref = useInternalValues(propValue, defaultValue, Boolean(valueIsNumericString), format, removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var formattedValue = ref_0.formattedValue;\n var numAsString = ref_0.numAsString;\n var onFormattedValueChange = ref[1];\n var lastUpdatedValue = useRef();\n var _onValueChange = function (values, source) {\n lastUpdatedValue.current = values.formattedValue;\n onFormattedValueChange(values, source);\n };\n // check if there is any change in the value due to props change\n useEffect(function () {\n var newFormattedValue = format(numAsString);\n // if the formatted value is not synced to parent, or if the formatted value is different\n if (lastUpdatedValue.current === undefined || newFormattedValue !== lastUpdatedValue.current) {\n var input = focusedElm.current;\n // formatting can remove some of the number chars, so we need to fine number string again\n var _numAsString = removeFormatting(newFormattedValue, undefined);\n updateValue({\n formattedValue: newFormattedValue,\n numAsString: _numAsString,\n input: input,\n setCaretPosition: true,\n source: SourceType.props,\n event: undefined,\n });\n }\n });\n var ref$1 = useState(false);\n var mounted = ref$1[0];\n var setMounted = ref$1[1];\n var focusedElm = useRef(null);\n var timeout = useRef({\n setCaretTimeout: null,\n focusTimeout: null,\n });\n useEffect(function () {\n setMounted(true);\n return function () {\n clearTimeout(timeout.current.setCaretTimeout);\n clearTimeout(timeout.current.focusTimeout);\n };\n }, []);\n var _format = format;\n var getValueObject = function (formattedValue, numAsString) {\n var floatValue = parseFloat(numAsString);\n return {\n formattedValue: formattedValue,\n value: numAsString,\n floatValue: isNaN(floatValue) ? undefined : floatValue,\n };\n };\n var setPatchedCaretPosition = function (el, caretPos, currentValue) {\n /* setting caret position within timeout of 0ms is required for mobile chrome,\n otherwise browser resets the caret position after we set it\n We are also setting it without timeout so that in normal browser we don't see the flickering */\n setCaretPosition(el, caretPos);\n timeout.current.setCaretTimeout = setTimeout(function () {\n if (el.value === currentValue)\n { setCaretPosition(el, caretPos); }\n }, 0);\n };\n /* This keeps the caret within typing area so people can't type in between prefix or suffix */\n var correctCaretPosition = function (value, caretPos, direction) {\n return getCaretPosInBoundary(value, caretPos, getCaretBoundary(value), direction);\n };\n var getNewCaretPosition = function (inputValue, newFormattedValue, caretPos) {\n var caretBoundary = getCaretBoundary(newFormattedValue);\n var updatedCaretPos = getCaretPosition(newFormattedValue, formattedValue, inputValue, caretPos, caretBoundary, isValidInputCharacter);\n //correct caret position if its outside of editable area\n updatedCaretPos = getCaretPosInBoundary(newFormattedValue, updatedCaretPos, caretBoundary);\n return updatedCaretPos;\n };\n var updateValue = function (params) {\n var newFormattedValue = params.formattedValue; if ( newFormattedValue === void 0 ) newFormattedValue = '';\n var input = params.input;\n var setCaretPosition = params.setCaretPosition; if ( setCaretPosition === void 0 ) setCaretPosition = true;\n var source = params.source;\n var event = params.event;\n var numAsString = params.numAsString;\n var caretPos = params.caretPos;\n if (input) {\n //calculate caret position if not defined\n if (caretPos === undefined && setCaretPosition) {\n var inputValue = params.inputValue || input.value;\n var currentCaretPosition = geInputCaretPosition(input);\n /**\n * set the value imperatively, this is required for IE fix\n * This is also required as if new caret position is beyond the previous value.\n * Caret position will not be set correctly\n */\n input.value = newFormattedValue;\n //get the caret position\n caretPos = getNewCaretPosition(inputValue, newFormattedValue, currentCaretPosition);\n }\n /**\n * set the value imperatively, as we set the caret position as well imperatively.\n * This is to keep value and caret position in sync\n */\n input.value = newFormattedValue;\n //set caret position, and value imperatively when element is provided\n if (setCaretPosition && caretPos !== undefined) {\n //set caret position\n setPatchedCaretPosition(input, caretPos, newFormattedValue);\n }\n }\n if (newFormattedValue !== formattedValue) {\n // trigger onValueChange synchronously, so parent is updated along with the number format. Fix for #277, #287\n _onValueChange(getValueObject(newFormattedValue, numAsString), { event: event, source: source });\n }\n };\n var formatInputValue = function (inputValue, event, source) {\n var changeRange = findChangeRange(formattedValue, inputValue);\n var changeMeta = Object.assign(Object.assign({}, changeRange), { lastValue: formattedValue });\n var _numAsString = removeFormatting(inputValue, changeMeta);\n var _formattedValue = _format(_numAsString);\n // formatting can remove some of the number chars, so we need to fine number string again\n _numAsString = removeFormatting(_formattedValue, undefined);\n if (isAllowed && !isAllowed(getValueObject(_formattedValue, _numAsString))) {\n //reset the caret position\n var input = event.target;\n var currentCaretPosition = geInputCaretPosition(input);\n var caretPos = getNewCaretPosition(inputValue, formattedValue, currentCaretPosition);\n setPatchedCaretPosition(input, caretPos, formattedValue);\n return false;\n }\n updateValue({\n formattedValue: _formattedValue,\n numAsString: _numAsString,\n inputValue: inputValue,\n event: event,\n source: source,\n setCaretPosition: true,\n input: event.target,\n });\n return true;\n };\n var _onChange = function (e) {\n var el = e.target;\n var inputValue = el.value;\n var changed = formatInputValue(inputValue, e, SourceType.event);\n if (changed)\n { onChange(e); }\n };\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var expectedCaretPosition;\n //Handle backspace and delete against non numerical/decimal characters or arrow keys\n if (key === 'ArrowLeft' || key === 'Backspace') {\n expectedCaretPosition = Math.max(selectionStart - 1, 0);\n }\n else if (key === 'ArrowRight') {\n expectedCaretPosition = Math.min(selectionStart + 1, value.length);\n }\n else if (key === 'Delete') {\n expectedCaretPosition = selectionStart;\n }\n //if expectedCaretPosition is not set it means we don't want to Handle keyDown\n // also if multiple characters are selected don't handle\n if (expectedCaretPosition === undefined || selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n var newCaretPosition = expectedCaretPosition;\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n var direction = key === 'ArrowLeft' ? 'left' : 'right';\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, direction);\n }\n else if (key === 'Delete' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of delete go to closest caret boundary on the right side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'right');\n }\n else if (key === 'Backspace' && !isValidInputCharacter(value[expectedCaretPosition])) {\n // in case of backspace go to closest caret boundary on the left side\n newCaretPosition = correctCaretPosition(value, expectedCaretPosition, 'left');\n }\n if (newCaretPosition !== expectedCaretPosition) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n /* NOTE: this is just required for unit test as we need to get the newCaretPosition,\n Remove this when you find different solution */\n /* @ts-ignore */\n if (e.isUnitTestRun) {\n setPatchedCaretPosition(el, newCaretPosition, value);\n }\n onKeyDown(e);\n };\n /** required to handle the caret position when click anywhere within the input **/\n var _onMouseUp = function (e) {\n var el = e.target;\n /**\n * NOTE: we have to give default value for value as in case when custom input is provided\n * value can come as undefined when nothing is provided on value prop.\n */\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n if (selectionStart === selectionEnd) {\n var caretPosition = correctCaretPosition(value, selectionStart);\n if (caretPosition !== selectionStart) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n }\n onMouseUp(e);\n };\n var _onFocus = function (e) {\n // Workaround Chrome and Safari bug https://bugs.chromium.org/p/chromium/issues/detail?id=779328\n // (onFocus event target selectionStart is always 0 before setTimeout)\n if (e.persist)\n { e.persist(); }\n var el = e.target;\n focusedElm.current = el;\n timeout.current.focusTimeout = setTimeout(function () {\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n var caretPosition = correctCaretPosition(value, selectionStart);\n //setPatchedCaretPosition only when everything is not selected on focus (while tabbing into the field)\n if (caretPosition !== selectionStart &&\n !(selectionStart === 0 && selectionEnd === value.length)) {\n setPatchedCaretPosition(el, caretPosition, value);\n }\n onFocus(e);\n }, 0);\n };\n var _onBlur = function (e) {\n focusedElm.current = null;\n clearTimeout(timeout.current.focusTimeout);\n clearTimeout(timeout.current.setCaretTimeout);\n onBlur(e);\n };\n // add input mode on element based on format prop and device once the component is mounted\n var inputMode = mounted && addInputMode() ? 'numeric' : undefined;\n var inputProps = Object.assign({ inputMode: inputMode }, otherProps, {\n type: type,\n value: formattedValue,\n onChange: _onChange,\n onKeyDown: _onKeyDown,\n onMouseUp: _onMouseUp,\n onFocus: _onFocus,\n onBlur: _onBlur,\n });\n if (displayType === 'text') {\n return renderText ? (React.createElement(React.Fragment, null, renderText(formattedValue, otherProps) || null)) : (React.createElement(\"span\", Object.assign({}, otherProps, { ref: getInputRef }), formattedValue));\n }\n else if (customInput) {\n var CustomInput = customInput;\n /* @ts-ignore */\n return React.createElement(CustomInput, Object.assign({}, inputProps, { ref: getInputRef }));\n }\n return React.createElement(\"input\", Object.assign({}, inputProps, { ref: getInputRef }));\n}\n\nfunction format(numStr, props) {\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var allowNegative = props.allowNegative;\n var thousandsGroupStyle = props.thousandsGroupStyle; if ( thousandsGroupStyle === void 0 ) thousandsGroupStyle = 'thousand';\n // don't apply formatting on empty string or '-'\n if (numStr === '' || numStr === '-') {\n return numStr;\n }\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n /**\n * Keep the decimal separator\n * when decimalScale is not defined or non zero and the numStr has decimal in it\n * Or if decimalScale is > 0 and fixeDecimalScale is true (even if numStr has no decimal)\n */\n var hasDecimalSeparator = (decimalScale !== 0 && numStr.indexOf('.') !== -1) || (decimalScale && fixedDecimalScale);\n var ref$1 = splitDecimal(numStr, allowNegative);\n var beforeDecimal = ref$1.beforeDecimal;\n var afterDecimal = ref$1.afterDecimal;\n var addNegation = ref$1.addNegation; // eslint-disable-line prefer-const\n //apply decimal precision if its defined\n if (decimalScale !== undefined) {\n afterDecimal = limitToScale(afterDecimal, decimalScale, !!fixedDecimalScale);\n }\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, thousandsGroupStyle);\n }\n //add prefix and suffix when there is a number present\n if (prefix)\n { beforeDecimal = prefix + beforeDecimal; }\n if (suffix)\n { afterDecimal = afterDecimal + suffix; }\n //restore negation sign\n if (addNegation)\n { beforeDecimal = '-' + beforeDecimal; }\n numStr = beforeDecimal + ((hasDecimalSeparator && decimalSeparator) || '') + afterDecimal;\n return numStr;\n}\nfunction getSeparators(props) {\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var thousandSeparator = props.thousandSeparator;\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n if (thousandSeparator === true) {\n thousandSeparator = ',';\n }\n if (!allowedDecimalSeparators) {\n allowedDecimalSeparators = [decimalSeparator, '.'];\n }\n return {\n decimalSeparator: decimalSeparator,\n thousandSeparator: thousandSeparator,\n allowedDecimalSeparators: allowedDecimalSeparators,\n };\n}\nfunction handleNegation(value, allowNegative) {\n if ( value === void 0 ) value = '';\n\n var negationRegex = new RegExp('(-)');\n var doubleNegationRegex = new RegExp('(-)(.)*(-)');\n // Check number has '-' value\n var hasNegation = negationRegex.test(value);\n // Check number has 2 or more '-' values\n var removeNegation = doubleNegationRegex.test(value);\n //remove negation\n value = value.replace(/-/g, '');\n if (hasNegation && !removeNegation && allowNegative) {\n value = '-' + value;\n }\n return value;\n}\nfunction getNumberRegex(decimalSeparator, global) {\n return new RegExp((\"(^-)|[0-9]|\" + (escapeRegExp(decimalSeparator))), global ? 'g' : undefined);\n}\nfunction removeFormatting(value, changeMeta, props) {\n var assign;\n\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n var allowNegative = props.allowNegative;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var decimalScale = props.decimalScale;\n var from = changeMeta.from;\n var to = changeMeta.to;\n var start = to.start;\n var end = to.end;\n var ref = getSeparators(props);\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n var decimalSeparator = ref.decimalSeparator;\n var isBeforeDecimalSeparator = value[end] === decimalSeparator;\n /**\n * If only a number is added on empty input which matches with the prefix or suffix,\n * then don't remove it, just return the same\n */\n if (charIsNumber(value) &&\n (value === prefix || value === suffix) &&\n changeMeta.lastValue === '') {\n return value;\n }\n /** Check for any allowed decimal separator is added in the numeric format and replace it with decimal separator */\n if (end - start === 1 && allowedDecimalSeparators.indexOf(value[start]) !== -1) {\n var separator = decimalScale === 0 ? '' : decimalSeparator;\n value = value.substring(0, start) + separator + value.substring(start + 1, value.length);\n }\n var stripNegation = function (value, start, end) {\n /**\n * if prefix starts with - we don't allow negative number to avoid confusion\n * if suffix starts with - and the value length is same as suffix length, then the - sign is from the suffix\n * In other cases, if the value starts with - then it is a negation\n */\n var hasNegation = false;\n var hasDoubleNegation = false;\n if (prefix.startsWith('-')) {\n hasNegation = false;\n }\n else if (value.startsWith('--')) {\n hasNegation = false;\n hasDoubleNegation = true;\n }\n else if (suffix.startsWith('-') && value.length === suffix.length) {\n hasNegation = false;\n }\n else if (value[0] === '-') {\n hasNegation = true;\n }\n var charsToRemove = hasNegation ? 1 : 0;\n if (hasDoubleNegation)\n { charsToRemove = 2; }\n // remove negation/double negation from start to simplify prefix logic as negation comes before prefix\n if (charsToRemove) {\n value = value.substring(charsToRemove);\n // account for the removal of the negation for start and end index\n start -= charsToRemove;\n end -= charsToRemove;\n }\n return { value: value, start: start, end: end, hasNegation: hasNegation };\n };\n var toMetadata = stripNegation(value, start, end);\n var hasNegation = toMetadata.hasNegation;\n ((assign = toMetadata, value = assign.value, start = assign.start, end = assign.end));\n var ref$1 = stripNegation(changeMeta.lastValue, from.start, from.end);\n var fromStart = ref$1.start;\n var fromEnd = ref$1.end;\n var lastValue = ref$1.value;\n // if only prefix and suffix part is updated reset the value to last value\n // if the changed range is from suffix in the updated value, and the the suffix starts with the same characters, allow the change\n var updatedSuffixPart = value.substring(start, end);\n if (value.length &&\n lastValue.length &&\n (fromStart > lastValue.length - suffix.length || fromEnd < prefix.length) &&\n !(updatedSuffixPart && suffix.startsWith(updatedSuffixPart))) {\n value = lastValue;\n }\n /**\n * remove prefix\n * Remove whole prefix part if its present on the value\n * If the prefix is partially deleted (in which case change start index will be less the prefix length)\n * Remove only partial part of prefix.\n */\n var startIndex = 0;\n if (value.startsWith(prefix))\n { startIndex += prefix.length; }\n else if (start < prefix.length)\n { startIndex = start; }\n value = value.substring(startIndex);\n // account for deleted prefix for end\n end -= startIndex;\n /**\n * Remove suffix\n * Remove whole suffix part if its present on the value\n * If the suffix is partially deleted (in which case change end index will be greater than the suffixStartIndex)\n * remove the partial part of suffix\n */\n var endIndex = value.length;\n var suffixStartIndex = value.length - suffix.length;\n if (value.endsWith(suffix))\n { endIndex = suffixStartIndex; }\n // if the suffix is removed from the end\n else if (end > suffixStartIndex)\n { endIndex = end; }\n // if the suffix is removed from start\n else if (end > value.length - suffix.length)\n { endIndex = end; }\n value = value.substring(0, endIndex);\n // add the negation back and handle for double negation\n value = handleNegation(hasNegation ? (\"-\" + value) : value, allowNegative);\n // remove non numeric characters\n value = (value.match(getNumberRegex(decimalSeparator, true)) || []).join('');\n // replace the decimalSeparator with ., and only keep the first separator, ignore following ones\n var firstIndex = value.indexOf(decimalSeparator);\n value = value.replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), function (match, index) {\n return index === firstIndex ? '.' : '';\n });\n //check if beforeDecimal got deleted and there is nothing after decimal,\n //clear all numbers in such case while keeping the - sign\n var ref$2 = splitDecimal(value, allowNegative);\n var beforeDecimal = ref$2.beforeDecimal;\n var afterDecimal = ref$2.afterDecimal;\n var addNegation = ref$2.addNegation; // eslint-disable-line prefer-const\n //clear only if something got deleted before decimal (cursor is before decimal)\n if (to.end - to.start < from.end - from.start &&\n beforeDecimal === '' &&\n isBeforeDecimalSeparator &&\n !parseFloat(afterDecimal)) {\n value = addNegation ? '-' : '';\n }\n return value;\n}\nfunction getCaretBoundary(formattedValue, props) {\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var suffix = props.suffix; if ( suffix === void 0 ) suffix = '';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hasNegation = formattedValue[0] === '-';\n // fill for prefix and negation\n boundaryAry.fill(false, 0, prefix.length + (hasNegation ? 1 : 0));\n // fill for suffix\n var valLn = formattedValue.length;\n boundaryAry.fill(false, valLn - suffix.length + 1, valLn + 1);\n return boundaryAry;\n}\nfunction validateAndUpdateProps(props) {\n var ref = getSeparators(props);\n var thousandSeparator = ref.thousandSeparator;\n var decimalSeparator = ref.decimalSeparator;\n // eslint-disable-next-line prefer-const\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var allowNegative = props.allowNegative; if ( allowNegative === void 0 ) allowNegative = true;\n if (thousandSeparator === decimalSeparator) {\n throw new Error((\"\\n Decimal separator can't be same as thousand separator.\\n thousandSeparator: \" + thousandSeparator + \" (thousandSeparator = {true} is same as thousandSeparator = \\\",\\\")\\n decimalSeparator: \" + decimalSeparator + \" (default value for decimalSeparator is .)\\n \"));\n }\n if (prefix.startsWith('-') && allowNegative) {\n // TODO: throw error in next major version\n console.error((\"\\n Prefix can't start with '-' when allowNegative is true.\\n prefix: \" + prefix + \"\\n allowNegative: \" + allowNegative + \"\\n \"));\n allowNegative = false;\n }\n return Object.assign(Object.assign({}, props), { allowNegative: allowNegative });\n}\nfunction useNumericFormat(props) {\n // validate props\n props = validateAndUpdateProps(props);\n var decimalSeparator = props.decimalSeparator; if ( decimalSeparator === void 0 ) decimalSeparator = '.';\n var allowedDecimalSeparators = props.allowedDecimalSeparators;\n var thousandsGroupStyle = props.thousandsGroupStyle;\n var suffix = props.suffix;\n var allowNegative = props.allowNegative;\n var allowLeadingZeros = props.allowLeadingZeros;\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var onBlur = props.onBlur; if ( onBlur === void 0 ) onBlur = noop;\n var thousandSeparator = props.thousandSeparator;\n var decimalScale = props.decimalScale;\n var fixedDecimalScale = props.fixedDecimalScale;\n var prefix = props.prefix; if ( prefix === void 0 ) prefix = '';\n var defaultValue = props.defaultValue;\n var value = props.value;\n var valueIsNumericString = props.valueIsNumericString;\n var onValueChange = props.onValueChange;\n var restProps = __rest(props, [\"decimalSeparator\", \"allowedDecimalSeparators\", \"thousandsGroupStyle\", \"suffix\", \"allowNegative\", \"allowLeadingZeros\", \"onKeyDown\", \"onBlur\", \"thousandSeparator\", \"decimalScale\", \"fixedDecimalScale\", \"prefix\", \"defaultValue\", \"value\", \"valueIsNumericString\", \"onValueChange\"]);\n var _format = function (numStr) { return format(numStr, props); };\n var _removeFormatting = function (inputValue, changeMeta) { return removeFormatting(inputValue, changeMeta, props); };\n var _valueIsNumericString = valueIsNumericString;\n if (!isNil(value)) {\n _valueIsNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : typeof value === 'number';\n }\n else if (!isNil(defaultValue)) {\n _valueIsNumericString = valueIsNumericString !== null && valueIsNumericString !== void 0 ? valueIsNumericString : typeof defaultValue === 'number';\n }\n var roundIncomingValueToPrecision = function (value) {\n if (isNil(value) || isNanValue(value))\n { return value; }\n if (typeof value === 'number') {\n value = toNumericString(value);\n }\n /**\n * only round numeric or float string values coming through props,\n * we don't need to do it for onChange events, as we want to prevent typing there\n */\n if (_valueIsNumericString && typeof decimalScale === 'number') {\n return roundToPrecision(value, decimalScale, Boolean(fixedDecimalScale));\n }\n return value;\n };\n var ref = useInternalValues(roundIncomingValueToPrecision(value), roundIncomingValueToPrecision(defaultValue), Boolean(_valueIsNumericString), _format, _removeFormatting, onValueChange);\n var ref_0 = ref[0];\n var numAsString = ref_0.numAsString;\n var formattedValue = ref_0.formattedValue;\n var _onValueChange = ref[1];\n var _onKeyDown = function (e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value; if ( value === void 0 ) value = '';\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // if user hits backspace, while the cursor is before prefix, and the input has negation, remove the negation\n if (key === 'Backspace' &&\n value[0] === '-' &&\n selectionStart === prefix.length + 1 &&\n allowNegative) {\n // bring the cursor to after negation\n setCaretPosition(el, 1);\n }\n // don't allow user to delete decimal separator when decimalScale and fixedDecimalScale is set\n var ref = getSeparators(props);\n var decimalSeparator = ref.decimalSeparator;\n var allowedDecimalSeparators = ref.allowedDecimalSeparators;\n if (key === 'Backspace' &&\n value[selectionStart - 1] === decimalSeparator &&\n decimalScale &&\n fixedDecimalScale) {\n setCaretPosition(el, selectionStart - 1);\n e.preventDefault();\n }\n // if user presses the allowed decimal separator before the separator, move the cursor after the separator\n if ((allowedDecimalSeparators === null || allowedDecimalSeparators === void 0 ? void 0 : allowedDecimalSeparators.includes(key)) && value[selectionStart] === decimalSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n var _thousandSeparator = thousandSeparator === true ? ',' : thousandSeparator;\n // move cursor when delete or backspace is pressed before/after thousand separator\n if (key === 'Backspace' && value[selectionStart - 1] === _thousandSeparator) {\n setCaretPosition(el, selectionStart - 1);\n }\n if (key === 'Delete' && value[selectionStart] === _thousandSeparator) {\n setCaretPosition(el, selectionStart + 1);\n }\n onKeyDown(e);\n };\n var _onBlur = function (e) {\n var _value = numAsString;\n // if there no no numeric value, clear the input\n if (!_value.match(/\\d/g)) {\n _value = '';\n }\n // clear leading 0s\n if (!allowLeadingZeros) {\n _value = fixLeadingZero(_value);\n }\n // apply fixedDecimalScale on blur event\n if (fixedDecimalScale && decimalScale) {\n _value = roundToPrecision(_value, decimalScale, fixedDecimalScale);\n }\n if (_value !== numAsString) {\n var formattedValue = format(_value, props);\n _onValueChange({\n formattedValue: formattedValue,\n value: _value,\n floatValue: parseFloat(_value),\n }, {\n event: e,\n source: SourceType.event,\n });\n }\n onBlur(e);\n };\n var isValidInputCharacter = function (inputChar) {\n if (inputChar === decimalSeparator)\n { return true; }\n return charIsNumber(inputChar);\n };\n return Object.assign(Object.assign({}, restProps), { value: formattedValue, valueIsNumericString: false, isValidInputCharacter: isValidInputCharacter, onValueChange: _onValueChange, format: _format, removeFormatting: _removeFormatting, getCaretBoundary: function (formattedValue) { return getCaretBoundary(formattedValue, props); }, onKeyDown: _onKeyDown, onBlur: _onBlur });\n}\nfunction NumericFormat(props) {\n var numericFormatProps = useNumericFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, numericFormatProps));\n}\n\nfunction format$1(numStr, props) {\n var format = props.format;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n if (numStr === '' && !allowEmptyFormatting)\n { return ''; }\n var hashCount = 0;\n var formattedNumberAry = format.split('');\n for (var i = 0, ln = format.length; i < ln; i++) {\n if (format[i] === patternChar) {\n formattedNumberAry[i] = numStr[hashCount] || getMaskAtIndex(mask, hashCount);\n hashCount += 1;\n }\n }\n return formattedNumberAry.join('');\n}\nfunction removeFormatting$1(value, changeMeta, props) {\n if ( changeMeta === void 0 ) changeMeta = getDefaultChangeMeta(value);\n\n var format = props.format;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var from = changeMeta.from;\n var to = changeMeta.to;\n var lastValue = changeMeta.lastValue; if ( lastValue === void 0 ) lastValue = '';\n var isNumericSlot = function (caretPos) { return format[caretPos] === patternChar; };\n var removeFormatChar = function (string, startIndex) {\n var str = '';\n for (var i = 0; i < string.length; i++) {\n if (isNumericSlot(startIndex + i) && charIsNumber(string[i])) {\n str += string[i];\n }\n }\n return str;\n };\n var extractNumbers = function (str) { return str.replace(/[^0-9]/g, ''); };\n // if format doesn't have any number, remove all the non numeric characters\n if (!format.match(/\\d/)) {\n return extractNumbers(value);\n }\n /**\n * if user paste the whole formatted text in an empty input, check if matches to the pattern\n * and remove the format characters, if there is a mismatch on the pattern, do plane number extract\n */\n if (lastValue === '' && value.length === format.length) {\n var str = '';\n for (var i = 0; i < value.length; i++) {\n if (isNumericSlot(i)) {\n if (charIsNumber(value[i])) {\n str += value[i];\n }\n }\n else if (value[i] !== format[i]) {\n // if there is a mismatch on the pattern, do plane number extract\n return extractNumbers(value);\n }\n }\n return str;\n }\n /**\n * For partial change,\n * where ever there is a change on the input, we can break the number in three parts\n * 1st: left part which is unchanged\n * 2nd: middle part which is changed\n * 3rd: right part which is unchanged\n *\n * The first and third section will be same as last value, only the middle part will change\n * We can consider on the change part all the new characters are non format characters.\n * And on the first and last section it can have partial format characters.\n *\n * We pick first and last section from the lastValue (as that has 1-1 mapping with format)\n * and middle one from the update value.\n */\n var firstSection = lastValue.substring(0, from.start);\n var middleSection = value.substring(to.start, to.end);\n var lastSection = lastValue.substring(from.end);\n return (\"\" + (removeFormatChar(firstSection, 0)) + (extractNumbers(middleSection)) + (removeFormatChar(lastSection, from.end)));\n}\nfunction getCaretBoundary$1(formattedValue, props) {\n var format = props.format;\n var mask = props.mask;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var boundaryAry = Array.from({ length: formattedValue.length + 1 }).map(function () { return true; });\n var hashCount = 0;\n var firstEmptySlot = -1;\n var maskAndIndexMap = {};\n format.split('').forEach(function (char, index) {\n var maskAtIndex = undefined;\n if (char === patternChar) {\n hashCount++;\n maskAtIndex = getMaskAtIndex(mask, hashCount - 1);\n if (firstEmptySlot === -1 && formattedValue[index] === maskAtIndex) {\n firstEmptySlot = index;\n }\n }\n maskAndIndexMap[index] = maskAtIndex;\n });\n var isPosAllowed = function (pos) {\n // the position is allowed if the position is not masked and valid number area\n return format[pos] === patternChar && formattedValue[pos] !== maskAndIndexMap[pos];\n };\n for (var i = 0, ln = boundaryAry.length; i < ln; i++) {\n // consider caret to be in boundary if it is before or after numeric value\n // Note: on pattern based format its denoted by patternCharacter\n // we should also allow user to put cursor on first empty slot\n boundaryAry[i] = i === firstEmptySlot || isPosAllowed(i) || isPosAllowed(i - 1);\n }\n // the first patternChar position is always allowed\n boundaryAry[format.indexOf(patternChar)] = true;\n return boundaryAry;\n}\nfunction validateProps(props) {\n var mask = props.mask;\n if (mask) {\n var maskAsStr = mask === 'string' ? mask : mask.toString();\n if (maskAsStr.match(/\\d/g)) {\n throw new Error((\"Mask \" + mask + \" should not contain numeric character;\"));\n }\n }\n}\nfunction usePatternFormat(props) {\n var mask = props.mask;\n var allowEmptyFormatting = props.allowEmptyFormatting;\n var formatProp = props.format;\n var inputMode = props.inputMode; if ( inputMode === void 0 ) inputMode = 'numeric';\n var onKeyDown = props.onKeyDown; if ( onKeyDown === void 0 ) onKeyDown = noop;\n var patternChar = props.patternChar; if ( patternChar === void 0 ) patternChar = '#';\n var restProps = __rest(props, [\"mask\", \"allowEmptyFormatting\", \"format\", \"inputMode\", \"onKeyDown\", \"patternChar\"]);\n // validate props\n validateProps(props);\n var _getCaretBoundary = function (formattedValue) {\n return getCaretBoundary$1(formattedValue, props);\n };\n var _onKeyDown = function (e) {\n var key = e.key;\n var el = e.target;\n var selectionStart = el.selectionStart;\n var selectionEnd = el.selectionEnd;\n var value = el.value;\n // if multiple characters are selected and user hits backspace, no need to handle anything manually\n if (selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n // bring the cursor to closest numeric section\n var caretPos = selectionStart;\n // if backspace is pressed after the format characters, bring it to numeric section\n // if delete is pressed before the format characters, bring it to numeric section\n if (key === 'Backspace' || key === 'Delete') {\n var direction = 'right';\n if (key === 'Backspace') {\n while (caretPos > 0 && formatProp[caretPos - 1] !== patternChar) {\n caretPos--;\n }\n direction = 'left';\n }\n else {\n var formatLn = formatProp.length;\n while (caretPos < formatLn && formatProp[caretPos] !== patternChar) {\n caretPos++;\n }\n direction = 'right';\n }\n caretPos = getCaretPosInBoundary(value, caretPos, _getCaretBoundary(value), direction);\n }\n else if (formatProp[caretPos] !== patternChar &&\n key !== 'ArrowLeft' &&\n key !== 'ArrowRight') {\n // if user is typing on format character position, bring user to next allowed caret position\n caretPos = getCaretPosInBoundary(value, caretPos + 1, _getCaretBoundary(value), 'right');\n }\n // if we changing caret position, set the caret position\n if (caretPos !== selectionStart) {\n setCaretPosition(el, caretPos);\n }\n onKeyDown(e);\n };\n return Object.assign(Object.assign({}, restProps), { inputMode: inputMode, format: function (numStr) { return format$1(numStr, props); }, removeFormatting: function (inputValue, changeMeta) { return removeFormatting$1(inputValue, changeMeta, props); }, getCaretBoundary: _getCaretBoundary, onKeyDown: _onKeyDown });\n}\nfunction PatternFormat(props) {\n var patternFormatProps = usePatternFormat(props);\n return React.createElement(NumberFormatBase, Object.assign({}, patternFormatProps));\n}\n\nexport { NumberFormatBase, NumericFormat, PatternFormat, getCaretBoundary as getNumericCaretBoundary, getCaretBoundary$1 as getPatternCaretBoundary, format as numericFormatter, format$1 as patternFormatter, removeFormatting as removeNumericFormat, removeFormatting$1 as removePatternFormat, useNumericFormat, usePatternFormat };\n","/* eslint-disable */\nimport Long from \"long\";\nimport * as _m0 from \"protobufjs/minimal\";\nimport {\n Company,\n CompanyCreateRequest,\n InviteUsersRequest,\n CompanyResponse,\n InviteUsersResponse,\n ISPStatus,\n InternetServicePlan,\n CompanyLocation,\n Provider as Provider1,\n CompanyLocationResponse,\n} from \"./apiProtos\";\nimport {\n Provider,\n ConnectionType,\n ConnectionStatus,\n QuotesCreateRequest,\n QuotesUpdateRequest,\n ISPContract,\n Invoice,\n} from \"./connectProtos\";\nimport { Address, FileAttachment } from \"./common\";\n\nexport const protobufPackage = \"connectadmin\";\n\nexport enum ConnectAdminErrors {\n ignored = \"ignored\",\n overlapping_contracts = \"overlapping_contracts\",\n}\n\nexport interface ConnectAdminCompanyResponse {\n company?: Company;\n num_quotes: number;\n num_contracts: number;\n num_users: number;\n num_active_locations: number;\n num_todo_statuses: number;\n num_upcoming_renewals: number;\n sum_monthly_cost_cents: number;\n}\n\n/** GET /v1/connect/admin/companies */\nexport interface ConnectAdminCompaniesResponse {\n companies: ConnectAdminCompanyResponse[];\n offset: number;\n limit: number;\n}\n\n/** POST /v1/connect/admin/companies */\nexport interface ConnectAdminCreateCompanyWithUsersRequest {\n company?: CompanyCreateRequest;\n users?: InviteUsersRequest;\n send_invite: boolean;\n}\n\nexport interface ConnectAdminCreateCompanyWithUsersResponse {\n company?: CompanyResponse;\n users?: InviteUsersResponse;\n}\n\nexport interface PartialISPUpdate {\n status: ISPStatus;\n location?: CompanyLocation | undefined;\n contract_url?: string | undefined;\n contact_phone_number?: string | undefined;\n primary_contact_email?: string | undefined;\n billing_provider_name?: string | undefined;\n}\n\nexport interface PartialQuoteUpdate {\n provider?: Provider;\n connection_type?: ConnectionType;\n is_manual: boolean;\n monthly_cost_cents: number;\n install_fee_cents: number;\n installation_estimate_days: number;\n download_kbps: number;\n upload_kbps: number;\n}\n\n/** POST /v1/connect/admin/quote-requests/:quoteRequestSID/dashboard-quotes */\nexport interface ConnectAdminCreateQuoteForDashboard {\n connection_status?: ConnectionStatus;\n quotes_create_req?: QuotesCreateRequest;\n isp?: PartialISPUpdate;\n contract_pdf?: Uint8Array | undefined;\n}\n\n/** PUT /v1/connect/admin/quote-requests/:quoteRequestSID/dashboard-quotes/:quoteSID */\nexport interface ConnectAdminUpdateQuoteForDashboard {\n connection_status?: ConnectionStatus;\n quotes_update_req?: QuotesUpdateRequest;\n isp?: PartialISPUpdate;\n contract_pdf?: Uint8Array | undefined;\n}\n\nexport interface ISPContractResponse {\n isp_contract?: ISPContract;\n internet_service_plan?: InternetServicePlan;\n company?: Company;\n}\n\n/** POST /v1/connect/admin/internet-service-plans/:ispSID/billings */\nexport interface CreateISPContractRequest {\n location?: CompanyLocation;\n isp?: InternetServicePlan;\n contract_url: string;\n contact_phone_number: string;\n primary_contact_email: string;\n billing_provider_name: string;\n}\n\nexport interface InvoiceResponse {\n invoice?: Invoice;\n created_at?: string;\n updated_at?: string;\n internet_service_plan_sid: string;\n provider?: Provider1;\n company_location_name: string;\n address?: Address;\n}\n\n/** GET /v1/companies/:slug/connect/billings */\nexport interface InvoicesResponse {\n invoices: InvoiceResponse[];\n}\n\n/** GET /v1/companies/:slug/connect/contracts */\nexport interface ISPContractsResponse {\n isp_contracts: ISPContractResponse[];\n}\n\n/** GET /v1/companies/:slug/connect/contracts/:ispContractSID */\nexport interface ContractResponse {\n isp_contract?: ISPContract;\n provider?: Provider1;\n address?: Address;\n company_location?: CompanyLocationResponse | undefined;\n}\n\n/** GET /v1/connect/admin/companies/:slug/contracts */\nexport interface ContractsResponse {\n contracts: ContractResponse[];\n}\n\n/** POST /v1/connect/admin/internet-service-plans/:ispSID/contracts */\nexport interface ISPContractCreateRequest {\n isp_contract?: ISPContract;\n contract_document?: FileAttachment | undefined;\n contract_document_s3_key?: string;\n delete_document?: boolean | undefined;\n}\n\nexport interface ISPContractCreateRequest_Error {\n type: ConnectAdminErrors;\n title: string;\n conflicting_contract?: ISPContract;\n detail: string;\n}\n\n/** POST /v1/connect/admin/internet-service-plans/:ispSID/contracts/:ispContractSID/invoices */\nexport interface InvoiceCreateRequest {\n invoice?: Invoice;\n document?: FileAttachment | undefined;\n document_s3_key?: string;\n delete_document?: boolean | undefined;\n}\n\nexport interface InvoiceCreateRequest_Error {\n type: ConnectAdminErrors;\n title: string;\n conflicting_invoice?: Invoice;\n detail: string;\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","// type ErrorType = api.Error | ISPContractCreateRequestError;\nimport React from \"react\";\n\nimport { ConnectAdminErrors } from \"@meterup/api/src/connectadminProtos\";\nimport { APIErrorType } from \"@meterup/api/src/errors\";\nimport { Text } from \"@meterup/metric\";\nimport { api } from \"@meterup/proto\";\nimport { DateRange, dtToString, getOverlappingRange, numDaysInRange } from \"@meterup/ui/src/utils/dates\";\nimport has from \"lodash/has\";\n\nfunction isAPIErrorType(err: APIErrorType, k: K): err is APIErrorType {\n const { type } = err;\n\n return has(ConnectAdminErrors, type) && has(err, k);\n}\n\nfunction isAPIError(err: APIErrorType, k: K): err is api.Error {\n return !isAPIErrorType(err, k);\n}\n\ntype DateStartEnd = {\n startDate: Date;\n endDate: Date;\n};\ntype OverlappingDatesErrorCopyProps> = {\n dates: DateStartEnd;\n err: E;\n getConflictingDates: (err: E) => DateRange;\n name: K;\n label: string;\n};\n\nexport default function OverlappingDatesErrorCopy>({\n dates,\n err,\n getConflictingDates,\n name,\n label,\n}: OverlappingDatesErrorCopyProps) {\n if (isAPIError(err, name)) {\n return err.detail || null;\n }\n if (isAPIErrorType(err, name)) {\n const range1 = getConflictingDates(err);\n const range2 = [new Date(dates.startDate), new Date(dates.endDate)];\n const overlappingRange = getOverlappingRange(range1, range2);\n\n if (!overlappingRange) {\n return null;\n }\n const dateStrings = overlappingRange.map((d) => dtToString(d));\n const numDays = numDaysInRange(overlappingRange);\n const { sid } = err[name];\n if (numDays === 1) {\n return (\n
\n Existing {label} with SID={sid} overlaps on {dateStrings[0]}\n
\n );\n }\n return (\n
\n Existing {label} with SID={sid} overlaps from {dateStrings[0]}{\" \"}\n to {dateStrings[1]} for a total of {numDays} days.\n
\n );\n }\n\n return null;\n}\n","import React, { useCallback } from \"react\";\n\nimport { Button, PrimaryField, SecondaryField, Text, VStack } from \"@meterup/metric\";\nimport { Control, Controller } from \"react-hook-form\";\n\ntype UploadDocumentProps = {\n control: Control;\n fieldType: typeof PrimaryField | typeof SecondaryField;\n isSubmitting: boolean;\n name: TName;\n setValue: (name: TName, f: File | null) => void;\n};\n\nexport default function UploadDocument({\n control,\n fieldType: FieldType,\n isSubmitting,\n name,\n setValue,\n}: UploadDocumentProps) {\n const onChange = useCallback(\n (event: React.ChangeEvent) => {\n if (event.target.files && event.target.files.length > 0) {\n const [f] = event.target.files;\n setValue(name, f);\n }\n },\n [name, setValue],\n );\n return (\n \n render={({ field, fieldState }) => (\n \n \n {field.value ? (\n \n \n Selected: {field.value.name}\n \n {\n e.preventDefault();\n if (!isSubmitting) {\n setValue(name, null);\n }\n }}\n arrangement=\"leading-icon\">\n Clear\n \n \n ) : null}\n {\n if (isSubmitting) {\n e.preventDefault();\n }\n }}\n loading={isSubmitting}\n css={{\n ...(field.value ? { display: \"none\" } : {}),\n }}>\n \n Upload contract\n \n \n
\n }\n label=\"Contract\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name={name}\n control={control}\n />\n );\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(issue.minimum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(issue.maximum)}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n return this._path.concat(this._key);\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n const error = new ZodError(ctx.common.issues);\n return { success: false, error };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[a-z][a-z0-9]*$/;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|([^-]([a-zA-Z0-9-]*\\.)+[a-zA-Z]{2,}))$/;\n// interface IsDateStringOptions extends StringDateOptions {\n/**\n * Match any configuration\n */\n// any?: boolean;\n// }\n// Adapted from https://stackoverflow.com/a/3143231\nconst datetimeRegex = (args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n }\n else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n }\n else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n }\n else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n};\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n this.trim = () => new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////\n/////////////////////////////////////////\n////////// //////////\n////////// ZodObject //////////\n////////// //////////\n/////////////////////////////////////////\n/////////////////////////////////////////\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return ZodArray.create(deepPartialify(schema.element));\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return Object.keys(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else {\n return null;\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values) {\n return ZodEnum.create(values);\n }\n exclude(values) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc\n // effect: RefinementEffect\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const result = this._def.innerType._parse({\n data: ctx.data,\n path: ctx.path,\n parent: {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [], // don't collect issues from inner type\n },\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue(),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue(),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nconst custom = (check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal });\n }\n });\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params, true);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar mod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n get objectUtil () { return objectUtil; },\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, mod as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, mod as z };\n","import isNumber from \"lodash/isNumber\";\nimport { RefinementCtx, z, ZodType } from \"zod\";\n\nexport function zodBlankable(type: ZodType) {\n return z.union([z.literal(\"\"), type]);\n}\ntype CtxType = Pick;\n\nfunction transformStringToNullableNumber(value: string | number | null | undefined, ctx: CtxType) {\n let num = value;\n if (!isNumber(value)) {\n if ((value ?? \"\").length === 0) {\n return null;\n }\n let val = value;\n if (value?.includes(\".\")) {\n val += \"0\";\n }\n num = Number(val);\n }\n if (Number.isNaN(num) || !Number.isFinite(num)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Field must be a valid number or an empty string\",\n });\n\n if (num < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Field must be a positive number\",\n });\n return z.NEVER;\n }\n\n return z.NEVER;\n }\n\n return num;\n}\n\nexport const numericString = z\n .union([z.string(), z.number(), z.literal(\"\")])\n .nullish()\n .transform(transformStringToNullableNumber);\n\nexport const requiredNumericString = z\n .union([z.string().trim(), z.number(), z.literal(\"\")])\n .nullish()\n .transform(transformStringToNullableNumber)\n .transform((value, ctx) => {\n if (!isNumber(value)) {\n if ((value ?? \"\").length === 0) {\n return value;\n }\n }\n if (value > 0) {\n return value;\n }\n\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Field must be a positive number\",\n });\n return z.NEVER;\n });\n\nconst dateRegex = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\n\ntype MkDateStringParams = {\n nullable?: boolean;\n};\n\nexport function mkDateStringType(params: MkDateStringParams = {}) {\n return z.string().transform((value, ctx) => {\n if (params.nullable && value === \"\") {\n return null;\n }\n\n const match = value.match(dateRegex);\n\n if (!match) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Invalid date format\",\n });\n\n return z.NEVER;\n }\n\n const [, year, month, day] = match;\n\n const date = new Date(Date.UTC(Number(year), Number(month) - 1, Number(day)));\n if (Number.isNaN(date.getTime())) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Invalid date\",\n });\n\n return z.NEVER;\n }\n\n return date;\n });\n}\n\nexport const DateStringType = mkDateStringType();\n\nexport const DateRangeType = z\n .object({\n startDate: DateStringType,\n endDate: DateStringType,\n })\n .refine(\n ({ startDate, endDate }) => startDate && endDate && endDate > startDate,\n \"End date must come before start date.\",\n );\n\nexport const DollarsToCentsType = z\n .string()\n .transform((val, ctx) => {\n const num = Number(val.replaceAll(\",\", \"\"));\n if (Number.isNaN(num)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: \"Invalid number\",\n });\n\n return z.NEVER;\n }\n\n return num * 1_000;\n })\n .refine((v) => v > 1_000, \"Amount must be at least $1\");\n\nexport const FileAttachmentType = z\n .object({\n name: z.string().nullish(),\n file: z.instanceof(File).nullish(),\n deleteAttachment: z.boolean().default(false),\n })\n .refine(\n (v) => v.deleteAttachment && !!v.file !== v.deleteAttachment,\n \"Cannot provide both a file and delete attachment\",\n );\n\nexport const AmountWithCurrencyType = z.object({\n amount: DollarsToCentsType,\n currency: z.string().default(\"USD5\"),\n});\n","import { DateRangeType, DateStringType, DollarsToCentsType } from \"@meterup/ui/src/zod/helpers\";\nimport { z } from \"zod\";\n\nexport const ISPContractSchema = z.object({\n ispContract: z.object({\n sid: z.string().optional(),\n internetServicePlanSid: z.object({\n value: z.string(),\n label: z.string(),\n }),\n // startDate: z.date(),\n // endDate: z.date(),\n amountDueCurrency: z.string().default(\"USD3\"),\n amountDue: DollarsToCentsType,\n contractDocumentS3Key: z.string().optional(),\n firstInvoiceDueDate: DateStringType,\n }),\n contractDates: DateRangeType,\n contractDocument: z.instanceof(File).nullish(),\n});\n\nexport interface ISPContractFormData extends z.TypeOf {}\n","import { CompanyContractsResponse } from \"@meterup/api\";\nimport { StringsOption } from \"@meterup/ui/src/components/Select/hooks/Options\";\n\nexport function companyContractsToISPOptions(\n companyContracts?: CompanyContractsResponse[],\n): StringsOption[] {\n const result: StringsOption[] = [];\n\n if (companyContracts) {\n companyContracts.forEach((contract: CompanyContractsResponse) => {\n const { companyContracts: companyContractsInner, companyLocation } = contract;\n if (!companyContractsInner || !companyLocation) {\n return;\n }\n const { location, name } = companyLocation;\n\n if (!location) {\n return;\n }\n\n const { address } = location;\n if (!address) {\n return;\n }\n\n const { address1 } = address;\n companyContractsInner.forEach((companyContract) => {\n const { internetServicePlan } = companyContract;\n if (!internetServicePlan) {\n return;\n }\n const { providerName, sid } = internetServicePlan;\n\n result.push({\n value: sid,\n label: `${address1}: ${providerName}`,\n });\n });\n });\n }\n\n return result;\n}\n","import React, { useCallback, useEffect, useMemo, useRef } from \"react\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { CompanyContractsResponse, ISPContract } from \"@meterup/api\";\nimport { useInvalidateContracts } from \"@meterup/api/src/billing/queryKeys\";\nimport { UseCreateContractErrorType } from \"@meterup/api/src/billing/useCreateContract\";\nimport {\n Alert,\n Button,\n CloseDrawerButton,\n DrawerContent,\n DrawerControls,\n DrawerHeader,\n DrawerTitle,\n FieldContainer,\n HStack,\n PrimaryField,\n PrimaryFieldComposite,\n SecondaryField,\n Text,\n TextInput,\n VStack,\n} from \"@meterup/metric\";\nimport { CloseDrawerLink } from \"@meterup/ui\";\nimport { TextInputWrapper } from \"@meterup/ui/src/components/forms/TextInputWrapper\";\nimport { ClearIndicator } from \"@meterup/ui/src/components/Select/ClearIndicator\";\nimport { DropdownIndicator } from \"@meterup/ui/src/components/Select/DropdownIndicator\";\nimport { getLabel, getValue, StringsOption } from \"@meterup/ui/src/components/Select/hooks/Options\";\nimport { useCustomStyles } from \"@meterup/ui/src/components/Select/hooks/useCustomStyles\";\nimport { addDays, dtToString } from \"@meterup/ui/src/utils/dates\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { NumericFormat } from \"react-number-format\";\nimport Select from \"react-select\";\n\nimport { Separator } from \"../../styles/dashboard\";\nimport { FormPurpose, StringsSelectType } from \"../../types\";\nimport OverlappingDatesErrorCopy from \"../errors/OverlappingDatesErrorCopy\";\nimport UploadDocument from \"../files/UploadDocument\";\nimport { InvoiceSchemaFormData } from \"../invoices/invoiceSchema\";\nimport { ISPContractFormData, ISPContractSchema } from \"./ContractSchema\";\nimport { companyContractsToISPOptions } from \"./utils\";\n\ntype ContractFormProps = {\n contracts?: CompanyContractsResponse[];\n defaultValues?: ISPContractFormData;\n error?: UseCreateContractErrorType;\n ispContractSID?: string;\n onSubmit: SubmitHandler;\n purpose?: FormPurpose;\n successData?: ISPContract;\n values?: ISPContractFormData;\n};\n\nexport default function ContractFormDrawer({\n contracts: locationContracts,\n defaultValues: suppliedDefaultValues,\n error,\n ispContractSID,\n onSubmit,\n purpose = \"create\",\n successData,\n values,\n}: ContractFormProps) {\n const ispOptions = useMemo(\n () => companyContractsToISPOptions(locationContracts),\n [locationContracts],\n );\n const defaultValues = useMemo(() => {\n if (suppliedDefaultValues) {\n return suppliedDefaultValues;\n }\n const d = new Date();\n return {\n contractDates: {\n startDate: dtToString(d),\n endDate: dtToString(addDays(d, 1)),\n },\n ispContract: {\n amountDue: \"5\",\n internetServicePlanSid: null,\n firstInvoiceDueDate: dtToString(d),\n sid: ispContractSID,\n },\n contractDocument: null,\n };\n }, [ispContractSID, suppliedDefaultValues]);\n const innerValues = useMemo(() => {\n if (values) {\n return values;\n }\n return defaultValues;\n }, [defaultValues, values]);\n console.log(\"ContractFormDrawer\", { defaultValues, values, innerValues });\n const { control, handleSubmit, reset, watch, getValues, setValue, register, formState } =\n useForm({\n defaultValues,\n values: innerValues,\n resolver: zodResolver(ISPContractSchema),\n });\n const { isSubmitting, errors } = formState;\n const onDateChange = useCallback(\n (fn: (...event: any[]) => void) => (val: string) => {\n fn(val);\n },\n [],\n );\n useEffect(() => {\n const subscription = watch((v, update) => {\n if (update.name === \"contractDates.startDate\") {\n const { startDate: prevStartDate, endDate: prevEndDate } = v.contractDates;\n const startDate = new Date(prevStartDate);\n const endDate = new Date(prevEndDate);\n\n if (startDate >= endDate) {\n const newEndDate = addDays(startDate, 2);\n setValue(\"contractDates.endDate\", dtToString(newEndDate));\n }\n }\n });\n return () => subscription.unsubscribe();\n }, [setValue, watch]);\n const customStylesProvider = useCustomStyles(\"medium\", true, false);\n const ispSelectRef = useRef(null);\n const invalidateContracts = useInvalidateContracts();\n const innerOnSubmit = useMemo>(\n () => async (data) => {\n const retVal = await onSubmit(data);\n if (retVal) {\n invalidateContracts();\n reset(innerValues);\n }\n },\n [innerValues, invalidateContracts, onSubmit, reset],\n );\n\n return (\n
\n \n {purpose === \"create\" ? \"Create\" : \"Update\"} Contract\n \n \n \n \n \n \n \n {error ? (\n [\n err.conflicting_contract.contract_start_date,\n err.conflicting_contract.contract_end_date,\n ]}\n name=\"conflicting_contract\"\n label=\"contract\"\n />\n ) : (\n {error.message}\n )\n }\n />\n ) : null}\n {successData ? (\n \n ) : null}\n \n (\n null}\n placeholder=\"Select ISP\"\n isClearable\n components={{ DropdownIndicator, ClearIndicator }}\n />\n }\n label=\"ISP to create contract for\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"ispContract.internetServicePlanSid\"\n control={control}\n />\n \n \n (\n \n }\n label=\"Contract Start Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"contractDates.startDate\"\n control={control}\n />\n (\n \n }\n label=\"Contract End Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"contractDates.endDate\"\n control={control}\n />\n (\n \n }\n label=\"First Invoice Due Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"ispContract.firstInvoiceDueDate\"\n control={control}\n />\n \n
\n }\n />\n\n (\n \n \n
\n }\n label=\"Amount due\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"ispContract.amountDue\"\n control={control}\n />\n\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { ISPContractCreateRequest } from \"@meterup/api\";\nimport useCreateContract from \"@meterup/api/src/billing/useCreateContract\";\nimport readDocument from \"@meterup/ui/src/files/readDocument\";\nimport { logError } from \"@meterup/ui/src/Log.utils\";\nimport { SubmitHandler } from \"react-hook-form\";\nimport { useOutletContext } from \"react-router-dom\";\n\nimport ContractFormDrawer from \"../../../components/contracts/ContractFormDrawer\";\nimport { ISPContractFormData } from \"../../../components/contracts/ContractSchema\";\nimport { CompanyContextType } from \"../../../contexts/CompanyContext\";\n\nexport default function CreateContract() {\n const { allContracts: locations } = useOutletContext();\n\n const mutation = useCreateContract();\n const onSubmit = useMemo>(\n () => async (innerData) => {\n try {\n const { contractDates, contractDocument: file, ispContract: ispContractRaw } = innerData;\n const { internetServicePlanSid, ...ispContract } = ispContractRaw;\n const req: ISPContractCreateRequest = {\n ispContract: {\n ...ispContract,\n internetServicePlanSid: internetServicePlanSid.value,\n contractStartDate: contractDates.startDate,\n contractEndDate: contractDates.endDate,\n },\n };\n if (file) {\n const documentContents = await readDocument({ file });\n if (documentContents) {\n req.contractDocument = documentContents;\n }\n }\n\n await mutation.mutateAsync(req);\n return true;\n } catch (e) {\n logError(e);\n return false;\n }\n },\n [mutation],\n );\n\n return (\n \n );\n}\n","import { useMutation } from \"@tanstack/react-query\";\nimport { AxiosError } from \"axios\";\n\nimport { post } from \"../axios\";\nimport { ISPContractCreateRequest_Error } from \"../connectadminProtos\";\nimport { APIErrorType } from \"../errors\";\nimport { Invoice, InvoiceCreateRequest } from \"../protos\";\n\nexport type UseCreateInvoiceErrorType = APIErrorType<\n ISPContractCreateRequest_Error,\n \"conflicting_contract\"\n>;\n\nexport default function useCreateInvoice(ispSID?: string) {\n return useMutation, InvoiceCreateRequest>((req) =>\n post(\n `/v1/connect/admin/internet-service-plans/${ispSID}/contracts/${req.invoice.ispContractsSid}/invoices`,\n req,\n ),\n );\n}\n","export function snakeToTitleCase(key: string) {\n return key\n .split(\"_\")\n .map((s) => s[0].toUpperCase() + s.slice(1))\n .join(\" \");\n}\n","import {\n DateRangeType,\n DateStringType,\n DollarsToCentsType,\n FileAttachmentType,\n mkDateStringType,\n} from \"@meterup/ui/src/zod/helpers\";\nimport { z } from \"zod\";\n\nexport const InvoiceSchema = z.object({\n invoice: z.object({\n sid: z.string().optional(),\n ispContractSID: z.string(),\n dueDate: DateStringType,\n invoicedAt: mkDateStringType({ nullable: true }),\n paidAt: mkDateStringType({ nullable: true }),\n amountActualCurrency: z.string().default(\"USD3\"),\n amountActual: DollarsToCentsType,\n }),\n status: z.object({\n value: z.string(),\n label: z.string(),\n }),\n billingCycleDates: DateRangeType,\n invoiceDocument: z.instanceof(File).nullish(),\n // fileAttachment: FileAttachmentType,\n});\n\nexport interface InvoiceSchemaFormData extends z.TypeOf {}\n","import React, { useEffect, useMemo, useRef } from \"react\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { Invoice } from \"@meterup/api\";\nimport { UseCreateInvoiceErrorType } from \"@meterup/api/src/billing/useCreateInvoice\";\nimport { InvoiceStatus } from \"@meterup/api/src/connectProtos\";\nimport {\n Alert,\n Button,\n CloseDrawerButton,\n DrawerContent,\n DrawerControls,\n DrawerHeader,\n DrawerTitle,\n FieldContainer,\n HStack,\n PrimaryField,\n PrimaryFieldComposite,\n SecondaryField,\n TextInput,\n VStack,\n} from \"@meterup/metric\";\nimport { CloseDrawerLink } from \"@meterup/ui\";\nimport { TextInputWrapper } from \"@meterup/ui/src/components/forms/TextInputWrapper\";\nimport { ClearIndicator } from \"@meterup/ui/src/components/Select/ClearIndicator\";\nimport { DropdownIndicator } from \"@meterup/ui/src/components/Select/DropdownIndicator\";\nimport { getLabel, getValue, StringsOption } from \"@meterup/ui/src/components/Select/hooks/Options\";\nimport { useCustomStyles } from \"@meterup/ui/src/components/Select/hooks/useCustomStyles\";\nimport { addDays, dtToString } from \"@meterup/ui/src/utils/dates\";\nimport { snakeToTitleCase } from \"@meterup/ui/src/utils/snakeToTitleCase\";\nimport { Controller, SubmitHandler, useForm } from \"react-hook-form\";\nimport { NumericFormat } from \"react-number-format\";\nimport Select from \"react-select\";\n\nimport { Separator } from \"../../styles/dashboard\";\nimport { FormPurpose, StringsSelectType } from \"../../types\";\nimport OverlappingDatesErrorCopy from \"../errors/OverlappingDatesErrorCopy\";\nimport UploadDocument from \"../files/UploadDocument\";\nimport { InvoiceSchema, InvoiceSchemaFormData } from \"./invoiceSchema\";\n\nconst statusOptions: StringsOption[] = Object.entries(InvoiceStatus).map(([key, value]) => ({\n label: snakeToTitleCase(key),\n value,\n}));\n\ntype InvoiceFormProps = {\n defaultValues?: InvoiceSchemaFormData;\n error?: UseCreateInvoiceErrorType;\n ispContractSID: string;\n onSubmit: SubmitHandler;\n purpose?: FormPurpose;\n successData?: Invoice;\n values?: InvoiceSchemaFormData;\n};\n\nexport default function InvoiceFormDrawer({\n defaultValues: suppliedDefaultValues,\n error,\n ispContractSID,\n onSubmit,\n purpose = \"create\",\n successData,\n values,\n}: InvoiceFormProps) {\n const defaultValues = useMemo(() => {\n if (suppliedDefaultValues) {\n return suppliedDefaultValues;\n }\n const d = new Date();\n return {\n billingCycleDates: {\n startDate: dtToString(d),\n endDate: dtToString(addDays(d, 1)),\n },\n invoice: {\n dueDate: dtToString(d),\n amountActual: \"10\",\n invoicedAt: \"\",\n paidAt: \"\",\n ispContractSID,\n },\n invoiceDocument: null,\n status: {\n value: InvoiceStatus.unpaid,\n label: snakeToTitleCase(InvoiceStatus.unpaid),\n },\n };\n }, [ispContractSID, suppliedDefaultValues]);\n const { control, handleSubmit, reset, watch, getValues, setValue, register, formState } =\n useForm({\n defaultValues,\n values: values || defaultValues,\n resolver: zodResolver(InvoiceSchema),\n });\n const { isSubmitting, errors } = formState;\n useEffect(() => {\n const subscription = watch((values, update) => {\n if (update.name === \"billingCycleDates.startDate\") {\n const { billingCycleDates, invoice } = values;\n const { startDate: prevStartDate, endDate: prevEndDate } = billingCycleDates;\n const { dueDate: prevDueDate } = invoice;\n const startDate = new Date(prevStartDate);\n const endDate = new Date(prevEndDate);\n const dueDate = new Date(prevDueDate);\n\n if (startDate >= endDate) {\n const newEndDate = addDays(startDate, 2);\n setValue(\"billingCycleDates.endDate\", dtToString(newEndDate));\n }\n\n if (dueDate < startDate) {\n setValue(\"invoice.dueDate\", prevStartDate);\n }\n }\n });\n return () => subscription.unsubscribe();\n }, [setValue, watch]);\n const customStylesProvider = useCustomStyles(\"medium\", true, false);\n const statusSelectRef = useRef(null);\n const innerOnSubmit = useMemo>(\n () => async (data) => {\n const retVal = await onSubmit(data);\n if (retVal) {\n reset(defaultValues);\n }\n },\n [defaultValues, onSubmit, reset],\n );\n\n return (\n
\n \n {purpose === \"create\" ? \"Create\" : \"Update\"} Invoice\n \n \n \n \n \n \n \n {error ? (\n [\n err.conflicting_invoice.billing_cycle_start_date,\n err.conflicting_invoice.billing_cycle_end_date,\n ]}\n name=\"billingCycleDates\"\n label=\"invoice\"\n />\n }\n />\n ) : null}\n {successData ? (\n \n ) : null}\n \n \n \n \n (\n \n }\n label=\"Invoice Start Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"billingCycleDates.startDate\"\n control={control}\n />\n (\n \n }\n label=\"Invoice End Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"billingCycleDates.endDate\"\n control={control}\n />\n (\n \n }\n label=\"Invoice Due Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"invoice.dueDate\"\n control={control}\n />\n (\n \n }\n label=\"Invoiced On Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"invoice.invoicedAt\"\n control={control}\n />\n (\n \n }\n label=\"Paid On Date\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"invoice.paidAt\"\n control={control}\n />\n \n
\n }\n />\n\n (\n null}\n placeholder=\"Select status\"\n isClearable\n components={{ DropdownIndicator, ClearIndicator }}\n />\n }\n label=\"Status\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"status\"\n control={control}\n />\n\n (\n \n \n \n }\n label=\"Amount due\"\n errorMessage={fieldState.error?.message}\n />\n )}\n name=\"invoice.amountActual\"\n control={control}\n />\n\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { InvoiceCreateRequest } from \"@meterup/api\";\nimport { useInvalidateInvoices } from \"@meterup/api/src/billing/queryKeys\";\nimport useCreateInvoice from \"@meterup/api/src/billing/useCreateInvoice\";\nimport readDocument from \"@meterup/ui/src/files/readDocument\";\nimport { logError } from \"@meterup/ui/src/Log.utils\";\nimport { SubmitHandler } from \"react-hook-form\";\nimport { useOutletContext, useParams } from \"react-router-dom\";\n\nimport InvoiceFormDrawer from \"../../../components/invoices/InvoiceFormDrawer\";\nimport { InvoiceSchemaFormData } from \"../../../components/invoices/invoiceSchema\";\nimport { InvoicesPageContextType } from \"../../../contexts/InvoicesPageContext\";\n\nexport default function CreateInvoice() {\n const ctx = useOutletContext();\n const { ispContractSID } = useParams();\n\n const mutation = useCreateInvoice(ctx.ispContract?.ispContract?.internetServicePlanSid);\n const invalidateInvoices = useInvalidateInvoices();\n const onSubmit = useMemo>(\n () => async (innerData) => {\n try {\n const { invoice: rawInvoice, invoiceDocument: file, billingCycleDates, status } = innerData;\n const { ispContractSID: ignored, ...invoice } = rawInvoice;\n const req: InvoiceCreateRequest = {\n invoice: {\n ...invoice,\n billingCycleStartDate: billingCycleDates.startDate,\n billingCycleEndDate: billingCycleDates.endDate,\n ispContractsSid: ispContractSID,\n status: status.value,\n },\n };\n\n if (file) {\n const documentContents = await readDocument({ file });\n if (documentContents) {\n req.document = documentContents;\n }\n }\n\n await mutation.mutateAsync(req);\n invalidateInvoices();\n } catch (e) {\n logError(e);\n }\n },\n [invalidateInvoices, ispContractSID, mutation],\n );\n\n return (\n \n );\n}\n","import { Body2 } from \"@meterup/metric\";\n\nimport { styled } from \"../styled\";\n\nexport const SimpleList = styled(\"ul\", {\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n});\n\nexport const SimpleListItem = styled(\"li\", Body2, {\n listStyleType: \"disc\",\n fontWeight: \"$medium\",\n marginLeft: \"$20\",\n paddingLeft: \"$4\",\n});\n","import React from \"react\";\n\nimport { SimpleListItem } from \"../styles/SimpleList\";\nimport { EmailWithName } from \"../utils/parseEmails\";\n\ntype UserListItemProps = {\n user: EmailWithName;\n};\n\nexport function UserListItem({ user }: UserListItemProps) {\n let name = \"\";\n const { firstName, lastName } = user;\n if (firstName) {\n name = ` (${firstName})`;\n }\n if (lastName) {\n name = `${name.substring(0, name.length - 1)} ${lastName})`;\n }\n return (\n \n {user.email}\n {name}\n \n );\n}\n","import React, { useCallback } from \"react\";\n\nexport default function useMetaSubmit() {\n return useCallback(\n (fn: () => any) =>\n function onMetaSubmit(e: React.KeyboardEvent) {\n if ((e.metaKey || e.ctrlKey) && e.code === \"Enter\") {\n fn();\n }\n },\n [],\n );\n}\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { Children, createContext, useContext, useRef, useEffect, useReducer, useCallback, useMemo, useImperativeHandle, createElement, useLayoutEffect, forwardRef, Component } from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport clone from 'lodash-es/clone';\nimport toPath from 'lodash-es/toPath';\nimport invariant from 'tiny-warning';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport cloneDeep from 'lodash-es/cloneDeep';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/** @private is the value an empty array? */\n\nvar isEmptyArray = function isEmptyArray(value) {\n return Array.isArray(value) && value.length === 0;\n};\n/** @private is the given object a Function? */\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n/** @private is the given object an Object? */\n\nvar isObject = function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n};\n/** @private is the given object an integer? */\n\nvar isInteger = function isInteger(obj) {\n return String(Math.floor(Number(obj))) === obj;\n};\n/** @private is the given object a string? */\n\nvar isString = function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n};\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\n\nvar isNaN$1 = function isNaN(obj) {\n return obj !== obj;\n};\n/** @private Does a React component have exactly 0 children? */\n\nvar isEmptyChildren = function isEmptyChildren(children) {\n return Children.count(children) === 0;\n};\n/** @private is the given object/value a promise? */\n\nvar isPromise = function isPromise(value) {\n return isObject(value) && isFunction(value.then);\n};\n/** @private is the given object/value a type of synthetic event? */\n\nvar isInputEvent = function isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n};\n/**\r\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\r\n * not safe to call document.activeElement if there is nothing focused.\r\n *\r\n * The activeElement will be null only if the document or document body is not\r\n * yet defined.\r\n *\r\n * @param {?Document} doc Defaults to current document.\r\n * @return {Element | null}\r\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\r\n */\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n/**\r\n * Deeply get a value from an object via its path.\r\n */\n\nfunction getIn(obj, key, def, p) {\n if (p === void 0) {\n p = 0;\n }\n\n var path = toPath(key);\n\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n\n return obj === undefined ? def : obj;\n}\n/**\r\n * Deeply set a value from in object via it's path. If the value at `path`\r\n * has changed, return a shallow copy of obj with `value` set at `path`.\r\n * If `value` has not changed, return the original `obj`.\r\n *\r\n * Existing objects / arrays along `path` are also shallow copied. Sibling\r\n * objects along path retain the same internal js reference. Since new\r\n * objects / arrays are only created along `path`, we can test if anything\r\n * changed in a nested structure by comparing the object's reference in\r\n * the old and new object, similar to how russian doll cache invalidation\r\n * works.\r\n *\r\n * In earlier versions of this function, which used cloneDeep, there were\r\n * issues whereby settings a nested value would mutate the parent\r\n * instead of creating a new object. `clone` avoids that bug making a\r\n * shallow copy of the objects along the update path\r\n * so no object is mutated in place.\r\n *\r\n * Before changing this function, please read through the following\r\n * discussions.\r\n *\r\n * @see https://github.com/developit/linkstate\r\n * @see https://github.com/jaredpalmer/formik/pull/123\r\n */\n\nfunction setIn(obj, path, value) {\n var res = clone(obj); // this keeps inheritance when obj is a class\n\n var resVal = res;\n var i = 0;\n var pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n var currentPath = pathArray[i];\n var currentObj = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n var nextPath = pathArray[i + 1];\n resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n } // Return original object if new value is the same as current\n\n\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n } // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n\n\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n/**\r\n * Recursively a set the same value for all keys and arrays nested object, cloning\r\n * @param object\r\n * @param value\r\n * @param visited\r\n * @param response\r\n */\n\nfunction setNestedObjectValues(object, value, visited, response) {\n if (visited === void 0) {\n visited = new WeakMap();\n }\n\n if (response === void 0) {\n response = {};\n }\n\n for (var _i = 0, _Object$keys = Object.keys(object); _i < _Object$keys.length; _i++) {\n var k = _Object$keys[_i];\n var val = object[k];\n\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true); // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n\nvar FormikContext = /*#__PURE__*/createContext(undefined);\nFormikContext.displayName = 'FormikContext';\nvar FormikProvider = FormikContext.Provider;\nvar FormikConsumer = FormikContext.Consumer;\nfunction useFormikContext() {\n var formik = useContext(FormikContext);\n !!!formik ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Formik context is undefined, please verify you are calling useFormikContext() as child of a component.\") : invariant(false) : void 0;\n return formik;\n}\n\nfunction formikReducer(state, msg) {\n switch (msg.type) {\n case 'SET_VALUES':\n return _extends({}, state, {\n values: msg.payload\n });\n\n case 'SET_TOUCHED':\n return _extends({}, state, {\n touched: msg.payload\n });\n\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return _extends({}, state, {\n errors: msg.payload\n });\n\n case 'SET_STATUS':\n return _extends({}, state, {\n status: msg.payload\n });\n\n case 'SET_ISSUBMITTING':\n return _extends({}, state, {\n isSubmitting: msg.payload\n });\n\n case 'SET_ISVALIDATING':\n return _extends({}, state, {\n isValidating: msg.payload\n });\n\n case 'SET_FIELD_VALUE':\n return _extends({}, state, {\n values: setIn(state.values, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_TOUCHED':\n return _extends({}, state, {\n touched: setIn(state.touched, msg.payload.field, msg.payload.value)\n });\n\n case 'SET_FIELD_ERROR':\n return _extends({}, state, {\n errors: setIn(state.errors, msg.payload.field, msg.payload.value)\n });\n\n case 'RESET_FORM':\n return _extends({}, state, msg.payload);\n\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n\n case 'SUBMIT_ATTEMPT':\n return _extends({}, state, {\n touched: setNestedObjectValues(state.values, true),\n isSubmitting: true,\n submitCount: state.submitCount + 1\n });\n\n case 'SUBMIT_FAILURE':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n case 'SUBMIT_SUCCESS':\n return _extends({}, state, {\n isSubmitting: false\n });\n\n default:\n return state;\n }\n} // Initial empty states // objects\n\n\nvar emptyErrors = {};\nvar emptyTouched = {};\nfunction useFormik(_ref) {\n var _ref$validateOnChange = _ref.validateOnChange,\n validateOnChange = _ref$validateOnChange === void 0 ? true : _ref$validateOnChange,\n _ref$validateOnBlur = _ref.validateOnBlur,\n validateOnBlur = _ref$validateOnBlur === void 0 ? true : _ref$validateOnBlur,\n _ref$validateOnMount = _ref.validateOnMount,\n validateOnMount = _ref$validateOnMount === void 0 ? false : _ref$validateOnMount,\n isInitialValid = _ref.isInitialValid,\n _ref$enableReinitiali = _ref.enableReinitialize,\n enableReinitialize = _ref$enableReinitiali === void 0 ? false : _ref$enableReinitiali,\n onSubmit = _ref.onSubmit,\n rest = _objectWithoutPropertiesLoose(_ref, [\"validateOnChange\", \"validateOnBlur\", \"validateOnMount\", \"isInitialValid\", \"enableReinitialize\", \"onSubmit\"]);\n\n var props = _extends({\n validateOnChange: validateOnChange,\n validateOnBlur: validateOnBlur,\n validateOnMount: validateOnMount,\n onSubmit: onSubmit\n }, rest);\n\n var initialValues = useRef(props.initialValues);\n var initialErrors = useRef(props.initialErrors || emptyErrors);\n var initialTouched = useRef(props.initialTouched || emptyTouched);\n var initialStatus = useRef(props.initialStatus);\n var isMounted = useRef(false);\n var fieldRegistry = useRef({});\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n !(typeof isInitialValid === 'undefined') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.') : invariant(false) : void 0; // eslint-disable-next-line\n }, []);\n }\n\n useEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n\n var _React$useReducer = useReducer(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0\n }),\n state = _React$useReducer[0],\n dispatch = _React$useReducer[1];\n\n var runValidateHandler = useCallback(function (values, field) {\n return new Promise(function (resolve, reject) {\n var maybePromisedErrors = props.validate(values, field);\n\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n maybePromisedErrors.then(function (errors) {\n resolve(errors || emptyErrors);\n }, function (actualException) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in \", actualException);\n }\n\n reject(actualException);\n });\n } else {\n resolve(maybePromisedErrors);\n }\n });\n }, [props.validate]);\n /**\r\n * Run validation against a Yup schema and optionally run a function if successful\r\n */\n\n var runValidationSchema = useCallback(function (values, field) {\n var validationSchema = props.validationSchema;\n var schema = isFunction(validationSchema) ? validationSchema(field) : validationSchema;\n var promise = field && schema.validateAt ? schema.validateAt(field, values) : validateYupSchema(values, schema);\n return new Promise(function (resolve, reject) {\n promise.then(function () {\n resolve(emptyErrors);\n }, function (err) {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Warning: An unhandled error was caught during validation in \", err);\n }\n\n reject(err);\n }\n });\n });\n }, [props.validationSchema]);\n var runSingleFieldLevelValidation = useCallback(function (field, value) {\n return new Promise(function (resolve) {\n return resolve(fieldRegistry.current[field].validate(value));\n });\n }, []);\n var runFieldLevelValidations = useCallback(function (values) {\n var fieldKeysWithValidation = Object.keys(fieldRegistry.current).filter(function (f) {\n return isFunction(fieldRegistry.current[f].validate);\n }); // Construct an array with all of the field validation functions\n\n var fieldValidations = fieldKeysWithValidation.length > 0 ? fieldKeysWithValidation.map(function (f) {\n return runSingleFieldLevelValidation(f, getIn(values, f));\n }) : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then(function (fieldErrorsList) {\n return fieldErrorsList.reduce(function (prev, curr, index) {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n\n return prev;\n }, {});\n });\n }, [runSingleFieldLevelValidation]); // Run all validations and return the result\n\n var runAllValidations = useCallback(function (values) {\n return Promise.all([runFieldLevelValidations(values), props.validationSchema ? runValidationSchema(values) : {}, props.validate ? runValidateHandler(values) : {}]).then(function (_ref2) {\n var fieldErrors = _ref2[0],\n schemaErrors = _ref2[1],\n validateErrors = _ref2[2];\n var combinedErrors = deepmerge.all([fieldErrors, schemaErrors, validateErrors], {\n arrayMerge: arrayMerge\n });\n return combinedErrors;\n });\n }, [props.validate, props.validationSchema, runFieldLevelValidations, runValidateHandler, runValidationSchema]); // Run all validations methods and update state accordingly\n\n var validateFormWithHighPriority = useEventCallback(function (values) {\n if (values === void 0) {\n values = state.values;\n }\n\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runAllValidations(values).then(function (combinedErrors) {\n if (!!isMounted.current) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n dispatch({\n type: 'SET_ERRORS',\n payload: combinedErrors\n });\n }\n\n return combinedErrors;\n });\n });\n useEffect(function () {\n if (validateOnMount && isMounted.current === true && isEqual(initialValues.current, props.initialValues)) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n var resetForm = useCallback(function (nextState) {\n var values = nextState && nextState.values ? nextState.values : initialValues.current;\n var errors = nextState && nextState.errors ? nextState.errors : initialErrors.current ? initialErrors.current : props.initialErrors || {};\n var touched = nextState && nextState.touched ? nextState.touched : initialTouched.current ? initialTouched.current : props.initialTouched || {};\n var status = nextState && nextState.status ? nextState.status : initialStatus.current ? initialStatus.current : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n var dispatchFn = function dispatchFn() {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors: errors,\n touched: touched,\n status: status,\n values: values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount: !!nextState && !!nextState.submitCount && typeof nextState.submitCount === 'number' ? nextState.submitCount : 0\n }\n });\n };\n\n if (props.onReset) {\n var maybePromisedOnReset = props.onReset(state.values, imperativeMethods);\n\n if (isPromise(maybePromisedOnReset)) {\n maybePromisedOnReset.then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n }, [props.initialErrors, props.initialStatus, props.initialTouched]);\n useEffect(function () {\n if (isMounted.current === true && !isEqual(initialValues.current, props.initialValues)) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [enableReinitialize, props.initialValues, resetForm, validateOnMount, validateFormWithHighPriority]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialErrors.current, props.initialErrors)) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialTouched.current, props.initialTouched)) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n useEffect(function () {\n if (enableReinitialize && isMounted.current === true && !isEqual(initialStatus.current, props.initialStatus)) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n var validateField = useEventCallback(function (name) {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n if (fieldRegistry.current[name] && isFunction(fieldRegistry.current[name].validate)) {\n var value = getIn(state.values, name);\n var maybePromise = fieldRegistry.current[name].validate(value);\n\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return maybePromise.then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise\n }\n });\n return Promise.resolve(maybePromise);\n }\n } else if (props.validationSchema) {\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: true\n });\n return runValidationSchema(state.values, name).then(function (x) {\n return x;\n }).then(function (error) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: error[name]\n }\n });\n dispatch({\n type: 'SET_ISVALIDATING',\n payload: false\n });\n });\n }\n\n return Promise.resolve();\n });\n var registerField = useCallback(function (name, _ref3) {\n var validate = _ref3.validate;\n fieldRegistry.current[name] = {\n validate: validate\n };\n }, []);\n var unregisterField = useCallback(function (name) {\n delete fieldRegistry.current[name];\n }, []);\n var setTouched = useEventCallback(function (touched, shouldValidate) {\n dispatch({\n type: 'SET_TOUCHED',\n payload: touched\n });\n var willValidate = shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate ? validateFormWithHighPriority(state.values) : Promise.resolve();\n });\n var setErrors = useCallback(function (errors) {\n dispatch({\n type: 'SET_ERRORS',\n payload: errors\n });\n }, []);\n var setValues = useEventCallback(function (values, shouldValidate) {\n var resolvedValues = isFunction(values) ? values(state.values) : values;\n dispatch({\n type: 'SET_VALUES',\n payload: resolvedValues\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(resolvedValues) : Promise.resolve();\n });\n var setFieldError = useCallback(function (field, value) {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: field,\n value: value\n }\n });\n }, []);\n var setFieldValue = useEventCallback(function (field, value, shouldValidate) {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field: field,\n value: value\n }\n });\n var willValidate = shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate ? validateFormWithHighPriority(setIn(state.values, field, value)) : Promise.resolve();\n });\n var executeChange = useCallback(function (eventOrTextValue, maybePath) {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n var field = maybePath;\n var val = eventOrTextValue;\n var parsed; // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if (eventOrTextValue.persist) {\n eventOrTextValue.persist();\n }\n\n var target = eventOrTextValue.target ? eventOrTextValue.target : eventOrTextValue.currentTarget;\n var type = target.type,\n name = target.name,\n id = target.id,\n value = target.value,\n checked = target.checked,\n outerHTML = target.outerHTML,\n options = target.options,\n multiple = target.multiple;\n field = maybePath ? maybePath : name ? name : id;\n\n if (!field && process.env.NODE_ENV !== \"production\") {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange'\n });\n }\n\n val = /number|range/.test(type) ? (parsed = parseFloat(value), isNaN(parsed) ? '' : parsed) : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field), checked, value) : options && multiple // `).\n keysCache[key] = stringToPath(key);\n }\n }\n\n return keysCache[key];\n};\n\n// \n\nvar getIn = function getIn(state, complexKey) {\n // Intentionally using iteration rather than recursion\n var path = toPath(complexKey);\n var current = state;\n\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n\n if (current === undefined || current === null || typeof current !== \"object\" || Array.isArray(current) && isNaN(key)) {\n return undefined;\n }\n\n current = current[key];\n }\n\n return current;\n};\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nvar setInRecursor = function setInRecursor(current, index, path, value, destroyArrays) {\n if (index >= path.length) {\n // end of recursion\n return value;\n }\n\n var key = path[index]; // determine type of key\n\n if (isNaN(key)) {\n var _extends2;\n\n // object set\n if (current === undefined || current === null) {\n var _ref;\n\n // recurse\n var _result2 = setInRecursor(undefined, index + 1, path, value, destroyArrays); // delete or create an object\n\n\n return _result2 === undefined ? undefined : (_ref = {}, _ref[key] = _result2, _ref);\n }\n\n if (Array.isArray(current)) {\n throw new Error(\"Cannot set a non-numeric property on an array\");\n } // current exists, so make a copy of all its values, and add/update the new one\n\n\n var _result = setInRecursor(current[key], index + 1, path, value, destroyArrays);\n\n if (_result === undefined) {\n var numKeys = Object.keys(current).length;\n\n if (current[key] === undefined && numKeys === 0) {\n // object was already empty\n return undefined;\n }\n\n if (current[key] !== undefined && numKeys <= 1) {\n // only key we had was the one we are deleting\n if (!isNaN(path[index - 1]) && !destroyArrays) {\n // we are in an array, so return an empty object\n return {};\n } else {\n return undefined;\n }\n }\n\n current[key];\n var _final = _objectWithoutPropertiesLoose(current, [key].map(_toPropertyKey));\n\n return _final;\n } // set result in key\n\n\n return _extends({}, current, (_extends2 = {}, _extends2[key] = _result, _extends2));\n } // array set\n\n\n var numericKey = Number(key);\n\n if (current === undefined || current === null) {\n // recurse\n var _result3 = setInRecursor(undefined, index + 1, path, value, destroyArrays); // if nothing returned, delete it\n\n\n if (_result3 === undefined) {\n return undefined;\n } // create an array\n\n\n var _array = [];\n _array[numericKey] = _result3;\n return _array;\n }\n\n if (!Array.isArray(current)) {\n throw new Error(\"Cannot set a numeric property on an object\");\n } // recurse\n\n\n var existingValue = current[numericKey];\n var result = setInRecursor(existingValue, index + 1, path, value, destroyArrays); // current exists, so make a copy of all its values, and add/update the new one\n\n var array = [].concat(current);\n\n if (destroyArrays && result === undefined) {\n array.splice(numericKey, 1);\n\n if (array.length === 0) {\n return undefined;\n }\n } else {\n array[numericKey] = result;\n }\n\n return array;\n};\n\nvar setIn = function setIn(state, key, value, destroyArrays) {\n if (destroyArrays === void 0) {\n destroyArrays = false;\n }\n\n if (state === undefined || state === null) {\n throw new Error(\"Cannot call setIn() with \" + String(state) + \" state\");\n }\n\n if (key === undefined || key === null) {\n throw new Error(\"Cannot call setIn() with \" + String(key) + \" key\");\n } // Recursive function needs to accept and return State, but public API should\n // only deal with Objects\n\n\n return setInRecursor(state, 0, toPath(key), value, destroyArrays);\n};\n\nvar FORM_ERROR = \"FINAL_FORM/form-error\";\nvar ARRAY_ERROR = \"FINAL_FORM/array-error\";\n\n// \n/**\n * Converts internal field state to published field state\n */\n\nfunction publishFieldState(formState, field) {\n var errors = formState.errors,\n initialValues = formState.initialValues,\n lastSubmittedValues = formState.lastSubmittedValues,\n submitErrors = formState.submitErrors,\n submitFailed = formState.submitFailed,\n submitSucceeded = formState.submitSucceeded,\n submitting = formState.submitting,\n values = formState.values;\n var active = field.active,\n blur = field.blur,\n change = field.change,\n data = field.data,\n focus = field.focus,\n modified = field.modified,\n modifiedSinceLastSubmit = field.modifiedSinceLastSubmit,\n name = field.name,\n touched = field.touched,\n validating = field.validating,\n visited = field.visited;\n var value = getIn(values, name);\n var error = getIn(errors, name);\n\n if (error && error[ARRAY_ERROR]) {\n error = error[ARRAY_ERROR];\n }\n\n var submitError = submitErrors && getIn(submitErrors, name);\n var initial = initialValues && getIn(initialValues, name);\n var pristine = field.isEqual(initial, value);\n var dirtySinceLastSubmit = !!(lastSubmittedValues && !field.isEqual(getIn(lastSubmittedValues, name), value));\n var valid = !error && !submitError;\n return {\n active: active,\n blur: blur,\n change: change,\n data: data,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n error: error,\n focus: focus,\n initial: initial,\n invalid: !valid,\n length: Array.isArray(value) ? value.length : undefined,\n modified: modified,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n name: name,\n pristine: pristine,\n submitError: submitError,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitting: submitting,\n touched: touched,\n valid: valid,\n value: value,\n visited: visited,\n validating: validating\n };\n}\n\n// \nvar fieldSubscriptionItems = [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"value\", \"visited\", \"validating\"];\n\n// \nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n};\n\n// \nfunction subscriptionFilter (dest, src, previous, subscription, keys, shallowEqualKeys) {\n var different = false;\n keys.forEach(function (key) {\n if (subscription[key]) {\n dest[key] = src[key];\n\n if (!previous || (~shallowEqualKeys.indexOf(key) ? !shallowEqual(src[key], previous[key]) : src[key] !== previous[key])) {\n different = true;\n }\n }\n });\n return different;\n}\n\n// \nvar shallowEqualKeys$1 = [\"data\"];\n/**\n * Filters items in a FieldState based on a FieldSubscription\n */\n\nvar filterFieldState = function filterFieldState(state, previousState, subscription, force) {\n var result = {\n blur: state.blur,\n change: state.change,\n focus: state.focus,\n name: state.name\n };\n var different = subscriptionFilter(result, state, previousState, subscription, fieldSubscriptionItems, shallowEqualKeys$1) || !previousState;\n return different || force ? result : undefined;\n};\n\n// \nvar formSubscriptionItems = [\"active\", \"dirty\", \"dirtyFields\", \"dirtyFieldsSinceLastSubmit\", \"dirtySinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitting\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"];\n\n// \nvar shallowEqualKeys = [\"touched\", \"visited\"];\n/**\n * Filters items in a FormState based on a FormSubscription\n */\n\nfunction filterFormState(state, previousState, subscription, force) {\n var result = {};\n var different = subscriptionFilter(result, state, previousState, subscription, formSubscriptionItems, shallowEqualKeys) || !previousState;\n return different || force ? result : undefined;\n}\n\n// \n\nvar memoize = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return 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 (!lastArgs || args.length !== lastArgs.length || args.some(function (arg, index) {\n return !shallowEqual(lastArgs[index], arg);\n })) {\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n }\n\n return lastResult;\n };\n};\n\nvar isPromise = (function (obj) {\n return !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\n});\n\nvar version = \"4.20.9\";\n\nvar configOptions = [\"debug\", \"initialValues\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"validate\", \"validateOnBlur\"];\n\nvar tripleEquals = function tripleEquals(a, b) {\n return a === b;\n};\n\nvar hasAnyError = function hasAnyError(errors) {\n return Object.keys(errors).some(function (key) {\n var value = errors[key];\n\n if (value && typeof value === \"object\" && !(value instanceof Error)) {\n return hasAnyError(value);\n }\n\n return typeof value !== \"undefined\";\n });\n};\n\nfunction convertToExternalFormState(_ref) {\n var active = _ref.active,\n dirtySinceLastSubmit = _ref.dirtySinceLastSubmit,\n modifiedSinceLastSubmit = _ref.modifiedSinceLastSubmit,\n error = _ref.error,\n errors = _ref.errors,\n initialValues = _ref.initialValues,\n pristine = _ref.pristine,\n submitting = _ref.submitting,\n submitFailed = _ref.submitFailed,\n submitSucceeded = _ref.submitSucceeded,\n submitError = _ref.submitError,\n submitErrors = _ref.submitErrors,\n valid = _ref.valid,\n validating = _ref.validating,\n values = _ref.values;\n return {\n active: active,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n error: error,\n errors: errors,\n hasSubmitErrors: !!(submitError || submitErrors && hasAnyError(submitErrors)),\n hasValidationErrors: !!(error || hasAnyError(errors)),\n invalid: !valid,\n initialValues: initialValues,\n pristine: pristine,\n submitting: submitting,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitError: submitError,\n submitErrors: submitErrors,\n valid: valid,\n validating: validating > 0,\n values: values\n };\n}\n\nfunction notifySubscriber(subscriber, subscription, state, lastState, filter, force) {\n var notification = filter(state, lastState, subscription, force);\n\n if (notification) {\n subscriber(notification);\n return true;\n }\n\n return false;\n}\n\nfunction notify(_ref2, state, lastState, filter, force) {\n var entries = _ref2.entries;\n Object.keys(entries).forEach(function (key) {\n var entry = entries[Number(key)]; // istanbul ignore next\n\n if (entry) {\n var subscription = entry.subscription,\n subscriber = entry.subscriber,\n notified = entry.notified;\n\n if (notifySubscriber(subscriber, subscription, state, lastState, filter, force || !notified)) {\n entry.notified = true;\n }\n }\n });\n}\n\nfunction createForm(config) {\n if (!config) {\n throw new Error(\"No config specified\");\n }\n\n var debug = config.debug,\n destroyOnUnregister = config.destroyOnUnregister,\n keepDirtyOnReinitialize = config.keepDirtyOnReinitialize,\n initialValues = config.initialValues,\n mutators = config.mutators,\n onSubmit = config.onSubmit,\n validate = config.validate,\n validateOnBlur = config.validateOnBlur;\n\n if (!onSubmit) {\n throw new Error(\"No onSubmit function specified\");\n }\n\n var state = {\n subscribers: {\n index: 0,\n entries: {}\n },\n fieldSubscribers: {},\n fields: {},\n formState: {\n asyncErrors: {},\n dirtySinceLastSubmit: false,\n modifiedSinceLastSubmit: false,\n errors: {},\n initialValues: initialValues && _extends({}, initialValues),\n invalid: false,\n pristine: true,\n submitting: false,\n submitFailed: false,\n submitSucceeded: false,\n resetWhileSubmitting: false,\n valid: true,\n validating: 0,\n values: initialValues ? _extends({}, initialValues) : {}\n },\n lastFormState: undefined\n };\n var inBatch = 0;\n var validationPaused = false;\n var validationBlocked = false;\n var preventNotificationWhileValidationPaused = false;\n var nextAsyncValidationKey = 0;\n var asyncValidationPromises = {};\n\n var clearAsyncValidationPromise = function clearAsyncValidationPromise(key) {\n return function (result) {\n delete asyncValidationPromises[key];\n return result;\n };\n };\n\n var changeValue = function changeValue(state, name, mutate) {\n var before = getIn(state.formState.values, name);\n var after = mutate(before);\n state.formState.values = setIn(state.formState.values, name, after) || {};\n };\n\n var renameField = function renameField(state, from, to) {\n if (state.fields[from]) {\n var _extends2, _extends3;\n\n state.fields = _extends({}, state.fields, (_extends2 = {}, _extends2[to] = _extends({}, state.fields[from], {\n name: to,\n // rebind event handlers\n blur: function blur() {\n return api.blur(to);\n },\n change: function change(value) {\n return api.change(to, value);\n },\n focus: function focus() {\n return api.focus(to);\n },\n lastFieldState: undefined\n }), _extends2));\n delete state.fields[from];\n state.fieldSubscribers = _extends({}, state.fieldSubscribers, (_extends3 = {}, _extends3[to] = state.fieldSubscribers[from], _extends3));\n delete state.fieldSubscribers[from];\n var value = getIn(state.formState.values, from);\n state.formState.values = setIn(state.formState.values, from, undefined) || {};\n state.formState.values = setIn(state.formState.values, to, value);\n delete state.lastFormState;\n }\n }; // bind state to mutators\n\n\n var getMutatorApi = function getMutatorApi(key) {\n return function () {\n // istanbul ignore next\n if (mutators) {\n // ^^ causes branch coverage warning, but needed to appease the Flow gods\n var mutatableState = {\n formState: state.formState,\n fields: state.fields,\n fieldSubscribers: state.fieldSubscribers,\n lastFormState: state.lastFormState\n };\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var returnValue = mutators[key](args, mutatableState, {\n changeValue: changeValue,\n getIn: getIn,\n renameField: renameField,\n resetFieldState: api.resetFieldState,\n setIn: setIn,\n shallowEqual: shallowEqual\n });\n state.formState = mutatableState.formState;\n state.fields = mutatableState.fields;\n state.fieldSubscribers = mutatableState.fieldSubscribers;\n state.lastFormState = mutatableState.lastFormState;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n return returnValue;\n }\n };\n };\n\n var mutatorsApi = mutators ? Object.keys(mutators).reduce(function (result, key) {\n result[key] = getMutatorApi(key);\n return result;\n }, {}) : {};\n\n var runRecordLevelValidation = function runRecordLevelValidation(setErrors) {\n var promises = [];\n\n if (validate) {\n var errorsOrPromise = validate(_extends({}, state.formState.values)); // clone to avoid writing\n\n if (isPromise(errorsOrPromise)) {\n promises.push(errorsOrPromise.then(function (errors) {\n return setErrors(errors, true);\n }));\n } else {\n setErrors(errorsOrPromise, false);\n }\n }\n\n return promises;\n };\n\n var getValidators = function getValidators(field) {\n return Object.keys(field.validators).reduce(function (result, index) {\n var validator = field.validators[Number(index)]();\n\n if (validator) {\n result.push(validator);\n }\n\n return result;\n }, []);\n };\n\n var runFieldLevelValidation = function runFieldLevelValidation(field, setError) {\n var promises = [];\n var validators = getValidators(field);\n\n if (validators.length) {\n var error;\n validators.forEach(function (validator) {\n var errorOrPromise = validator(getIn(state.formState.values, field.name), state.formState.values, validator.length === 0 || validator.length === 3 ? publishFieldState(state.formState, state.fields[field.name]) : undefined);\n\n if (errorOrPromise && isPromise(errorOrPromise)) {\n field.validating = true;\n var promise = errorOrPromise.then(function (error) {\n if (state.fields[field.name]) {\n state.fields[field.name].validating = false;\n setError(error);\n }\n }); // errors must be resolved, not rejected\n\n promises.push(promise);\n } else if (!error) {\n // first registered validator wins\n error = errorOrPromise;\n }\n });\n setError(error);\n }\n\n return promises;\n };\n\n var runValidation = function runValidation(fieldChanged, callback) {\n if (validationPaused) {\n validationBlocked = true;\n callback();\n return;\n }\n\n var fields = state.fields,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var fieldKeys = Object.keys(safeFields);\n\n if (!validate && !fieldKeys.some(function (key) {\n return getValidators(safeFields[key]).length;\n })) {\n callback();\n return; // no validation rules\n } // pare down field keys to actually validate\n\n\n var limitedFieldLevelValidation = false;\n\n if (fieldChanged) {\n var changedField = safeFields[fieldChanged];\n\n if (changedField) {\n var validateFields = changedField.validateFields;\n\n if (validateFields) {\n limitedFieldLevelValidation = true;\n fieldKeys = validateFields.length ? validateFields.concat(fieldChanged) : [fieldChanged];\n }\n }\n }\n\n var recordLevelErrors = {};\n var asyncRecordLevelErrors = {};\n var fieldLevelErrors = {};\n var promises = [].concat(runRecordLevelValidation(function (errors, wasAsync) {\n if (wasAsync) {\n asyncRecordLevelErrors = errors || {};\n } else {\n recordLevelErrors = errors || {};\n }\n }), fieldKeys.reduce(function (result, name) {\n return result.concat(runFieldLevelValidation(fields[name], function (error) {\n fieldLevelErrors[name] = error;\n }));\n }, []));\n var hasAsyncValidations = promises.length > 0;\n var asyncValidationPromiseKey = ++nextAsyncValidationKey;\n var promise = Promise.all(promises).then(clearAsyncValidationPromise(asyncValidationPromiseKey)); // backwards-compat: add promise to submit-blocking promises iff there are any promises to await\n\n if (hasAsyncValidations) {\n asyncValidationPromises[asyncValidationPromiseKey] = promise;\n }\n\n var processErrors = function processErrors(afterAsync) {\n var merged = _extends({}, limitedFieldLevelValidation ? formState.errors : {}, recordLevelErrors, afterAsync ? asyncRecordLevelErrors // new async errors\n : formState.asyncErrors);\n\n var forEachError = function forEachError(fn) {\n fieldKeys.forEach(function (name) {\n if (fields[name]) {\n // make sure field is still registered\n // field-level errors take precedent over record-level errors\n var recordLevelError = getIn(recordLevelErrors, name);\n var errorFromParent = getIn(merged, name);\n var hasFieldLevelValidation = getValidators(safeFields[name]).length;\n var fieldLevelError = fieldLevelErrors[name];\n fn(name, hasFieldLevelValidation && fieldLevelError || validate && recordLevelError || (!recordLevelError && !limitedFieldLevelValidation ? errorFromParent : undefined));\n }\n });\n };\n\n forEachError(function (name, error) {\n merged = setIn(merged, name, error) || {};\n });\n forEachError(function (name, error) {\n if (error && error[ARRAY_ERROR]) {\n var existing = getIn(merged, name);\n var copy = [].concat(existing);\n copy[ARRAY_ERROR] = error[ARRAY_ERROR];\n merged = setIn(merged, name, copy);\n }\n });\n\n if (!shallowEqual(formState.errors, merged)) {\n formState.errors = merged;\n }\n\n if (afterAsync) {\n formState.asyncErrors = asyncRecordLevelErrors;\n }\n\n formState.error = recordLevelErrors[FORM_ERROR];\n };\n\n if (hasAsyncValidations) {\n // async validations are running, ensure validating is true before notifying\n state.formState.validating++;\n callback();\n } // process sync errors\n\n\n processErrors(false); // sync errors have been set. notify listeners while we wait for others\n\n callback();\n\n if (hasAsyncValidations) {\n var afterPromise = function afterPromise() {\n state.formState.validating--;\n callback();\n };\n\n promise.then(function () {\n if (nextAsyncValidationKey > asyncValidationPromiseKey) {\n // if this async validator has been superseded by another, ignore its results\n return;\n }\n\n processErrors(true);\n }).then(afterPromise, afterPromise);\n }\n };\n\n var notifyFieldListeners = function notifyFieldListeners(name) {\n if (inBatch) {\n return;\n }\n\n var fields = state.fields,\n fieldSubscribers = state.fieldSubscribers,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var notifyField = function notifyField(name) {\n var field = safeFields[name];\n var fieldState = publishFieldState(formState, field);\n var lastFieldState = field.lastFieldState;\n field.lastFieldState = fieldState;\n var fieldSubscriber = fieldSubscribers[name];\n\n if (fieldSubscriber) {\n notify(fieldSubscriber, fieldState, lastFieldState, filterFieldState, lastFieldState === undefined);\n }\n };\n\n if (name) {\n notifyField(name);\n } else {\n Object.keys(safeFields).forEach(notifyField);\n }\n };\n\n var markAllFieldsTouched = function markAllFieldsTouched() {\n Object.keys(state.fields).forEach(function (key) {\n state.fields[key].touched = true;\n });\n };\n\n var hasSyncErrors = function hasSyncErrors() {\n return !!(state.formState.error || hasAnyError(state.formState.errors));\n };\n\n var calculateNextFormState = function calculateNextFormState() {\n var fields = state.fields,\n formState = state.formState,\n lastFormState = state.lastFormState;\n\n var safeFields = _extends({}, fields);\n\n var safeFieldKeys = Object.keys(safeFields); // calculate dirty/pristine\n\n var foundDirty = false;\n var dirtyFields = safeFieldKeys.reduce(function (result, key) {\n var dirty = !safeFields[key].isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n\n if (dirty) {\n foundDirty = true;\n result[key] = true;\n }\n\n return result;\n }, {});\n var dirtyFieldsSinceLastSubmit = safeFieldKeys.reduce(function (result, key) {\n // istanbul ignore next\n var nonNullLastSubmittedValues = formState.lastSubmittedValues || {}; // || {} is for flow, but causes branch coverage complaint\n\n if (!safeFields[key].isEqual(getIn(formState.values, key), getIn(nonNullLastSubmittedValues, key))) {\n result[key] = true;\n }\n\n return result;\n }, {});\n formState.pristine = !foundDirty;\n formState.dirtySinceLastSubmit = !!(formState.lastSubmittedValues && Object.values(dirtyFieldsSinceLastSubmit).some(function (value) {\n return value;\n }));\n formState.modifiedSinceLastSubmit = !!(formState.lastSubmittedValues && // Object.values would treat values as mixed (facebook/flow#2221)\n Object.keys(safeFields).some(function (value) {\n return safeFields[value].modifiedSinceLastSubmit;\n }));\n formState.valid = !formState.error && !formState.submitError && !hasAnyError(formState.errors) && !(formState.submitErrors && hasAnyError(formState.submitErrors));\n var nextFormState = convertToExternalFormState(formState);\n\n var _safeFieldKeys$reduce = safeFieldKeys.reduce(function (result, key) {\n result.modified[key] = safeFields[key].modified;\n result.touched[key] = safeFields[key].touched;\n result.visited[key] = safeFields[key].visited;\n return result;\n }, {\n modified: {},\n touched: {},\n visited: {}\n }),\n modified = _safeFieldKeys$reduce.modified,\n touched = _safeFieldKeys$reduce.touched,\n visited = _safeFieldKeys$reduce.visited;\n\n nextFormState.dirtyFields = lastFormState && shallowEqual(lastFormState.dirtyFields, dirtyFields) ? lastFormState.dirtyFields : dirtyFields;\n nextFormState.dirtyFieldsSinceLastSubmit = lastFormState && shallowEqual(lastFormState.dirtyFieldsSinceLastSubmit, dirtyFieldsSinceLastSubmit) ? lastFormState.dirtyFieldsSinceLastSubmit : dirtyFieldsSinceLastSubmit;\n nextFormState.modified = lastFormState && shallowEqual(lastFormState.modified, modified) ? lastFormState.modified : modified;\n nextFormState.touched = lastFormState && shallowEqual(lastFormState.touched, touched) ? lastFormState.touched : touched;\n nextFormState.visited = lastFormState && shallowEqual(lastFormState.visited, visited) ? lastFormState.visited : visited;\n return lastFormState && shallowEqual(lastFormState, nextFormState) ? lastFormState : nextFormState;\n };\n\n var callDebug = function callDebug() {\n return debug && \"development\" !== \"production\" && debug(calculateNextFormState(), Object.keys(state.fields).reduce(function (result, key) {\n result[key] = state.fields[key];\n return result;\n }, {}));\n };\n\n var notifying = false;\n var scheduleNotification = false;\n\n var notifyFormListeners = function notifyFormListeners() {\n if (notifying) {\n scheduleNotification = true;\n } else {\n notifying = true;\n callDebug();\n\n if (!inBatch && !(validationPaused && preventNotificationWhileValidationPaused)) {\n var lastFormState = state.lastFormState;\n var nextFormState = calculateNextFormState();\n\n if (nextFormState !== lastFormState) {\n state.lastFormState = nextFormState;\n notify(state.subscribers, nextFormState, lastFormState, filterFormState);\n }\n }\n\n notifying = false;\n\n if (scheduleNotification) {\n scheduleNotification = false;\n notifyFormListeners();\n }\n }\n };\n\n var beforeSubmit = function beforeSubmit() {\n return Object.keys(state.fields).some(function (name) {\n return state.fields[name].beforeSubmit && state.fields[name].beforeSubmit() === false;\n });\n };\n\n var afterSubmit = function afterSubmit() {\n return Object.keys(state.fields).forEach(function (name) {\n return state.fields[name].afterSubmit && state.fields[name].afterSubmit();\n });\n };\n\n var resetModifiedAfterSubmit = function resetModifiedAfterSubmit() {\n return Object.keys(state.fields).forEach(function (key) {\n return state.fields[key].modifiedSinceLastSubmit = false;\n });\n }; // generate initial errors\n\n\n runValidation(undefined, function () {\n notifyFormListeners();\n });\n var api = {\n batch: function batch(fn) {\n inBatch++;\n fn();\n inBatch--;\n notifyFieldListeners();\n notifyFormListeners();\n },\n blur: function blur(name) {\n var fields = state.fields,\n formState = state.formState;\n var previous = fields[name];\n\n if (previous) {\n // can only blur registered fields\n delete formState.active;\n fields[name] = _extends({}, previous, {\n active: false,\n touched: true\n });\n\n if (validateOnBlur) {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n } else {\n notifyFieldListeners();\n notifyFormListeners();\n }\n }\n },\n change: function change(name, value) {\n var fields = state.fields,\n formState = state.formState;\n\n if (getIn(formState.values, name) !== value) {\n changeValue(state, name, function () {\n return value;\n });\n var previous = fields[name];\n\n if (previous) {\n // only track modified for registered fields\n fields[name] = _extends({}, previous, {\n modified: true,\n modifiedSinceLastSubmit: !!formState.lastSubmittedValues\n });\n }\n\n if (validateOnBlur) {\n notifyFieldListeners();\n notifyFormListeners();\n } else {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n }\n },\n\n get destroyOnUnregister() {\n return !!destroyOnUnregister;\n },\n\n set destroyOnUnregister(value) {\n destroyOnUnregister = value;\n },\n\n focus: function focus(name) {\n var field = state.fields[name];\n\n if (field && !field.active) {\n state.formState.active = name;\n field.active = true;\n field.visited = true;\n notifyFieldListeners();\n notifyFormListeners();\n }\n },\n mutators: mutatorsApi,\n getFieldState: function getFieldState(name) {\n var field = state.fields[name];\n return field && field.lastFieldState;\n },\n getRegisteredFields: function getRegisteredFields() {\n return Object.keys(state.fields);\n },\n getState: function getState() {\n return calculateNextFormState();\n },\n initialize: function initialize(data) {\n var fields = state.fields,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var values = typeof data === \"function\" ? data(formState.values) : data;\n\n if (!keepDirtyOnReinitialize) {\n formState.values = values;\n }\n /**\n * Hello, inquisitive code reader! Thanks for taking the time to dig in!\n *\n * The following code is the way it is to allow for non-registered deep\n * field values to be set via initialize()\n */\n // save dirty values\n\n\n var savedDirtyValues = keepDirtyOnReinitialize ? Object.keys(safeFields).reduce(function (result, key) {\n var field = safeFields[key];\n var pristine = field.isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n\n if (!pristine) {\n result[key] = getIn(formState.values, key);\n }\n\n return result;\n }, {}) : {}; // update initalValues and values\n\n formState.initialValues = values;\n formState.values = values; // restore the dirty values\n\n Object.keys(savedDirtyValues).forEach(function (key) {\n formState.values = setIn(formState.values, key, savedDirtyValues[key]) || {};\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n isValidationPaused: function isValidationPaused() {\n return validationPaused;\n },\n pauseValidation: function pauseValidation(preventNotification) {\n if (preventNotification === void 0) {\n preventNotification = true;\n }\n\n validationPaused = true;\n preventNotificationWhileValidationPaused = preventNotification;\n },\n registerField: function registerField(name, subscriber, subscription, fieldConfig) {\n if (subscription === void 0) {\n subscription = {};\n }\n\n if (!state.fieldSubscribers[name]) {\n state.fieldSubscribers[name] = {\n index: 0,\n entries: {}\n };\n }\n\n var index = state.fieldSubscribers[name].index++; // save field subscriber callback\n\n state.fieldSubscribers[name].entries[index] = {\n subscriber: memoize(subscriber),\n subscription: subscription,\n notified: false\n }; // create initial field state if not exists\n\n var field = state.fields[name] || {\n active: false,\n afterSubmit: fieldConfig && fieldConfig.afterSubmit,\n beforeSubmit: fieldConfig && fieldConfig.beforeSubmit,\n data: fieldConfig && fieldConfig.data || {},\n isEqual: fieldConfig && fieldConfig.isEqual || tripleEquals,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n name: name,\n touched: false,\n valid: true,\n validateFields: fieldConfig && fieldConfig.validateFields,\n validators: {},\n validating: false,\n visited: false\n }; // Mutators can create a field in order to keep the field states\n // We must update this field when registerField is called afterwards\n\n field.blur = field.blur || function () {\n return api.blur(name);\n };\n\n field.change = field.change || function (value) {\n return api.change(name, value);\n };\n\n field.focus = field.focus || function () {\n return api.focus(name);\n };\n\n state.fields[name] = field;\n var haveValidator = false;\n var silent = fieldConfig && fieldConfig.silent;\n\n var notify = function notify() {\n if (silent && state.fields[name]) {\n notifyFieldListeners(name);\n } else {\n notifyFormListeners();\n notifyFieldListeners();\n }\n };\n\n if (fieldConfig) {\n haveValidator = !!(fieldConfig.getValidator && fieldConfig.getValidator());\n\n if (fieldConfig.getValidator) {\n state.fields[name].validators[index] = fieldConfig.getValidator;\n }\n\n var noValueInFormState = getIn(state.formState.values, name) === undefined;\n\n if (fieldConfig.initialValue !== undefined && (noValueInFormState || getIn(state.formState.values, name) === getIn(state.formState.initialValues, name)) // only initialize if we don't yet have any value for this field\n ) {\n state.formState.initialValues = setIn(state.formState.initialValues || {}, name, fieldConfig.initialValue);\n state.formState.values = setIn(state.formState.values, name, fieldConfig.initialValue);\n runValidation(undefined, notify);\n } // only use defaultValue if we don't yet have any value for this field\n\n\n if (fieldConfig.defaultValue !== undefined && fieldConfig.initialValue === undefined && getIn(state.formState.initialValues, name) === undefined && noValueInFormState) {\n state.formState.values = setIn(state.formState.values, name, fieldConfig.defaultValue);\n }\n }\n\n if (haveValidator) {\n runValidation(undefined, notify);\n } else {\n notify();\n }\n\n return function () {\n var validatorRemoved = false; // istanbul ignore next\n\n if (state.fields[name]) {\n // state.fields[name] may have been removed by a mutator\n validatorRemoved = !!(state.fields[name].validators[index] && state.fields[name].validators[index]());\n delete state.fields[name].validators[index];\n }\n\n var hasFieldSubscribers = !!state.fieldSubscribers[name];\n\n if (hasFieldSubscribers) {\n // state.fieldSubscribers[name] may have been removed by a mutator\n delete state.fieldSubscribers[name].entries[index];\n }\n\n var lastOne = hasFieldSubscribers && !Object.keys(state.fieldSubscribers[name].entries).length;\n\n if (lastOne) {\n delete state.fieldSubscribers[name];\n delete state.fields[name];\n\n if (validatorRemoved) {\n state.formState.errors = setIn(state.formState.errors, name, undefined) || {};\n }\n\n if (destroyOnUnregister) {\n state.formState.values = setIn(state.formState.values, name, undefined, true) || {};\n }\n }\n\n if (!silent) {\n if (validatorRemoved) {\n runValidation(undefined, function () {\n notifyFormListeners();\n notifyFieldListeners();\n });\n } else if (lastOne) {\n // values or errors may have changed\n notifyFormListeners();\n }\n }\n };\n },\n reset: function reset(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n\n if (state.formState.submitting) {\n state.formState.resetWhileSubmitting = true;\n }\n\n state.formState.submitFailed = false;\n state.formState.submitSucceeded = false;\n delete state.formState.submitError;\n delete state.formState.submitErrors;\n delete state.formState.lastSubmittedValues;\n api.initialize(initialValues || {});\n },\n\n /**\n * Resets all field flags (e.g. touched, visited, etc.) to their initial state\n */\n resetFieldState: function resetFieldState(name) {\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n\n /**\n * Returns the form to a clean slate; that is:\n * - Clear all values\n * - Resets all fields to their initial state\n */\n restart: function restart(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n\n api.batch(function () {\n for (var name in state.fields) {\n api.resetFieldState(name);\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n }\n\n api.reset(initialValues);\n });\n },\n resumeValidation: function resumeValidation() {\n validationPaused = false;\n preventNotificationWhileValidationPaused = false;\n\n if (validationBlocked) {\n // validation was attempted while it was paused, so run it now\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n\n validationBlocked = false;\n },\n setConfig: function setConfig(name, value) {\n switch (name) {\n case \"debug\":\n debug = value;\n break;\n\n case \"destroyOnUnregister\":\n destroyOnUnregister = value;\n break;\n\n case \"initialValues\":\n api.initialize(value);\n break;\n\n case \"keepDirtyOnReinitialize\":\n keepDirtyOnReinitialize = value;\n break;\n\n case \"mutators\":\n mutators = value;\n\n if (value) {\n Object.keys(mutatorsApi).forEach(function (key) {\n if (!(key in value)) {\n delete mutatorsApi[key];\n }\n });\n Object.keys(value).forEach(function (key) {\n mutatorsApi[key] = getMutatorApi(key);\n });\n } else {\n Object.keys(mutatorsApi).forEach(function (key) {\n delete mutatorsApi[key];\n });\n }\n\n break;\n\n case \"onSubmit\":\n onSubmit = value;\n break;\n\n case \"validate\":\n validate = value;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n break;\n\n case \"validateOnBlur\":\n validateOnBlur = value;\n break;\n\n default:\n throw new Error(\"Unrecognised option \" + name);\n }\n },\n submit: function submit() {\n var formState = state.formState;\n\n if (formState.submitting) {\n return;\n }\n\n delete formState.submitErrors;\n delete formState.submitError;\n formState.lastSubmittedValues = _extends({}, formState.values);\n\n if (hasSyncErrors()) {\n markAllFieldsTouched();\n resetModifiedAfterSubmit();\n state.formState.submitFailed = true;\n notifyFormListeners();\n notifyFieldListeners();\n return; // no submit for you!!\n }\n\n var asyncValidationPromisesKeys = Object.keys(asyncValidationPromises);\n\n if (asyncValidationPromisesKeys.length) {\n // still waiting on async validation to complete...\n Promise.all(asyncValidationPromisesKeys.map(function (key) {\n return asyncValidationPromises[Number(key)];\n })).then(api.submit, console.error);\n return;\n }\n\n var submitIsBlocked = beforeSubmit();\n\n if (submitIsBlocked) {\n return;\n }\n\n var resolvePromise;\n var completeCalled = false;\n\n var complete = function complete(errors) {\n formState.submitting = false;\n var resetWhileSubmitting = formState.resetWhileSubmitting;\n\n if (resetWhileSubmitting) {\n formState.resetWhileSubmitting = false;\n }\n\n if (errors && hasAnyError(errors)) {\n formState.submitFailed = true;\n formState.submitSucceeded = false;\n formState.submitErrors = errors;\n formState.submitError = errors[FORM_ERROR];\n markAllFieldsTouched();\n } else {\n if (!resetWhileSubmitting) {\n formState.submitFailed = false;\n formState.submitSucceeded = true;\n }\n\n afterSubmit();\n }\n\n notifyFormListeners();\n notifyFieldListeners();\n completeCalled = true;\n\n if (resolvePromise) {\n resolvePromise(errors);\n }\n\n return errors;\n };\n\n formState.submitting = true;\n formState.submitFailed = false;\n formState.submitSucceeded = false;\n formState.lastSubmittedValues = _extends({}, formState.values);\n resetModifiedAfterSubmit(); // onSubmit is either sync, callback or async with a Promise\n\n var result = onSubmit(formState.values, api, complete);\n\n if (!completeCalled) {\n if (result && isPromise(result)) {\n // onSubmit is async with a Promise\n notifyFormListeners(); // let everyone know we are submitting\n\n notifyFieldListeners(); // notify fields also\n\n return result.then(complete, function (error) {\n complete();\n throw error;\n });\n } else if (onSubmit.length >= 3) {\n // must be async, so we should return a Promise\n notifyFormListeners(); // let everyone know we are submitting\n\n notifyFieldListeners(); // notify fields also\n\n return new Promise(function (resolve) {\n resolvePromise = resolve;\n });\n } else {\n // onSubmit is sync\n complete(result);\n }\n }\n },\n subscribe: function subscribe(subscriber, subscription) {\n if (!subscriber) {\n throw new Error(\"No callback given.\");\n }\n\n if (!subscription) {\n throw new Error(\"No subscription provided. What values do you want to listen to?\");\n }\n\n var memoized = memoize(subscriber);\n var subscribers = state.subscribers;\n var index = subscribers.index++;\n subscribers.entries[index] = {\n subscriber: memoized,\n subscription: subscription,\n notified: false\n };\n var nextFormState = calculateNextFormState();\n notifySubscriber(memoized, subscription, nextFormState, nextFormState, filterFormState, true);\n return function () {\n delete subscribers.entries[index];\n };\n }\n };\n return api;\n}\n\nexport { ARRAY_ERROR, FORM_ERROR, configOptions, createForm, fieldSubscriptionItems, formSubscriptionItems, getIn, setIn, version };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport * as React from 'react';\nimport React__default from 'react';\nimport { formSubscriptionItems, createForm, version as version$1, fieldSubscriptionItems } from 'final-form';\n\nvar _excluded$3 = [\"render\", \"children\", \"component\"];\n// shared logic between components that use either render prop,\n// children render function, or component prop\nfunction renderComponent(props, lazyProps, name) {\n var render = props.render,\n children = props.children,\n component = props.component,\n rest = _objectWithoutPropertiesLoose(props, _excluded$3);\n\n if (component) {\n return /*#__PURE__*/React.createElement(component, Object.assign(lazyProps, rest, {\n children: children,\n render: render\n }));\n }\n\n if (render) {\n return render(children === undefined ? Object.assign(lazyProps, rest) : // inject children back in\n Object.assign(lazyProps, rest, {\n children: children\n }));\n }\n\n if (typeof children !== \"function\") {\n throw new Error(\"Must specify either a render prop, a render function as children, or a component prop to \" + name);\n }\n\n return children(Object.assign(lazyProps, rest));\n}\n\nfunction useWhenValueChanges(value, callback, isEqual) {\n if (isEqual === void 0) {\n isEqual = function isEqual(a, b) {\n return a === b;\n };\n }\n\n var previous = React__default.useRef(value);\n React__default.useEffect(function () {\n if (!isEqual(value, previous.current)) {\n callback();\n previous.current = value;\n }\n });\n}\n\n/**\n * A simple hook to create a constant value that lives for\n * the lifetime of the component.\n *\n * Plagiarized from https://github.com/Andarist/use-constant\n *\n * Do NOT reuse this code unless you know what you're doing.\n * Use Andarist's hook; it's more fault tolerant to things like\n * falsy values.\n *\n * @param {Function} init - A function to generate the value\n */\n\nfunction useConstant(init) {\n var ref = React__default.useRef();\n\n if (!ref.current) {\n ref.current = init();\n }\n\n return ref.current;\n}\n\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nvar isSyntheticEvent = function isSyntheticEvent(candidate) {\n return !!(candidate && typeof candidate.stopPropagation === \"function\");\n};\n\nvar ReactFinalFormContext = /*#__PURE__*/React.createContext();\n\nfunction useLatest(value) {\n var ref = React__default.useRef(value);\n React__default.useEffect(function () {\n ref.current = value;\n });\n return ref;\n}\n\nvar version = \"6.5.8\";\n\nvar addLazyState = function addLazyState(dest, state, keys) {\n keys.forEach(function (key) {\n Object.defineProperty(dest, key, {\n get: function get() {\n return state[key];\n },\n enumerable: true\n });\n });\n};\n\nvar addLazyFormState = function addLazyFormState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"dirty\", \"dirtyFields\", \"dirtySinceLastSubmit\", \"dirtyFieldsSinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"]);\n};\nvar addLazyFieldMetaState = function addLazyFieldMetaState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"visited\"]);\n};\n\nvar _excluded$2 = [\"debug\", \"decorators\", \"destroyOnUnregister\", \"form\", \"initialValues\", \"initialValuesEqual\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"subscription\", \"validate\", \"validateOnBlur\"];\nvar versions = {\n \"final-form\": version$1,\n \"react-final-form\": version\n};\nvar all$1 = formSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nfunction ReactFinalForm(_ref) {\n var debug = _ref.debug,\n _ref$decorators = _ref.decorators,\n decorators = _ref$decorators === void 0 ? [] : _ref$decorators,\n destroyOnUnregister = _ref.destroyOnUnregister,\n alternateFormApi = _ref.form,\n initialValues = _ref.initialValues,\n initialValuesEqual = _ref.initialValuesEqual,\n keepDirtyOnReinitialize = _ref.keepDirtyOnReinitialize,\n mutators = _ref.mutators,\n onSubmit = _ref.onSubmit,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription,\n validate = _ref.validate,\n validateOnBlur = _ref.validateOnBlur,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var config = {\n debug: debug,\n destroyOnUnregister: destroyOnUnregister,\n initialValues: initialValues,\n keepDirtyOnReinitialize: keepDirtyOnReinitialize,\n mutators: mutators,\n onSubmit: onSubmit,\n validate: validate,\n validateOnBlur: validateOnBlur\n };\n var form = useConstant(function () {\n var f = alternateFormApi || createForm(config); // pause validation until children register all fields on first render (unpaused in useEffect() below)\n\n f.pauseValidation();\n return f;\n }); // synchronously register and unregister to query form state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1]; // save a copy of state that can break through the closure\n // on the shallowEqual() line below.\n\n\n var stateRef = useLatest(state);\n React.useEffect(function () {\n // We have rendered, so all fields are now registered, so we can unpause validation\n form.isValidationPaused() && form.resumeValidation();\n var unsubscriptions = [form.subscribe(function (s) {\n if (!shallowEqual(s, stateRef.current)) {\n setState(s);\n }\n }, subscription)].concat(decorators ? decorators.map(function (decorator) {\n return (// this noop ternary is to appease the flow gods\n // istanbul ignore next\n decorator(form)\n );\n }) : []);\n return function () {\n form.pauseValidation(); // pause validation so we don't revalidate on every field deregistration\n\n unsubscriptions.reverse().forEach(function (unsubscribe) {\n return unsubscribe();\n }); // don't need to resume validation here; either unmounting, or will re-run this hook with new deps\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, decorators); // warn about decorator changes\n // istanbul ignore next\n\n if (process.env.NODE_ENV !== \"production\") {\n // You're never supposed to use hooks inside a conditional, but in this\n // case we can be certain that you're not going to be changing your\n // NODE_ENV between renders, so this is safe.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useWhenValueChanges(decorators, function () {\n console.error(\"Form decorators should not change from one render to the next as new values will be ignored\");\n }, shallowEqual);\n } // allow updatable config\n\n\n useWhenValueChanges(debug, function () {\n form.setConfig(\"debug\", debug);\n });\n useWhenValueChanges(destroyOnUnregister, function () {\n form.destroyOnUnregister = !!destroyOnUnregister;\n });\n useWhenValueChanges(keepDirtyOnReinitialize, function () {\n form.setConfig(\"keepDirtyOnReinitialize\", keepDirtyOnReinitialize);\n });\n useWhenValueChanges(initialValues, function () {\n form.setConfig(\"initialValues\", initialValues);\n }, initialValuesEqual || shallowEqual);\n useWhenValueChanges(mutators, function () {\n form.setConfig(\"mutators\", mutators);\n });\n useWhenValueChanges(onSubmit, function () {\n form.setConfig(\"onSubmit\", onSubmit);\n });\n useWhenValueChanges(validate, function () {\n form.setConfig(\"validate\", validate);\n });\n useWhenValueChanges(validateOnBlur, function () {\n form.setConfig(\"validateOnBlur\", validateOnBlur);\n });\n\n var handleSubmit = function handleSubmit(event) {\n if (event) {\n // sometimes not true, e.g. React Native\n if (typeof event.preventDefault === \"function\") {\n event.preventDefault();\n }\n\n if (typeof event.stopPropagation === \"function\") {\n // prevent any outer forms from receiving the event too\n event.stopPropagation();\n }\n }\n\n return form.submit();\n };\n\n var renderProps = {\n form: _extends({}, form, {\n reset: function reset(eventOrValues) {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n form.reset();\n } else {\n form.reset(eventOrValues);\n }\n }\n }),\n handleSubmit: handleSubmit\n };\n addLazyFormState(renderProps, state);\n return /*#__PURE__*/React.createElement(ReactFinalFormContext.Provider, {\n value: form\n }, renderComponent(_extends({}, rest, {\n __versions: versions\n }), renderProps, \"ReactFinalForm\"));\n}\n\nfunction useForm(componentName) {\n var form = React.useContext(ReactFinalFormContext);\n\n if (!form) {\n throw new Error((componentName || \"useForm\") + \" must be used inside of a
component\");\n }\n\n return form;\n}\n\nfunction useFormState(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onChange = _ref.onChange,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription;\n\n var form = useForm(\"useFormState\");\n var firstRender = React.useRef(true);\n var onChangeRef = React.useRef(onChange);\n onChangeRef.current = onChange; // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n\n if (onChange) {\n onChange(initialState);\n }\n\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return form.subscribe(function (newState) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(newState);\n\n if (onChangeRef.current) {\n onChangeRef.current(newState);\n }\n }\n }, subscription);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n var lazyState = {};\n addLazyFormState(lazyState, state);\n return lazyState;\n}\n\nvar _excluded$1 = [\"onChange\", \"subscription\"];\n\nfunction FormSpy(_ref) {\n var onChange = _ref.onChange,\n subscription = _ref.subscription,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var reactFinalForm = useForm(\"FormSpy\");\n var state = useFormState({\n onChange: onChange,\n subscription: subscription\n });\n\n if (onChange) {\n return null;\n }\n\n var renderProps = {\n form: _extends({}, reactFinalForm, {\n reset: function reset(eventOrValues) {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n reactFinalForm.reset();\n } else {\n reactFinalForm.reset(eventOrValues);\n }\n }\n })\n };\n return renderComponent(_extends({}, rest, renderProps), state, \"FormSpy\");\n}\n\nvar isReactNative = typeof window !== \"undefined\" && window.navigator && window.navigator.product && window.navigator.product === \"ReactNative\";\n\nvar getSelectedValues = function getSelectedValues(options) {\n var result = [];\n\n if (options) {\n for (var index = 0; index < options.length; index++) {\n var option = options[index];\n\n if (option.selected) {\n result.push(option.value);\n }\n }\n }\n\n return result;\n};\n\nvar getValue = function getValue(event, currentValue, valueProp, isReactNative) {\n if (!isReactNative && event.nativeEvent && event.nativeEvent.text !== undefined) {\n return event.nativeEvent.text;\n }\n\n if (isReactNative && event.nativeEvent) {\n return event.nativeEvent.text;\n }\n\n var detypedEvent = event;\n var _detypedEvent$target = detypedEvent.target,\n type = _detypedEvent$target.type,\n value = _detypedEvent$target.value,\n checked = _detypedEvent$target.checked;\n\n switch (type) {\n case \"checkbox\":\n if (valueProp !== undefined) {\n // we are maintaining an array, not just a boolean\n if (checked) {\n // add value to current array value\n return Array.isArray(currentValue) ? currentValue.concat(valueProp) : [valueProp];\n } else {\n // remove value from current array value\n if (!Array.isArray(currentValue)) {\n return currentValue;\n }\n\n var index = currentValue.indexOf(valueProp);\n\n if (index < 0) {\n return currentValue;\n } else {\n return currentValue.slice(0, index).concat(currentValue.slice(index + 1));\n }\n }\n } else {\n // it's just a boolean\n return !!checked;\n }\n\n case \"select-multiple\":\n return getSelectedValues(event.target.options);\n\n default:\n return value;\n }\n};\n\n/**\n * Creates a callback, even with closures, that will be\n * instance === for the lifetime of the component, always\n * calling the most recent version of the function and its\n * closures.\n */\n\nfunction useConstantCallback(callback) {\n var ref = React.useRef(callback);\n React.useEffect(function () {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(null, args);\n }, []);\n}\n\nvar all = fieldSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nvar defaultFormat = function defaultFormat(value, name) {\n return value === undefined ? \"\" : value;\n};\n\nvar defaultParse = function defaultParse(value, name) {\n return value === \"\" ? undefined : value;\n};\n\nvar defaultIsEqual = function defaultIsEqual(a, b) {\n return a === b;\n};\n\nfunction useField(name, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _config = config,\n afterSubmit = _config.afterSubmit,\n allowNull = _config.allowNull,\n component = _config.component,\n data = _config.data,\n defaultValue = _config.defaultValue,\n _config$format = _config.format,\n format = _config$format === void 0 ? defaultFormat : _config$format,\n formatOnBlur = _config.formatOnBlur,\n initialValue = _config.initialValue,\n multiple = _config.multiple,\n _config$parse = _config.parse,\n parse = _config$parse === void 0 ? defaultParse : _config$parse,\n _config$subscription = _config.subscription,\n subscription = _config$subscription === void 0 ? all : _config$subscription,\n type = _config.type,\n validateFields = _config.validateFields,\n _value = _config.value;\n var form = useForm(\"useField\");\n var configRef = useLatest(config);\n\n var register = function register(callback, silent) {\n return (// avoid using `state` const in any closures created inside `register`\n // because they would refer `state` from current execution context\n // whereas actual `state` would defined in the subsequent `useField` hook\n // execution\n // (that would be caused by `setState` call performed in `register` callback)\n form.registerField(name, callback, subscription, {\n afterSubmit: afterSubmit,\n beforeSubmit: function beforeSubmit() {\n var _configRef$current = configRef.current,\n beforeSubmit = _configRef$current.beforeSubmit,\n formatOnBlur = _configRef$current.formatOnBlur,\n _configRef$current$fo = _configRef$current.format,\n format = _configRef$current$fo === void 0 ? defaultFormat : _configRef$current$fo;\n\n if (formatOnBlur) {\n var _ref = form.getFieldState(name),\n value = _ref.value;\n\n var formatted = format(value, name);\n\n if (formatted !== value) {\n form.change(name, formatted);\n }\n }\n\n return beforeSubmit && beforeSubmit();\n },\n data: data,\n defaultValue: defaultValue,\n getValidator: function getValidator() {\n return configRef.current.validate;\n },\n initialValue: initialValue,\n isEqual: function isEqual(a, b) {\n return (configRef.current.isEqual || defaultIsEqual)(a, b);\n },\n silent: silent,\n validateFields: validateFields\n })\n );\n };\n\n var firstRender = React.useRef(true); // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {}; // temporarily disable destroyOnUnregister\n\n // temporarily disable destroyOnUnregister\n var destroyOnUnregister = form.destroyOnUnregister;\n form.destroyOnUnregister = false;\n register(function (state) {\n initialState = state;\n }, true)(); // return destroyOnUnregister to its original value\n\n // return destroyOnUnregister to its original value\n form.destroyOnUnregister = destroyOnUnregister;\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return register(function (state) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(state);\n }\n }, false);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [name, data, defaultValue, // If we want to allow inline fat-arrow field-level validation functions, we\n // cannot reregister field every time validate function !==.\n // validate,\n initialValue // The validateFields array is often passed as validateFields={[]}, creating\n // a !== new array every time. If it needs to be changed, a rerender/reregister\n // can be forced by changing the key prop\n // validateFields\n ]);\n var meta = {};\n addLazyFieldMetaState(meta, state);\n var input = {\n name: name,\n\n get value() {\n var value = state.value;\n\n if (formatOnBlur) {\n if (component === \"input\") {\n value = defaultFormat(value);\n }\n } else {\n value = format(value, name);\n }\n\n if (value === null && !allowNull) {\n value = \"\";\n }\n\n if (type === \"checkbox\" || type === \"radio\") {\n return _value;\n } else if (component === \"select\" && multiple) {\n return value || [];\n }\n\n return value;\n },\n\n get checked() {\n var value = state.value;\n\n if (type === \"checkbox\") {\n value = format(value, name);\n\n if (_value === undefined) {\n return !!value;\n } else {\n return !!(Array.isArray(value) && ~value.indexOf(_value));\n }\n } else if (type === \"radio\") {\n return format(value, name) === _value;\n }\n\n return undefined;\n },\n\n onBlur: useConstantCallback(function (event) {\n state.blur();\n\n if (formatOnBlur) {\n /**\n * Here we must fetch the value directly from Final Form because we cannot\n * trust that our `state` closure has the most recent value. This is a problem\n * if-and-only-if the library consumer has called `onChange()` immediately\n * before calling `onBlur()`, but before the field has had a chance to receive\n * the value update from Final Form.\n */\n var fieldState = form.getFieldState(state.name);\n state.change(format(fieldState.value, state.name));\n }\n }),\n onChange: useConstantCallback(function (event) {\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\" && event && event.target) {\n var targetType = event.target.type;\n var unknown = ~[\"checkbox\", \"radio\", \"select-multiple\"].indexOf(targetType) && !type && component !== \"select\";\n\n var _value2 = targetType === \"select-multiple\" ? state.value : _value;\n\n if (unknown) {\n console.error(\"You must pass `type=\\\"\" + (targetType === \"select-multiple\" ? \"select\" : targetType) + \"\\\"` prop to your Field(\" + name + \") component.\\n\" + (\"Without it we don't know how to unpack your `value` prop - \" + (Array.isArray(_value2) ? \"[\" + _value2 + \"]\" : \"\\\"\" + _value2 + \"\\\"\") + \".\"));\n }\n }\n\n var value = event && event.target ? getValue(event, state.value, _value, isReactNative) : event;\n state.change(parse(value, name));\n }),\n onFocus: useConstantCallback(function (event) {\n return state.focus();\n })\n };\n\n if (multiple) {\n input.multiple = multiple;\n }\n\n if (type !== undefined) {\n input.type = type;\n }\n\n var renderProps = {\n input: input,\n meta: meta\n }; // assign to force Flow check\n\n return renderProps;\n}\n\nvar _excluded = [\"afterSubmit\", \"allowNull\", \"beforeSubmit\", \"children\", \"component\", \"data\", \"defaultValue\", \"format\", \"formatOnBlur\", \"initialValue\", \"isEqual\", \"multiple\", \"name\", \"parse\", \"subscription\", \"type\", \"validate\", \"validateFields\", \"value\"];\nvar Field = /*#__PURE__*/React.forwardRef(function Field(_ref, ref) {\n var afterSubmit = _ref.afterSubmit,\n allowNull = _ref.allowNull,\n beforeSubmit = _ref.beforeSubmit,\n children = _ref.children,\n component = _ref.component,\n data = _ref.data,\n defaultValue = _ref.defaultValue,\n format = _ref.format,\n formatOnBlur = _ref.formatOnBlur,\n initialValue = _ref.initialValue,\n isEqual = _ref.isEqual,\n multiple = _ref.multiple,\n name = _ref.name,\n parse = _ref.parse,\n subscription = _ref.subscription,\n type = _ref.type,\n validate = _ref.validate,\n validateFields = _ref.validateFields,\n value = _ref.value,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var field = useField(name, {\n afterSubmit: afterSubmit,\n allowNull: allowNull,\n beforeSubmit: beforeSubmit,\n children: children,\n component: component,\n data: data,\n defaultValue: defaultValue,\n format: format,\n formatOnBlur: formatOnBlur,\n initialValue: initialValue,\n isEqual: isEqual,\n multiple: multiple,\n parse: parse,\n subscription: subscription,\n type: type,\n validate: validate,\n validateFields: validateFields,\n value: value\n });\n\n if (typeof children === \"function\") {\n return children(_extends({}, field, rest));\n }\n\n if (typeof component === \"string\") {\n // ignore meta, combine input with any other props\n return /*#__PURE__*/React.createElement(component, _extends({}, field.input, {\n children: children,\n ref: ref\n }, rest));\n }\n\n if (!name) {\n throw new Error(\"prop name cannot be undefined in component\");\n }\n\n return renderComponent(_extends({\n children: children,\n component: component,\n ref: ref\n }, rest), field, \"Field(\" + name + \")\");\n});\n\nfunction withTypes() {\n return {\n Form: ReactFinalForm,\n FormSpy: FormSpy\n };\n}\n\nexport { Field, ReactFinalForm as Form, FormSpy, useField, useForm, useFormState, version, withTypes };\n","import React, { useCallback, useMemo } from \"react\";\n\nimport {\n ConnectionType,\n post,\n Provider,\n put,\n Quote,\n QuotesCreateRequest,\n useApiResources,\n} from \"@meterup/api\";\nimport { Button } from \"@meterup/metric\";\nimport { Select, Textarea, TextInput, validation } from \"@meterup/ui\";\nimport { Field, Form } from \"react-final-form\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { route } from \"../routing\";\n\ninterface QuoteFormProps {\n quoteRequestSid: string;\n quote?: Quote;\n initialValues?: QuotesCreateRequest;\n}\n\nconst riserResponsibilityItems = [\n {\n label: \"Provider\",\n value: \"provider_responsibility\",\n },\n {\n label: \"Customer\",\n value: \"customer_responsibility\",\n },\n];\n\nexport default function QuoteForm({\n quoteRequestSid,\n quote,\n initialValues: propsInitialValues,\n}: QuoteFormProps) {\n const navigate = useNavigate();\n\n const [providersLoading, providers] = useApiResources(\"providers\", \"providers\");\n\n const [connectionTypesLoading, connectionTypes] = useApiResources(\n \"connectionTypes\",\n \"admin/connection-types\",\n );\n\n const providerItems = useMemo(\n () =>\n (providers as Provider[]).map(({ sid, name }: Provider) => ({\n value: sid,\n label: name,\n })),\n [providers],\n );\n\n const connectionTypeItems = useMemo(\n () =>\n (connectionTypes as ConnectionType[]).map(({ sid, name }: ConnectionType) => ({\n value: sid,\n label: name,\n })),\n [connectionTypes],\n );\n\n const handleSubmit = useCallback(\n async (values: any) => {\n const formattedValues = {\n ...values,\n monthlyFeeCents: Math.round(values.monthlyFeeCents * 100),\n installFeeCents: Math.round(values.installFeeCents * 100),\n downloadKbps: Number(values.downloadKbps * 1024).toFixed(0),\n uploadKbps: Number(values.uploadKbps * 1024).toFixed(0),\n };\n\n if (quote) {\n if (quote.status === \"requested\") {\n formattedValues.status = \"disabled\"; // Once the admin updates the quote, it puts it out of the requested state\n }\n await put(`admin/quote-requests/${quoteRequestSid}/quotes/${quote.sid}`, formattedValues);\n } else {\n await post(`admin/quote-requests/${quoteRequestSid}/quotes`, formattedValues);\n }\n\n navigate(route(\"quoteRequest\", { sid: quoteRequestSid }));\n },\n [navigate, quote, quoteRequestSid],\n );\n\n const initialValues = useMemo(() => {\n let init: any = quote;\n if (!init) {\n init = propsInitialValues;\n }\n\n return init\n ? {\n provider: init.provider?.sid || init.provider,\n connectionType: init.connectionType?.sid || init.connectionType,\n monthlyFeeCents: init.monthlyFeeCents / 100,\n installFeeCents: init.installFeeCents / 100,\n contractLengthMonths: init.contractLengthMonths,\n downloadKbps: init.downloadKbps / 1024,\n uploadKbps: init.uploadKbps / 1024,\n installationEstimateDays: init.installationEstimateDays,\n riserResponsibility: init.riserResponsibility,\n notes: init.notes,\n }\n : {};\n }, [quote, propsInitialValues]);\n\n return (\n \n initialValues={initialValues}\n onSubmit={handleSubmit}\n render={({ handleSubmit, submitting, valid }) => (\n \n
\n \n\n \n render={(props) => (\n }\n name=\"riserResponsibility\"\n id=\"riserResponsibility\"\n size=\"x-large\"\n placeholder=\"Select Riser Responsibility\"\n />\n
\n\n
\n \n\n component={Textarea} name=\"notes\" id=\"notes\" size=\"x-large\" />\n
\n\n
\n

\n \n

\n
\n \n )}\n />\n );\n}\n","import React from \"react\";\n\nimport { QuoteRequest as QuoteRequestApi, useApiResource } from \"@meterup/api\";\nimport { Icon } from \"@meterup/metric\";\nimport { Link, useLocation, useParams } from \"react-router-dom\";\n\nimport Layout from \"../components/Layout\";\nimport QuoteForm from \"../components/QuoteForm\";\nimport { route } from \"../routing\";\nimport { CopyToNewQuoteRequestLocationState } from \"../types\";\n\ninterface NewQuoteProps {}\n\nconst NewQuote: React.FunctionComponent = () => {\n const { sid } = useParams<{\n sid: string;\n }>();\n const location = useLocation();\n const [, quoteRequest] = useApiResource(\n `admin/quote-requests/${sid}`,\n undefined,\n true,\n );\n\n // if we call useLocalStorage twice, we can write to one without nuking the\n // value of the other on rerender\n const labelText = [\n quoteRequest?.companyName,\n quoteRequest?.location?.address?.address1,\n quoteRequest?.location?.address?.city,\n ]\n .filter((x) => !!x)\n .map((x) => x!.substring(0, 10))\n .join(\" - \");\n\n return (\n \n
\n

\n \n Back\n \n

\n\n

New Quote for {labelText}

\n \n
\n
\n );\n};\n\nexport default NewQuote;\n","'use client';\nimport React from 'react';\n\n/**\n * @internal\n */\nconst SkeletonThemeContext = React.createContext({});\n\n/* eslint-disable react/no-array-index-key */\nconst defaultEnableAnimation = true;\n// For performance & cleanliness, don't add any inline styles unless we have to\nfunction styleOptionsToCssProperties({ baseColor, highlightColor, width, height, borderRadius, circle, direction, duration, enableAnimation = defaultEnableAnimation, }) {\n const style = {};\n if (direction === 'rtl')\n style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number')\n style['--animation-duration'] = `${duration}s`;\n if (!enableAnimation)\n style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number')\n style.width = width;\n if (typeof height === 'string' || typeof height === 'number')\n style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number')\n style.borderRadius = borderRadius;\n if (circle)\n style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined')\n style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined')\n style['--highlight-color'] = highlightColor;\n return style;\n}\nfunction Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, containerClassName, containerTestId, circle = false, style: styleProp, ...originalPropsStyleOptions }) {\n var _a, _b, _c;\n const contextStyleOptions = React.useContext(SkeletonThemeContext);\n const propsStyleOptions = { ...originalPropsStyleOptions };\n // DO NOT overwrite style options from the context if `propsStyleOptions`\n // has properties explicity set to undefined\n for (const [key, value] of Object.entries(originalPropsStyleOptions)) {\n if (typeof value === 'undefined') {\n delete propsStyleOptions[key];\n }\n }\n // Props take priority over context\n const styleOptions = {\n ...contextStyleOptions,\n ...propsStyleOptions,\n circle,\n };\n // `styleProp` has the least priority out of everything\n const style = {\n ...styleProp,\n ...styleOptionsToCssProperties(styleOptions),\n };\n let className = 'react-loading-skeleton';\n if (customClassName)\n className += ` ${customClassName}`;\n const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n const elements = [];\n const countCeil = Math.ceil(count);\n for (let i = 0; i < countCeil; i++) {\n let thisStyle = style;\n if (countCeil > count && i === countCeil - 1) {\n // count is not an integer and we've reached the last iteration of\n // the loop, so add a \"fractional\" skeleton.\n //\n // For example, if count is 3.5, we've already added 3 full\n // skeletons, so now we add one more skeleton that is 0.5 times the\n // original width.\n const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS\n const fractionalPart = count % 1;\n const fractionalWidth = typeof width === 'number'\n ? width * fractionalPart\n : `calc(${width} * ${fractionalPart})`;\n thisStyle = { ...thisStyle, width: fractionalWidth };\n }\n const skeletonSpan = (React.createElement(\"span\", { className: className, style: thisStyle, key: i }, \"\\u200C\"));\n if (inline) {\n elements.push(skeletonSpan);\n }\n else {\n // Without the
, the skeleton lines will all run together if\n // `width` is specified\n elements.push(React.createElement(React.Fragment, { key: i },\n skeletonSpan,\n React.createElement(\"br\", null)));\n }\n }\n return (React.createElement(\"span\", { className: containerClassName, \"data-testid\": containerTestId, \"aria-live\": \"polite\", \"aria-busy\": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation }, Wrapper\n ? elements.map((el, i) => React.createElement(Wrapper, { key: i }, el))\n : elements));\n}\n\nfunction SkeletonTheme({ children, ...styleOptions }) {\n return (React.createElement(SkeletonThemeContext.Provider, { value: styleOptions }, children));\n}\n\nexport { SkeletonTheme, Skeleton as default };\n","import React, { useMemo } from \"react\";\n\nimport { useApiResources } from \"@meterup/api\";\nimport { Icon } from \"@meterup/metric\";\nimport Skeleton from \"react-loading-skeleton\";\nimport { useNavigate, useParams } from \"react-router-dom\";\n\nimport Layout from \"../components/Layout\";\nimport QuoteForm from \"../components/QuoteForm\";\n\nexport default function EditQuote() {\n const { quoteRequestSid, sid } = useParams<{\n quoteRequestSid: string;\n sid: string;\n }>();\n\n const [loading, quotes] = useApiResources(\"quotes\", `quote-requests/${quoteRequestSid}/quotes`);\n\n const quote = useMemo(() => quotes.find((quote) => quote.sid === sid), [quotes, sid]);\n const navigate = useNavigate();\n\n return (\n \n
\n \n );\n}\n","/* eslint-disable react/display-name */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { useCallback, useMemo, useState } from \"react\";\n\nimport { httpDelete, Provider, useApiResources } from \"@meterup/api\";\nimport { Button } from \"@meterup/metric\";\nimport { ProviderLogo, Table, useFlashMessage, useModal } from \"@meterup/ui\";\nimport Skeleton from \"react-loading-skeleton\";\nimport { Link } from \"react-router-dom\";\n\nimport { route } from \"../../../routing\";\nimport { CellTypeBase } from \"../../QuoteRequest/types\";\n\ntype CellType = CellTypeBase;\n\nexport default function ProvidersTable() {\n const [providersLoading, providers, reloadProviders] = useApiResources(\"providers\", \"providers\");\n\n const [rowLoading, hookSetRowLoading] = useState();\n const setRowLoading = useCallback(\n (sid: string) => (loading: boolean) => hookSetRowLoading(loading ? sid : undefined),\n [],\n );\n\n const flashMessage = useFlashMessage({\n type: \"success\",\n message: \"Successfully deleted provider.\",\n });\n\n const onConfirm = useCallback(async (sid: string) => {\n await httpDelete(`providers/${sid}`, setRowLoading(sid));\n await reloadProviders();\n flashMessage();\n onHideModal();\n }, []);\n\n const { onShowModal, onHideModal } = useModal({\n type: \"warning\",\n title: \"Are you sure?\",\n message: \"Are you sure you'd like to delete this provider? This action is not reversible!\",\n confirmText: \"Delete Provider\",\n onConfirm,\n showCancel: true,\n });\n\n const providersColumns = useMemo(\n () => [\n {\n header: \"Provider name\",\n accessorKey: \"name\",\n },\n {\n header: \"Logo path\",\n id: \"logo\",\n disableSortBy: true,\n cell: ({\n row: {\n original: { path, name },\n },\n }: CellType) => (\n
\n {path && }\n {!path && Missing}\n
\n ),\n },\n {\n header: \"\",\n id: \"edit\",\n disableSortBy: true,\n cell: ({\n row: {\n original: { sid },\n },\n }: CellType) => (\n

\n Edit\n

\n ),\n },\n {\n header: \"\",\n id: \"delete\",\n disableSortBy: true,\n cell: ({\n row: {\n original: { sid },\n },\n }: CellType) => (\n

\n {\n onShowModal(sid);\n }}>\n Delete\n \n

\n ),\n },\n ],\n [],\n );\n\n if (providersLoading) {\n return ;\n }\n\n return ;\n}\n","import React, { useMemo } from \"react\";\nimport Layout from \"../components/Layout\";\nimport { Link } from \"@meterup/metric\";\nimport ProvidersTable from \"../components/Providers/ProvidersTable/ProvidersTable\";\nimport { useRouter } from \"@meterup/ui\";\nimport { route } from \"../routing\";\n\ninterface ProvidersProps {}\n\nconst Providers: React.FunctionComponent = () => {\n const { handleOnClick } = useRouter();\n // TODO: This format of Title + content will probably be re-used, perhaps move\n // within or a separate \n return (\n \n
\n
\n

\n Providers\n · \n \n Add a provider\n \n

\n
\n
\n \n
\n
\n
\n );\n};\n\nexport default Providers;\n","import React, { useCallback, useState, useMemo } from \"react\";\nimport { Form, Field, FormSpy } from \"react-final-form\";\nimport { post, Provider, ProviderCreateRequest } from \"@meterup/api\";\nimport { TextInput, validation, ProviderLogo } from \"@meterup/ui\";\nimport { Button, Link } from \"@meterup/metric\";\nimport { useNavigate } from \"react-router-dom\";\nimport { route } from \"../../../routing\";\n\ninterface ProviderFormProps {\n provider?: Provider;\n initialValues?: ProviderCreateRequest;\n}\n\nconst ProviderForm: React.FunctionComponent = ({\n provider,\n initialValues: propsInitialValues,\n}) => {\n const navigate = useNavigate();\n const [logoPath, setLogoPath] = useState(provider?.path || propsInitialValues?.path || \"\");\n\n const handleSubmit = useCallback(\n async (values: any) => {\n const formattedValues = { ...values };\n if (provider) {\n await post(`providers/${provider.sid}`, formattedValues);\n } else {\n await post(\"providers\", formattedValues);\n }\n\n navigate(route(\"providers\"));\n },\n [provider],\n );\n\n const initialValues = useMemo(() => {\n let init: any = provider;\n\n if (!init) {\n init = propsInitialValues;\n }\n\n return init\n ? {\n name: init.name,\n path: init.path,\n }\n : {};\n }, [provider, propsInitialValues]);\n\n const onChange = useCallback(\n ({ values }) => {\n setLogoPath(values.path);\n },\n [propsInitialValues],\n );\n\n return (\n \n initialValues={initialValues}\n onSubmit={handleSubmit}\n render={({ handleSubmit, submitting, valid }) => (\n
\n \n
\n \n\n \n component={TextInput}\n size=\"x-large\"\n name=\"name\"\n id=\"name\"\n validate={validation.required}\n />\n
\n
\n \n\n component={TextInput} size=\"x-large\" name=\"path\" id=\"path\" />\n

\n {logoPath && }\n

\n
\n

\n The path should be a path to a URL hosted at public.meter.com, for example{\" \"}\n /providers/Sonic.png. You can add logos to the{\" \"}\n \n public assets repo\n \n .\n

\n
\n

\n \n

\n
\n \n )}\n />\n );\n};\n\nexport default ProviderForm;\n","import React from \"react\";\nimport Layout from \"../../components/Layout\";\nimport ProviderForm from \"../../components/Providers/ProviderForm/ProviderForm\";\nimport { Link } from \"@meterup/metric\";\nimport { useRouter } from \"@meterup/ui\";\nimport { route } from \"../../routing\";\n\ninterface NewProviderProps {}\n\nconst NewProvider: React.FunctionComponent = () => {\n const { handleOnClick } = useRouter();\n const newProvider = { name: \"\", path: \"\" };\n return (\n \n
\n
\n

\n \n Providers\n \n / \n New\n

\n
\n
\n \n
\n
\n
\n );\n};\n\nexport default NewProvider;\n","import React from \"react\";\nimport { useApiResource, Provider } from \"@meterup/api\";\nimport { useParams } from \"react-router-dom\";\nimport Layout from \"../../components/Layout\";\nimport ProviderForm from \"../../components/Providers/ProviderForm/ProviderForm\";\nimport { Link } from \"@meterup/metric\";\nimport { useRouter } from \"@meterup/ui\";\nimport { route } from \"../../routing\";\n\ninterface EditProviderProps {}\n\nconst EditProvider: React.FunctionComponent = () => {\n const { handleOnClick } = useRouter();\n\n const { sid } = useParams<{\n sid: string;\n }>();\n\n const [loading, provider] = useApiResource(`providers/${sid}`);\n\n return (\n \n
\n
\n

\n \n Providers\n \n / \n Edit {provider?.name}\n

\n
\n
\n {!loading && }\n
\n
\n
\n );\n};\n\nexport default EditProvider;\n","import React, { useCallback, useMemo } from \"react\";\n\nimport {\n httpDeleteWithData,\n LocationProviderAvailabilityDeleteRequest,\n post,\n Provider,\n ProviderAvailability,\n} from \"@meterup/api\";\nimport { BasicSelect, BasicSelectItem, Button, Icon } from \"@meterup/metric\";\n\ninterface ProvidersAvailabilitySectionProps {\n providers: Provider[];\n providersAvailable: Provider[];\n availability: string;\n locationSid: string;\n reloadLocation: () => Promise;\n}\n\nexport default function ProvidersAvailabilitySection({\n providers,\n providersAvailable,\n availability,\n locationSid,\n reloadLocation,\n}: ProvidersAvailabilitySectionProps) {\n const providersDropdown = useMemo(\n () =>\n providersAvailable.map((provider: Provider) => ({\n value: provider.sid,\n label: provider.name,\n })),\n [providersAvailable],\n );\n\n const selectOnChange = useCallback(\n (providerSID: string) => {\n post(`admin/location-provider-availabilities`, {\n locationSid,\n providerSid: providerSID,\n availability,\n }).then(() => {\n reloadLocation();\n });\n },\n [availability, locationSid, reloadLocation],\n );\n\n const removeOnClick = useCallback(\n (providerSid: string) => {\n httpDeleteWithData(\n `admin/location-provider-availabilities`,\n {\n locationSid,\n providerSid,\n },\n ).then(() => {\n reloadLocation();\n });\n },\n [locationSid, reloadLocation],\n );\n\n return (\n
\n \n \n Select a provider\n \n {providersDropdown.map((provider) => (\n \n {provider.label}\n \n ))}\n \n
    \n {providers.map((provider: Provider) => (\n
  • \n \n
  • \n ))}\n
\n
\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport { Provider, useApiResource, useApiResources } from \"@meterup/api\";\nimport { Badge } from \"@meterup/metric\";\n\nimport ProvidersAvailabilitySection from \"./ProvidersAvailabilitySection\";\n\ninterface ProvidersAvailabilityProps {\n locationSid: string;\n}\n\nexport default function ProvidersAvailability({ locationSid }: ProvidersAvailabilityProps) {\n const [locationLoading, location, reloadLocation] = useApiResource(\n `admin/location-provider-availabilities/locations/${locationSid}`,\n );\n\n const [providersLoading, providers, reloadProviders] = useApiResources(\"providers\", \"providers\");\n\n const getProvidersBySids = (\n location: any,\n availability: \"location_on_net\" | \"location_near_net\" | \"location_off_net\",\n providers: Provider[],\n ) => {\n const providerSids = location.providerAvailabilities.reduce(\n (sids: string[], providerAvailability: any) => {\n if (providerAvailability.availability == availability) {\n sids.push(providerAvailability.providerSid);\n }\n return sids;\n },\n [],\n );\n\n return providers.filter((provider) => providerSids.includes(provider.sid));\n };\n\n const getAllAvailableProviders = (location: any, providers: Provider[]) => {\n const providerSids = location.providerAvailabilities.map(\n (providerAvailability: any) => providerAvailability.providerSid,\n );\n\n return providers.filter((provider) => !providerSids.includes(provider.sid));\n };\n\n // Providers filtered by availability\n const providersOnNet = useMemo(() => {\n if (providersLoading || locationLoading || !providers || !location) {\n return [];\n }\n return getProvidersBySids(location, \"location_on_net\", providers);\n }, [providersLoading, providers, locationLoading, location]);\n\n const providersNearNet = useMemo(() => {\n if (providersLoading || locationLoading || !providers || !location) {\n return [];\n }\n return getProvidersBySids(location, \"location_near_net\", providers);\n }, [providersLoading, providers, locationLoading, location]);\n\n const providersOffNet = useMemo(() => {\n if (providersLoading || locationLoading || !providers || !location) {\n return [];\n }\n return getProvidersBySids(location, \"location_off_net\", providers);\n }, [providersLoading, providers, locationLoading, location]);\n\n // Providers without a specific set availability\n const providersAvailable = useMemo(() => {\n if (providersLoading || locationLoading || !providers || !location) {\n return [];\n }\n\n return getAllAvailableProviders(location, providers);\n }, [providersLoading, providers, locationLoading, location]);\n\n if (!reloadLocation || providersLoading || locationLoading || !providers || !location) {\n return null;\n }\n return (\n
\n
\n
\n \n On-net\n \n
\n \n
\n
\n
\n \n Near-net\n \n
\n \n
\n
\n
\n \n Off-net\n \n
\n \n
\n
\n );\n}\n","import { QuoteRequest } from \"@meterup/api\";\n\nexport interface StatusChipProps {\n status: QuoteRequest[\"status\"];\n isManualResponsePending: QuoteRequest[\"isManualResponsePending\"];\n}\n\nexport default function statusToFields({ status, isManualResponsePending }: StatusChipProps) {\n if (status === \"created\") {\n return {\n label: \"Draft\",\n text: \"text-gray-800\",\n bg: \"bg-gray-50\",\n };\n }\n if (status === \"ready_for_review\") {\n if (isManualResponsePending) {\n return { label: \"Manual Quotes Requested\", text: \"text-yellow-900\", bg: \"bg-yellow-100\" };\n }\n return {\n label: \"In Review\",\n text: \"text-blue-800\",\n bg: \"bg-blue-100\",\n };\n }\n if (status === \"contract_requested\") {\n return {\n label: \"Contract Requested\",\n text: \"text-green-800\",\n bg: \"bg-green-100\",\n };\n }\n\n return {\n label: \"Unknown\",\n };\n}\n\nexport function statusToLabel(props: StatusChipProps) {\n return statusToFields(props).label;\n}\n","import React from \"react\";\n\nimport { Icon } from \"@meterup/metric\";\n\nimport statusToFields, { StatusChipProps } from \"./statusToFields\";\n\nexport default function StatusChip({ status, isManualResponsePending }: StatusChipProps) {\n const fields = statusToFields({ status, isManualResponsePending });\n if (fields.text && fields.bg) {\n return (\n \n {status === \"contract_requested\" && }\n {fields.label}\n \n );\n }\n\n return null;\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\n\nimport type { AxiosAPIError, QuoteRequest } from \"@meterup/api\";\nimport { axios, httpDelete, PortalOrigin, put } from \"@meterup/api\";\nimport { getConnectUrl } from \"@meterup/api/src/config\";\nimport { Button, Icon, VStack } from \"@meterup/metric\";\nimport {\n FormattedAddress,\n FormattedDate,\n FormattedMonthlyAmount,\n FormattedSpeed,\n useFlashMessage,\n useModal,\n} from \"@meterup/ui\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { route } from \"../../routing\";\nimport StatusChip from \"../QuoteRequests/StatusChip\";\n\nexport default function QuoteRequestInfo({ quoteRequest }: { quoteRequest: QuoteRequest }) {\n const navigate = useNavigate();\n const [closeLoading, setCloseLoading] = useState(false);\n const [deleteLoading, setDeleteLoading] = useState(false);\n const resetMutation = useMutation(() =>\n axios.put(`v1/connect/admin/quote-requests/${quoteRequest.sid}/reset`, {}),\n );\n const requoteMutation = useMutation(() =>\n axios.put(`v1/connect/admin/quote-requests/${quoteRequest.sid}/requote`, {}),\n );\n\n const flashMessage = useFlashMessage({\n type: \"success\",\n message: \"Successfully deleted search.\",\n });\n\n const toggleStatus = useCallback(\n (\n isManualResponsePendingChanged: boolean,\n isManualResponsePending: QuoteRequest[\"isManualResponsePending\"],\n ) =>\n async () => {\n await put(\n `quote-requests/${quoteRequest.sid}`,\n { isManualResponsePendingChanged, isManualResponsePending },\n setCloseLoading,\n );\n window.location.reload();\n },\n [quoteRequest],\n );\n\n const onConfirm = useCallback(async () => {\n await httpDelete(`admin/quote-requests/${quoteRequest.sid}`, setDeleteLoading);\n flashMessage();\n navigate(route(\"quoteRequests\"));\n }, [flashMessage, navigate, quoteRequest.sid]);\n\n const { onShowModal } = useModal({\n type: \"warning\",\n title: \"Are you sure?\",\n message: \"Are you sure you'd like to delete this search? This action is not reversible!\",\n confirmText: \"Delete Search\",\n onConfirm,\n showCancel: true,\n });\n\n const queryClient = useQueryClient();\n\n const onConfirmReset = useCallback(async () => {\n await resetMutation.mutateAsync();\n await queryClient.invalidateQueries([\"admin\", \"quote-requests\", quoteRequest.sid]);\n await queryClient.invalidateQueries([\"quotes\", quoteRequest.sid]);\n return true;\n }, [queryClient, quoteRequest.sid, resetMutation]);\n const { onShowModal: onShowModalReset } = useModal({\n type: \"warning\",\n title: \"Are you sure?\",\n message: \"Are you sure you'd like to reset this search? This action is not reversible!\",\n confirmText: \"Reset Search\",\n onConfirm: onConfirmReset,\n showCancel: true,\n });\n const onConfirmReQuote = useCallback(async () => {\n await requoteMutation.mutateAsync();\n await queryClient.invalidateQueries([\"admin\", \"quote-requests\", quoteRequest.sid]);\n await queryClient.invalidateQueries([\"quotes\", quoteRequest.sid]);\n return true;\n }, [queryClient, quoteRequest.sid, requoteMutation]);\n const { onShowModal: onShowModalRequote } = useModal({\n type: \"warning\",\n title: \"Are you sure?\",\n message:\n \"Are you sure you'd like to requote this search? This will delete all existing quotes. This action is not reversible!\",\n confirmText: \"Re-quote Search\",\n onConfirm: onConfirmReQuote,\n showCancel: true,\n });\n\n const liveUrl = useMemo(\n () =>\n getConnectUrl(\n window.location,\n PortalOrigin.Connect,\n `/quoteRequests/${quoteRequest.sid}/results`,\n ),\n [quoteRequest.sid],\n );\n\n return (\n
\n
\n
\n
\n

{quoteRequest.companyName}

\n

{quoteRequest.contactName}

\n

{quoteRequest.contactEmail}

\n

\n +1{quoteRequest.contactTelephone}\n

\n \n
\n
\n\n {quoteRequest.location?.address && (\n
\n

\n \n

\n \n
\n )}\n\n
\n

\n \n

\n

\n {quoteRequest.contractMinimumMonths}-month minimum\n
Download: \n
Upload: \n
Install by \n

\n
\n\n {quoteRequest.existingProvider && (\n
\n

\n \n

\n
    \n
  • \n Current provider: \n {quoteRequest.existingProvider.name}\n
  • \n {quoteRequest.existingMonthlyFeeCents && (\n
  • \n Monthly fee: \n \n \n \n
  • \n )}\n {quoteRequest.existingContractEndDate && (\n
  • \n Contract expire on: \n \n
  • \n )}\n
\n
\n )}\n\n {quoteRequest.notes && (\n
\n

\n \n

\n

{quoteRequest.notes.trim()}

\n
\n )}\n\n \n window.open(liveUrl, \"_blank\")}>\n View Customer Search\n \n\n {quoteRequest.status === \"ready_for_review\" && quoteRequest.isManualResponsePending && (\n \n Send Quotes for Review\n \n )}\n \n Delete Request\n \n {quoteRequest.status === \"contract_requested\" ? (\n \n Reset\n \n ) : null}\n \n Re-quote\n \n \n
\n
\n );\n}\n","import React from \"react\";\n\nimport { Quote } from \"@meterup/api\";\nimport { Icon } from \"@meterup/metric\";\nimport { Link } from \"react-router-dom\";\n\nimport { route } from \"../../routing\";\nimport { CopyToNewQuoteRequestLocationState } from \"../../types\";\n\ntype CopyToNewProps = {\n disabled?: boolean;\n quote: Quote;\n quoteRequestSid: string;\n title?: string;\n};\n\nfunction CopyQuoteButton({ disabled, quote, quoteRequestSid, title }: CopyToNewProps) {\n const state: CopyToNewQuoteRequestLocationState = {\n copyToNewQuoteRequest: {\n ...quote,\n provider: quote.provider?.sid || \"\",\n connectionType: quote.connectionType?.sid || \"\",\n },\n };\n return (\n {\n if (disabled) {\n e.preventDefault();\n }\n }}\n to={{\n pathname: route(\"newQuote\", {\n sid: quoteRequestSid,\n }),\n }}\n state={state}\n title={disabled ? \"Select an address to copy to\" : title || \"Copy\"}>\n \n \n );\n}\n\nexport default CopyQuoteButton;\n","import React from \"react\";\n\nimport { components, SingleValueProps } from \"react-select\";\n\nexport default function SingleValue(props: SingleValueProps) {\n const values = props.getValue();\n let label: string | undefined;\n if (values.length > 0) {\n const [value] = values;\n if (Object.hasOwn(value, \"label\")) {\n label = value.label;\n }\n }\n const title = label\n ? {\n title: label,\n \"aria-label\": label,\n \"data-tooltip\": label,\n }\n : {};\n\n return (\n \n {props.children}\n \n );\n}\n","import React, { useState } from \"react\";\n\nimport { Quote, QuoteRequest } from \"@meterup/api\";\nimport { Option } from \"@meterup/metric/dist/components/Select/Select\";\nimport { ClearIndicator } from \"@meterup/ui/src/components/Select/ClearIndicator\";\nimport { DropdownIndicator } from \"@meterup/ui/src/components/Select/DropdownIndicator\";\nimport { useCustomStyles } from \"@meterup/ui/src/components/Select/hooks/useCustomStyles\";\nimport SingleValue from \"@meterup/ui/src/components/Select/SingleValue\";\nimport Select from \"react-select\";\n\nimport CopyQuoteButton from \"./CopyQuoteButton\";\n\ntype CopyQuoteToOtherQuoteRequestProps = {\n addressOptions: Option[];\n quoteRequest: QuoteRequest;\n quote: Quote;\n};\n\nexport default function CopyQuoteToOtherQuoteRequest({\n addressOptions,\n quote,\n quoteRequest,\n}: CopyQuoteToOtherQuoteRequestProps) {\n const [quoteRequestToCopyTo, setQuoteRequestToCopyTo] = useState