awaitly-visualizer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.browser.cjs +1677 -0
  2. package/dist/index.browser.cjs.map +1 -0
  3. package/dist/index.browser.d.cts +166 -0
  4. package/dist/index.browser.d.ts +166 -0
  5. package/dist/index.browser.js +1677 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.cjs +1680 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.cts +242 -0
  10. package/dist/index.d.ts +242 -0
  11. package/dist/index.js +1680 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/kroki/fetch.cjs +3 -0
  14. package/dist/kroki/fetch.cjs.map +1 -0
  15. package/dist/kroki/fetch.d.cts +86 -0
  16. package/dist/kroki/fetch.d.ts +86 -0
  17. package/dist/kroki/fetch.js +3 -0
  18. package/dist/kroki/fetch.js.map +1 -0
  19. package/dist/notifiers/discord.cjs +3 -0
  20. package/dist/notifiers/discord.cjs.map +1 -0
  21. package/dist/notifiers/discord.d.cts +70 -0
  22. package/dist/notifiers/discord.d.ts +70 -0
  23. package/dist/notifiers/discord.js +3 -0
  24. package/dist/notifiers/discord.js.map +1 -0
  25. package/dist/notifiers/slack.cjs +38 -0
  26. package/dist/notifiers/slack.cjs.map +1 -0
  27. package/dist/notifiers/slack.d.cts +95 -0
  28. package/dist/notifiers/slack.d.ts +95 -0
  29. package/dist/notifiers/slack.js +38 -0
  30. package/dist/notifiers/slack.js.map +1 -0
  31. package/dist/notifiers/webhook.cjs +3 -0
  32. package/dist/notifiers/webhook.cjs.map +1 -0
  33. package/dist/notifiers/webhook.d.cts +115 -0
  34. package/dist/notifiers/webhook.d.ts +115 -0
  35. package/dist/notifiers/webhook.js +3 -0
  36. package/dist/notifiers/webhook.js.map +1 -0
  37. package/dist/performance-analyzer-B5VF5b1F.d.ts +663 -0
  38. package/dist/performance-analyzer-BNwE4AiO.d.cts +663 -0
  39. package/dist/types-BIZSmXif.d.ts +350 -0
  40. package/dist/types-BnWc9Wlr.d.cts +350 -0
  41. package/dist/url-PkfQz4V5.d.cts +750 -0
  42. package/dist/url-PkfQz4V5.d.ts +750 -0
  43. package/package.json +105 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/errors.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/package.json","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/instrument.ts","../../../../node_modules/.pnpm/@slack+logger@4.0.0/node_modules/@slack/logger/src/index.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/logger.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/retry-policies.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/dist/types/request/index.js","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/dist/types/response/index.js","../../../../node_modules/.pnpm/delayed-stream@1.0.0/node_modules/delayed-stream/lib/delayed_stream.js","../../../../node_modules/.pnpm/combined-stream@1.0.8/node_modules/combined-stream/lib/combined_stream.js","../../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json","../../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js","../../../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/defer.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/async.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/abort.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/iterate.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/state.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/lib/terminator.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/parallel.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serialOrdered.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/serial.js","../../../../node_modules/.pnpm/asynckit@0.4.0/node_modules/asynckit/index.js","../../../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","../../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js","../../../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js","../../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js","../../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js","../../../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","../../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js","../../../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js","../../../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js","../../../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js","../../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","../../../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js","../../../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js","../../../../node_modules/.pnpm/es-set-tostringtag@2.1.0/node_modules/es-set-tostringtag/index.js","../../../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/populate.js","../../../../node_modules/.pnpm/form-data@4.0.5/node_modules/form-data/lib/form_data.js","../../../../node_modules/.pnpm/proxy-from-env@1.1.0/node_modules/proxy-from-env/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/debug.js","../../../../node_modules/.pnpm/follow-redirects@1.15.11/node_modules/follow-redirects/index.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/bind.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/utils.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/AxiosError.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/toFormData.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/buildURL.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/InterceptorManager.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/defaults/transitional.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/platform/node/classes/URLSearchParams.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/platform/node/index.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/platform/common/utils.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/platform/index.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/formDataToJSON.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/defaults/index.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/parseHeaders.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/AxiosHeaders.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/transformData.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/cancel/isCancel.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/cancel/CanceledError.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/settle.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/combineURLs.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/buildFullPath.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/env/data.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/parseProtocol.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/fromDataURI.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/AxiosTransformStream.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/readBlob.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/formDataToStream.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/callbackify.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/speedometer.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/throttle.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/progressEventReducer.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/adapters/http.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/cookies.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/mergeConfig.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/resolveConfig.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/adapters/xhr.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/composeSignals.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/trackStream.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/adapters/fetch.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/adapters/adapters.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/dispatchRequest.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/validator.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/core/Axios.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/cancel/CancelToken.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/spread.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/isAxiosError.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../../node_modules/.pnpm/axios@1.13.4/node_modules/axios/lib/axios.js","../../../../node_modules/.pnpm/is-electron@2.2.2/node_modules/is-electron/index.js","../../../../node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js","../../../../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js","../../../../node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.js","../../../../node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.js","../../../../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.js","../../../../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.js","../../../../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry.js","../../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/index.js","../../../../node_modules/.pnpm/p-retry@4.6.2/node_modules/p-retry/index.js","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/chat-stream.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/file-upload.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/helpers.ts","../../../../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/block-kit/blocks.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/block-kit/extensions.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/dialog.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/app.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/assistant.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/call.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/channel.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/dnd.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/email.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/emoji.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/function.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/grid-migration.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/group.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/im.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/invite.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/link-shared.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/member.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/message.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/message-metadata.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/pin.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/reaction.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/shared-channel.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/star.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/steps-from-apps.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/subteam.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/team.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/token.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/events/user.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/src/events/index.ts","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/message-attachments.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/src/message-metadata.ts","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/dist/views.js","../../../../node_modules/.pnpm/@slack+types@2.19.0/node_modules/@slack/types/src/index.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/methods.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/WebClient.ts","../../../../node_modules/.pnpm/@slack+web-api@7.13.0/node_modules/@slack/web-api/src/index.ts","../../src/notifiers/slack.ts","../../src/notifiers/base.ts","../../src/notifiers/types.ts","../../src/renderers/ascii.ts","../../src/types.ts","../../src/utils/timing.ts","../../src/renderers/colors.ts","../../src/renderers/mermaid.ts","../../src/performance-analyzer.ts","../../src/kroki/encoder.ts","../../src/kroki/url.ts","../../src/kroki/mermaid-ink.ts","../../src/notifiers/context.ts","../../src/live/live-session.ts","../../src/parallel-detector.ts","../../src/ir-builder.ts","../../src/notifiers/adapters/slack.ts"],"sourcesContent":[null,"{\n \"name\": \"@slack/web-api\",\n \"version\": \"7.13.0\",\n \"description\": \"Official library for using the Slack Platform's Web API\",\n \"author\": \"Slack Technologies, LLC\",\n \"license\": \"MIT\",\n \"keywords\": [\n \"slack\",\n \"web-api\",\n \"bot\",\n \"client\",\n \"http\",\n \"api\",\n \"proxy\",\n \"rate-limiting\",\n \"pagination\"\n ],\n \"main\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"dist/**/*\"\n ],\n \"engines\": {\n \"node\": \">= 18\",\n \"npm\": \">= 8.6.0\"\n },\n \"repository\": \"slackapi/node-slack-sdk\",\n \"homepage\": \"https://docs.slack.dev/tools/node-slack-sdk/web-api/\",\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/slackapi/node-slack-sdk/issues\"\n },\n \"scripts\": {\n \"prepare\": \"npm run build\",\n \"build\": \"npm run build:clean && tsc\",\n \"build:clean\": \"shx rm -rf ./dist ./coverage\",\n \"docs\": \"npx typedoc --plugin typedoc-plugin-markdown\",\n \"lint\": \"npx @biomejs/biome check .\",\n \"lint:fix\": \"npx @biomejs/biome check --write .\",\n \"mocha\": \"mocha --config ./test/.mocharc.json \\\"./src/**/*.spec.ts\\\"\",\n \"test\": \"npm run lint && npm run test:types && npm run test:integration && npm run test:unit\",\n \"test:integration\": \"npm run build && node test/integration/commonjs-project/index.js && node test/integration/esm-project/index.mjs && npm run test:integration:ts\",\n \"test:integration:ts\": \"cd test/integration/ts-4.7-project && npm i && npm run build\",\n \"test:unit\": \"npm run build && c8 --config ./test/.c8rc.json npm run mocha\",\n \"test:types\": \"tsd\",\n \"watch\": \"npx nodemon --watch 'src' --ext 'ts' --exec npm run build\"\n },\n \"dependencies\": {\n \"@slack/logger\": \"^4.0.0\",\n \"@slack/types\": \"^2.18.0\",\n \"@types/node\": \">=18.0.0\",\n \"@types/retry\": \"0.12.0\",\n \"axios\": \"^1.11.0\",\n \"eventemitter3\": \"^5.0.1\",\n \"form-data\": \"^4.0.4\",\n \"is-electron\": \"2.2.2\",\n \"is-stream\": \"^2\",\n \"p-queue\": \"^6\",\n \"p-retry\": \"^4\",\n \"retry\": \"^0.13.1\"\n },\n \"devDependencies\": {\n \"@biomejs/biome\": \"^2.0.5\",\n \"@tsconfig/recommended\": \"^1\",\n \"@types/busboy\": \"^1.5.4\",\n \"@types/chai\": \"^4\",\n \"@types/mocha\": \"^10\",\n \"@types/sinon\": \"^21\",\n \"busboy\": \"^1\",\n \"c8\": \"^10.1.2\",\n \"chai\": \"^4\",\n \"mocha\": \"^11\",\n \"mocha-junit-reporter\": \"^2.2.1\",\n \"mocha-multi-reporters\": \"^1.5.1\",\n \"nock\": \"^14\",\n \"shx\": \"^0.4.0\",\n \"sinon\": \"^21\",\n \"source-map-support\": \"^0.5.21\",\n \"ts-node\": \"^10\",\n \"tsd\": \"^0.33.0\",\n \"typedoc\": \"^0.28.7\",\n \"typedoc-plugin-markdown\": \"^4.7.1\",\n \"typescript\": \"5.9.3\"\n },\n \"tsd\": {\n \"directory\": \"test/types\"\n }\n}\n",null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=index.js.map","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + filename + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => 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) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\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 let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\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\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\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<unknown>} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.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 // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\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 if (isBuffer(obj)){\n return null;\n }\n\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 * const 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, skipUndefined} = 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 if (!skipUndefined || !isUndefined(val)) {\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 {Object} [options]\n * @param {Boolean} [options.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 Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true\n });\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 Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true\n });\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<any, any>} 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[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<boolean>}\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 let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || 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 return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\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[toStringTag] === 'FormData' && thing[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 //Buffer check\n if (isBuffer(source)) {\n return source;\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\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\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 isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\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 isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\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 */\n constructor(message, code, config, request, response) {\n super(message);\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n 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.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\n\nexport default AxiosError;\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<any>} 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<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} 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 (utils.isBoolean(value)) {\n return value.toString();\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<String|Number>} 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<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} 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}\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|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = options && options.encode || encode;\n\n const _options = utils.isFunction(options) ? {\n serialize: options\n } : options;\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 * @param {Object} options The options for the interceptor, synchronous and runWhen\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 {void}\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 url from 'url';\nexport default url.URLSearchParams;\n","import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 const randomValues = new Uint32Array(size);\n crypto.randomFillSync(randomValues);\n for (let i = 0; i < size; i++) {\n str += alphabet[randomValues[i] % length];\n }\n\n return str;\n}\n\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n ALPHABET,\n generateString,\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\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 hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\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 */\nconst hasStandardBrowserWebWorkerEnv = (() => {\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\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\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(), {\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}\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<any>} 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<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\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\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', 'fetch'],\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 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 utils.isReadableStream(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 (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\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, this.parseReviver);\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\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\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\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 if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, 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 getSetCookie() {\n return this.get(\"set-cookie\") || [];\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\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\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';\n\nclass CanceledError extends AxiosError {\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 */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\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\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 \"<scheme>://\" 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, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","export const VERSION = \"1.13.4\";","'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\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import util from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\nimport platform from \"../platform/index.js\";\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\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","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(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 lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n return Buffer.byteLength(body, 'utf8');\n}\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from '../helpers/buildURL.js';\nimport proxyFromEnv from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport http2 from 'http2';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\nclass Http2Sessions {\n constructor() {\n this.sessions = Object.create(null);\n }\n\n getSession(authority, options) {\n options = Object.assign({\n sessionTimeout: 1000\n }, options);\n\n let authoritySessions = this.sessions[authority];\n\n if (authoritySessions) {\n let len = authoritySessions.length;\n\n for (let i = 0; i < len; i++) {\n const [sessionHandle, sessionOptions] = authoritySessions[i];\n if (!sessionHandle.destroyed && !sessionHandle.closed && util.isDeepStrictEqual(sessionOptions, options)) {\n return sessionHandle;\n }\n }\n }\n\n const session = http2.connect(authority, options);\n\n let removed;\n\n const removeSession = () => {\n if (removed) {\n return;\n }\n\n removed = true;\n\n let entries = authoritySessions, len = entries.length, i = len;\n\n while (i--) {\n if (entries[i][0] === session) {\n if (len === 1) {\n delete this.sessions[authority];\n } else {\n entries.splice(i, 1);\n }\n return;\n }\n }\n };\n\n const originalRequestFn = session.request;\n\n const {sessionTimeout} = options;\n\n if(sessionTimeout != null) {\n\n let timer;\n let streamsCount = 0;\n\n session.request = function () {\n const stream = originalRequestFn.apply(this, arguments);\n\n streamsCount++;\n\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n stream.once('close', () => {\n if (!--streamsCount) {\n timer = setTimeout(() => {\n timer = null;\n removeSession();\n }, sessionTimeout);\n }\n });\n\n return stream;\n }\n }\n\n session.once('close', removeSession);\n\n let entry = [\n session,\n options\n ];\n\n authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry];\n\n return session;\n }\n}\n\nconst http2Sessions = new Http2Sessions();\n\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n const validProxyAuth = Boolean(proxy.auth.username || proxy.auth.password);\n\n if (validProxyAuth) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n } else if (typeof proxy.auth === 'object') {\n throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy });\n }\n\n const base64 = Buffer.from(proxy.auth, 'utf8').toString('base64');\n\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\nconst http2Transport = {\n request(options, cb) {\n const authority = options.protocol + '//' + options.hostname + ':' + (options.port ||(options.protocol === 'https:' ? 443 : 80));\n\n\n const {http2Options, headers} = options;\n\n const session = http2Sessions.getSession(authority, http2Options);\n\n const {\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_STATUS\n } = http2.constants;\n\n const http2Headers = {\n [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''),\n [HTTP2_HEADER_METHOD]: options.method,\n [HTTP2_HEADER_PATH]: options.path,\n }\n\n utils.forEach(headers, (header, name) => {\n name.charAt(0) !== ':' && (http2Headers[name] = header);\n });\n\n const req = session.request(http2Headers);\n\n req.once('response', (responseHeaders) => {\n const response = req; //duplex\n\n responseHeaders = Object.assign({}, responseHeaders);\n\n const status = responseHeaders[HTTP2_HEADER_STATUS];\n\n delete responseHeaders[HTTP2_HEADER_STATUS];\n\n response.headers = responseHeaders;\n\n response.statusCode = +status;\n\n cb(response);\n })\n\n return req;\n }\n}\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family, httpVersion = 1, http2Options} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n httpVersion = +httpVersion;\n\n if (Number.isNaN(httpVersion)) {\n throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);\n }\n\n if (httpVersion !== 1 && httpVersion !== 2) {\n throw TypeError(`Unsupported protocol version '${httpVersion}'`);\n }\n\n const isHttp2 = httpVersion === 2;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n const abortEmitter = new EventEmitter();\n\n function abort(reason) {\n try {\n abortEmitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n } catch(err) {\n console.warn('emit error', err);\n }\n }\n\n abortEmitter.once('abort', reject);\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n abortEmitter.removeAllListeners();\n }\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n onDone((response, isRejected) => {\n isDone = true;\n\n if (isRejected) {\n rejected = true;\n onFinished();\n return;\n }\n\n const {data} = response;\n\n if (data instanceof stream.Readable || data instanceof stream.Duplex) {\n const offListeners = stream.finished(data, () => {\n offListeners();\n onFinished();\n });\n } else {\n onFinished();\n }\n });\n\n\n\n\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n if (config.maxContentLength > -1) {\n // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed.\n const dataUrl = String(config.url || fullPath || '');\n const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n if (estimated > config.maxContentLength) {\n return reject(new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config\n ));\n }\n }\n\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {},\n http2Options\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n\n if (isHttp2) {\n transport = http2Transport;\n } else {\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = utils.toFiniteNumber(res.headers['content-length']);\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n abort(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n abortEmitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n abortEmitter.once('abort', err => {\n if (req.close) {\n req.close();\n } else {\n req.destroy(err);\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n abort(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\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 abort(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n });\n } else {\n // explicitly reset the socket timeout value for a possible `keep-alive` request\n req.setTimeout(0);\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n data && req.write(data);\n req.end();\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : 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, prop, 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 function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, 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 withXSRFToken: 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, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({ ...config1, ...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","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\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\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from '../utils.js';\nimport settle from '../core/settle.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 {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, 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(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\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 // 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 (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\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(_config.url);\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 CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\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\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\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, config);\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 {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\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return 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 async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\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 != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && 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(...requestInterceptorChain);\n chain.push(...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 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, config.allowAbsoluteUrls);\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 toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\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 * const 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 WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\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 adapters from './adapters/adapters.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.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n // Renderer process\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n return true;\n }\n\n // Main process\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n return true;\n }\n\n // Detect the user agent when the `nodeIntegration` option is set to false\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isElectron;\n","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\nmodule.exports = (promise, onFinally) => {\n\tonFinally = onFinally || (() => {});\n\n\treturn promise.then(\n\t\tval => new Promise(resolve => {\n\t\t\tresolve(onFinally());\n\t\t}).then(() => val),\n\t\terr => new Promise(resolve => {\n\t\t\tresolve(onFinally());\n\t\t}).then(() => {\n\t\t\tthrow err;\n\t\t})\n\t);\n};\n","'use strict';\n\nconst pFinally = require('p-finally');\n\nclass TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\nconst pTimeout = (promise, milliseconds, fallback) => new Promise((resolve, reject) => {\n\tif (typeof milliseconds !== 'number' || milliseconds < 0) {\n\t\tthrow new TypeError('Expected `milliseconds` to be a positive number');\n\t}\n\n\tif (milliseconds === Infinity) {\n\t\tresolve(promise);\n\t\treturn;\n\t}\n\n\tconst timer = setTimeout(() => {\n\t\tif (typeof fallback === 'function') {\n\t\t\ttry {\n\t\t\t\tresolve(fallback());\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\tif (typeof promise.cancel === 'function') {\n\t\t\tpromise.cancel();\n\t\t}\n\n\t\treject(timeoutError);\n\t}, milliseconds);\n\n\t// TODO: Use native `finally` keyword when targeting Node.js 10\n\tpFinally(\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\tpromise.then(resolve, reject),\n\t\t() => {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t);\n});\n\nmodule.exports = pTimeout;\n// TODO: Remove this for the next major release\nmodule.exports.default = pTimeout;\n\nmodule.exports.TimeoutError = TimeoutError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nfunction lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = (count / 2) | 0;\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\nexports.default = lowerBound;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst lower_bound_1 = require(\"./lower-bound\");\nclass PriorityQueue {\n constructor() {\n this._queue = [];\n }\n enqueue(run, options) {\n options = Object.assign({ priority: 0 }, options);\n const element = {\n priority: options.priority,\n run\n };\n if (this.size && this._queue[this.size - 1].priority >= options.priority) {\n this._queue.push(element);\n return;\n }\n const index = lower_bound_1.default(this._queue, element, (a, b) => b.priority - a.priority);\n this._queue.splice(index, 0, element);\n }\n dequeue() {\n const item = this._queue.shift();\n return item === null || item === void 0 ? void 0 : item.run;\n }\n filter(options) {\n return this._queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this._queue.length;\n }\n}\nexports.default = PriorityQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst EventEmitter = require(\"eventemitter3\");\nconst p_timeout_1 = require(\"p-timeout\");\nconst priority_queue_1 = require(\"./priority-queue\");\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst empty = () => { };\nconst timeoutError = new p_timeout_1.TimeoutError();\n/**\nPromise queue with concurrency control.\n*/\nclass PQueue extends EventEmitter {\n constructor(options) {\n var _a, _b, _c, _d;\n super();\n this._intervalCount = 0;\n this._intervalEnd = 0;\n this._pendingCount = 0;\n this._resolveEmpty = empty;\n this._resolveIdle = empty;\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = Object.assign({ carryoverConcurrencyCount: false, intervalCap: Infinity, interval: 0, concurrency: Infinity, autoStart: true, queueClass: priority_queue_1.default }, options);\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${(_b = (_a = options.intervalCap) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${(_d = (_c = options.interval) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : ''}\\` (${typeof options.interval})`);\n }\n this._carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this._isIntervalIgnored = options.intervalCap === Infinity || options.interval === 0;\n this._intervalCap = options.intervalCap;\n this._interval = options.interval;\n this._queue = new options.queueClass();\n this._queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this._timeout = options.timeout;\n this._throwOnTimeout = options.throwOnTimeout === true;\n this._isPaused = options.autoStart === false;\n }\n get _doesIntervalAllowAnother() {\n return this._isIntervalIgnored || this._intervalCount < this._intervalCap;\n }\n get _doesConcurrentAllowAnother() {\n return this._pendingCount < this._concurrency;\n }\n _next() {\n this._pendingCount--;\n this._tryToStartAnother();\n this.emit('next');\n }\n _resolvePromises() {\n this._resolveEmpty();\n this._resolveEmpty = empty;\n if (this._pendingCount === 0) {\n this._resolveIdle();\n this._resolveIdle = empty;\n this.emit('idle');\n }\n }\n _onResumeInterval() {\n this._onInterval();\n this._initializeIntervalIfNeeded();\n this._timeoutId = undefined;\n }\n _isIntervalPaused() {\n const now = Date.now();\n if (this._intervalId === undefined) {\n const delay = this._intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this._intervalCount = (this._carryoverConcurrencyCount) ? this._pendingCount : 0;\n }\n else {\n // Act as the interval is pending\n if (this._timeoutId === undefined) {\n this._timeoutId = setTimeout(() => {\n this._onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n _tryToStartAnother() {\n if (this._queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this._intervalId) {\n clearInterval(this._intervalId);\n }\n this._intervalId = undefined;\n this._resolvePromises();\n return false;\n }\n if (!this._isPaused) {\n const canInitializeInterval = !this._isIntervalPaused();\n if (this._doesIntervalAllowAnother && this._doesConcurrentAllowAnother) {\n const job = this._queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this._initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n _initializeIntervalIfNeeded() {\n if (this._isIntervalIgnored || this._intervalId !== undefined) {\n return;\n }\n this._intervalId = setInterval(() => {\n this._onInterval();\n }, this._interval);\n this._intervalEnd = Date.now() + this._interval;\n }\n _onInterval() {\n if (this._intervalCount === 0 && this._pendingCount === 0 && this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = undefined;\n }\n this._intervalCount = this._carryoverConcurrencyCount ? this._pendingCount : 0;\n this._processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n _processQueue() {\n // eslint-disable-next-line no-empty\n while (this._tryToStartAnother()) { }\n }\n get concurrency() {\n return this._concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this._concurrency = newConcurrency;\n this._processQueue();\n }\n /**\n Adds a sync or async task to the queue. Always returns a promise.\n */\n async add(fn, options = {}) {\n return new Promise((resolve, reject) => {\n const run = async () => {\n this._pendingCount++;\n this._intervalCount++;\n try {\n const operation = (this._timeout === undefined && options.timeout === undefined) ? fn() : p_timeout_1.default(Promise.resolve(fn()), (options.timeout === undefined ? this._timeout : options.timeout), () => {\n if (options.throwOnTimeout === undefined ? this._throwOnTimeout : options.throwOnTimeout) {\n reject(timeoutError);\n }\n return undefined;\n });\n resolve(await operation);\n }\n catch (error) {\n reject(error);\n }\n this._next();\n };\n this._queue.enqueue(run, options);\n this._tryToStartAnother();\n this.emit('add');\n });\n }\n /**\n Same as `.add()`, but accepts an array of sync or async functions.\n\n @returns A promise that resolves when all functions are resolved.\n */\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this._isPaused) {\n return this;\n }\n this._isPaused = false;\n this._processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this._isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this._queue = new this._queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveEmpty;\n this._resolveEmpty = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this._pendingCount === 0 && this._queue.size === 0) {\n return;\n }\n return new Promise(resolve => {\n const existingResolve = this._resolveIdle;\n this._resolveIdle = () => {\n existingResolve();\n resolve();\n };\n });\n }\n /**\n Size of the queue.\n */\n get size() {\n return this._queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n return this._queue.filter(options).length;\n }\n /**\n Number of pending promises.\n */\n get pending() {\n return this._pendingCount;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this._isPaused;\n }\n get timeout() {\n return this._timeout;\n }\n /**\n Set the timeout for future operations.\n */\n set timeout(milliseconds) {\n this._timeout = milliseconds;\n }\n}\nexports.default = PQueue;\n","function RetryOperation(timeouts, options) {\n // Compatibility for the old (timeouts, retryForever) signature\n if (typeof options === 'boolean') {\n options = { forever: options };\n }\n\n this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));\n this._timeouts = timeouts;\n this._options = options || {};\n this._maxRetryTime = options && options.maxRetryTime || Infinity;\n this._fn = null;\n this._errors = [];\n this._attempts = 1;\n this._operationTimeout = null;\n this._operationTimeoutCb = null;\n this._timeout = null;\n this._operationStart = null;\n this._timer = null;\n\n if (this._options.forever) {\n this._cachedTimeouts = this._timeouts.slice(0);\n }\n}\nmodule.exports = RetryOperation;\n\nRetryOperation.prototype.reset = function() {\n this._attempts = 1;\n this._timeouts = this._originalTimeouts.slice(0);\n}\n\nRetryOperation.prototype.stop = function() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this._timer) {\n clearTimeout(this._timer);\n }\n\n this._timeouts = [];\n this._cachedTimeouts = null;\n};\n\nRetryOperation.prototype.retry = function(err) {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n\n if (!err) {\n return false;\n }\n var currentTime = new Date().getTime();\n if (err && currentTime - this._operationStart >= this._maxRetryTime) {\n this._errors.push(err);\n this._errors.unshift(new Error('RetryOperation timeout occurred'));\n return false;\n }\n\n this._errors.push(err);\n\n var timeout = this._timeouts.shift();\n if (timeout === undefined) {\n if (this._cachedTimeouts) {\n // retry forever, only keep last error\n this._errors.splice(0, this._errors.length - 1);\n timeout = this._cachedTimeouts.slice(-1);\n } else {\n return false;\n }\n }\n\n var self = this;\n this._timer = setTimeout(function() {\n self._attempts++;\n\n if (self._operationTimeoutCb) {\n self._timeout = setTimeout(function() {\n self._operationTimeoutCb(self._attempts);\n }, self._operationTimeout);\n\n if (self._options.unref) {\n self._timeout.unref();\n }\n }\n\n self._fn(self._attempts);\n }, timeout);\n\n if (this._options.unref) {\n this._timer.unref();\n }\n\n return true;\n};\n\nRetryOperation.prototype.attempt = function(fn, timeoutOps) {\n this._fn = fn;\n\n if (timeoutOps) {\n if (timeoutOps.timeout) {\n this._operationTimeout = timeoutOps.timeout;\n }\n if (timeoutOps.cb) {\n this._operationTimeoutCb = timeoutOps.cb;\n }\n }\n\n var self = this;\n if (this._operationTimeoutCb) {\n this._timeout = setTimeout(function() {\n self._operationTimeoutCb();\n }, self._operationTimeout);\n }\n\n this._operationStart = new Date().getTime();\n\n this._fn(this._attempts);\n};\n\nRetryOperation.prototype.try = function(fn) {\n console.log('Using RetryOperation.try() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = function(fn) {\n console.log('Using RetryOperation.start() is deprecated');\n this.attempt(fn);\n};\n\nRetryOperation.prototype.start = RetryOperation.prototype.try;\n\nRetryOperation.prototype.errors = function() {\n return this._errors;\n};\n\nRetryOperation.prototype.attempts = function() {\n return this._attempts;\n};\n\nRetryOperation.prototype.mainError = function() {\n if (this._errors.length === 0) {\n return null;\n }\n\n var counts = {};\n var mainError = null;\n var mainErrorCount = 0;\n\n for (var i = 0; i < this._errors.length; i++) {\n var error = this._errors[i];\n var message = error.message;\n var count = (counts[message] || 0) + 1;\n\n counts[message] = count;\n\n if (count >= mainErrorCount) {\n mainError = error;\n mainErrorCount = count;\n }\n }\n\n return mainError;\n};\n","var RetryOperation = require('./retry_operation');\n\nexports.operation = function(options) {\n var timeouts = exports.timeouts(options);\n return new RetryOperation(timeouts, {\n forever: options && (options.forever || options.retries === Infinity),\n unref: options && options.unref,\n maxRetryTime: options && options.maxRetryTime\n });\n};\n\nexports.timeouts = function(options) {\n if (options instanceof Array) {\n return [].concat(options);\n }\n\n var opts = {\n retries: 10,\n factor: 2,\n minTimeout: 1 * 1000,\n maxTimeout: Infinity,\n randomize: false\n };\n for (var key in options) {\n opts[key] = options[key];\n }\n\n if (opts.minTimeout > opts.maxTimeout) {\n throw new Error('minTimeout is greater than maxTimeout');\n }\n\n var timeouts = [];\n for (var i = 0; i < opts.retries; i++) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n if (options && options.forever && !timeouts.length) {\n timeouts.push(this.createTimeout(i, opts));\n }\n\n // sort the array numerically ascending\n timeouts.sort(function(a,b) {\n return a - b;\n });\n\n return timeouts;\n};\n\nexports.createTimeout = function(attempt, opts) {\n var random = (opts.randomize)\n ? (Math.random() + 1)\n : 1;\n\n var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));\n timeout = Math.min(timeout, opts.maxTimeout);\n\n return timeout;\n};\n\nexports.wrap = function(obj, options, methods) {\n if (options instanceof Array) {\n methods = options;\n options = null;\n }\n\n if (!methods) {\n methods = [];\n for (var key in obj) {\n if (typeof obj[key] === 'function') {\n methods.push(key);\n }\n }\n }\n\n for (var i = 0; i < methods.length; i++) {\n var method = methods[i];\n var original = obj[method];\n\n obj[method] = function retryWrapper(original) {\n var op = exports.operation(options);\n var args = Array.prototype.slice.call(arguments, 1);\n var callback = args.pop();\n\n args.push(function(err) {\n if (op.retry(err)) {\n return;\n }\n if (err) {\n arguments[0] = op.mainError();\n }\n callback.apply(this, arguments);\n });\n\n op.attempt(function() {\n original.apply(obj, args);\n });\n }.bind(obj, original);\n obj[method].options = options;\n }\n};\n","module.exports = require('./lib/retry');","'use strict';\nconst retry = require('retry');\n\nconst networkErrorMsgs = [\n\t'Failed to fetch', // Chrome\n\t'NetworkError when attempting to fetch resource.', // Firefox\n\t'The Internet connection appears to be offline.', // Safari\n\t'Network request failed' // `cross-fetch`\n];\n\nclass AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\n\t\tif (message instanceof Error) {\n\t\t\tthis.originalError = message;\n\t\t\t({message} = message);\n\t\t} else {\n\t\t\tthis.originalError = new Error(message);\n\t\t\tthis.originalError.stack = this.stack;\n\t\t}\n\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\nconst decorateErrorWithCounts = (error, attemptNumber, options) => {\n\t// Minus 1 from attemptNumber because the first attempt does not count as a retry\n\tconst retriesLeft = options.retries - (attemptNumber - 1);\n\n\terror.attemptNumber = attemptNumber;\n\terror.retriesLeft = retriesLeft;\n\treturn error;\n};\n\nconst isNetworkError = errorMessage => networkErrorMsgs.includes(errorMessage);\n\nconst pRetry = (input, options) => new Promise((resolve, reject) => {\n\toptions = {\n\t\tonFailedAttempt: () => {},\n\t\tretries: 10,\n\t\t...options\n\t};\n\n\tconst operation = retry.operation(options);\n\n\toperation.attempt(async attemptNumber => {\n\t\ttry {\n\t\t\tresolve(await input(attemptNumber));\n\t\t} catch (error) {\n\t\t\tif (!(error instanceof Error)) {\n\t\t\t\treject(new TypeError(`Non-error was thrown: \"${error}\". You should only throw errors.`));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (error instanceof AbortError) {\n\t\t\t\toperation.stop();\n\t\t\t\treject(error.originalError);\n\t\t\t} else if (error instanceof TypeError && !isNetworkError(error.message)) {\n\t\t\t\toperation.stop();\n\t\t\t\treject(error);\n\t\t\t} else {\n\t\t\t\tdecorateErrorWithCounts(error, attemptNumber, options);\n\n\t\t\t\ttry {\n\t\t\t\t\tawait options.onFailedAttempt(error);\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!operation.retry(error)) {\n\t\t\t\t\treject(operation.mainError());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n});\n\nmodule.exports = pRetry;\n// TODO: remove this in the next major version\nmodule.exports.default = pRetry;\n\nmodule.exports.AbortError = AbortError;\n",null,null,null,"'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=blocks.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=extensions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=dialog.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=app.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=assistant.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=call.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=dnd.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=email.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=emoji.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=function.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=grid-migration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=group.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=im.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=invite.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=link-shared.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=member.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message-metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=pin.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=reaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=shared-channel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=star.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=steps-from-apps.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=subteam.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=team.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=token.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=user.js.map",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=message-attachments.js.map",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=views.js.map",null,null,null,null,"/**\n * Slack Notifier\n *\n * Slack notifier for pushing workflow visualizations.\n * Requires @slack/web-api as an optional peer dependency.\n */\n\nimport type { Notifier, BaseNotifierOptions, ProviderOptions } from \"./types\";\nimport { createNotifier } from \"./base\";\nimport {\n createSlackAdapter,\n type SlackAdapterOptions,\n type SlackAdapterDeps,\n} from \"./adapters/slack\";\n\n/**\n * Options for Slack notifier.\n */\nexport interface SlackNotifierOptions extends BaseNotifierOptions {\n /** Slack Bot OAuth token (xoxb-...) */\n token: string;\n /** Channel ID or name to post to */\n channel: string;\n /** Bot username to display (optional) */\n username?: string;\n /** Bot icon emoji (optional, e.g., \":robot_face:\") */\n iconEmoji?: string;\n /** Bot icon URL (optional) */\n iconUrl?: string;\n /**\n * Diagram rendering provider configuration.\n * REQUIRED - no silent default to prevent surprise network calls.\n */\n diagramProvider: ProviderOptions;\n}\n\n/**\n * Minimal Slack Web API interface.\n * This allows us to work without requiring the full @slack/web-api package.\n */\ninterface SlackWebApi {\n chat: {\n postMessage(args: unknown): Promise<{ ok: boolean; ts?: string; error?: string }>;\n update(args: unknown): Promise<{ ok: boolean; error?: string }>;\n };\n}\n\n/**\n * Create a Slack notifier.\n *\n * @param options - Slack configuration\n * @param deps - Optional dependencies (for testing)\n * @returns A Notifier instance\n *\n * @example\n * ```typescript\n * import { createSlackNotifier } from 'awaitly-visualizer/notifiers/slack';\n *\n * // Using Kroki (default)\n * const slack = createSlackNotifier({\n * token: process.env.SLACK_TOKEN!,\n * channel: '#workflows',\n * username: 'Workflow Bot',\n * iconEmoji: ':robot_face:',\n * diagramProvider: { provider: 'kroki' },\n * });\n *\n * // Using mermaid.ink with dark theme\n * const slackDark = createSlackNotifier({\n * token: process.env.SLACK_TOKEN!,\n * channel: '#workflows',\n * diagramProvider: {\n * provider: 'mermaid-ink',\n * theme: 'dark',\n * bgColor: '1b1b1f',\n * },\n * });\n *\n * // One-time notification\n * await slack.notify(workflowIR, { title: 'Order Processing' });\n *\n * // Live updates (posts once, then UPDATES same message - no spam)\n * const live = slack.createLive({ title: 'Order #123' });\n * workflow.on('event', (e) => live.update(e));\n * await live.finalize();\n * ```\n */\nexport function createSlackNotifier(\n options: SlackNotifierOptions,\n deps?: { client?: SlackWebApi }\n): Notifier {\n const { token, channel, username, iconEmoji, iconUrl, ...baseOptions } =\n options;\n\n const adapter = createSlackAdapter(\n {\n token,\n channel,\n username,\n iconEmoji,\n iconUrl,\n },\n deps as SlackAdapterDeps\n );\n\n return createNotifier(baseOptions, adapter);\n}\n","/**\n * Base Notifier Factory\n *\n * Creates a notifier from an adapter.\n * Handles all shared logic - adapters only handle platform-specific concerns.\n */\n\nimport { ok, err, type AsyncResult } from \"awaitly\";\nimport type { WorkflowIR } from \"../types\";\nimport type {\n Notifier,\n NotifyOptions,\n LiveSession,\n LiveSessionOptions,\n BaseNotifierOptions,\n WorkflowStatus,\n NotifyError,\n} from \"./types\";\nimport type { NotifierAdapter } from \"./adapter\";\nimport { createNotifierContext } from \"./context\";\nimport { createLiveSession } from \"../live/live-session\";\n\n/**\n * Resolve workflow status from IR state.\n */\nfunction resolveStatus(ir: WorkflowIR): WorkflowStatus | \"running\" {\n switch (ir.root.state) {\n case \"success\":\n return \"completed\";\n case \"error\":\n return \"failed\";\n case \"aborted\":\n return \"cancelled\";\n default:\n return \"running\";\n }\n}\n\n/**\n * Create a notifier from an adapter.\n * Handles all shared logic - adapters only handle platform-specific concerns.\n *\n * @param options - Base notifier options\n * @param adapter - Platform-specific adapter\n * @returns A Notifier instance\n *\n * @example\n * ```typescript\n * const notifier = createNotifier(\n * { diagramProvider: { provider: 'kroki' } },\n * createDiscordAdapter({ webhookUrl: '...' })\n * );\n * ```\n */\nexport function createNotifier<TMessageId = string>(\n options: BaseNotifierOptions,\n adapter: NotifierAdapter<TMessageId>\n): Notifier {\n const { diagramProvider, debounceMs = 500, maxWaitMs = 5000 } = options;\n\n // Validate required options (runtime check for JS consumers)\n if (!diagramProvider) {\n throw new Error(\n `${adapter.name}Notifier: diagramProvider is required. ` +\n `Pass { provider: 'kroki' } or { provider: 'mermaid-ink' }.`\n );\n }\n\n // Create shared context once\n const ctx = createNotifierContext(diagramProvider);\n\n async function notify(\n ir: WorkflowIR,\n notifyOptions: NotifyOptions = {}\n ): AsyncResult<string | undefined, NotifyError> {\n const title = notifyOptions.title ?? \"Workflow\";\n const status = resolveStatus(ir);\n\n try {\n const message = adapter.buildMessage({ ir, title, status }, ctx);\n const messageId = await adapter.sendNew(message);\n return ok(messageId?.toString());\n } catch {\n return err(\"SEND_FAILED\");\n }\n }\n\n function createLive(sessionOptions: LiveSessionOptions): LiveSession {\n return createLiveSession(\n {\n ...sessionOptions,\n debounceMs: sessionOptions.debounceMs ?? debounceMs,\n maxWaitMs: sessionOptions.maxWaitMs ?? maxWaitMs,\n },\n {\n async postNew(ir, title) {\n const message = adapter.buildMessage(\n { ir, title, status: \"running\" },\n ctx\n );\n const messageId = await adapter.sendNew(message);\n return messageId?.toString();\n },\n\n async updateExisting(messageId, ir, title) {\n const message = adapter.buildMessage(\n { ir, title, status: \"running\" },\n ctx\n );\n await adapter.sendUpdate(messageId as TMessageId, message);\n },\n\n async finalize(messageId, ir, title, status) {\n const message = adapter.buildMessage({ ir, title, status }, ctx);\n if (messageId) {\n await adapter.sendUpdate(messageId as TMessageId, message);\n } else {\n await adapter.sendNew(message);\n }\n },\n\n async cancel(messageId) {\n if (adapter.sendCancel && messageId) {\n await adapter.sendCancel(messageId as TMessageId);\n }\n },\n }\n );\n }\n\n return {\n notify,\n createLive,\n getType: () => adapter.name.toLowerCase(),\n };\n}\n","/**\n * Notifier Types\n *\n * Interfaces for notification systems that push workflow visualizations\n * to external services like Slack, Discord, or custom webhooks.\n */\n\nimport type { AsyncResult } from \"awaitly\";\nimport type { WorkflowEvent } from \"awaitly/workflow\";\nimport type {\n FlowNode,\n WorkflowIR,\n ScopeStartEvent,\n ScopeEndEvent,\n DecisionStartEvent,\n DecisionBranchEvent,\n DecisionEndEvent,\n} from \"../types\";\nimport type { MermaidInkOptions, MermaidInkTheme } from \"../kroki/mermaid-ink\";\nimport type { UrlGeneratorOptions } from \"../kroki/url\";\n\n/**\n * Extended event types that the live session can handle.\n * Includes both core WorkflowEvent and visualizer-specific events.\n */\nexport type LiveSessionEvent =\n | WorkflowEvent<unknown>\n | ScopeStartEvent\n | ScopeEndEvent\n | DecisionStartEvent\n | DecisionBranchEvent\n | DecisionEndEvent;\n\n/**\n * Error types for notifier operations.\n */\nexport type NotifyError = \"SEND_FAILED\" | \"INVALID_CONFIG\";\n\n/**\n * Diagram rendering provider.\n */\nexport type DiagramProvider = \"kroki\" | \"mermaid-ink\";\n\n/**\n * Options for Kroki provider.\n */\nexport interface KrokiProviderOptions extends UrlGeneratorOptions {\n /** Provider type */\n provider: \"kroki\";\n}\n\n/**\n * Options for mermaid.ink provider.\n */\nexport interface MermaidInkProviderOptions extends MermaidInkOptions {\n /** Provider type */\n provider: \"mermaid-ink\";\n}\n\n/**\n * Combined provider options.\n */\nexport type ProviderOptions = KrokiProviderOptions | MermaidInkProviderOptions;\n\n/**\n * Status of a workflow when finalized.\n */\nexport type WorkflowStatus = \"completed\" | \"failed\" | \"cancelled\";\n\n/**\n * Options for creating a live session.\n */\nexport interface LiveSessionOptions {\n /** Title for the notification (e.g., \"Order #123 Processing\") */\n title: string;\n /** Debounce interval in milliseconds (default: 500) */\n debounceMs?: number;\n /** Max time between posts even during constant updates (default: 5000) */\n maxWaitMs?: number;\n /** Additional metadata to include in notifications */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Live session for real-time workflow updates.\n *\n * Behavior:\n * - First `update()`: Posts new message with Kroki URL\n * - Subsequent `update()`: Edits same message (debounced)\n * - `finalize()`: Posts final state, marks session complete\n * - `cancel()`: Aborts session, optionally deletes partial message\n */\nexport interface LiveSession {\n /** Update the visualization (debounced) */\n update(eventOrIr: LiveSessionEvent | WorkflowIR): void;\n\n /** Finalize the session with final status */\n finalize(status?: WorkflowStatus): Promise<void>;\n\n /** Cancel the session, optionally deleting the message */\n cancel(): void;\n\n /** Get the current session ID (e.g., message timestamp for Slack) */\n getSessionId(): string | undefined;\n\n /** Check if the session is still active */\n isActive(): boolean;\n}\n\n/**\n * Result of a notification operation.\n */\nexport interface NotifyResult {\n /** Whether the operation succeeded */\n success: boolean;\n /** Error message if failed */\n error?: string;\n /** Platform-specific message ID */\n messageId?: string;\n}\n\n/**\n * Notifier interface for pushing workflow visualizations.\n */\nexport interface Notifier {\n /** Send a one-time notification with the current workflow state */\n notify(ir: WorkflowIR, options?: NotifyOptions): AsyncResult<string | undefined, NotifyError>;\n\n /** Create a live session for real-time updates */\n createLive(options: LiveSessionOptions): LiveSession;\n\n /** Get the notifier type (e.g., \"slack\", \"discord\", \"webhook\") */\n getType(): string;\n}\n\n/**\n * Options for one-time notifications.\n */\nexport interface NotifyOptions {\n /** Title for the notification */\n title?: string;\n /** Additional text content */\n text?: string;\n /** Additional metadata */\n metadata?: Record<string, unknown>;\n}\n\n/**\n * Base options for all notifiers.\n */\nexport interface BaseNotifierOptions {\n /** Debounce interval in milliseconds for live sessions (default: 500) */\n debounceMs?: number;\n /** Max wait between updates during constant churn (default: 5000) */\n maxWaitMs?: number;\n /**\n * Diagram rendering provider configuration.\n * REQUIRED - no silent default to prevent surprise network calls.\n *\n * @example\n * ```typescript\n * // Use Kroki\n * { provider: 'kroki' }\n *\n * // Use mermaid.ink with dark theme\n * { provider: 'mermaid-ink', theme: 'dark', bgColor: '1b1b1f' }\n *\n * // Use self-hosted Kroki\n * { provider: 'kroki', baseUrl: 'https://kroki.internal' }\n * ```\n */\n diagramProvider: ProviderOptions;\n}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Recursively count step nodes in a workflow IR.\n * Counts steps nested inside parallel, race, and decision containers.\n */\nexport function countSteps(ir: WorkflowIR): number {\n function countInNodes(nodes: FlowNode[]): number {\n let count = 0;\n for (const node of nodes) {\n if (node.type === \"step\") {\n count++;\n } else if (node.type === \"decision\" && node.branches) {\n // Only count from branches (taken branch children); skip node.children to avoid double-counting when both exist\n for (const branch of node.branches) {\n if (branch.taken) {\n count += countInNodes(branch.children);\n }\n }\n } else if (\"children\" in node && node.children) {\n count += countInNodes(node.children);\n }\n }\n return count;\n }\n return countInNodes(ir.root.children);\n}\n","/**\n * ASCII Terminal Renderer\n *\n * Renders the workflow IR as ASCII art with box-drawing characters\n * and ANSI colors for terminal display.\n */\n\nimport { ok, err, type Result } from \"awaitly\";\nimport type {\n FlowNode,\n ParallelNode,\n RaceNode,\n DecisionNode,\n StreamNode,\n Renderer,\n RenderOptions,\n StepNode,\n WorkflowIR,\n EnhancedRenderOptions,\n HeatLevel,\n WorkflowHooks,\n HookExecution,\n} from \"../types\";\nimport { isParallelNode, isRaceNode, isStepNode, isDecisionNode, isStreamNode } from \"../types\";\nimport { formatDuration } from \"../utils/timing\";\nimport {\n bold,\n colorByState,\n colorize,\n defaultColorScheme,\n dim,\n getColoredSymbol,\n stripAnsi,\n} from \"./colors\";\n\n/**\n * Error types for stringify operations.\n */\nexport type StringifyError = \"STRINGIFY_ERROR\";\n\n// =============================================================================\n// Box Drawing Characters\n// =============================================================================\n\nconst BOX = {\n topLeft: \"┌\",\n topRight: \"┐\",\n bottomLeft: \"└\",\n bottomRight: \"┘\",\n horizontal: \"─\",\n vertical: \"│\",\n teeRight: \"├\",\n teeLeft: \"┤\",\n teeDown: \"┬\",\n teeUp: \"┴\",\n cross: \"┼\",\n} as const;\n\n// =============================================================================\n// Heatmap Colors (ANSI)\n// =============================================================================\n\n/**\n * ANSI color codes for heatmap visualization.\n */\nconst HEAT_COLORS: Record<HeatLevel, string> = {\n cold: \"\\x1b[34m\", // Blue\n cool: \"\\x1b[36m\", // Cyan\n neutral: \"\", // Default (no color)\n warm: \"\\x1b[33m\", // Yellow\n hot: \"\\x1b[31m\", // Red\n critical: \"\\x1b[41m\", // Red background\n};\n\nconst RESET = \"\\x1b[0m\";\n\n/**\n * Get ANSI color code for a heat level.\n */\nfunction getHeatColor(heat: number): string {\n if (heat < 0.2) return HEAT_COLORS.cold;\n if (heat < 0.4) return HEAT_COLORS.cool;\n if (heat < 0.6) return HEAT_COLORS.neutral;\n if (heat < 0.8) return HEAT_COLORS.warm;\n if (heat < 0.95) return HEAT_COLORS.hot;\n return HEAT_COLORS.critical;\n}\n\n/**\n * Apply heat coloring to a string.\n */\nfunction applyHeatColor(text: string, heat: number): string {\n const color = getHeatColor(heat);\n if (!color) return text;\n return `${color}${text}${RESET}`;\n}\n\n/**\n * Safely stringify a value, handling circular references and BigInt.\n * Returns Result with either the stringified value or an error.\n */\nfunction safeStringify(value: unknown): Result<string, StringifyError> {\n try {\n const replacer = (_key: string, v: unknown): unknown => {\n if (typeof v !== \"bigint\") return v;\n const n = Number(v);\n return Number.isSafeInteger(n) ? n : v.toString();\n };\n return ok(JSON.stringify(value, replacer));\n } catch {\n return err(\"STRINGIFY_ERROR\");\n }\n}\n\n/**\n * Get stringified value or fallback for unserializable values.\n */\nfunction getStringified(value: unknown): string {\n const result = safeStringify(value);\n return result.ok ? result.value : \"[unserializable]\";\n}\n\n// =============================================================================\n// Sparkline Characters\n// =============================================================================\n\nconst SPARK_CHARS = \"▁▂▃▄▅▆▇█\";\n\n/**\n * Render a sparkline from an array of values.\n *\n * @param values Array of numeric values\n * @param width Maximum characters to use (default: 10)\n * @returns Sparkline string\n */\nexport function renderSparkline(values: number[], width = 10): string {\n if (values.length === 0) return \"\";\n\n // Take last N values\n const subset = values.slice(-width);\n const min = Math.min(...subset);\n const max = Math.max(...subset);\n const range = max - min || 1;\n\n return subset\n .map((v) => {\n const normalized = (v - min) / range;\n const index = Math.floor(normalized * (SPARK_CHARS.length - 1));\n return SPARK_CHARS[index];\n })\n .join(\"\");\n}\n\n// =============================================================================\n// Helper Functions\n// =============================================================================\n\n/**\n * Pad a string to a fixed width, accounting for ANSI codes.\n */\nfunction padEnd(str: string, width: number): string {\n const visibleLen = stripAnsi(str).length;\n const padding = Math.max(0, width - visibleLen);\n return str + \" \".repeat(padding);\n}\n\n/**\n * Create a horizontal line with optional title.\n */\nfunction horizontalLine(width: number, title?: string): string {\n if (!title) {\n return BOX.horizontal.repeat(width);\n }\n\n const titleText = ` ${title} `;\n // Use visible length (strip ANSI codes) for width calculation\n const visibleTitleLen = stripAnsi(titleText).length;\n const remainingWidth = width - visibleTitleLen;\n if (remainingWidth < 4) {\n return BOX.horizontal.repeat(width);\n }\n\n const leftPad = 2;\n const rightPad = remainingWidth - leftPad;\n\n return (\n BOX.horizontal.repeat(leftPad) + titleText + BOX.horizontal.repeat(rightPad)\n );\n}\n\n// =============================================================================\n// Hook Rendering\n// =============================================================================\n\n/**\n * Render a single hook execution.\n */\nfunction renderHookExecution(\n hook: HookExecution,\n label: string,\n colors: ReturnType<typeof Object.assign>\n): string {\n const symbol = hook.state === \"success\"\n ? colorize(\"⚙\", colors.success)\n : colorize(\"⚠\", colors.error);\n\n const timing = hook.durationMs !== undefined\n ? dim(` [${formatDuration(hook.durationMs)}]`)\n : \"\";\n\n let context = \"\";\n if (hook.type === \"shouldRun\" && hook.context?.skipped) {\n context = dim(\" → workflow skipped\");\n } else if (hook.type === \"shouldRun\" && hook.context?.result === true) {\n context = dim(\" → proceed\");\n } else if (hook.type === \"onBeforeStart\" && hook.context?.skipped) {\n context = dim(\" → workflow skipped\");\n } else if (hook.type === \"onAfterStep\" && hook.context?.stepKey) {\n context = dim(` (${hook.context.stepKey})`);\n }\n\n const error = hook.state === \"error\" && hook.error\n ? dim(` error: ${String(hook.error)}`)\n : \"\";\n\n return `${symbol} ${dim(label)}${context}${timing}${error}`;\n}\n\n/**\n * Render workflow hooks section.\n */\nfunction renderHooks(\n hooks: WorkflowHooks,\n colors: ReturnType<typeof Object.assign>\n): string[] {\n const lines: string[] = [];\n\n // Render shouldRun hook\n if (hooks.shouldRun) {\n lines.push(renderHookExecution(hooks.shouldRun, \"shouldRun\", colors));\n }\n\n // Render onBeforeStart hook\n if (hooks.onBeforeStart) {\n lines.push(renderHookExecution(hooks.onBeforeStart, \"onBeforeStart\", colors));\n }\n\n // We don't render onAfterStep hooks here - they're shown inline with steps\n // But if there are any, add a separator\n if (lines.length > 0) {\n lines.push(dim(\"────────────────────\")); // Separator between hooks and steps\n }\n\n return lines;\n}\n\n// =============================================================================\n// ASCII Renderer\n// =============================================================================\n\n/**\n * Create the ASCII terminal renderer.\n */\nexport function asciiRenderer(): Renderer {\n return {\n name: \"ascii\",\n supportsLive: true,\n\n render(ir: WorkflowIR, options: RenderOptions): string {\n const colors = { ...defaultColorScheme, ...options.colors };\n // Ensure minimum width to prevent negative repeat counts\n const width = Math.max(options.terminalWidth ?? 60, 5);\n const innerWidth = width - 4; // Account for borders\n\n const lines: string[] = [];\n\n // Header\n const workflowName = ir.root.name ?? \"workflow\";\n const headerTitle = bold(workflowName);\n lines.push(\n `${BOX.topLeft}${horizontalLine(width - 2, headerTitle)}${BOX.topRight}`\n );\n lines.push(`${BOX.vertical}${\" \".repeat(width - 2)}${BOX.vertical}`);\n\n // Render hooks (if any)\n if (ir.hooks) {\n const hookLines = renderHooks(ir.hooks, colors);\n for (const line of hookLines) {\n lines.push(\n `${BOX.vertical} ${padEnd(line, innerWidth)}${BOX.vertical}`\n );\n }\n }\n\n // Render children\n const childLines = renderNodes(ir.root.children, options, colors, 0, ir.hooks);\n for (const line of childLines) {\n lines.push(\n `${BOX.vertical} ${padEnd(line, innerWidth)}${BOX.vertical}`\n );\n }\n\n // Footer with timing\n lines.push(`${BOX.vertical}${\" \".repeat(width - 2)}${BOX.vertical}`);\n\n if (ir.root.durationMs !== undefined && options.showTimings) {\n const status =\n ir.root.state === \"success\"\n ? \"Completed\"\n : ir.root.state === \"aborted\"\n ? \"Cancelled\"\n : \"Failed\";\n const statusColored = colorByState(status, ir.root.state, colors);\n const footer = `${statusColored} in ${formatDuration(ir.root.durationMs)}`;\n lines.push(\n `${BOX.vertical} ${padEnd(footer, innerWidth)}${BOX.vertical}`\n );\n lines.push(`${BOX.vertical}${\" \".repeat(width - 2)}${BOX.vertical}`);\n }\n\n lines.push(\n `${BOX.bottomLeft}${BOX.horizontal.repeat(width - 2)}${BOX.bottomRight}`\n );\n\n return lines.join(\"\\n\");\n },\n };\n}\n\n/**\n * Render a list of nodes.\n */\nfunction renderNodes(\n nodes: FlowNode[],\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>,\n depth: number,\n hooks?: WorkflowHooks\n): string[] {\n const lines: string[] = [];\n\n for (const node of nodes) {\n if (isStepNode(node)) {\n lines.push(renderStepNode(node, options, colors, hooks));\n } else if (isParallelNode(node)) {\n lines.push(...renderParallelNode(node, options, colors, depth, hooks));\n } else if (isRaceNode(node)) {\n lines.push(...renderRaceNode(node, options, colors, depth, hooks));\n } else if (isDecisionNode(node)) {\n lines.push(...renderDecisionNode(node, options, colors, depth, hooks));\n } else if (isStreamNode(node)) {\n lines.push(renderStreamNode(node, options, colors));\n }\n }\n\n return lines;\n}\n\n/**\n * Render a single step node.\n */\nfunction renderStepNode(\n node: StepNode,\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>,\n hooks?: WorkflowHooks\n): string {\n const symbol = getColoredSymbol(node.state, colors);\n const name = node.name ?? node.key ?? \"step\";\n\n // Check for enhanced options\n const enhanced = options as EnhancedRenderOptions;\n // Heatmap lookup order matches PerformanceAnalyzer: key ?? name ?? id\n const heat = enhanced.showHeatmap && enhanced.heatmapData\n ? enhanced.heatmapData.heat.get(node.key ?? \"\") ??\n enhanced.heatmapData.heat.get(node.name ?? \"\") ??\n enhanced.heatmapData.heat.get(node.id)\n : undefined;\n\n // Apply heat coloring or default state coloring\n let nameColored: string;\n if (heat !== undefined) {\n nameColored = applyHeatColor(name, heat);\n } else {\n nameColored = colorByState(name, node.state, colors);\n }\n\n let line = `${symbol} ${nameColored}`;\n\n // Add key if requested (only when step has a name, so key is not already the label)\n if (options.showKeys && node.key && node.name) {\n line += dim(` [key: ${node.key}]`);\n }\n\n // Add input/output if available (for decision understanding)\n if (node.input !== undefined) {\n const inputStr = typeof node.input === \"string\"\n ? node.input\n : getStringified(node.input).slice(0, 30);\n line += dim(` [in: ${inputStr}${inputStr.length >= 30 ? \"...\" : \"\"}]`);\n }\n if (node.output !== undefined && node.state === \"success\") {\n const outputStr = typeof node.output === \"string\"\n ? node.output\n : getStringified(node.output).slice(0, 30);\n line += dim(` [out: ${outputStr}${outputStr.length >= 30 ? \"...\" : \"\"}]`);\n }\n\n // Add timing if available and requested\n if (options.showTimings && node.durationMs !== undefined) {\n // Apply heat coloring to timing if enabled\n const timingStr = formatDuration(node.durationMs);\n const timingDisplay = heat !== undefined\n ? applyHeatColor(`[${timingStr}]`, heat)\n : dim(`[${timingStr}]`);\n line += ` ${timingDisplay}`;\n }\n\n // Add sparkline if enabled and history available (lookup order: key ?? name ?? id, like analyzer)\n if (enhanced.showSparklines && enhanced.timingHistory) {\n const history =\n enhanced.timingHistory.get(node.key ?? \"\") ??\n enhanced.timingHistory.get(node.name ?? \"\") ??\n enhanced.timingHistory.get(node.id);\n if (history && history.length > 1) {\n line += ` ${dim(renderSparkline(history))}`;\n }\n }\n\n // Add retry indicator if retries occurred\n if (node.retryCount !== undefined && node.retryCount > 0) {\n line += dim(` [${node.retryCount} ${node.retryCount === 1 ? \"retry\" : \"retries\"}]`);\n }\n\n // Add timeout indicator if step timed out\n if (node.timedOut) {\n const timeoutInfo = node.timeoutMs !== undefined ? ` ${node.timeoutMs}ms` : \"\";\n line += dim(` [timeout${timeoutInfo}]`);\n }\n\n // Add onAfterStep hook indicator if present (check by key first, then by id)\n const hookKey = node.key ?? node.id;\n if (hooks && hookKey && hooks.onAfterStep.has(hookKey)) {\n const hookExec = hooks.onAfterStep.get(hookKey)!;\n const hookSymbol = hookExec.state === \"success\"\n ? colorize(\"⚙\", colors.success)\n : colorize(\"⚠\", colors.error);\n const hookTiming = hookExec.durationMs !== undefined\n ? dim(` ${formatDuration(hookExec.durationMs)}`)\n : \"\";\n line += ` ${hookSymbol}${hookTiming}`;\n }\n\n return line;\n}\n\n/**\n * Render a stream node.\n */\nfunction renderStreamNode(\n node: StreamNode,\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>\n): string {\n // Use stream-specific symbol\n const stateSymbol = node.streamState === \"active\"\n ? colorize(\"⟳\", colors.running)\n : node.streamState === \"closed\"\n ? colorize(\"✓\", colors.success)\n : colorize(\"✗\", colors.error);\n\n const name = `stream:${node.namespace}`;\n const nameColored = colorByState(name, node.state, colors);\n\n // Show write/read counts\n const counts = dim(`[W:${node.writeCount} R:${node.readCount}]`);\n\n let line = `${stateSymbol} ${nameColored} ${counts}`;\n\n // Add timing if available and requested\n if (options.showTimings && node.durationMs !== undefined) {\n line += ` ${dim(`[${formatDuration(node.durationMs)}]`)}`;\n }\n\n // Add backpressure indicator if occurred\n if (node.backpressureOccurred) {\n line += dim(\" [backpressure]\");\n }\n\n // Add final position\n if (node.streamState === \"closed\") {\n line += dim(` pos:${node.finalPosition}`);\n }\n\n return line;\n}\n\n/**\n * Render a parallel node (allAsync).\n */\nfunction renderParallelNode(\n node: ParallelNode,\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>,\n depth: number,\n hooks?: WorkflowHooks\n): string[] {\n const lines: string[] = [];\n const indent = \" \".repeat(depth);\n\n // Header\n const symbol = getColoredSymbol(node.state, colors);\n const name = node.name ?? \"parallel\";\n const mode = node.mode === \"allSettled\" ? \" (allSettled)\" : \"\";\n lines.push(`${indent}${BOX.teeRight}${BOX.teeDown}${BOX.horizontal} ${symbol} ${bold(name)}${mode}`);\n\n // Children\n if (node.children.length === 0) {\n // Empty parallel scope - operations inside allAsync/anyAsync weren't tracked as steps\n lines.push(`${indent}${BOX.vertical} ${dim(\"(operations not individually tracked)\")}`);\n lines.push(`${indent}${BOX.vertical} ${dim(\"(wrap each operation with step() to see individual steps)\")}`);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const isLast = i === node.children.length - 1;\n const prefix = isLast ? `${indent}${BOX.vertical} ${BOX.bottomLeft}` : `${indent}${BOX.vertical} ${BOX.teeRight}`;\n\n if (isStepNode(child)) {\n lines.push(`${prefix} ${renderStepNode(child, options, colors, hooks)}`);\n } else {\n // Nested structure - recurse\n const nestedLines = renderNodes([child], options, colors, depth + 1, hooks);\n for (const line of nestedLines) {\n lines.push(`${indent}${BOX.vertical} ${line}`);\n }\n }\n }\n }\n\n // Timing footer\n if (options.showTimings && node.durationMs !== undefined) {\n lines.push(`${indent}${BOX.bottomLeft}${BOX.horizontal}${BOX.horizontal} ${dim(`[${formatDuration(node.durationMs)}]`)}`);\n }\n\n return lines;\n}\n\n/**\n * Render a race node (anyAsync).\n */\nfunction renderRaceNode(\n node: RaceNode,\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>,\n depth: number,\n hooks?: WorkflowHooks\n): string[] {\n const lines: string[] = [];\n const indent = \" \".repeat(depth);\n\n // Header with lightning bolt for race\n const symbol = getColoredSymbol(node.state, colors);\n const name = node.name ?? \"race\";\n lines.push(`${indent}${BOX.teeRight}⚡ ${symbol} ${bold(name)}`);\n\n // Children\n if (node.children.length === 0) {\n // Empty race scope - operations inside anyAsync weren't tracked as steps\n lines.push(`${indent}${BOX.vertical} ${dim(\"(operations not individually tracked)\")}`);\n lines.push(`${indent}${BOX.vertical} ${dim(\"(wrap each operation with step() to see individual steps)\")}`);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const isLast = i === node.children.length - 1;\n const prefix = isLast ? `${indent}${BOX.vertical} ${BOX.bottomLeft}` : `${indent}${BOX.vertical} ${BOX.teeRight}`;\n\n // Mark winner\n const isWinner = node.winnerId && child.id === node.winnerId;\n const winnerSuffix = isWinner ? dim(\" (winner)\") : \"\";\n\n if (isStepNode(child)) {\n lines.push(`${prefix} ${renderStepNode(child, options, colors, hooks)}${winnerSuffix}`);\n } else {\n const nestedLines = renderNodes([child], options, colors, depth + 1, hooks);\n for (const line of nestedLines) {\n lines.push(`${indent}${BOX.vertical} ${line}`);\n }\n }\n }\n }\n\n // Timing footer\n if (options.showTimings && node.durationMs !== undefined) {\n lines.push(`${indent}${BOX.bottomLeft}${BOX.horizontal}${BOX.horizontal} ${dim(`[${formatDuration(node.durationMs)}]`)}`);\n }\n\n return lines;\n}\n\n/**\n * Render a decision node (conditional branch).\n */\nfunction renderDecisionNode(\n node: DecisionNode,\n options: RenderOptions,\n colors: ReturnType<typeof Object.assign>,\n depth: number,\n hooks?: WorkflowHooks\n): string[] {\n const lines: string[] = [];\n const indent = \" \".repeat(depth);\n\n // Header with decision info\n const symbol = getColoredSymbol(node.state, colors);\n const name = node.name ?? \"decision\";\n const condition = node.condition\n ? dim(` (${node.condition})`)\n : \"\";\n const decisionValue = node.decisionValue !== undefined\n ? dim(` = ${String(node.decisionValue)}`)\n : \"\";\n const branchTaken = node.branchTaken !== undefined\n ? dim(` → ${String(node.branchTaken)}`)\n : \"\";\n\n lines.push(\n `${indent}${BOX.teeRight}${BOX.teeDown}${BOX.horizontal} ${symbol} ${bold(name)}${condition}${decisionValue}${branchTaken}`\n );\n\n // Render branches\n for (let i = 0; i < node.branches.length; i++) {\n const branch = node.branches[i];\n const isLast = i === node.branches.length - 1;\n const prefix = isLast\n ? `${indent}${BOX.vertical} ${BOX.bottomLeft}`\n : `${indent}${BOX.vertical} ${BOX.teeRight}`;\n\n // Branch label with taken/skipped indicator\n const branchSymbol = branch.taken ? \"✓\" : \"⊘\";\n const branchColor = branch.taken ? colors.success : colors.skipped;\n const branchLabel = colorize(\n `${branchSymbol} ${branch.label}`,\n branchColor\n );\n const branchCondition = branch.condition\n ? dim(` (${branch.condition})`)\n : \"\";\n\n lines.push(`${prefix} ${branchLabel}${branchCondition}`);\n\n // Render children of this branch\n if (branch.children.length > 0) {\n const childLines = renderNodes(branch.children, options, colors, depth + 1, hooks);\n for (const line of childLines) {\n lines.push(`${indent}${BOX.vertical} ${line}`);\n }\n } else if (!branch.taken) {\n // Show that this branch was skipped\n lines.push(\n `${indent}${BOX.vertical} ${dim(\"(skipped)\")}`\n );\n }\n }\n\n // Timing footer\n if (options.showTimings && node.durationMs !== undefined) {\n lines.push(\n `${indent}${BOX.bottomLeft}${BOX.horizontal}${BOX.horizontal} ${dim(`[${formatDuration(node.durationMs)}]`)}`\n );\n }\n\n return lines;\n}\n\nexport { defaultColorScheme };\n","/**\n * Workflow Visualization - Intermediate Representation Types\n *\n * The IR (Intermediate Representation) is a DSL that represents workflow\n * execution structure. Events are converted to IR, which can then be\n * rendered to various output formats (ASCII, Mermaid, JSON, etc.).\n */\n\n// =============================================================================\n// Step States\n// =============================================================================\n\n/**\n * Execution state of a step with semantic meaning for visualization.\n *\n * Color mapping:\n * - pending → white/clear (not started)\n * - running → yellow (currently executing)\n * - success → green (completed successfully)\n * - error → red (failed with error)\n * - aborted → gray (cancelled, e.g., in race)\n * - cached → blue (served from cache)\n * - skipped → dim gray (not executed due to conditional logic)\n */\nexport type StepState =\n | \"pending\"\n | \"running\"\n | \"success\"\n | \"error\"\n | \"aborted\"\n | \"cached\"\n | \"skipped\";\n\n// =============================================================================\n// Node Types\n// =============================================================================\n\n/**\n * Base properties shared by all IR nodes.\n */\nexport interface BaseNode {\n /** Unique identifier for this node */\n id: string;\n /** Human-readable name (from step options or inferred) */\n name?: string;\n /** Cache key if this is a keyed step */\n key?: string;\n /** Current execution state */\n state: StepState;\n /** Timestamp when execution started */\n startTs?: number;\n /** Timestamp when execution ended */\n endTs?: number;\n /** Duration in milliseconds */\n durationMs?: number;\n /** Error value if state is 'error' */\n error?: unknown;\n /** Input value that triggered this step (for decision understanding) */\n input?: unknown;\n /** Output value from this step (for decision understanding) */\n output?: unknown;\n /** Number of retry attempts made (0 = no retries, 1 = one retry, etc.) */\n retryCount?: number;\n /** Whether this step experienced a timeout (may have retried after) */\n timedOut?: boolean;\n /** Timeout duration in ms (if timed out) */\n timeoutMs?: number;\n}\n\n/**\n * A single step execution node.\n */\nexport interface StepNode extends BaseNode {\n type: \"step\";\n}\n\n/**\n * Sequential execution - steps run one after another.\n * This is the implicit structure when steps are awaited in sequence.\n */\nexport interface SequenceNode extends BaseNode {\n type: \"sequence\";\n children: FlowNode[];\n}\n\n/**\n * Parallel execution - all branches run simultaneously.\n * Created by allAsync() or allSettledAsync().\n */\nexport interface ParallelNode extends BaseNode {\n type: \"parallel\";\n children: FlowNode[];\n /**\n * Execution mode:\n * - 'all': Fails on first error (allAsync)\n * - 'allSettled': Collects all results (allSettledAsync)\n */\n mode: \"all\" | \"allSettled\";\n}\n\n/**\n * Race execution - first to complete wins.\n * Created by anyAsync().\n */\nexport interface RaceNode extends BaseNode {\n type: \"race\";\n children: FlowNode[];\n /** ID of the winning branch (first to succeed) */\n winnerId?: string;\n}\n\n/**\n * Stream operation node.\n * Tracks streaming events (write, read, close, error, backpressure).\n */\nexport interface StreamNode extends BaseNode {\n type: \"stream\";\n /** Stream namespace identifier */\n namespace: string;\n /** Total number of write operations */\n writeCount: number;\n /** Total number of read operations */\n readCount: number;\n /** Final position when stream closed */\n finalPosition: number;\n /** Current stream state */\n streamState: \"active\" | \"closed\" | \"error\";\n /** Whether backpressure was encountered during streaming */\n backpressureOccurred: boolean;\n}\n\n/**\n * Decision point - conditional branch (if/switch).\n * Shows which branch was taken and why.\n */\nexport interface DecisionNode extends BaseNode {\n type: \"decision\";\n /** Condition that was evaluated (e.g., \"user.role === 'admin'\") */\n condition?: string;\n /** Value that was evaluated (the input to the decision) */\n decisionValue?: unknown;\n /** Which branch was taken (true/false, or the matched case) */\n branchTaken?: string | boolean;\n /** All possible branches (including skipped ones) */\n branches: DecisionBranch[];\n}\n\n/**\n * A branch in a decision node.\n */\nexport interface DecisionBranch {\n /** Label for this branch (e.g., \"if\", \"else\", \"case 'admin'\") */\n label: string;\n /** Condition that would trigger this branch */\n condition?: string;\n /** Whether this branch was taken */\n taken: boolean;\n /** Steps in this branch */\n children: FlowNode[];\n}\n\n/**\n * Union of all flow node types.\n */\nexport type FlowNode = StepNode | SequenceNode | ParallelNode | RaceNode | DecisionNode | StreamNode;\n\n/**\n * Root node representing the entire workflow.\n */\nexport interface WorkflowNode extends BaseNode {\n type: \"workflow\";\n /** Correlation ID from the workflow execution */\n workflowId: string;\n /** Child nodes (steps, parallel blocks, etc.) */\n children: FlowNode[];\n}\n\n// =============================================================================\n// Workflow IR\n// =============================================================================\n\n/**\n * Complete workflow intermediate representation.\n * This is the main data structure produced by the IR builder.\n */\nexport interface WorkflowIR {\n /** Root workflow node */\n root: WorkflowNode;\n /** Metadata about the IR */\n metadata: {\n /** When the IR was first created */\n createdAt: number;\n /** When the IR was last updated */\n lastUpdatedAt: number;\n };\n /** Hook executions (if any hooks are configured) */\n hooks?: WorkflowHooks;\n}\n\n// =============================================================================\n// Scope Events (for parallel/race detection)\n// =============================================================================\n\n// Re-export ScopeType from awaitly for consistency\nexport type { ScopeType } from \"awaitly/workflow\";\nimport type { ScopeType, WorkflowEvent, WorkflowOptions } from \"awaitly/workflow\";\nimport type { UnexpectedError } from \"awaitly/core\";\n\n/**\n * Event emitted when entering a parallel/race scope.\n * This matches the scope_start event in WorkflowEvent.\n */\nexport interface ScopeStartEvent {\n type: \"scope_start\";\n workflowId: string;\n scopeId: string;\n scopeType: ScopeType;\n name?: string;\n ts: number;\n}\n\n/**\n * Event emitted when exiting a parallel/race scope.\n */\nexport interface ScopeEndEvent {\n type: \"scope_end\";\n workflowId: string;\n scopeId: string;\n ts: number;\n durationMs: number;\n /** For race scopes, the ID of the winning branch */\n winnerId?: string;\n}\n\n/**\n * Event emitted when a decision point is encountered.\n * Use this to track conditional logic (if/switch).\n */\nexport interface DecisionStartEvent {\n type: \"decision_start\";\n workflowId: string;\n decisionId: string;\n /** Condition being evaluated (e.g., \"user.role === 'admin'\") */\n condition?: string;\n /** Value being evaluated */\n decisionValue?: unknown;\n /** Name/label for this decision point */\n name?: string;\n ts: number;\n}\n\n/**\n * Event emitted when a decision branch is taken.\n */\nexport interface DecisionBranchEvent {\n type: \"decision_branch\";\n workflowId: string;\n decisionId: string;\n /** Label for this branch (e.g., \"if\", \"else\", \"case 'admin'\") */\n branchLabel: string;\n /** Condition for this branch */\n condition?: string;\n /** Whether this branch was taken */\n taken: boolean;\n ts: number;\n}\n\n/**\n * Event emitted when a decision point completes.\n */\nexport interface DecisionEndEvent {\n type: \"decision_end\";\n workflowId: string;\n decisionId: string;\n /** Which branch was taken */\n branchTaken?: string | boolean;\n ts: number;\n durationMs: number;\n}\n\n/**\n * Event emitted when a step is skipped due to conditional logic.\n */\nexport interface StepSkippedEvent {\n type: \"step_skipped\";\n workflowId: string;\n stepKey?: string;\n name?: string;\n /** Reason why this step was skipped (e.g., \"condition was false\") */\n reason?: string;\n /** The decision that caused this skip */\n decisionId?: string;\n ts: number;\n}\n\n/**\n * Union of scope-related events.\n */\nexport type ScopeEvent = ScopeStartEvent | ScopeEndEvent;\n\n/**\n * Union of decision-related events.\n */\nexport type DecisionEvent = DecisionStartEvent | DecisionBranchEvent | DecisionEndEvent;\n\n// =============================================================================\n// Renderer Types\n// =============================================================================\n\n/**\n * Color scheme for rendering step states.\n */\nexport interface ColorScheme {\n pending: string;\n running: string;\n success: string;\n error: string;\n aborted: string;\n cached: string;\n skipped: string;\n}\n\n/**\n * Options passed to renderers.\n */\nexport interface RenderOptions {\n /** Show timing information (duration) */\n showTimings: boolean;\n /** Show step cache keys */\n showKeys: boolean;\n /** Terminal width for ASCII renderer */\n terminalWidth?: number;\n /** Color scheme */\n colors: ColorScheme;\n}\n\n/**\n * Extended options for Mermaid renderer.\n * Controls how edges are displayed for retries, errors, and timeouts.\n */\nexport interface MermaidRenderOptions extends RenderOptions {\n /** Show retry as self-loop edge (default: true) */\n showRetryEdges?: boolean;\n /** Show error flow to error node (default: true) */\n showErrorEdges?: boolean;\n /** Show timeout as alternative path (default: true) */\n showTimeoutEdges?: boolean;\n}\n\n/**\n * Renderer interface - transforms IR to output format.\n */\nexport interface Renderer {\n /** Unique identifier for this renderer */\n readonly name: string;\n /** Render IR to string output */\n render(ir: WorkflowIR, options: RenderOptions): string;\n /** Whether this renderer supports live (incremental) updates */\n supportsLive?: boolean;\n /** Render incremental update (optional) */\n renderUpdate?(\n ir: WorkflowIR,\n changedNodes: FlowNode[],\n options: RenderOptions\n ): string;\n}\n\n// =============================================================================\n// Visualizer Types\n// =============================================================================\n\n/**\n * Output format for rendering.\n */\nexport type OutputFormat = \"ascii\" | \"mermaid\" | \"json\" | \"logger\" | \"flowchart\";\n\n/**\n * Options for creating a visualizer.\n */\nexport interface VisualizerOptions {\n /** Name for the workflow in visualizations */\n workflowName?: string;\n /** Enable parallel detection heuristics (default: true) */\n detectParallel?: boolean;\n /** Show timing information (default: true) */\n showTimings?: boolean;\n /** Show step keys (default: false) */\n showKeys?: boolean;\n /** Custom color scheme */\n colors?: Partial<ColorScheme>;\n /**\n * Export configuration for URL generation methods.\n * Note: Treated as immutable after creation - do not mutate.\n */\n export?: {\n /** Default export provider (opt-in). If not set, export methods require explicit provider. */\n default?: ExportOptions;\n };\n}\n\n/**\n * Options for createVisualizingWorkflow convenience factory.\n * Combines WorkflowOptions with VisualizerOptions.\n *\n * @example\n * ```typescript\n * const { workflow, visualizer } = createVisualizingWorkflow(deps, {\n * workflowName: 'checkout',\n * showTimings: true,\n * forwardTo: (event) => console.log(event.type),\n * });\n * ```\n */\nexport interface VisualizingWorkflowOptions<E, C = void>\n extends Omit<WorkflowOptions<E, C>, \"onEvent\">,\n VisualizerOptions {\n /** Forward events to additional handler (runs after visualization) */\n forwardTo?: (event: WorkflowEvent<E | UnexpectedError, C>, ctx: C) => void;\n}\n\n/**\n * Options for live visualization.\n */\nexport interface LiveVisualizerOptions extends VisualizerOptions {\n /** Output stream (default: process.stdout) */\n stream?: NodeJS.WriteStream;\n /** Update interval in ms (default: 100) */\n updateInterval?: number;\n}\n\n// =============================================================================\n// Type Guards\n// =============================================================================\n\n/**\n * Check if a node is a StepNode.\n */\nexport function isStepNode(node: FlowNode): node is StepNode {\n return node.type === \"step\";\n}\n\n/**\n * Check if a node is a SequenceNode.\n */\nexport function isSequenceNode(node: FlowNode): node is SequenceNode {\n return node.type === \"sequence\";\n}\n\n/**\n * Check if a node is a ParallelNode.\n */\nexport function isParallelNode(node: FlowNode): node is ParallelNode {\n return node.type === \"parallel\";\n}\n\n/**\n * Check if a node is a RaceNode.\n */\nexport function isRaceNode(node: FlowNode): node is RaceNode {\n return node.type === \"race\";\n}\n\n/**\n * Check if a node is a DecisionNode.\n */\nexport function isDecisionNode(node: FlowNode): node is DecisionNode {\n return node.type === \"decision\";\n}\n\n/**\n * Check if a node is a StreamNode.\n */\nexport function isStreamNode(node: FlowNode): node is StreamNode {\n return node.type === \"stream\";\n}\n\n/**\n * Check if a node has children.\n */\nexport function hasChildren(\n node: FlowNode\n): node is SequenceNode | ParallelNode | RaceNode | DecisionNode {\n return \"children\" in node || (node.type === \"decision\" && \"branches\" in node);\n}\n\n// =============================================================================\n// Time Travel Types\n// =============================================================================\n\n/**\n * Snapshot of an active step's state at a point in time.\n */\nexport interface ActiveStepSnapshot {\n id: string;\n name?: string;\n key?: string;\n startTs: number;\n retryCount: number;\n timedOut: boolean;\n timeoutMs?: number;\n}\n\n/**\n * A snapshot of the complete IR state at a specific point in time.\n * Used for time-travel debugging - each event creates a snapshot.\n */\nexport interface IRSnapshot {\n /** Unique identifier for this snapshot */\n id: string;\n /** Index in the event sequence (0-based) */\n eventIndex: number;\n /** The event that triggered this snapshot */\n event: unknown; // WorkflowEvent - avoid circular import\n /** Complete IR state at this moment */\n ir: WorkflowIR;\n /** Timestamp when snapshot was taken */\n timestamp: number;\n /** Active step states at this moment (for debugging) */\n activeSteps: Map<string, ActiveStepSnapshot>;\n}\n\n/**\n * State of the time-travel controller.\n */\nexport interface TimeTravelState {\n /** All recorded snapshots */\n snapshots: IRSnapshot[];\n /** Current snapshot index (for playback position) */\n currentIndex: number;\n /** Whether playback is active */\n isPlaying: boolean;\n /** Playback speed multiplier (1.0 = realtime, 2.0 = 2x speed) */\n playbackSpeed: number;\n /** Whether recording is active */\n isRecording: boolean;\n}\n\n// =============================================================================\n// Performance Analysis Types\n// =============================================================================\n\n/**\n * Performance metrics for a single node across multiple runs.\n */\nexport interface NodePerformance {\n /** Node identifier (name or step ID) */\n nodeId: string;\n /** Average duration across all samples */\n avgDurationMs: number;\n /** Minimum duration observed */\n minDurationMs: number;\n /** Maximum duration observed */\n maxDurationMs: number;\n /** Standard deviation of durations */\n stdDevMs: number;\n /** Number of timing samples collected */\n samples: number;\n /** Retry frequency (0-1, where 1 = always retries) */\n retryRate: number;\n /** Timeout frequency (0-1) */\n timeoutRate: number;\n /** Error rate (0-1) */\n errorRate: number;\n /** Percentile data for distribution analysis */\n percentiles: {\n p50: number;\n p90: number;\n p95: number;\n p99: number;\n };\n}\n\n/**\n * Heatmap data for visualizing performance across nodes.\n */\nexport interface HeatmapData {\n /** Map of node ID to heat level (0-1, where 1 is hottest/slowest) */\n heat: Map<string, number>;\n /** The metric used for heat calculation */\n metric: \"duration\" | \"retryRate\" | \"errorRate\";\n /** Statistics used to compute heat values */\n stats: {\n /** Minimum value in the dataset */\n min: number;\n /** Maximum value in the dataset */\n max: number;\n /** Mean value */\n mean: number;\n /** Threshold above which a node is considered \"hot\" */\n threshold: number;\n };\n}\n\n/**\n * Heat level for visual styling.\n */\nexport type HeatLevel = \"cold\" | \"cool\" | \"neutral\" | \"warm\" | \"hot\" | \"critical\";\n\n// =============================================================================\n// HTML Renderer Types\n// =============================================================================\n\n/**\n * Theme for the HTML visualizer.\n */\nexport type HTMLTheme = \"light\" | \"dark\" | \"auto\";\n\n/**\n * Layout direction for the workflow diagram.\n */\nexport type LayoutDirection = \"TB\" | \"LR\" | \"BT\" | \"RL\";\n\n/**\n * Options for the HTML renderer.\n */\nexport interface HTMLRenderOptions extends RenderOptions {\n /** Enable interactive features (click to inspect, zoom/pan) */\n interactive: boolean;\n /** Include time-travel controls */\n timeTravel: boolean;\n /** Include performance heatmap overlay */\n heatmap: boolean;\n /** Animation duration for transitions (ms) */\n animationDuration: number;\n /** Color theme */\n theme: HTMLTheme;\n /** Diagram layout direction */\n layout: LayoutDirection;\n /** Heatmap data (if heatmap is enabled) */\n heatmapData?: HeatmapData;\n /** WebSocket URL for live updates (if streaming) */\n wsUrl?: string;\n}\n\n/**\n * Message sent from the web visualizer to the dev server.\n */\nexport interface WebVisualizerMessage {\n type:\n | \"time_travel_seek\"\n | \"time_travel_play\"\n | \"time_travel_pause\"\n | \"time_travel_step_forward\"\n | \"time_travel_step_backward\"\n | \"request_snapshots\"\n | \"toggle_heatmap\"\n | \"set_heatmap_metric\";\n payload?: unknown;\n}\n\n/**\n * Message sent from the dev server to the web visualizer.\n */\nexport interface ServerMessage {\n type:\n | \"ir_update\"\n | \"snapshot\"\n | \"snapshots_list\"\n | \"performance_data\"\n | \"workflow_complete\"\n | \"time_travel_state\";\n payload: unknown;\n}\n\n// =============================================================================\n// Enhanced ASCII Renderer Types\n// =============================================================================\n\n/**\n * Extended render options for the enhanced ASCII renderer.\n */\nexport interface EnhancedRenderOptions extends RenderOptions {\n /** Show performance heatmap coloring */\n showHeatmap?: boolean;\n /** Heatmap data for coloring nodes */\n heatmapData?: HeatmapData;\n /** Show timing sparklines (requires historical data) */\n showSparklines?: boolean;\n /** Historical timing data for sparklines: nodeId → array of durations */\n timingHistory?: Map<string, number[]>;\n}\n\n/**\n * Options for the flowchart ASCII renderer.\n * Renders workflow as a proper flowchart with boxes and arrows.\n */\nexport interface FlowchartRenderOptions extends EnhancedRenderOptions {\n /** Show start and end nodes (default: true) */\n showStartEnd?: boolean;\n /** Reduce vertical spacing between nodes (default: false) */\n compact?: boolean;\n /** Box border style (default: 'single') */\n boxStyle?: \"single\" | \"double\" | \"rounded\";\n}\n\n// =============================================================================\n// Hook Execution Types\n// =============================================================================\n\n/**\n * State of a hook execution.\n */\nexport type HookState = \"pending\" | \"running\" | \"success\" | \"error\";\n\n/**\n * Execution record for a workflow hook.\n */\nexport interface HookExecution {\n /** Hook type identifier */\n type: \"shouldRun\" | \"onBeforeStart\" | \"onAfterStep\";\n /** Execution state */\n state: HookState;\n /** Timestamp when hook started */\n ts: number;\n /** Duration in milliseconds */\n durationMs?: number;\n /** Error if hook failed */\n error?: unknown;\n /** Additional context (e.g., stepKey for onAfterStep) */\n context?: {\n /** Step key for onAfterStep hooks */\n stepKey?: string;\n /** Result of shouldRun hook */\n result?: boolean;\n /** Whether workflow was skipped due to shouldRun returning false */\n skipped?: boolean;\n };\n}\n\n/**\n * Hook execution summary for the workflow.\n */\nexport interface WorkflowHooks {\n /** shouldRun hook execution (if configured) */\n shouldRun?: HookExecution;\n /** onBeforeStart hook execution (if configured) */\n onBeforeStart?: HookExecution;\n /** onAfterStep hook executions (keyed by stepKey) */\n onAfterStep: Map<string, HookExecution>;\n}\n\n// =============================================================================\n// Export Types\n// =============================================================================\n\n/**\n * Export format for diagram URLs.\n */\nexport type ExportFormat = \"svg\" | \"png\" | \"pdf\";\n\n/**\n * Diagram source - future-proof union for multiple diagram types.\n * Uses \"kind\" internally, maps to \"diagramType\" for Kroki API.\n */\nexport type DiagramSource =\n | { kind: \"mermaid\"; source: string }\n | { kind: \"graphviz\"; source: string }\n | { kind: \"plantuml\"; source: string };\n\n/**\n * Kroki-specific export options.\n * Note: No background/scale - Kroki doesn't support them for mermaid diagrams.\n */\nexport interface KrokiExportOptions {\n /** Provider identifier */\n provider: \"kroki\";\n /** Base URL for self-hosted Kroki (default: https://kroki.io) */\n baseUrl?: string;\n}\n\n/**\n * Mermaid.ink-specific export options.\n * Supports additional styling options like background, scale, and theme.\n */\nexport interface MermaidInkExportOptions {\n /** Provider identifier */\n provider: \"mermaid-ink\";\n /** Mermaid theme */\n mermaidTheme?: \"default\" | \"dark\" | \"forest\" | \"neutral\";\n /** Background color: \"transparent\" or hex color (e.g., \"1b1b1f\") */\n background?: \"transparent\" | string;\n /** Image scale (1-3) */\n scale?: number;\n /** Fit PDF to diagram size */\n fit?: boolean;\n /** Image width in pixels */\n width?: number;\n /** Image height in pixels */\n height?: number;\n /** Paper size for PDF */\n paper?: \"a4\" | \"letter\";\n}\n\n/**\n * Discriminated union of export options.\n * Provider is the discriminant - no implicit defaults.\n */\nexport type ExportOptions = KrokiExportOptions | MermaidInkExportOptions;\n","/**\n * Timing utilities for workflow visualization.\n */\n\n/**\n * Format duration in milliseconds to a human-readable string.\n *\n * @example\n * formatDuration(23) // \"23ms\"\n * formatDuration(1500) // \"1.5s\"\n * formatDuration(65000) // \"1m 5s\"\n */\nexport function formatDuration(ms: number): string {\n if (ms < 1000) {\n return `${Math.round(ms)}ms`;\n }\n\n if (ms < 60000) {\n const seconds = ms / 1000;\n // Show one decimal for seconds\n return `${seconds.toFixed(1).replace(/\\.0$/, \"\")}s`;\n }\n\n let minutes = Math.floor(ms / 60000);\n let seconds = Math.round((ms % 60000) / 1000);\n if (seconds >= 60) {\n minutes += 1;\n seconds = 0;\n }\n\n if (seconds === 0) {\n return `${minutes}m`;\n }\n\n return `${minutes}m ${seconds}s`;\n}\n\n/**\n * Generate a unique ID for nodes.\n */\nexport function generateId(): string {\n return `node_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;\n}\n","/**\n * ANSI color utilities for terminal output.\n */\n\nimport type { ColorScheme, StepState } from \"../types\";\n\n// =============================================================================\n// ANSI Escape Codes\n// =============================================================================\n\nconst RESET = \"\\x1b[0m\";\nconst BOLD = \"\\x1b[1m\";\nconst DIM = \"\\x1b[2m\";\n\n// Foreground colors\nconst FG_RED = \"\\x1b[31m\";\nconst FG_GREEN = \"\\x1b[32m\";\nconst FG_YELLOW = \"\\x1b[33m\";\nconst FG_BLUE = \"\\x1b[34m\";\nconst FG_GRAY = \"\\x1b[90m\";\nconst FG_WHITE = \"\\x1b[37m\";\n\n// =============================================================================\n// Color Functions\n// =============================================================================\n\n/**\n * Apply ANSI color to text.\n */\nexport function colorize(text: string, color: string): string {\n if (!color) return text;\n return `${color}${text}${RESET}`;\n}\n\n/**\n * Make text bold.\n */\nexport function bold(text: string): string {\n return `${BOLD}${text}${RESET}`;\n}\n\n/**\n * Make text dim.\n */\nexport function dim(text: string): string {\n return `${DIM}${text}${RESET}`;\n}\n\n// =============================================================================\n// Default Color Scheme\n// =============================================================================\n\n/**\n * Default ANSI color scheme for step states.\n */\nexport const defaultColorScheme: ColorScheme = {\n pending: FG_WHITE,\n running: FG_YELLOW,\n success: FG_GREEN,\n error: FG_RED,\n aborted: FG_GRAY,\n cached: FG_BLUE,\n skipped: DIM + FG_GRAY, // Dim gray for skipped steps\n};\n\n// =============================================================================\n// State Symbols\n// =============================================================================\n\n/**\n * Get the symbol for a step state.\n */\nexport function getStateSymbol(state: StepState): string {\n switch (state) {\n case \"pending\":\n return \"○\"; // Empty circle\n case \"running\":\n return \"⟳\"; // Rotating arrows\n case \"success\":\n return \"✓\"; // Check mark\n case \"error\":\n return \"✗\"; // X mark\n case \"aborted\":\n return \"⊘\"; // Circled slash\n case \"cached\":\n return \"↺\"; // Cached/replay\n case \"skipped\":\n return \"⊘\"; // Circled slash (same as aborted, but different color)\n }\n}\n\n/**\n * Get the colored symbol for a step state.\n */\nexport function getColoredSymbol(state: StepState, colors: ColorScheme): string {\n const symbol = getStateSymbol(state);\n return colorize(symbol, colors[state]);\n}\n\n/**\n * Get colored text based on step state.\n */\nexport function colorByState(\n text: string,\n state: StepState,\n colors: ColorScheme\n): string {\n return colorize(text, colors[state]);\n}\n\n// =============================================================================\n// Strip ANSI\n// =============================================================================\n\n/**\n * Strip ANSI escape codes from a string.\n * Useful for calculating visible string length.\n */\nexport function stripAnsi(str: string): string {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\x1b\\[[0-9;]*m/g, \"\");\n}\n\n/**\n * Get the visible length of a string (without ANSI codes).\n */\nexport function visibleLength(str: string): string {\n return stripAnsi(str);\n}\n","/**\n * Mermaid Diagram Renderer\n *\n * Renders the workflow IR as a Mermaid flowchart diagram.\n * Supports sequential flows, parallel (subgraph), and race patterns.\n */\n\nimport { ok, err, type Result } from \"awaitly\";\nimport type {\n FlowNode,\n ParallelNode,\n RaceNode,\n DecisionNode,\n StreamNode,\n Renderer,\n RenderOptions,\n MermaidRenderOptions,\n StepNode,\n StepState,\n WorkflowIR,\n EnhancedRenderOptions,\n HeatLevel,\n WorkflowHooks,\n} from \"../types\";\nimport { isParallelNode, isRaceNode, isStepNode, isDecisionNode, isStreamNode } from \"../types\";\nimport { formatDuration } from \"../utils/timing\";\nimport { getHeatLevel } from \"../performance-analyzer\";\n\n/**\n * Error types for stringify operations.\n */\nexport type StringifyError = \"STRINGIFY_ERROR\";\n\n// =============================================================================\n// Mermaid Style Definitions\n// =============================================================================\n\n/**\n * Get Mermaid class definition for step states.\n * Colors inspired by AWS Step Functions and XState visualizers for professional appearance.\n */\nfunction getStyleDefinitions(): string[] {\n return [\n // Pending - light gray, subtle\n \" classDef pending fill:#f3f4f6,stroke:#9ca3af,stroke-width:2px,color:#374151\",\n // Running - amber/yellow, indicates active execution\n \" classDef running fill:#fef3c7,stroke:#f59e0b,stroke-width:3px,color:#92400e\",\n // Success - green, clear positive indicator\n \" classDef success fill:#d1fae5,stroke:#10b981,stroke-width:3px,color:#065f46\",\n // Error - red, clear negative indicator\n \" classDef error fill:#fee2e2,stroke:#ef4444,stroke-width:3px,color:#991b1b\",\n // Aborted - gray, indicates cancellation\n \" classDef aborted fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#4b5563,stroke-dasharray: 5 5\",\n // Cached - blue, indicates cache hit\n \" classDef cached fill:#dbeafe,stroke:#3b82f6,stroke-width:3px,color:#1e40af\",\n // Skipped - light gray with dashed border\n \" classDef skipped fill:#f9fafb,stroke:#d1d5db,stroke-width:2px,color:#6b7280,stroke-dasharray: 5 5\",\n // Stream - purple/violet, indicates streaming operation\n \" classDef stream fill:#ede9fe,stroke:#8b5cf6,stroke-width:3px,color:#5b21b6\",\n // Stream active - purple with animation indicator\n \" classDef streamActive fill:#ddd6fe,stroke:#7c3aed,stroke-width:3px,color:#4c1d95\",\n // Stream error - purple-red for stream errors\n \" classDef streamError fill:#fce7f3,stroke:#db2777,stroke-width:3px,color:#9d174d\",\n ];\n}\n\n/**\n * Get Mermaid class definitions for heatmap visualization.\n */\nfunction getHeatmapStyleDefinitions(): string[] {\n return [\n // Heatmap colors - cold to hot\n \" classDef heat_cold fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e40af\",\n \" classDef heat_cool fill:#ccfbf1,stroke:#14b8a6,stroke-width:2px,color:#0f766e\",\n \" classDef heat_neutral fill:#f3f4f6,stroke:#6b7280,stroke-width:2px,color:#374151\",\n \" classDef heat_warm fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#92400e\",\n \" classDef heat_hot fill:#fed7aa,stroke:#f97316,stroke-width:3px,color:#c2410c\",\n \" classDef heat_critical fill:#fecaca,stroke:#ef4444,stroke-width:3px,color:#b91c1c\",\n ];\n}\n\n/**\n * Get the Mermaid class name for a heat level.\n */\nfunction getHeatClass(level: HeatLevel): string {\n return `heat_${level}`;\n}\n\n/**\n * Get the Mermaid class name for a step state.\n */\nfunction getStateClass(state: StepState): string {\n return state;\n}\n\n/**\n * Get Mermaid class definitions for hook visualization.\n */\nfunction getHookStyleDefinitions(): string[] {\n return [\n // Hook styles - gear icon aesthetic\n \" classDef hook_success fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#0c4a6e\",\n \" classDef hook_error fill:#fef2f2,stroke:#dc2626,stroke-width:2px,color:#7f1d1d\",\n ];\n}\n\n/**\n * Safely stringify a value, handling circular references and BigInt.\n * Returns Result with either the stringified value or an error.\n */\nfunction safeStringify(value: unknown): Result<string, StringifyError> {\n try {\n const replacer = (_key: string, v: unknown): unknown => {\n if (typeof v !== \"bigint\") return v;\n const n = Number(v);\n return Number.isSafeInteger(n) ? n : v.toString();\n };\n return ok(JSON.stringify(value, replacer));\n } catch {\n return err(\"STRINGIFY_ERROR\");\n }\n}\n\n/**\n * Get stringified value or fallback for unserializable values.\n */\nfunction getStringified(value: unknown): string {\n const result = safeStringify(value);\n return result.ok ? result.value : \"[unserializable]\";\n}\n\n/**\n * Render hooks as nodes before the workflow starts.\n * Returns the ID of the last hook node (to connect to workflow start).\n */\nfunction renderHooks(\n hooks: WorkflowHooks,\n lines: string[],\n options: RenderOptions\n): { lastHookId: string | undefined } {\n let lastHookId: string | undefined;\n\n // Render shouldRun hook\n if (hooks.shouldRun) {\n const hookId = \"hook_shouldRun\";\n const state = hooks.shouldRun.state === \"success\" ? \"hook_success\" : \"hook_error\";\n const icon = hooks.shouldRun.state === \"success\" ? \"⚙\" : \"⚠\";\n const timing = options.showTimings && hooks.shouldRun.durationMs !== undefined\n ? ` ${formatDuration(hooks.shouldRun.durationMs)}`\n : \"\";\n const context = hooks.shouldRun.context?.skipped\n ? \"\\\\nskipped workflow\"\n : hooks.shouldRun.context?.result === true\n ? \"\\\\nproceed\"\n : \"\";\n\n lines.push(` ${hookId}[[\"${icon} shouldRun${context}${timing}\"]]:::${state}`);\n lastHookId = hookId;\n }\n\n // Render onBeforeStart hook\n if (hooks.onBeforeStart) {\n const hookId = \"hook_beforeStart\";\n const state = hooks.onBeforeStart.state === \"success\" ? \"hook_success\" : \"hook_error\";\n const icon = hooks.onBeforeStart.state === \"success\" ? \"⚙\" : \"⚠\";\n const timing = options.showTimings && hooks.onBeforeStart.durationMs !== undefined\n ? ` ${formatDuration(hooks.onBeforeStart.durationMs)}`\n : \"\";\n const context = hooks.onBeforeStart.context?.skipped\n ? \"\\\\nskipped workflow\"\n : \"\";\n\n lines.push(` ${hookId}[[\"${icon} onBeforeStart${context}${timing}\"]]:::${state}`);\n\n // Connect from previous hook if exists\n if (lastHookId) {\n lines.push(` ${lastHookId} --> ${hookId}`);\n }\n lastHookId = hookId;\n }\n\n return { lastHookId };\n}\n\n// =============================================================================\n// Node ID Generation\n// =============================================================================\n\nlet nodeCounter = 0;\nconst usedDecisionIds = new Set<string>();\nconst usedStepIds = new Set<string>();\n\nfunction generateNodeId(prefix: string = \"node\"): string {\n return `${prefix}_${++nodeCounter}`;\n}\n\nfunction resetNodeCounter(): void {\n nodeCounter = 0;\n usedDecisionIds.clear();\n usedStepIds.clear();\n}\n\n// =============================================================================\n// Mermaid Text Escaping\n// =============================================================================\n\n/**\n * Escape text for use in Mermaid diagrams.\n * Only escapes characters that break quoted strings in Mermaid.\n *\n * With bracket-quote syntax (e.g., `nodeId[\"label\"]`), special characters\n * like {}[]() are allowed inside the quoted label.\n *\n * @param text - Text to escape\n * @returns Escaped text safe for Mermaid quoted labels\n */\nfunction escapeMermaidText(text: string): string {\n return text\n .replace(/\"/g, \"#quot;\") // Escape double quotes for Mermaid\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .trim();\n}\n\n/**\n * Escape text for use in Mermaid subgraph names.\n * Subgraph names need special handling - brackets and braces must be removed.\n *\n * @param text - Text to escape for subgraph name\n * @returns Escaped text safe for subgraph names\n */\nfunction escapeSubgraphName(text: string): string {\n return escapeMermaidText(text)\n .replace(/[{}[\\]()]/g, \"\"); // Remove brackets, braces, and parentheses from subgraph names\n}\n\n// =============================================================================\n// Mermaid Renderer\n// =============================================================================\n\n/**\n * Create the Mermaid diagram renderer.\n */\nexport function mermaidRenderer(): Renderer {\n return {\n name: \"mermaid\",\n supportsLive: false,\n\n render(ir: WorkflowIR, options: RenderOptions): string {\n resetNodeCounter();\n const lines: string[] = [];\n\n // Check for enhanced options (heatmap)\n const enhanced = options as EnhancedRenderOptions;\n\n // Diagram header\n lines.push(\"flowchart TD\");\n\n // Render hooks first (if any)\n let hookExitId: string | undefined;\n if (ir.hooks) {\n const hookResult = renderHooks(ir.hooks, lines, options);\n hookExitId = hookResult.lastHookId;\n }\n\n // Start node - more visually distinctive\n const startId = \"start\";\n lines.push(` ${startId}((\"▶ Start\"))`);\n\n // Connect hooks to start node\n if (hookExitId) {\n lines.push(` ${hookExitId} --> ${startId}`);\n }\n\n // Track the last node for connections\n let prevNodeId = startId;\n\n // Render children (passing hooks for onAfterStep annotations)\n for (const child of ir.root.children) {\n const result = renderNode(child, options, lines, enhanced, ir.hooks);\n lines.push(` ${prevNodeId} --> ${result.entryId}`);\n prevNodeId = result.exitId;\n }\n\n // End node (if workflow reached a terminal state) - more visually distinctive\n const terminalStates = [\"success\", \"error\", \"aborted\"] as const;\n if (terminalStates.includes(ir.root.state as (typeof terminalStates)[number])) {\n const endId = \"finish\";\n const endIcon =\n ir.root.state === \"success\" ? \"✓\"\n : ir.root.state === \"error\" ? \"✗\"\n : \"⊘\";\n const endLabel =\n ir.root.state === \"success\" ? \"Done\"\n : ir.root.state === \"error\" ? \"Failed\"\n : \"Cancelled\";\n const endShape = `((\"${endIcon} ${endLabel}\"))`;\n const endClass =\n ir.root.state === \"success\" ? \":::success\"\n : ir.root.state === \"error\" ? \":::error\"\n : \":::aborted\";\n lines.push(` ${endId}${endShape}${endClass}`);\n lines.push(` ${prevNodeId} --> ${endId}`);\n }\n\n // Add style definitions\n lines.push(\"\");\n lines.push(...getStyleDefinitions());\n\n // Add heatmap styles if enabled\n if (enhanced.showHeatmap) {\n lines.push(...getHeatmapStyleDefinitions());\n }\n\n // Add hook styles if hooks were rendered\n if (ir.hooks) {\n lines.push(...getHookStyleDefinitions());\n }\n\n return lines.join(\"\\n\");\n },\n };\n}\n\n/**\n * Render result with entry and exit node IDs.\n */\ninterface RenderResult {\n entryId: string;\n exitId: string;\n}\n\n/**\n * Render a node and return its entry/exit IDs.\n */\nfunction renderNode(\n node: FlowNode,\n options: RenderOptions,\n lines: string[],\n enhanced?: EnhancedRenderOptions,\n hooks?: WorkflowHooks\n): RenderResult {\n if (isStepNode(node)) {\n return renderStepNode(node, options, lines, enhanced, hooks);\n } else if (isParallelNode(node)) {\n return renderParallelNode(node, options, lines, enhanced, hooks);\n } else if (isRaceNode(node)) {\n return renderRaceNode(node, options, lines, enhanced, hooks);\n } else if (isDecisionNode(node)) {\n return renderDecisionNode(node, options, lines, enhanced, hooks);\n } else if (isStreamNode(node)) {\n return renderStreamNode(node, options, lines);\n }\n\n // Fallback for sequence or unknown nodes\n const id = generateNodeId(\"unknown\");\n lines.push(` ${id}[\"Unknown Node\"]`);\n return { entryId: id, exitId: id };\n}\n\n/**\n * Render a step node.\n */\nfunction renderStepNode(\n node: StepNode,\n options: RenderOptions,\n lines: string[],\n enhanced?: EnhancedRenderOptions,\n hooks?: WorkflowHooks\n): RenderResult {\n // Cast to MermaidRenderOptions to access extended options\n const mermaidOpts = options as MermaidRenderOptions;\n const showRetryEdges = mermaidOpts.showRetryEdges ?? true;\n const showErrorEdges = mermaidOpts.showErrorEdges ?? true;\n const showTimeoutEdges = mermaidOpts.showTimeoutEdges ?? true;\n\n // Generate step ID, ensuring uniqueness even with duplicate keys\n let id = node.key\n ? `step_${node.key.replace(/[^a-zA-Z0-9]/g, \"_\")}`\n : generateNodeId(\"step\");\n\n // Ensure uniqueness by appending suffix if collision\n if (usedStepIds.has(id)) {\n let suffix = 2;\n while (usedStepIds.has(`${id}_${suffix}`)) {\n suffix++;\n }\n id = `${id}_${suffix}`;\n }\n usedStepIds.add(id);\n\n const baseLabel = node.name ?? node.key ?? \"Step\";\n const labelText = options.showKeys && node.key && node.name\n ? `${baseLabel} [${node.key}]`\n : baseLabel;\n const label = escapeMermaidText(labelText);\n\n // Format timing - use space instead of parentheses to avoid Mermaid parse errors\n const timing =\n options.showTimings && node.durationMs !== undefined\n ? ` ${formatDuration(node.durationMs)}`\n : \"\";\n\n // Add visual indicators based on state (like XState/AWS Step Functions)\n let stateIcon = \"\";\n switch (node.state) {\n case \"success\":\n stateIcon = \"✓ \";\n break;\n case \"error\":\n stateIcon = \"✗ \";\n break;\n case \"cached\":\n stateIcon = \"💾 \";\n break;\n case \"running\":\n stateIcon = \"⏳ \";\n break;\n case \"skipped\":\n stateIcon = \"⊘ \";\n break;\n }\n\n // Add input/output info if available\n // Use newlines for multi-line labels, but escape special characters\n let ioInfo = \"\";\n if (node.input !== undefined) {\n const inputStr = typeof node.input === \"string\"\n ? escapeMermaidText(node.input)\n : escapeMermaidText(getStringified(node.input).slice(0, 20));\n ioInfo += `\\\\nin: ${inputStr}`;\n }\n if (node.output !== undefined && node.state === \"success\") {\n const outputStr = typeof node.output === \"string\"\n ? escapeMermaidText(node.output)\n : escapeMermaidText(getStringified(node.output).slice(0, 20));\n ioInfo += `\\\\nout: ${outputStr}`;\n }\n\n // Add onAfterStep hook info if present (check by key first, then by id)\n let hookInfo = \"\";\n const hookKey = node.key ?? node.id;\n if (hooks && hookKey && hooks.onAfterStep.has(hookKey)) {\n const hookExec = hooks.onAfterStep.get(hookKey)!;\n const hookIcon = hookExec.state === \"success\" ? \"⚙\" : \"⚠\";\n const hookTiming = options.showTimings && hookExec.durationMs !== undefined\n ? ` ${formatDuration(hookExec.durationMs)}`\n : \"\";\n hookInfo = `\\\\n${hookIcon} hook${hookTiming}`;\n }\n\n // Combine all label parts with icon (retry/timeout info moved to edges)\n const escapedLabel = (stateIcon + label + ioInfo + hookInfo + timing).trim();\n\n // Determine class: use heatmap if enabled and data available, otherwise use state\n // Lookup order matches PerformanceAnalyzer: key ?? name ?? id\n let nodeClass: string;\n const heat = enhanced?.showHeatmap && enhanced.heatmapData\n ? enhanced.heatmapData.heat.get(node.key ?? \"\") ??\n enhanced.heatmapData.heat.get(node.name ?? \"\") ??\n enhanced.heatmapData.heat.get(node.id)\n : undefined;\n\n if (heat !== undefined) {\n const level = getHeatLevel(heat);\n nodeClass = getHeatClass(level);\n } else {\n nodeClass = getStateClass(node.state);\n }\n\n // Use different shapes based on state (like AWS Step Functions)\n let shape: string;\n switch (node.state) {\n case \"error\":\n // Hexagon for errors (more distinctive)\n shape = `{{\"${escapedLabel}\"}}`;\n break;\n case \"cached\":\n // Rounded rectangle with double border for cached\n shape = `[(\"${escapedLabel}\")]`;\n break;\n case \"skipped\":\n // Dashed border via class (applied once in lines.push below)\n shape = `[\"${escapedLabel}\"]`;\n break;\n default:\n // Standard rectangle for normal steps\n shape = `[\"${escapedLabel}\"]`;\n }\n\n lines.push(` ${id}${shape}:::${nodeClass}`);\n\n // NEW: Add retry loop edge (self-loop showing retries)\n if (showRetryEdges && node.retryCount !== undefined && node.retryCount > 0) {\n const retryLabel = `↻ ${node.retryCount} retr${node.retryCount === 1 ? \"y\" : \"ies\"}`;\n lines.push(` ${id} -.->|\"${retryLabel}\"| ${id}`);\n }\n\n // NEW: Add error path edge (flow to error node)\n if (showErrorEdges && node.state === \"error\" && node.error !== undefined) {\n const errorNodeId = `ERR_${id}`;\n const errorLabel = escapeMermaidText(String(node.error)).slice(0, 30);\n lines.push(` ${errorNodeId}{{\"${errorLabel}\"}}`);\n lines.push(` ${id} -->|error| ${errorNodeId}`);\n lines.push(` style ${errorNodeId} fill:#fee2e2,stroke:#dc2626`);\n }\n\n // NEW: Add timeout edge (alternative timeout path)\n if (showTimeoutEdges && node.timedOut) {\n const timeoutNodeId = `TO_${id}`;\n const timeoutMs = node.timeoutMs !== undefined ? `${node.timeoutMs}ms` : \"\";\n lines.push(` ${timeoutNodeId}{{\"⏱ Timeout ${timeoutMs}\"}}`);\n lines.push(` ${id} -.->|timeout| ${timeoutNodeId}`);\n lines.push(` style ${timeoutNodeId} fill:#fef3c7,stroke:#f59e0b`);\n }\n\n return { entryId: id, exitId: id };\n}\n\n/**\n * Render a parallel node as a subgraph with fork/join.\n */\nfunction renderParallelNode(\n node: ParallelNode,\n options: RenderOptions,\n lines: string[],\n enhanced?: EnhancedRenderOptions,\n hooks?: WorkflowHooks\n): RenderResult {\n const subgraphId = generateNodeId(\"parallel\");\n const forkId = `${subgraphId}_fork`;\n const joinId = `${subgraphId}_join`;\n const name = escapeSubgraphName(node.name ?? \"Parallel\");\n const modeLabel = node.mode === \"allSettled\" ? \" (allSettled)\" : \"\";\n\n // If no children, render as a simple step-like node with note\n if (node.children.length === 0) {\n const id = subgraphId;\n const label = escapeMermaidText(`${name}${modeLabel}`);\n const note = \"operations not individually tracked\";\n const timing = options.showTimings && node.durationMs !== undefined\n ? ` ${formatDuration(node.durationMs)}`\n : \"\";\n\n // Use a rounded rectangle to indicate it's a parallel operation\n lines.push(` ${id}[\"${label}${timing}\\\\n${note}\"]:::${getStateClass(node.state)}`);\n return { entryId: id, exitId: id };\n }\n\n // Subgraph for parallel block with proper visual hierarchy\n lines.push(` subgraph ${subgraphId}[\"${name}${modeLabel}\"]`);\n lines.push(` direction TB`);\n\n // Fork node (diamond) - more visually distinct\n lines.push(` ${forkId}{\"⚡ Fork\"}`);\n\n // Child branches - render in parallel columns\n const childExitIds: string[] = [];\n for (const child of node.children) {\n const result = renderNode(child, options, lines, enhanced, hooks);\n lines.push(` ${forkId} --> ${result.entryId}`);\n childExitIds.push(result.exitId);\n }\n\n // Join node (diamond) - visually distinct\n lines.push(` ${joinId}{\"✓ Join\"}`);\n for (const exitId of childExitIds) {\n lines.push(` ${exitId} --> ${joinId}`);\n }\n\n lines.push(` end`);\n\n // Apply state styling to subgraph\n const stateClass = getStateClass(node.state);\n lines.push(` class ${subgraphId} ${stateClass}`);\n\n return { entryId: forkId, exitId: joinId };\n}\n\n/**\n * Render a race node as a subgraph with racing indicator.\n */\nfunction renderRaceNode(\n node: RaceNode,\n options: RenderOptions,\n lines: string[],\n enhanced?: EnhancedRenderOptions,\n hooks?: WorkflowHooks\n): RenderResult {\n const subgraphId = generateNodeId(\"race\");\n const startId = `${subgraphId}_start`;\n const endId = `${subgraphId}_end`;\n const name = escapeSubgraphName(node.name ?? \"Race\");\n\n // If no children, render as a simple step-like node with note\n if (node.children.length === 0) {\n const id = subgraphId;\n const label = escapeMermaidText(name);\n const note = \"operations not individually tracked\";\n const timing = options.showTimings && node.durationMs !== undefined\n ? ` ${formatDuration(node.durationMs)}`\n : \"\";\n\n lines.push(` ${id}[\"⚡ ${label}${timing}\\\\n${note}\"]:::${getStateClass(node.state)}`);\n return { entryId: id, exitId: id };\n }\n\n // Subgraph for race block - escape name and emoji is safe in quoted strings\n lines.push(` subgraph ${subgraphId}[\"⚡ ${name}\"]`);\n lines.push(` direction TB`);\n\n // Start node - use a more distinctive shape\n lines.push(` ${startId}((\"🏁 Start\"))`);\n\n // Child branches\n const childExitIds: Array<{ exitId: string; isWinner: boolean }> = [];\n let winnerExitId: string | undefined;\n\n for (const child of node.children) {\n const result = renderNode(child, options, lines, enhanced, hooks);\n const isWinner = node.winnerId === child.id;\n lines.push(` ${startId} --> ${result.entryId}`);\n\n if (isWinner) {\n winnerExitId = result.exitId;\n }\n childExitIds.push({ exitId: result.exitId, isWinner });\n }\n\n // End node - more distinctive\n lines.push(` ${endId}((\"✓ First\"))`);\n\n // Connect winner with thick line, others with dashed (cancelled)\n for (const { exitId, isWinner } of childExitIds) {\n if (isWinner && winnerExitId) {\n lines.push(` ${exitId} ==>|🏆 Winner| ${endId}`);\n } else if (node.winnerId) {\n // Non-winner: show as cancelled\n lines.push(` ${exitId} -. cancelled .-> ${endId}`);\n } else {\n // No winner determined, normal connection\n lines.push(` ${exitId} --> ${endId}`);\n }\n }\n\n lines.push(` end`);\n\n const stateClass = getStateClass(node.state);\n lines.push(` class ${subgraphId} ${stateClass}`);\n\n return { entryId: startId, exitId: endId };\n}\n\n/**\n * Render a decision node as a diamond with branches.\n */\nfunction renderDecisionNode(\n node: DecisionNode,\n options: RenderOptions,\n lines: string[],\n enhanced?: EnhancedRenderOptions,\n hooks?: WorkflowHooks\n): RenderResult {\n // Generate decision ID, ensuring uniqueness even with duplicate keys\n let decisionId = node.key\n ? `decision_${node.key.replace(/[^a-zA-Z0-9]/g, \"_\")}`\n : generateNodeId(\"decision\");\n\n // Ensure uniqueness by appending suffix if collision\n if (usedDecisionIds.has(decisionId)) {\n let suffix = 2;\n while (usedDecisionIds.has(`${decisionId}_${suffix}`)) {\n suffix++;\n }\n decisionId = `${decisionId}_${suffix}`;\n }\n usedDecisionIds.add(decisionId);\n\n // Escape condition and decision value - remove characters that break Mermaid\n const condition = escapeMermaidText(node.condition ?? \"condition\");\n const decisionValue = node.decisionValue !== undefined\n ? ` = ${escapeMermaidText(String(node.decisionValue)).slice(0, 30)}`\n : \"\";\n\n // Decision diamond - ensure no invalid characters\n const decisionLabel = `${condition}${decisionValue}`.trim();\n lines.push(` ${decisionId}{\"${decisionLabel}\"}`);\n\n // Render branches\n const branchExitIds: string[] = [];\n let takenBranchExitId: string | undefined;\n const usedBranchIds = new Set<string>();\n\n for (const branch of node.branches) {\n // Generate base branch ID from sanitized label\n let branchId = `${decisionId}_${branch.label.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n // Ensure uniqueness by appending index if collision\n if (usedBranchIds.has(branchId)) {\n let suffix = 2;\n while (usedBranchIds.has(`${branchId}_${suffix}`)) {\n suffix++;\n }\n branchId = `${branchId}_${suffix}`;\n }\n usedBranchIds.add(branchId);\n // Escape branch label - remove parentheses and other special chars\n const branchLabelText = escapeMermaidText(branch.label);\n const branchLabel = branch.taken\n ? `${branchLabelText} ✓`\n : `${branchLabelText} skipped`;\n const branchClass = branch.taken ? \":::success\" : \":::skipped\";\n\n // Branch label node\n lines.push(` ${branchId}[\"${branchLabel}\"]${branchClass}`);\n\n // Connect decision to branch\n // Mermaid edge labels must be simple text - escape special characters\n // Also remove pipe character as it's used for edge label syntax\n const edgeLabel = branch.condition\n ? `|${escapeMermaidText(branch.condition).replace(/\\|/g, \"\")}|`\n : \"\";\n lines.push(` ${decisionId} -->${edgeLabel} ${branchId}`);\n\n // Render children of this branch\n if (branch.children.length > 0) {\n let prevId = branchId;\n for (const child of branch.children) {\n const result = renderNode(child, options, lines, enhanced, hooks);\n lines.push(` ${prevId} --> ${result.entryId}`);\n prevId = result.exitId;\n }\n branchExitIds.push(prevId);\n if (branch.taken) {\n takenBranchExitId = prevId;\n }\n } else {\n branchExitIds.push(branchId);\n if (branch.taken) {\n takenBranchExitId = branchId;\n }\n }\n }\n\n // Join point (if we have a taken branch)\n if (takenBranchExitId) {\n return { entryId: decisionId, exitId: takenBranchExitId };\n }\n\n // If no branch was taken, return decision as exit\n return { entryId: decisionId, exitId: decisionId };\n}\n\n/**\n * Render a stream node.\n * Uses hexagonal shape to distinguish from regular steps.\n */\nfunction renderStreamNode(\n node: StreamNode,\n options: RenderOptions,\n lines: string[]\n): RenderResult {\n const id = `stream_${node.namespace.replace(/[^a-zA-Z0-9]/g, \"_\")}_${generateNodeId(\"\")}`;\n\n // Format counts\n const counts = `W:${node.writeCount} R:${node.readCount}`;\n\n // Add state icon\n let stateIcon = \"\";\n switch (node.streamState) {\n case \"active\":\n stateIcon = \"⟳ \";\n break;\n case \"closed\":\n stateIcon = \"✓ \";\n break;\n case \"error\":\n stateIcon = \"✗ \";\n break;\n }\n\n // Format timing\n const timing =\n options.showTimings && node.durationMs !== undefined\n ? ` ${formatDuration(node.durationMs)}`\n : \"\";\n\n // Backpressure indicator\n const backpressure = node.backpressureOccurred ? \"\\\\nbackpressure\" : \"\";\n\n // Combine label parts - use hexagon shape for streams\n const label = `${stateIcon}stream:${escapeMermaidText(node.namespace)}\\\\n${counts}${backpressure}${timing}`;\n\n // Determine class based on stream state\n let nodeClass: string;\n if (node.streamState === \"error\") {\n nodeClass = \"streamError\";\n } else if (node.streamState === \"active\") {\n nodeClass = \"streamActive\";\n } else {\n nodeClass = \"stream\";\n }\n\n // Hexagonal shape for streams: {{\"label\"}}\n lines.push(` ${id}{{\"${label}\"}}:::${nodeClass}`);\n\n return { entryId: id, exitId: id };\n}\n\nexport { mermaidRenderer as default };\n","/**\n * Performance Analyzer\n *\n * Analyzes workflow execution data to identify:\n * - Slow steps (bottlenecks)\n * - Retry patterns\n * - Error-prone steps\n * - Timing anomalies\n *\n * Aggregates metrics across multiple workflow runs to provide\n * statistical insights and heatmap visualization data.\n */\n\nimport type { WorkflowEvent } from \"awaitly/workflow\";\nimport type {\n NodePerformance,\n HeatmapData,\n WorkflowIR,\n FlowNode,\n HeatLevel,\n} from \"./types\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * A recorded workflow run for analysis.\n */\nexport interface WorkflowRun {\n /** Unique identifier for this run */\n id: string;\n /** Workflow start timestamp */\n startTime: number;\n /** All events from the workflow execution */\n events: WorkflowEvent<unknown>[];\n}\n\n/**\n * Performance analyzer interface.\n */\nexport interface PerformanceAnalyzer {\n /** Add a completed workflow run for analysis */\n addRun: (run: WorkflowRun) => void;\n\n /** Add events incrementally (alternative to addRun) */\n addEvent: (event: WorkflowEvent<unknown>) => void;\n\n /** Finalize current run (when using addEvent) */\n finalizeRun: (runId: string) => void;\n\n /** Get performance stats for a specific node */\n getNodePerformance: (nodeId: string) => NodePerformance | undefined;\n\n /** Get heatmap data for an IR */\n getHeatmap: (\n ir: WorkflowIR,\n metric?: \"duration\" | \"retryRate\" | \"errorRate\"\n ) => HeatmapData;\n\n /** Get slowest nodes */\n getSlowestNodes: (limit?: number) => NodePerformance[];\n\n /** Get error-prone nodes */\n getErrorProneNodes: (limit?: number) => NodePerformance[];\n\n /** Get retry-prone nodes */\n getRetryProneNodes: (limit?: number) => NodePerformance[];\n\n /** Get all performance data */\n getAllPerformance: () => Map<string, NodePerformance>;\n\n /** Export performance data as JSON */\n exportData: () => string;\n\n /** Import performance data from JSON */\n importData: (json: string) => void;\n\n /** Clear all collected data */\n clear: () => void;\n}\n\n// =============================================================================\n// Helper Functions\n// =============================================================================\n\n/**\n * Flatten all nodes from an IR tree.\n */\nfunction flattenNodes(nodes: FlowNode[]): FlowNode[] {\n const result: FlowNode[] = [];\n for (const node of nodes) {\n result.push(node);\n if (\"children\" in node && Array.isArray(node.children)) {\n result.push(...flattenNodes(node.children));\n }\n if (\"branches\" in node) {\n for (const branch of node.branches) {\n result.push(...flattenNodes(branch.children));\n }\n }\n }\n return result;\n}\n\n/**\n * Calculate percentile value from sorted array.\n */\nfunction percentile(sortedValues: number[], p: number): number {\n if (sortedValues.length === 0) return 0;\n const index = Math.floor(sortedValues.length * p);\n return sortedValues[Math.min(index, sortedValues.length - 1)];\n}\n\n/**\n * Get heat level from normalized value (0-1).\n */\nexport function getHeatLevel(heat: number): HeatLevel {\n if (heat < 0.2) return \"cold\";\n if (heat < 0.4) return \"cool\";\n if (heat < 0.6) return \"neutral\";\n if (heat < 0.8) return \"warm\";\n if (heat < 0.95) return \"hot\";\n return \"critical\";\n}\n\n// =============================================================================\n// Implementation\n// =============================================================================\n\n/**\n * Create a performance analyzer for workflow metrics.\n *\n * @example\n * ```typescript\n * const analyzer = createPerformanceAnalyzer();\n *\n * // Add completed runs\n * analyzer.addRun({ id: 'run-1', startTime: Date.now(), events });\n *\n * // Get insights\n * const slowest = analyzer.getSlowestNodes(5);\n * const heatmap = analyzer.getHeatmap(ir, 'duration');\n * ```\n */\nexport function createPerformanceAnalyzer(): PerformanceAnalyzer {\n // Timing data: nodeId → array of durations (ms)\n const timingData = new Map<string, number[]>();\n\n // Retry data: nodeId → { retried runs, total runs }\n const retryData = new Map<string, { retried: number; total: number }>();\n\n // Error data: nodeId → { error runs, total runs }\n const errorData = new Map<string, { errors: number; total: number }>();\n\n // Timeout data: nodeId → { timed out, total }\n const timeoutData = new Map<string, { timedOut: number; total: number }>();\n\n // Current run state (for incremental event adding)\n let currentRunEvents: WorkflowEvent<unknown>[] = [];\n\n /**\n * Get node ID from event.\n * Prioritizes stepKey, then stepId, then name so distinct steps (same name, no key)\n * are not merged.\n */\n function getNodeId(event: {\n stepId?: string;\n stepKey?: string;\n name?: string;\n }): string {\n return event.stepKey ?? event.stepId ?? event.name ?? \"unknown\";\n }\n\n /**\n * Process events from a workflow run.\n */\n function processEvents(events: WorkflowEvent<unknown>[]): void {\n // Track step state during processing\n const stepState = new Map<\n string,\n {\n retried: boolean;\n timedOut: boolean;\n }\n >();\n\n for (const event of events) {\n switch (event.type) {\n case \"step_start\": {\n const id = getNodeId(event);\n stepState.set(id, { retried: false, timedOut: false });\n break;\n }\n\n case \"step_retry\": {\n const id = getNodeId(event);\n const state = stepState.get(id);\n if (state) {\n state.retried = true;\n }\n break;\n }\n\n case \"step_timeout\": {\n const id = getNodeId(event);\n const state = stepState.get(id);\n if (state) {\n state.timedOut = true;\n }\n // Don't update counts here - wait for step completion\n // to get accurate total count across all runs\n break;\n }\n\n case \"step_success\": {\n const id = getNodeId(event);\n const state = stepState.get(id);\n\n // Record timing\n const timings = timingData.get(id) ?? [];\n timings.push(event.durationMs);\n timingData.set(id, timings);\n\n // Record retry status\n const retry = retryData.get(id) ?? { retried: 0, total: 0 };\n retry.total++;\n if (state?.retried) retry.retried++;\n retryData.set(id, retry);\n\n // Record timeout status\n const timeout = timeoutData.get(id) ?? { timedOut: 0, total: 0 };\n timeout.total++;\n if (state?.timedOut) timeout.timedOut++;\n timeoutData.set(id, timeout);\n\n // Record success (no error)\n const error = errorData.get(id) ?? { errors: 0, total: 0 };\n error.total++;\n errorData.set(id, error);\n\n stepState.delete(id);\n break;\n }\n\n case \"step_error\": {\n const id = getNodeId(event);\n const state = stepState.get(id);\n\n // Record timing\n const timings = timingData.get(id) ?? [];\n timings.push(event.durationMs);\n timingData.set(id, timings);\n\n // Record retry status\n const retry = retryData.get(id) ?? { retried: 0, total: 0 };\n retry.total++;\n if (state?.retried) retry.retried++;\n retryData.set(id, retry);\n\n // Record timeout status\n const timeout = timeoutData.get(id) ?? { timedOut: 0, total: 0 };\n timeout.total++;\n if (state?.timedOut) timeout.timedOut++;\n timeoutData.set(id, timeout);\n\n // Record error\n const error = errorData.get(id) ?? { errors: 0, total: 0 };\n error.total++;\n error.errors++;\n errorData.set(id, error);\n\n stepState.delete(id);\n break;\n }\n }\n }\n }\n\n /**\n * Add a completed workflow run.\n */\n function addRun(run: WorkflowRun): void {\n processEvents(run.events);\n }\n\n /**\n * Add an event incrementally.\n */\n function addEvent(event: WorkflowEvent<unknown>): void {\n currentRunEvents.push(event);\n }\n\n /**\n * Finalize current run (process accumulated events).\n */\n function finalizeRun(_runId: string): void {\n if (currentRunEvents.length > 0) {\n processEvents(currentRunEvents);\n currentRunEvents = [];\n }\n }\n\n /**\n * Compute performance metrics for a node.\n */\n function computePerformance(nodeId: string): NodePerformance | undefined {\n const timings = timingData.get(nodeId);\n if (!timings || timings.length === 0) return undefined;\n\n const sorted = [...timings].sort((a, b) => a - b);\n const sum = sorted.reduce((a, b) => a + b, 0);\n const mean = sum / sorted.length;\n const variance =\n sorted.reduce((acc, t) => acc + (t - mean) ** 2, 0) / sorted.length;\n\n const retry = retryData.get(nodeId) ?? { retried: 0, total: 1 };\n const error = errorData.get(nodeId) ?? { errors: 0, total: 1 };\n const timeout = timeoutData.get(nodeId) ?? { timedOut: 0, total: 1 };\n\n return {\n nodeId,\n avgDurationMs: mean,\n minDurationMs: sorted[0],\n maxDurationMs: sorted[sorted.length - 1],\n stdDevMs: Math.sqrt(variance),\n samples: sorted.length,\n retryRate: retry.total > 0 ? retry.retried / retry.total : 0,\n timeoutRate: timeout.total > 0 ? timeout.timedOut / timeout.total : 0,\n errorRate: error.total > 0 ? error.errors / error.total : 0,\n percentiles: {\n p50: percentile(sorted, 0.5),\n p90: percentile(sorted, 0.9),\n p95: percentile(sorted, 0.95),\n p99: percentile(sorted, 0.99),\n },\n };\n }\n\n /**\n * Get performance stats for a specific node.\n */\n function getNodePerformance(nodeId: string): NodePerformance | undefined {\n return computePerformance(nodeId);\n }\n\n /**\n * Get heatmap data for an IR.\n */\n function getHeatmap(\n ir: WorkflowIR,\n metric: \"duration\" | \"retryRate\" | \"errorRate\" = \"duration\"\n ): HeatmapData {\n const heat = new Map<string, number>();\n const allNodes = flattenNodes(ir.root.children);\n\n // Compute values for all nodes\n const values: Array<{ id: string; value: number }> = [];\n for (const node of allNodes) {\n // Use same lookup order as getNodeId: stepKey ?? stepId ?? name (IR has key, id, name)\n const lookupKey =\n (\"key\" in node ? node.key : undefined) ?? node.id ?? node.name;\n const perf = computePerformance(lookupKey);\n if (perf) {\n let value: number;\n switch (metric) {\n case \"duration\":\n value = perf.avgDurationMs;\n break;\n case \"retryRate\":\n value = perf.retryRate;\n break;\n case \"errorRate\":\n value = perf.errorRate;\n break;\n }\n values.push({ id: node.id, value });\n }\n }\n\n if (values.length === 0) {\n return {\n heat,\n metric,\n stats: { min: 0, max: 0, mean: 0, threshold: 0 },\n };\n }\n\n // Compute statistics\n const vals = values.map((v) => v.value);\n const min = Math.min(...vals);\n const max = Math.max(...vals);\n const mean = vals.reduce((a, b) => a + b, 0) / vals.length;\n const range = max - min || 1;\n\n // Normalize to 0-1 heat values\n for (const { id, value } of values) {\n heat.set(id, (value - min) / range);\n }\n\n return {\n heat,\n metric,\n stats: {\n min,\n max,\n mean,\n threshold: mean + (max - mean) * 0.5, // 50% above mean is \"hot\"\n },\n };\n }\n\n /**\n * Get all performance data.\n */\n function getAllPerformance(): Map<string, NodePerformance> {\n const result = new Map<string, NodePerformance>();\n for (const nodeId of timingData.keys()) {\n const perf = computePerformance(nodeId);\n if (perf) result.set(nodeId, perf);\n }\n return result;\n }\n\n /**\n * Get slowest nodes by average duration.\n */\n function getSlowestNodes(limit = 10): NodePerformance[] {\n const all = getAllPerformance();\n return [...all.values()]\n .sort((a, b) => b.avgDurationMs - a.avgDurationMs)\n .slice(0, limit);\n }\n\n /**\n * Get error-prone nodes by error rate.\n */\n function getErrorProneNodes(limit = 10): NodePerformance[] {\n const all = getAllPerformance();\n return [...all.values()]\n .filter((p) => p.errorRate > 0)\n .sort((a, b) => b.errorRate - a.errorRate)\n .slice(0, limit);\n }\n\n /**\n * Get retry-prone nodes by retry rate.\n */\n function getRetryProneNodes(limit = 10): NodePerformance[] {\n const all = getAllPerformance();\n return [...all.values()]\n .filter((p) => p.retryRate > 0)\n .sort((a, b) => b.retryRate - a.retryRate)\n .slice(0, limit);\n }\n\n /**\n * Export performance data as JSON.\n */\n function exportData(): string {\n return JSON.stringify({\n timingData: Object.fromEntries(timingData),\n retryData: Object.fromEntries(retryData),\n errorData: Object.fromEntries(errorData),\n timeoutData: Object.fromEntries(timeoutData),\n });\n }\n\n /**\n * Import performance data from JSON.\n */\n function importData(json: string): void {\n const data = JSON.parse(json) as {\n timingData?: Record<string, number[]>;\n retryData?: Record<string, { retried: number; total: number }>;\n errorData?: Record<string, { errors: number; total: number }>;\n timeoutData?: Record<string, { timedOut: number; total: number }>;\n };\n\n // Clear existing data\n timingData.clear();\n retryData.clear();\n errorData.clear();\n timeoutData.clear();\n\n // Import timing data\n for (const [k, v] of Object.entries(data.timingData ?? {})) {\n timingData.set(k, v);\n }\n\n // Import retry data\n for (const [k, v] of Object.entries(data.retryData ?? {})) {\n retryData.set(k, v);\n }\n\n // Import error data\n for (const [k, v] of Object.entries(data.errorData ?? {})) {\n errorData.set(k, v);\n }\n\n // Import timeout data\n for (const [k, v] of Object.entries(data.timeoutData ?? {})) {\n timeoutData.set(k, v);\n }\n }\n\n /**\n * Clear all collected data.\n */\n function clear(): void {\n timingData.clear();\n retryData.clear();\n errorData.clear();\n timeoutData.clear();\n currentRunEvents = [];\n }\n\n return {\n addRun,\n addEvent,\n finalizeRun,\n getNodePerformance,\n getHeatmap,\n getSlowestNodes,\n getErrorProneNodes,\n getRetryProneNodes,\n getAllPerformance,\n exportData,\n importData,\n clear,\n };\n}\n","/**\n * Kroki Encoder\n *\n * Encodes Mermaid diagram text for Kroki URLs using pako deflate + base64url.\n * Uses Buffer in Node (btoa/atob not available) and btoa/atob in browsers.\n */\n\nimport pako from \"pako\";\n\n/** True when Buffer is available (Node). */\nconst hasBuffer = typeof globalThis !== \"undefined\" && \"Buffer\" in globalThis && typeof (globalThis as { Buffer?: unknown }).Buffer === \"function\";\n\n/**\n * Base64URL encode bytes (URL-safe base64).\n * Uses `-` and `_` instead of `+` and `/`, and omits padding.\n * Node-safe: uses Buffer when available, otherwise btoa.\n */\nfunction base64UrlEncode(bytes: Uint8Array): string {\n let base64: string;\n if (hasBuffer) {\n const B = (globalThis as unknown as { Buffer: { from: (u: Uint8Array) => { toString: (enc: string) => string } } }).Buffer;\n base64 = B.from(bytes).toString(\"base64\");\n } else {\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n base64 = btoa(binary);\n }\n return base64\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=+$/, \"\"); // Remove padding\n}\n\n/**\n * Decode standard base64 to bytes.\n * Node-safe: uses Buffer when available, otherwise atob.\n */\nfunction base64ToBytes(base64: string): Uint8Array {\n if (hasBuffer) {\n const B = (globalThis as unknown as { Buffer: { from: (s: string, enc: string) => Uint8Array } }).Buffer;\n return B.from(base64, \"base64\");\n }\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\n\n/**\n * Encode text for Kroki URL.\n * Uses pako deflate compression + base64url encoding.\n *\n * @param text - The text to encode (e.g., Mermaid diagram)\n * @returns URL-safe encoded string\n *\n * @example\n * ```typescript\n * const encoded = encodeForKroki('flowchart TD\\n A-->B');\n * // => \"eNpLzs8tyc9NTgQADsMDmA\"\n * ```\n */\nexport function encodeForKroki(text: string): string {\n // Convert string to UTF-8 bytes\n const textEncoder = new TextEncoder();\n const textBytes = textEncoder.encode(text);\n\n // Compress with deflate\n const compressed = pako.deflate(textBytes);\n\n // Base64URL encode\n return base64UrlEncode(compressed);\n}\n\n/**\n * Decode Kroki URL payload back to text.\n * Uses base64url decoding + pako inflate.\n *\n * @param encoded - The encoded string from a Kroki URL\n * @returns The original text\n *\n * @example\n * ```typescript\n * const text = decodeFromKroki('eNpLzs8tyc9NTgQADsMDmA');\n * // => \"flowchart TD\\n A-->B\"\n * ```\n */\nexport function decodeFromKroki(encoded: string): string {\n // Convert URL-safe base64 to standard base64\n let base64 = encoded.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n // Add padding if needed\n const padding = 4 - (base64.length % 4);\n if (padding !== 4) {\n base64 += \"=\".repeat(padding);\n }\n\n const bytes = base64ToBytes(base64);\n const decompressed = pako.inflate(bytes);\n const textDecoder = new TextDecoder();\n return textDecoder.decode(decompressed);\n}\n","/**\n * Kroki URL Generation\n *\n * Generates shareable URLs for Kroki diagram rendering service.\n * Works in both browser and Node.js environments.\n */\n\nimport type { WorkflowIR, RenderOptions, KrokiExportOptions } from \"../types\";\nimport { mermaidRenderer, defaultColorScheme } from \"../renderers\";\nimport { encodeForKroki } from \"./encoder\";\n\n/**\n * Supported Kroki output formats.\n */\nexport type KrokiFormat = \"svg\" | \"png\" | \"pdf\" | \"jpeg\";\n\n/**\n * Options for URL generator.\n */\nexport interface UrlGeneratorOptions {\n /** Base URL for Kroki service (default: https://kroki.io) */\n baseUrl?: string;\n}\n\n/**\n * Default Kroki base URL.\n */\nconst DEFAULT_KROKI_URL = \"https://kroki.io\";\n\n/**\n * Build a Kroki URL for the given diagram.\n *\n * @param diagramType - Diagram type (e.g., \"mermaid\", \"plantuml\", \"graphviz\")\n * @param format - Output format (svg, png, pdf, jpeg)\n * @param text - The diagram text\n * @param options - URL generator options (KrokiExportOptions or legacy UrlGeneratorOptions)\n * @returns The Kroki URL\n *\n * @example\n * ```typescript\n * const url = buildKrokiUrl('mermaid', 'svg', 'flowchart TD\\n A-->B');\n * // => \"https://kroki.io/mermaid/svg/eNpLzs8tyc9NTgQADsMDmA\"\n *\n * // With explicit KrokiExportOptions\n * const url2 = buildKrokiUrl('mermaid', 'svg', 'flowchart TD\\n A-->B', {\n * provider: 'kroki',\n * baseUrl: 'https://kroki.internal'\n * });\n * ```\n */\nexport function buildKrokiUrl(\n diagramType: string,\n format: KrokiFormat,\n text: string,\n options: KrokiExportOptions | UrlGeneratorOptions = {}\n): string {\n const baseUrl = options.baseUrl ?? DEFAULT_KROKI_URL;\n const encoded = encodeForKroki(text);\n return `${baseUrl}/${diagramType}/${format}/${encoded}`;\n}\n\n/**\n * Generate a Kroki URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param format - Output format (default: 'svg')\n * @param options - Optional URL generator options\n * @returns The Kroki URL\n *\n * @example\n * ```typescript\n * const url = toKrokiUrl(workflowIR, 'svg');\n * // Share this URL - image renders when viewed\n * ```\n */\nexport function toKrokiUrl(\n ir: WorkflowIR,\n format: KrokiFormat = \"svg\",\n options: UrlGeneratorOptions = {}\n): string {\n const renderer = mermaidRenderer();\n const renderOptions: RenderOptions = {\n showTimings: true,\n showKeys: false,\n terminalWidth: 80,\n colors: defaultColorScheme,\n };\n\n const mermaidText = renderer.render(ir, renderOptions);\n return buildKrokiUrl(\"mermaid\", format, mermaidText, options);\n}\n\n/**\n * Generate a Kroki SVG URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional URL generator options\n * @returns The Kroki SVG URL\n *\n * @example\n * ```typescript\n * const svgUrl = toKrokiSvgUrl(workflowIR);\n * // => \"https://kroki.io/mermaid/svg/eNp...\"\n * ```\n */\nexport function toKrokiSvgUrl(\n ir: WorkflowIR,\n options: UrlGeneratorOptions = {}\n): string {\n return toKrokiUrl(ir, \"svg\", options);\n}\n\n/**\n * Generate a Kroki PNG URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional URL generator options\n * @returns The Kroki PNG URL\n *\n * @example\n * ```typescript\n * const pngUrl = toKrokiPngUrl(workflowIR);\n * // => \"https://kroki.io/mermaid/png/eNp...\"\n * ```\n */\nexport function toKrokiPngUrl(\n ir: WorkflowIR,\n options: UrlGeneratorOptions = {}\n): string {\n return toKrokiUrl(ir, \"png\", options);\n}\n\n/**\n * URL Generator with configured base URL.\n */\nexport interface UrlGenerator {\n /** Generate URL with specified format */\n toUrl(ir: WorkflowIR, format: KrokiFormat): string;\n /** Generate SVG URL */\n toSvgUrl(ir: WorkflowIR): string;\n /** Generate PNG URL */\n toPngUrl(ir: WorkflowIR): string;\n /** Generate PDF URL */\n toPdfUrl(ir: WorkflowIR): string;\n /** Get the configured base URL */\n getBaseUrl(): string;\n}\n\n/**\n * Create a URL generator with a custom base URL.\n * Useful for self-hosted Kroki instances.\n *\n * @param options - URL generator options\n * @returns A URL generator instance\n *\n * @example\n * ```typescript\n * // Use self-hosted Kroki\n * const generator = createUrlGenerator({ baseUrl: 'https://my-kroki.internal' });\n * const url = generator.toSvgUrl(workflowIR);\n *\n * // Default public Kroki\n * const defaultGenerator = createUrlGenerator();\n * const publicUrl = defaultGenerator.toSvgUrl(workflowIR);\n * ```\n */\nexport function createUrlGenerator(options: UrlGeneratorOptions = {}): UrlGenerator {\n const baseUrl = options.baseUrl ?? DEFAULT_KROKI_URL;\n\n return {\n toUrl(ir: WorkflowIR, format: KrokiFormat): string {\n return toKrokiUrl(ir, format, { baseUrl });\n },\n\n toSvgUrl(ir: WorkflowIR): string {\n return toKrokiUrl(ir, \"svg\", { baseUrl });\n },\n\n toPngUrl(ir: WorkflowIR): string {\n return toKrokiUrl(ir, \"png\", { baseUrl });\n },\n\n toPdfUrl(ir: WorkflowIR): string {\n return toKrokiUrl(ir, \"pdf\", { baseUrl });\n },\n\n getBaseUrl(): string {\n return baseUrl;\n },\n };\n}\n","/**\n * Mermaid.ink URL Generation\n *\n * Generates shareable URLs for mermaid.ink diagram rendering service.\n * Alternative to Kroki with additional features like themes, background colors, and sizing.\n *\n * @see https://mermaid.ink/\n */\n\nimport type { WorkflowIR, RenderOptions, MermaidInkExportOptions } from \"../types\";\nimport { mermaidRenderer, defaultColorScheme } from \"../renderers\";\nimport { encodeForKroki } from \"./encoder\";\n\n/**\n * Supported mermaid.ink output formats.\n */\nexport type MermaidInkFormat = \"svg\" | \"img\" | \"pdf\";\n\n/**\n * Image type for /img endpoint.\n */\nexport type MermaidInkImageType = \"jpeg\" | \"png\" | \"webp\";\n\n/**\n * Mermaid.ink built-in themes.\n */\nexport type MermaidInkTheme = \"default\" | \"neutral\" | \"dark\" | \"forest\";\n\n/**\n * PDF paper sizes.\n */\nexport type MermaidInkPaperSize =\n | \"letter\"\n | \"legal\"\n | \"tabloid\"\n | \"ledger\"\n | \"a0\"\n | \"a1\"\n | \"a2\"\n | \"a3\"\n | \"a4\"\n | \"a5\"\n | \"a6\";\n\n/**\n * Options for mermaid.ink URL generation.\n */\nexport interface MermaidInkOptions {\n /** Base URL for mermaid.ink service (default: https://mermaid.ink) */\n baseUrl?: string;\n\n /**\n * Background color.\n * - Hex color without #: \"FF0000\" for red\n * - Named color with ! prefix: \"!white\", \"!black\"\n */\n bgColor?: string;\n\n /** Mermaid theme */\n theme?: MermaidInkTheme;\n\n /** Image width in pixels */\n width?: number;\n\n /** Image height in pixels */\n height?: number;\n\n /** Image scale (1-3). Only applies if width or height is set */\n scale?: number;\n\n /** Image type for /img endpoint (default: jpeg) */\n imageType?: MermaidInkImageType;\n\n // PDF-specific options\n\n /** Fit PDF size to diagram size */\n fit?: boolean;\n\n /** Paper size for PDF (default: a4) */\n paper?: MermaidInkPaperSize;\n\n /** Landscape orientation for PDF */\n landscape?: boolean;\n}\n\n/**\n * Default mermaid.ink base URL.\n */\nconst DEFAULT_MERMAID_INK_URL = \"https://mermaid.ink\";\n\n/**\n * Encode text for mermaid.ink URL.\n * Uses pako deflate compression + base64 encoding with \"pako:\" prefix.\n *\n * @param text - The Mermaid diagram text\n * @returns Encoded string with \"pako:\" prefix\n */\nexport function encodeForMermaidInk(text: string): string {\n const encoded = encodeForKroki(text);\n return `pako:${encoded}`;\n}\n\n/**\n * Normalize export options to internal MermaidInkOptions.\n * Maps MermaidInkExportOptions fields to MermaidInkOptions fields.\n */\nfunction normalizeOptions(\n options: MermaidInkOptions | MermaidInkExportOptions\n): MermaidInkOptions {\n // If it's MermaidInkExportOptions (has \"provider\" field), normalize it\n if (\"provider\" in options) {\n const exportOpts = options as MermaidInkExportOptions;\n return {\n theme: exportOpts.mermaidTheme,\n bgColor: exportOpts.background,\n scale: exportOpts.scale,\n fit: exportOpts.fit,\n width: exportOpts.width,\n height: exportOpts.height,\n paper: exportOpts.paper as MermaidInkPaperSize | undefined,\n // MermaidInkExportOptions uses \"png\" format via toExportUrl, set imageType\n imageType: \"png\",\n };\n }\n // Already MermaidInkOptions\n return options;\n}\n\n/**\n * Build query string from options.\n */\nfunction buildQueryString(\n format: MermaidInkFormat,\n options: MermaidInkOptions\n): string {\n const params: string[] = [];\n\n // Common options\n if (options.bgColor) {\n params.push(`bgColor=${encodeURIComponent(options.bgColor)}`);\n }\n if (options.theme) {\n params.push(`theme=${options.theme}`);\n }\n if (options.width !== undefined) {\n params.push(`width=${options.width}`);\n }\n if (options.height !== undefined) {\n params.push(`height=${options.height}`);\n }\n if (options.scale !== undefined && (options.width !== undefined || options.height !== undefined)) {\n params.push(`scale=${options.scale}`);\n }\n\n // Image-specific options\n if (format === \"img\" && options.imageType && options.imageType !== \"jpeg\") {\n params.push(`type=${options.imageType}`);\n }\n\n // PDF-specific options\n if (format === \"pdf\") {\n if (options.fit) {\n params.push(\"fit\");\n }\n if (options.paper && !options.fit) {\n params.push(`paper=${options.paper}`);\n }\n if (options.landscape && !options.fit) {\n params.push(\"landscape\");\n }\n }\n\n return params.length > 0 ? `?${params.join(\"&\")}` : \"\";\n}\n\n/**\n * Build a mermaid.ink URL for the given Mermaid diagram text.\n *\n * @param format - Output format (svg, img, pdf)\n * @param text - The Mermaid diagram text\n * @param options - Optional mermaid.ink options (MermaidInkOptions or MermaidInkExportOptions)\n * @returns The mermaid.ink URL\n *\n * @example\n * ```typescript\n * const url = buildMermaidInkUrl('svg', 'flowchart TD\\n A-->B');\n * // => \"https://mermaid.ink/svg/pako:eNpLzs8tyc9NTgQADsMDmA\"\n *\n * const darkUrl = buildMermaidInkUrl('svg', 'flowchart TD\\n A-->B', {\n * theme: 'dark',\n * bgColor: '1b1b1f'\n * });\n * // => \"https://mermaid.ink/svg/pako:eNp...?theme=dark&bgColor=1b1b1f\"\n *\n * // With MermaidInkExportOptions\n * const exportUrl = buildMermaidInkUrl('svg', 'flowchart TD\\n A-->B', {\n * provider: 'mermaid-ink',\n * mermaidTheme: 'dark',\n * background: '1b1b1f'\n * });\n * ```\n */\nexport function buildMermaidInkUrl(\n format: MermaidInkFormat,\n text: string,\n options: MermaidInkOptions | MermaidInkExportOptions = {}\n): string {\n const normalized = normalizeOptions(options);\n const baseUrl = normalized.baseUrl ?? DEFAULT_MERMAID_INK_URL;\n const encoded = encodeForMermaidInk(text);\n const queryString = buildQueryString(format, normalized);\n return `${baseUrl}/${format}/${encoded}${queryString}`;\n}\n\n/**\n * Generate a mermaid.ink URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param format - Output format (default: 'svg')\n * @param options - Optional mermaid.ink options\n * @returns The mermaid.ink URL\n *\n * @example\n * ```typescript\n * const url = toMermaidInkUrl(workflowIR, 'svg');\n * // Share this URL - image renders when viewed\n *\n * const darkUrl = toMermaidInkUrl(workflowIR, 'svg', { theme: 'dark' });\n * ```\n */\nexport function toMermaidInkUrl(\n ir: WorkflowIR,\n format: MermaidInkFormat = \"svg\",\n options: MermaidInkOptions = {}\n): string {\n const renderer = mermaidRenderer();\n const renderOptions: RenderOptions = {\n showTimings: true,\n showKeys: false,\n terminalWidth: 80,\n colors: defaultColorScheme,\n };\n\n const mermaidText = renderer.render(ir, renderOptions);\n return buildMermaidInkUrl(format, mermaidText, options);\n}\n\n/**\n * Generate a mermaid.ink SVG URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional mermaid.ink options\n * @returns The mermaid.ink SVG URL\n *\n * @example\n * ```typescript\n * const svgUrl = toMermaidInkSvgUrl(workflowIR);\n * // => \"https://mermaid.ink/svg/pako:eNp...\"\n *\n * const darkSvg = toMermaidInkSvgUrl(workflowIR, { theme: 'dark' });\n * ```\n */\nexport function toMermaidInkSvgUrl(\n ir: WorkflowIR,\n options: MermaidInkOptions = {}\n): string {\n return toMermaidInkUrl(ir, \"svg\", options);\n}\n\n/**\n * Generate a mermaid.ink PNG URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional mermaid.ink options\n * @returns The mermaid.ink PNG URL\n *\n * @example\n * ```typescript\n * const pngUrl = toMermaidInkPngUrl(workflowIR);\n * // => \"https://mermaid.ink/img/pako:eNp...?type=png\"\n *\n * const scaledPng = toMermaidInkPngUrl(workflowIR, { width: 800, scale: 2 });\n * ```\n */\nexport function toMermaidInkPngUrl(\n ir: WorkflowIR,\n options: MermaidInkOptions = {}\n): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"png\" });\n}\n\n/**\n * Generate a mermaid.ink JPEG URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional mermaid.ink options\n * @returns The mermaid.ink JPEG URL\n */\nexport function toMermaidInkJpegUrl(\n ir: WorkflowIR,\n options: MermaidInkOptions = {}\n): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"jpeg\" });\n}\n\n/**\n * Generate a mermaid.ink WebP URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional mermaid.ink options\n * @returns The mermaid.ink WebP URL\n */\nexport function toMermaidInkWebpUrl(\n ir: WorkflowIR,\n options: MermaidInkOptions = {}\n): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"webp\" });\n}\n\n/**\n * Generate a mermaid.ink PDF URL from workflow IR.\n *\n * @param ir - Workflow intermediate representation\n * @param options - Optional mermaid.ink options (fit, paper, landscape)\n * @returns The mermaid.ink PDF URL\n *\n * @example\n * ```typescript\n * // Fit PDF to diagram size\n * const fitPdf = toMermaidInkPdfUrl(workflowIR, { fit: true });\n *\n * // A3 landscape\n * const a3Pdf = toMermaidInkPdfUrl(workflowIR, { paper: 'a3', landscape: true });\n * ```\n */\nexport function toMermaidInkPdfUrl(\n ir: WorkflowIR,\n options: MermaidInkOptions = {}\n): string {\n return toMermaidInkUrl(ir, \"pdf\", options);\n}\n\n/**\n * Mermaid.ink URL Generator interface.\n */\nexport interface MermaidInkGenerator {\n /** Generate URL with specified format */\n toUrl(ir: WorkflowIR, format: MermaidInkFormat): string;\n /** Generate SVG URL */\n toSvgUrl(ir: WorkflowIR): string;\n /** Generate PNG URL */\n toPngUrl(ir: WorkflowIR): string;\n /** Generate JPEG URL */\n toJpegUrl(ir: WorkflowIR): string;\n /** Generate WebP URL */\n toWebpUrl(ir: WorkflowIR): string;\n /** Generate PDF URL */\n toPdfUrl(ir: WorkflowIR): string;\n /** Get the configured base URL */\n getBaseUrl(): string;\n /** Get the configured options */\n getOptions(): MermaidInkOptions;\n}\n\n/**\n * Create a mermaid.ink URL generator with default options.\n * Useful for consistent theming across all generated URLs.\n *\n * @param options - Default mermaid.ink options applied to all URLs\n * @returns A mermaid.ink URL generator instance\n *\n * @example\n * ```typescript\n * // Create generator with dark theme defaults\n * const generator = createMermaidInkGenerator({\n * theme: 'dark',\n * bgColor: '1b1b1f',\n * });\n *\n * // All URLs will use dark theme\n * const svgUrl = generator.toSvgUrl(workflowIR);\n * const pngUrl = generator.toPngUrl(workflowIR);\n *\n * // Self-hosted mermaid.ink\n * const privateGenerator = createMermaidInkGenerator({\n * baseUrl: 'https://mermaid.internal.company.com',\n * });\n * ```\n */\nexport function createMermaidInkGenerator(\n options: MermaidInkOptions = {}\n): MermaidInkGenerator {\n const baseUrl = options.baseUrl ?? DEFAULT_MERMAID_INK_URL;\n\n return {\n toUrl(ir: WorkflowIR, format: MermaidInkFormat): string {\n return toMermaidInkUrl(ir, format, options);\n },\n\n toSvgUrl(ir: WorkflowIR): string {\n return toMermaidInkUrl(ir, \"svg\", options);\n },\n\n toPngUrl(ir: WorkflowIR): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"png\" });\n },\n\n toJpegUrl(ir: WorkflowIR): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"jpeg\" });\n },\n\n toWebpUrl(ir: WorkflowIR): string {\n return toMermaidInkUrl(ir, \"img\", { ...options, imageType: \"webp\" });\n },\n\n toPdfUrl(ir: WorkflowIR): string {\n return toMermaidInkUrl(ir, \"pdf\", options);\n },\n\n getBaseUrl(): string {\n return baseUrl;\n },\n\n getOptions(): MermaidInkOptions {\n return { ...options };\n },\n };\n}\n","/**\n * Notifier Context Factory\n *\n * Creates shared context for notifier adapters.\n * Single source of truth for diagram URL generation and utilities.\n */\n\nimport type { WorkflowIR } from \"../types\";\nimport type { ProviderOptions } from \"./types\";\nimport type { NotifierContext } from \"./adapter\";\nimport { countSteps } from \"./types\";\nimport { toKrokiSvgUrl } from \"../kroki/url\";\nimport { toMermaidInkSvgUrl } from \"../kroki/mermaid-ink\";\n\n/**\n * Create shared context for notifier adapters.\n * Single source of truth for diagram URL generation.\n *\n * @param diagramProvider - Provider configuration\n * @returns NotifierContext with shared utilities\n */\nexport function createNotifierContext(\n diagramProvider: ProviderOptions\n): NotifierContext {\n return {\n getDiagramUrl(ir: WorkflowIR): string {\n if (diagramProvider.provider === \"mermaid-ink\") {\n const { provider: _, ...options } = diagramProvider;\n return toMermaidInkSvgUrl(ir, options);\n }\n // Kroki provider\n return toKrokiSvgUrl(ir, { baseUrl: diagramProvider.baseUrl });\n },\n\n countSteps(ir: WorkflowIR): number {\n return countSteps(ir);\n },\n\n formatDuration(ir: WorkflowIR): string {\n if (ir.root.endTs !== undefined && ir.root.startTs !== undefined) {\n return `${ir.root.endTs - ir.root.startTs}ms`;\n }\n if (ir.root.durationMs !== undefined) {\n return `${ir.root.durationMs}ms`;\n }\n return \"In progress\";\n },\n };\n}\n","/**\n * Live Session Base\n *\n * Base class for live workflow update sessions with debouncing.\n * Handles timing logic for batching rapid updates while ensuring\n * periodic updates during constant churn.\n */\n\nimport { ok, err, type Result } from \"awaitly\";\nimport type { WorkflowEvent } from \"awaitly/workflow\";\nimport type {\n WorkflowIR,\n ScopeStartEvent,\n ScopeEndEvent,\n DecisionStartEvent,\n DecisionBranchEvent,\n DecisionEndEvent,\n} from \"../types\";\nimport type { LiveSession, LiveSessionOptions, WorkflowStatus } from \"../notifiers/types\";\nimport { createIRBuilder } from \"../ir-builder\";\n\n/**\n * Extended event types that the live session can handle.\n * Includes both core WorkflowEvent and visualizer-specific events.\n */\ntype ExtendedEvent =\n | WorkflowEvent<unknown>\n | ScopeStartEvent\n | ScopeEndEvent\n | DecisionStartEvent\n | DecisionBranchEvent\n | DecisionEndEvent;\n\n/**\n * Error types for live session flush operations.\n */\nexport type FlushError = \"CALLBACK_ERROR\";\n\n/**\n * Default debounce interval (ms).\n */\nconst DEFAULT_DEBOUNCE_MS = 500;\n\n/**\n * Default max wait between posts (ms).\n */\nconst DEFAULT_MAX_WAIT_MS = 5000;\n\n/**\n * Callbacks for concrete notifier implementations.\n */\nexport interface LiveSessionCallbacks {\n /** Called to post a new message, returns message ID */\n postNew(ir: WorkflowIR, title: string): Promise<string | undefined>;\n\n /** Called to update an existing message */\n updateExisting(\n messageId: string,\n ir: WorkflowIR,\n title: string\n ): Promise<void>;\n\n /** Called to finalize the message with status */\n finalize(\n messageId: string | undefined,\n ir: WorkflowIR,\n title: string,\n status: WorkflowStatus\n ): Promise<void>;\n\n /** Called to cancel/delete the message (optional) */\n cancel?(messageId: string): Promise<void>;\n}\n\n/**\n * Create a live session with debouncing.\n *\n * @param options - Session options\n * @param callbacks - Platform-specific callbacks\n * @returns A LiveSession instance\n */\nexport function createLiveSession(\n options: LiveSessionOptions,\n callbacks: LiveSessionCallbacks\n): LiveSession {\n const {\n title,\n debounceMs = DEFAULT_DEBOUNCE_MS,\n maxWaitMs = DEFAULT_MAX_WAIT_MS,\n } = options;\n\n // State\n let messageId: string | undefined;\n let active = true;\n let pendingIR: WorkflowIR | undefined;\n /** Last IR we had (pending or flushed) so finalize() can use it after a flush */\n let lastIR: WorkflowIR | undefined;\n let debounceTimer: ReturnType<typeof setTimeout> | undefined;\n let maxWaitTimer: ReturnType<typeof setTimeout> | undefined;\n let lastPostTime: number | undefined;\n let firstUpdateTime: number | undefined;\n /** Track last flush result for error reporting */\n let lastFlushResult: Result<void, FlushError> = ok(undefined);\n\n // IR builder for accumulating events\n const irBuilder = createIRBuilder({ detectParallel: true });\n\n function clearTimers(): void {\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n debounceTimer = undefined;\n }\n if (maxWaitTimer) {\n clearTimeout(maxWaitTimer);\n maxWaitTimer = undefined;\n }\n }\n\n async function flush(): Promise<Result<void, FlushError>> {\n if (!pendingIR || !active) return ok(undefined);\n\n const irToPost = pendingIR;\n lastIR = irToPost;\n pendingIR = undefined;\n clearTimers();\n\n try {\n if (!messageId) {\n // First post - create new message\n messageId = await callbacks.postNew(irToPost, title);\n } else {\n // Update existing message\n await callbacks.updateExisting(messageId, irToPost, title);\n }\n lastPostTime = Date.now();\n lastFlushResult = ok(undefined);\n return lastFlushResult;\n } catch {\n // Capture errors instead of silently swallowing\n lastFlushResult = err(\"CALLBACK_ERROR\");\n return lastFlushResult;\n }\n }\n\n function scheduleFlush(): void {\n // Clear existing debounce timer\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n\n // Set new debounce timer\n debounceTimer = setTimeout(() => {\n void flush();\n }, debounceMs);\n\n // Set max wait timer if not already set\n // Use lastPostTime if we've posted, otherwise use firstUpdateTime\n const referenceTime = lastPostTime ?? firstUpdateTime;\n if (!maxWaitTimer && referenceTime !== undefined) {\n const timeSinceReference = Date.now() - referenceTime;\n const remainingMaxWait = Math.max(0, maxWaitMs - timeSinceReference);\n\n maxWaitTimer = setTimeout(() => {\n maxWaitTimer = undefined;\n void flush();\n }, remainingMaxWait);\n }\n }\n\n function update(eventOrIr: ExtendedEvent | WorkflowIR): void {\n if (!active) return;\n\n // Track first update time for max-wait before first post\n if (firstUpdateTime === undefined) {\n firstUpdateTime = Date.now();\n }\n\n // Handle event or IR\n if (\"root\" in eventOrIr) {\n // It's an IR\n pendingIR = eventOrIr;\n lastIR = eventOrIr;\n } else {\n // It's an event - route to correct handler based on type\n const event = eventOrIr;\n if (event.type === \"scope_start\" || event.type === \"scope_end\") {\n irBuilder.handleScopeEvent(event as ScopeStartEvent | ScopeEndEvent);\n } else if (\n event.type === \"decision_start\" ||\n event.type === \"decision_branch\" ||\n event.type === \"decision_end\"\n ) {\n irBuilder.handleDecisionEvent(event as DecisionStartEvent | DecisionBranchEvent | DecisionEndEvent);\n } else {\n irBuilder.handleEvent(event as WorkflowEvent<unknown>);\n }\n pendingIR = irBuilder.getIR();\n lastIR = pendingIR;\n }\n\n scheduleFlush();\n }\n\n async function finalize(status: WorkflowStatus = \"completed\"): Promise<void> {\n if (!active) return;\n\n active = false;\n clearTimers();\n\n // Get final IR (pending, or last flushed/direct, or builder snapshot)\n const finalIR = pendingIR ?? lastIR ?? irBuilder.getIR();\n\n await callbacks.finalize(messageId, finalIR, title, status);\n }\n\n function cancel(): void {\n if (!active) return;\n\n active = false;\n clearTimers();\n\n if (messageId && callbacks.cancel) {\n void callbacks.cancel(messageId);\n }\n }\n\n function getSessionId(): string | undefined {\n return messageId;\n }\n\n function isActive(): boolean {\n return active;\n }\n\n return {\n update,\n finalize,\n cancel,\n getSessionId,\n isActive,\n };\n}\n","/**\n * Parallel Detection - Heuristic detection of parallel execution from timing.\n *\n * When steps overlap in time (one starts before another ends), they are\n * likely running in parallel. This module detects such patterns and\n * groups overlapping steps into ParallelNode structures.\n */\n\nimport type { FlowNode, ParallelNode, StepNode } from \"./types\";\n\n/**\n * Options for parallel detection.\n */\nexport interface ParallelDetectorOptions {\n /**\n * Minimum overlap in milliseconds to consider steps parallel.\n * Default: 0 (any overlap counts)\n */\n minOverlapMs?: number;\n\n /**\n * Maximum gap in milliseconds to still consider steps as part of same parallel group.\n * Default: 5 (steps starting within 5ms are grouped)\n */\n maxGapMs?: number;\n}\n\n/**\n * Step timing information for overlap detection.\n */\ninterface StepTiming {\n node: StepNode;\n startTs: number;\n endTs: number;\n}\n\n/**\n * Check if nodes contain real scope nodes (from scope_start/scope_end events).\n * When real scope nodes exist, heuristic detection should be skipped to avoid\n * duplicating or conflicting with the explicit structure.\n */\nfunction hasRealScopeNodes(nodes: FlowNode[]): boolean {\n for (const node of nodes) {\n // Real scope nodes are parallel/race/sequence that came from scope events\n // (not from heuristic detection, which uses ids starting with \"detected_\")\n if (\n (node.type === \"parallel\" || node.type === \"race\" || node.type === \"sequence\") &&\n !node.id.startsWith(\"detected_\")\n ) {\n return true;\n }\n // Also check for decision nodes if present\n if (node.type === \"decision\") {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Group overlapping steps into parallel nodes.\n *\n * Algorithm:\n * 1. Sort steps by start time\n * 2. For each step, check if it overlaps with existing parallel groups\n * 3. If it overlaps, add to group; otherwise start new sequence\n * 4. Merge overlapping groups when step bridges them\n *\n * Note: If real scope nodes (from scope_start/scope_end) are present,\n * heuristic detection is skipped to avoid conflicts.\n */\nexport function detectParallelGroups(\n nodes: FlowNode[],\n options: ParallelDetectorOptions = {}\n): FlowNode[] {\n // If real scope nodes exist, skip heuristic detection\n // The explicit scope events provide accurate structure\n if (hasRealScopeNodes(nodes)) {\n return nodes;\n }\n\n const { minOverlapMs = 0, maxGapMs = 5 } = options;\n\n // Extract step nodes with timing info, preserving indices for position restoration\n const stepsWithTiming: (StepTiming & { originalIndex: number })[] = [];\n const nonStepNodes: { node: FlowNode; originalIndex: number }[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === \"step\" && node.startTs !== undefined) {\n stepsWithTiming.push({\n node,\n startTs: node.startTs,\n endTs: node.endTs ?? node.startTs + (node.durationMs ?? 0),\n originalIndex: i,\n });\n } else {\n // Keep non-step nodes with their original position\n nonStepNodes.push({ node, originalIndex: i });\n }\n }\n\n if (stepsWithTiming.length <= 1) {\n return nodes; // Nothing to group\n }\n\n // Sort by start time\n stepsWithTiming.sort((a, b) => a.startTs - b.startTs);\n\n // Group overlapping steps\n type StepTimingWithIndex = StepTiming & { originalIndex: number };\n const groups: StepTimingWithIndex[][] = [];\n let currentGroup: StepTimingWithIndex[] = [stepsWithTiming[0]];\n\n for (let i = 1; i < stepsWithTiming.length; i++) {\n const step = stepsWithTiming[i];\n const groupStart = Math.min(...currentGroup.map((s) => s.startTs));\n const groupEnd = Math.max(...currentGroup.map((s) => s.endTs));\n\n // Two ways steps can be parallel:\n // 1. They started together (within maxGapMs) - handles timing jitter\n // 2. They genuinely overlap (step starts before group ends)\n const startedTogether = step.startTs <= groupStart + maxGapMs;\n const hasTrueOverlap = step.startTs < groupEnd;\n\n if (!startedTogether && !hasTrueOverlap) {\n // Sequential: step started after group ended AND not with the group\n groups.push(currentGroup);\n currentGroup = [step];\n continue;\n }\n\n // Check minOverlapMs threshold for overlap duration\n // For steps that started together, overlap is measured from step start to group end\n // For steps with true overlap, it's from step start to min(step end, group end)\n const overlapDuration = hasTrueOverlap\n ? Math.min(step.endTs, groupEnd) - step.startTs\n : 0;\n\n // Started together bypasses minOverlapMs (they're parallel by definition)\n // True overlap must meet the minOverlapMs threshold\n if (startedTogether || overlapDuration >= minOverlapMs) {\n currentGroup.push(step);\n } else {\n // Overlap too small - treat as sequential\n groups.push(currentGroup);\n currentGroup = [step];\n }\n }\n groups.push(currentGroup);\n\n // Convert groups to nodes with position tracking\n const groupedNodes: { node: FlowNode; position: number }[] = [];\n\n for (const group of groups) {\n // Use the minimum original index as the position for the group\n const position = Math.min(...group.map((s) => s.originalIndex));\n\n if (group.length === 1) {\n // Single step - no parallel grouping needed\n groupedNodes.push({ node: group[0].node, position });\n } else {\n // Multiple overlapping steps - create parallel node\n const children = group.map((s) => s.node);\n const startTs = Math.min(...group.map((s) => s.startTs));\n const endTs = Math.max(...group.map((s) => s.endTs));\n\n const parallelNode: ParallelNode = {\n type: \"parallel\",\n id: `detected_parallel_${startTs}`,\n name: `${children.length} parallel steps`,\n state: deriveGroupState(children),\n mode: \"all\",\n children,\n startTs,\n endTs,\n durationMs: endTs - startTs,\n };\n\n groupedNodes.push({ node: parallelNode, position });\n }\n }\n\n // Add non-step nodes with their original positions\n for (const { node, originalIndex } of nonStepNodes) {\n groupedNodes.push({ node, position: originalIndex });\n }\n\n // Sort by original position to preserve ordering\n groupedNodes.sort((a, b) => a.position - b.position);\n\n return groupedNodes.map((g) => g.node);\n}\n\n/**\n * Derive the state of a group from its children.\n */\nfunction deriveGroupState(\n children: FlowNode[]\n): \"pending\" | \"running\" | \"success\" | \"error\" | \"aborted\" | \"cached\" {\n const hasError = children.some((c) => c.state === \"error\");\n if (hasError) return \"error\";\n\n const hasRunning = children.some((c) => c.state === \"running\");\n if (hasRunning) return \"running\";\n\n const hasPending = children.some((c) => c.state === \"pending\");\n if (hasPending) return \"pending\";\n\n const allSuccess = children.every(\n (c) => c.state === \"success\" || c.state === \"cached\"\n );\n if (allSuccess) return \"success\";\n\n return \"success\";\n}\n\n/**\n * Create a parallel detector that processes nodes.\n */\nexport function createParallelDetector(options: ParallelDetectorOptions = {}) {\n return {\n /**\n * Process nodes and group overlapping ones into parallel nodes.\n */\n detect: (nodes: FlowNode[]) => detectParallelGroups(nodes, options),\n };\n}\n","/**\n * IR Builder - Converts workflow events to Intermediate Representation.\n *\n * The builder maintains state as events arrive, constructing a tree\n * representation of the workflow execution that can be rendered.\n */\n\nimport type { WorkflowEvent } from \"awaitly/workflow\";\nimport type {\n FlowNode,\n ScopeEndEvent,\n ScopeStartEvent,\n ScopeType,\n StepNode,\n StepState,\n WorkflowIR,\n WorkflowNode,\n ParallelNode,\n RaceNode,\n DecisionNode,\n DecisionStartEvent,\n DecisionBranchEvent,\n DecisionEndEvent,\n DecisionBranch,\n IRSnapshot,\n ActiveStepSnapshot,\n WorkflowHooks,\n HookExecution,\n StreamNode,\n} from \"./types\";\nimport { generateId } from \"./utils/timing\";\nimport { detectParallelGroups, type ParallelDetectorOptions } from \"./parallel-detector\";\n\n// =============================================================================\n// Builder Options\n// =============================================================================\n\n/**\n * Options for the IR builder.\n */\nexport interface IRBuilderOptions {\n /**\n * Enable heuristic parallel detection based on timing.\n * When true, overlapping steps are grouped into ParallelNodes.\n * Default: true\n */\n detectParallel?: boolean;\n\n /**\n * Options for parallel detection.\n */\n parallelDetection?: ParallelDetectorOptions;\n\n /**\n * Enable snapshot recording for time-travel debugging.\n * When true, the builder captures IR state after each event.\n * Default: false\n */\n enableSnapshots?: boolean;\n\n /**\n * Maximum number of snapshots to keep (ring buffer behavior).\n * When exceeded, oldest snapshots are discarded.\n * Default: 1000\n */\n maxSnapshots?: number;\n}\n\n// =============================================================================\n// Builder State\n// =============================================================================\n\ninterface ActiveStep {\n id: string;\n name?: string;\n key?: string;\n startTs: number;\n retryCount: number;\n timedOut: boolean;\n timeoutMs?: number;\n}\n\ninterface ActiveScope {\n id: string;\n name?: string;\n type: ScopeType;\n startTs: number;\n children: FlowNode[];\n}\n\ninterface ActiveDecision {\n id: string;\n name?: string;\n condition?: string;\n decisionValue?: unknown;\n startTs: number;\n branches: Map<string, DecisionBranch>;\n branchTaken?: string | boolean;\n /** Nodes that arrived before any branch was created */\n pendingChildren: FlowNode[];\n}\n\ninterface ActiveStream {\n id: string;\n namespace: string;\n startTs: number;\n writeCount: number;\n readCount: number;\n streamState: \"active\" | \"closed\" | \"error\";\n backpressureOccurred: boolean;\n finalPosition: number;\n}\n\n// =============================================================================\n// IR Builder\n// =============================================================================\n\n/**\n * Creates an IR builder that processes workflow events.\n */\nexport function createIRBuilder(options: IRBuilderOptions = {}) {\n const {\n detectParallel = true,\n parallelDetection,\n enableSnapshots: initialEnableSnapshots = false,\n maxSnapshots = 1000,\n } = options;\n\n // Mutable so time-travel stopRecording() can pause snapshot accumulation\n let enableSnapshots = initialEnableSnapshots;\n\n // Current workflow state\n // Generate a stable default ID for use before workflow_start event\n const defaultWorkflowId = generateId();\n let workflowId: string | undefined;\n let workflowStartTs: number | undefined;\n let workflowEndTs: number | undefined;\n let workflowState: StepState = \"pending\";\n let workflowError: unknown;\n let workflowDurationMs: number | undefined;\n\n // Active steps (currently running)\n const activeSteps = new Map<string, ActiveStep>();\n\n // Active scopes (parallel/race blocks)\n const scopeStack: ActiveScope[] = [];\n\n // Active decisions (conditional branches)\n const decisionStack: ActiveDecision[] = [];\n\n // Active streams (streaming operations)\n const activeStreams = new Map<string, ActiveStream>();\n\n // Completed nodes at the current scope level\n let currentNodes: FlowNode[] = [];\n\n // Metadata\n let createdAt = Date.now();\n let lastUpdatedAt = createdAt;\n\n // Hook executions\n let hookState: WorkflowHooks = {\n onAfterStep: new Map(),\n };\n /** WorkflowId that the current pre-start hooks (shouldRun, onBeforeStart) belong to */\n let preStartHookWorkflowId: string | undefined;\n\n // Snapshot state for time-travel debugging\n const snapshots: IRSnapshot[] = [];\n let eventIndex = 0;\n\n /**\n * Get the step ID from an event.\n * Uses stepId if available (new events), then falls back to stepKey or name,\n * and finally generates a random ID for backwards compatibility.\n */\n function getStepId(event: { stepId?: string; stepKey?: string; name?: string }): string {\n return event.stepId ?? event.stepKey ?? event.name ?? generateId();\n }\n\n /**\n * Add a completed node to the current scope or decision branch.\n * Scope stack takes priority over decision stack because scopes are\n * the innermost container - when a scope ends, its node will be added\n * to the decision branch via this same function.\n */\n function addNode(node: FlowNode): void {\n // If we're in a scope, add to the innermost scope\n // (scope takes priority - when scope ends, the scope node will be added to decision)\n if (scopeStack.length > 0) {\n scopeStack[scopeStack.length - 1].children.push(node);\n lastUpdatedAt = Date.now();\n return;\n }\n\n // If we're in a decision (but not in a scope), add to the taken branch\n if (decisionStack.length > 0) {\n const decision = decisionStack[decisionStack.length - 1];\n // Find the taken branch\n for (const branch of decision.branches.values()) {\n if (branch.taken) {\n branch.children.push(node);\n lastUpdatedAt = Date.now();\n return;\n }\n }\n // No branch is taken yet (or first branch was taken: false) - buffer for later\n decision.pendingChildren.push(node);\n lastUpdatedAt = Date.now();\n return;\n }\n\n // Add to the root level\n currentNodes.push(node);\n lastUpdatedAt = Date.now();\n }\n\n /**\n * Capture a snapshot of the current IR state (for time-travel debugging).\n * Called after each event is processed.\n */\n function captureSnapshot(event: WorkflowEvent<unknown>): void {\n if (!enableSnapshots) return;\n\n // Deep clone the current IR state\n const ir = getIR();\n\n // Clone active steps for debugging\n const activeStepsCopy = new Map<string, ActiveStepSnapshot>();\n for (const [id, step] of activeSteps) {\n activeStepsCopy.set(id, {\n id: step.id,\n name: step.name,\n key: step.key,\n startTs: step.startTs,\n retryCount: step.retryCount,\n timedOut: step.timedOut,\n timeoutMs: step.timeoutMs,\n });\n }\n\n const snapshot: IRSnapshot = {\n id: `snapshot_${eventIndex}`,\n eventIndex,\n event: structuredClone(event),\n ir: structuredClone(ir),\n timestamp: Date.now(),\n activeSteps: activeStepsCopy,\n };\n\n snapshots.push(snapshot);\n\n // Ring buffer: remove oldest if we exceed max\n if (snapshots.length > maxSnapshots) {\n snapshots.shift();\n }\n\n eventIndex++;\n }\n\n /**\n * Handle a workflow event and update the IR.\n */\n function handleEvent(event: WorkflowEvent<unknown>): void {\n switch (event.type) {\n case \"workflow_start\": {\n // New run: clear previous nodes and end-state so visualizations don't accumulate\n currentNodes = [];\n workflowEndTs = undefined;\n workflowDurationMs = undefined;\n workflowError = undefined;\n activeSteps.clear();\n scopeStack.length = 0;\n decisionStack.length = 0;\n activeStreams.clear();\n\n workflowId = event.workflowId;\n workflowStartTs = event.ts;\n workflowState = \"running\";\n createdAt = Date.now();\n lastUpdatedAt = createdAt;\n // Clear pre-start hooks from a previous run so a new run without hook events doesn't inherit them\n if (preStartHookWorkflowId !== undefined && preStartHookWorkflowId !== event.workflowId) {\n hookState.shouldRun = undefined;\n hookState.onBeforeStart = undefined;\n }\n preStartHookWorkflowId = event.workflowId;\n hookState.onAfterStep = new Map();\n break;\n }\n\n case \"workflow_success\":\n workflowState = \"success\";\n workflowEndTs = event.ts;\n workflowDurationMs = event.durationMs;\n lastUpdatedAt = Date.now();\n break;\n\n case \"workflow_error\":\n workflowState = \"error\";\n workflowEndTs = event.ts;\n workflowError = event.error;\n workflowDurationMs = event.durationMs;\n lastUpdatedAt = Date.now();\n break;\n\n case \"workflow_cancelled\":\n workflowState = \"aborted\";\n workflowEndTs = event.ts;\n workflowDurationMs = event.durationMs;\n lastUpdatedAt = Date.now();\n break;\n\n case \"step_start\": {\n const id = getStepId(event);\n activeSteps.set(id, {\n id,\n name: event.name,\n key: event.stepKey,\n startTs: event.ts,\n retryCount: 0,\n timedOut: false,\n });\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"step_success\": {\n const id = getStepId(event);\n const active = activeSteps.get(id);\n if (active) {\n const node: StepNode = {\n type: \"step\",\n id: active.id,\n name: active.name,\n key: active.key,\n state: \"success\",\n startTs: active.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n ...(active.retryCount > 0 && { retryCount: active.retryCount }),\n ...(active.timedOut && { timedOut: true, timeoutMs: active.timeoutMs }),\n };\n addNode(node);\n activeSteps.delete(id);\n }\n break;\n }\n\n case \"step_error\": {\n const id = getStepId(event);\n const active = activeSteps.get(id);\n if (active) {\n const node: StepNode = {\n type: \"step\",\n id: active.id,\n name: active.name,\n key: active.key,\n state: \"error\",\n startTs: active.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n error: event.error,\n ...(active.retryCount > 0 && { retryCount: active.retryCount }),\n ...(active.timedOut && { timedOut: true, timeoutMs: active.timeoutMs }),\n };\n addNode(node);\n activeSteps.delete(id);\n }\n break;\n }\n\n case \"step_aborted\": {\n const id = getStepId(event);\n const active = activeSteps.get(id);\n if (active) {\n const node: StepNode = {\n type: \"step\",\n id: active.id,\n name: active.name,\n key: active.key,\n state: \"aborted\",\n startTs: active.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n ...(active.retryCount > 0 && { retryCount: active.retryCount }),\n ...(active.timedOut && { timedOut: true, timeoutMs: active.timeoutMs }),\n };\n addNode(node);\n activeSteps.delete(id);\n }\n break;\n }\n\n case \"step_cache_hit\": {\n const id = getStepId(event);\n const node: StepNode = {\n type: \"step\",\n id,\n name: event.name,\n key: event.stepKey,\n state: \"cached\",\n startTs: event.ts,\n endTs: event.ts,\n durationMs: 0,\n };\n addNode(node);\n break;\n }\n\n case \"step_cache_miss\":\n // Cache miss just means the step will execute normally\n // We'll get a step_start event next\n break;\n\n case \"step_complete\":\n // step_complete is for state persistence, not visualization\n // We already handled the step via step_success/step_error\n break;\n\n case \"step_timeout\": {\n // Timeout is an intermediate event - step may retry or will get step_error\n // Track timeout info on the active step\n const id = getStepId(event);\n const active = activeSteps.get(id);\n if (active) {\n active.timedOut = true;\n active.timeoutMs = event.timeoutMs;\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"step_retry\": {\n // Retry is an intermediate event - increment retry counter\n const id = getStepId(event);\n const active = activeSteps.get(id);\n if (active) {\n active.retryCount = (event.attempt ?? 1) - 1; // attempt is 1-indexed, retryCount is 0-indexed\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"step_retries_exhausted\":\n // All retries exhausted - step_error will follow\n // The error state will be set by step_error handler\n lastUpdatedAt = Date.now();\n break;\n\n case \"step_skipped\": {\n const id = getStepId(event);\n const node: StepNode = {\n type: \"step\",\n id,\n name: event.name,\n key: event.stepKey,\n state: \"skipped\",\n startTs: event.ts,\n endTs: event.ts,\n durationMs: 0,\n };\n addNode(node);\n break;\n }\n\n // Hook events\n case \"hook_should_run\": {\n const hookExec: HookExecution = {\n type: \"shouldRun\",\n state: \"success\",\n ts: event.ts,\n durationMs: event.durationMs,\n context: {\n result: event.result,\n skipped: event.skipped,\n },\n };\n hookState.shouldRun = hookExec;\n preStartHookWorkflowId = event.workflowId;\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"hook_should_run_error\": {\n const hookExec: HookExecution = {\n type: \"shouldRun\",\n state: \"error\",\n ts: event.ts,\n durationMs: event.durationMs,\n error: event.error,\n };\n hookState.shouldRun = hookExec;\n preStartHookWorkflowId = event.workflowId;\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"hook_before_start\": {\n const hookExec: HookExecution = {\n type: \"onBeforeStart\",\n state: \"success\",\n ts: event.ts,\n durationMs: event.durationMs,\n context: {\n result: event.result,\n skipped: event.skipped,\n },\n };\n hookState.onBeforeStart = hookExec;\n preStartHookWorkflowId = event.workflowId;\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"hook_before_start_error\": {\n const hookExec: HookExecution = {\n type: \"onBeforeStart\",\n state: \"error\",\n ts: event.ts,\n durationMs: event.durationMs,\n error: event.error,\n };\n hookState.onBeforeStart = hookExec;\n preStartHookWorkflowId = event.workflowId;\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"hook_after_step\": {\n const hookExec: HookExecution = {\n type: \"onAfterStep\",\n state: \"success\",\n ts: event.ts,\n durationMs: event.durationMs,\n context: {\n stepKey: event.stepKey,\n },\n };\n hookState.onAfterStep.set(event.stepKey, hookExec);\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"hook_after_step_error\": {\n const hookExec: HookExecution = {\n type: \"onAfterStep\",\n state: \"error\",\n ts: event.ts,\n durationMs: event.durationMs,\n error: event.error,\n context: {\n stepKey: event.stepKey,\n },\n };\n hookState.onAfterStep.set(event.stepKey, hookExec);\n lastUpdatedAt = Date.now();\n break;\n }\n\n // Stream events\n case \"stream_created\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n activeStreams.set(streamKey, {\n id: generateId(),\n namespace: event.namespace,\n startTs: event.ts,\n writeCount: 0,\n readCount: 0,\n streamState: \"active\",\n backpressureOccurred: false,\n finalPosition: 0,\n });\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"stream_write\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n const stream = activeStreams.get(streamKey);\n if (stream) {\n stream.writeCount++;\n stream.finalPosition = Math.max(stream.finalPosition, event.position);\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"stream_read\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n const stream = activeStreams.get(streamKey);\n if (stream) {\n stream.readCount++;\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"stream_close\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n const stream = activeStreams.get(streamKey);\n if (stream) {\n stream.streamState = \"closed\";\n stream.finalPosition = event.finalPosition;\n // Create StreamNode and add to current nodes\n const node: StreamNode = {\n type: \"stream\",\n id: stream.id,\n namespace: stream.namespace,\n state: \"success\",\n startTs: stream.startTs,\n endTs: event.ts,\n durationMs: event.ts - stream.startTs,\n writeCount: stream.writeCount,\n readCount: stream.readCount,\n finalPosition: event.finalPosition,\n streamState: \"closed\",\n backpressureOccurred: stream.backpressureOccurred,\n };\n addNode(node);\n activeStreams.delete(streamKey);\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"stream_error\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n const stream = activeStreams.get(streamKey);\n if (stream) {\n stream.streamState = \"error\";\n // Create StreamNode with error state and add to current nodes\n const node: StreamNode = {\n type: \"stream\",\n id: stream.id,\n namespace: stream.namespace,\n state: \"error\",\n error: event.error,\n startTs: stream.startTs,\n endTs: event.ts,\n durationMs: event.ts - stream.startTs,\n writeCount: stream.writeCount,\n readCount: stream.readCount,\n finalPosition: event.position,\n streamState: \"error\",\n backpressureOccurred: stream.backpressureOccurred,\n };\n addNode(node);\n activeStreams.delete(streamKey);\n }\n lastUpdatedAt = Date.now();\n break;\n }\n\n case \"stream_backpressure\": {\n const streamKey = `${event.workflowId}:${event.namespace}`;\n const stream = activeStreams.get(streamKey);\n if (stream) {\n stream.backpressureOccurred = true;\n }\n lastUpdatedAt = Date.now();\n break;\n }\n }\n\n // Capture snapshot after processing event (for time-travel)\n captureSnapshot(event);\n }\n\n /**\n * Handle a scope event (parallel/race start/end).\n */\n function handleScopeEvent(event: ScopeStartEvent | ScopeEndEvent): void {\n if (event.type === \"scope_start\") {\n scopeStack.push({\n id: event.scopeId,\n name: event.name,\n type: event.scopeType,\n startTs: event.ts,\n children: [],\n });\n lastUpdatedAt = Date.now();\n } else if (event.type === \"scope_end\") {\n // Find the scope by ID (not just pop from top) to handle out-of-order events\n const scopeIndex = scopeStack.findIndex((s) => s.id === event.scopeId);\n if (scopeIndex === -1) {\n // Scope not found (already closed), ignore event\n return;\n }\n\n // Close all nested scopes first (those that started after this one)\n // Process in reverse order (innermost first) so each gets added to its parent\n while (scopeStack.length > scopeIndex + 1) {\n const nestedScope = scopeStack.pop()!;\n const nestedNode: ParallelNode | RaceNode =\n nestedScope.type === \"race\"\n ? {\n type: \"race\",\n id: nestedScope.id,\n name: nestedScope.name,\n state: deriveState(nestedScope.children),\n startTs: nestedScope.startTs,\n endTs: event.ts,\n children: nestedScope.children,\n }\n : {\n type: \"parallel\",\n id: nestedScope.id,\n name: nestedScope.name,\n state: deriveState(nestedScope.children),\n startTs: nestedScope.startTs,\n endTs: event.ts,\n children: nestedScope.children,\n mode: nestedScope.type === \"allSettled\" ? \"allSettled\" : \"all\",\n };\n // Add to the parent scope (which is now at the top of the remaining stack)\n scopeStack[scopeStack.length - 1].children.push(nestedNode);\n }\n\n // Now close the target scope\n const [scope] = scopeStack.splice(scopeIndex, 1);\n\n const node: ParallelNode | RaceNode =\n scope.type === \"race\"\n ? {\n type: \"race\",\n id: scope.id,\n name: scope.name,\n state: deriveState(scope.children),\n startTs: scope.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n children: scope.children,\n winnerId: event.winnerId,\n }\n : {\n type: \"parallel\",\n id: scope.id,\n name: scope.name,\n state: deriveState(scope.children),\n startTs: scope.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n children: scope.children,\n mode: scope.type === \"allSettled\" ? \"allSettled\" : \"all\",\n };\n addNode(node);\n }\n }\n\n /**\n * Handle a decision event (conditional branch start/branch/end).\n */\n function handleDecisionEvent(\n event: DecisionStartEvent | DecisionBranchEvent | DecisionEndEvent\n ): void {\n if (event.type === \"decision_start\") {\n decisionStack.push({\n id: event.decisionId,\n name: event.name,\n condition: event.condition,\n decisionValue: event.decisionValue,\n startTs: event.ts,\n branches: new Map(),\n pendingChildren: [],\n });\n lastUpdatedAt = Date.now();\n } else if (event.type === \"decision_branch\") {\n // Match by decisionId so outer decisions receive branch events while inner is on stack\n const decision = decisionStack.find((d) => d.id === event.decisionId);\n if (decision) {\n // Find or create branch\n const branchKey = event.branchLabel;\n const existing = decision.branches.get(branchKey);\n if (existing) {\n // Update existing branch\n existing.taken = event.taken;\n // If this branch is now taken and there are pending children, transfer them\n if (event.taken && decision.pendingChildren.length > 0) {\n existing.children.unshift(...decision.pendingChildren);\n decision.pendingChildren = [];\n }\n } else {\n // Create new branch - if taken, include any pending children\n const children = event.taken ? [...decision.pendingChildren] : [];\n if (event.taken) {\n decision.pendingChildren = [];\n }\n decision.branches.set(branchKey, {\n label: event.branchLabel,\n condition: event.condition,\n taken: event.taken,\n children,\n });\n }\n lastUpdatedAt = Date.now();\n }\n } else if (event.type === \"decision_end\") {\n // Match by decisionId so out-of-order end (e.g. outer ends before inner) is handled\n const index = decisionStack.findIndex((d) => d.id === event.decisionId);\n if (index !== -1) {\n const [decision] = decisionStack.splice(index, 1);\n // Temporarily trim stack to parent scope so addNode attaches to the right place\n const toRestore = decisionStack.splice(index);\n\n // Convert branches map to array; if no branch events were emitted, put pendingChildren in a single synthetic branch\n let branches: DecisionBranch[] = Array.from(decision.branches.values());\n if (branches.length === 0 && decision.pendingChildren.length > 0) {\n branches = [\n {\n label: \"default\",\n taken: true,\n children: [...decision.pendingChildren],\n },\n ];\n }\n\n // Infer branchTaken from branches if not provided in event\n const inferredBranchTaken = branches.find((b) => b.taken)?.label;\n\n const node: DecisionNode = {\n type: \"decision\",\n id: decision.id,\n name: decision.name,\n state: deriveState(\n branches.flatMap((b) => (b.taken ? b.children : []))\n ),\n startTs: decision.startTs,\n endTs: event.ts,\n durationMs: event.durationMs,\n condition: decision.condition,\n decisionValue: decision.decisionValue,\n branchTaken: event.branchTaken ?? inferredBranchTaken,\n branches,\n };\n addNode(node);\n decisionStack.push(...toRestore);\n lastUpdatedAt = Date.now();\n }\n }\n }\n\n /**\n * Derive the state of a parent node from its children.\n */\n function deriveState(children: FlowNode[]): StepState {\n if (children.length === 0) return \"success\";\n\n const hasError = children.some((c) => c.state === \"error\");\n if (hasError) return \"error\";\n\n const allSuccess = children.every(\n (c) => c.state === \"success\" || c.state === \"cached\"\n );\n if (allSuccess) return \"success\";\n\n const hasRunning = children.some((c) => c.state === \"running\");\n if (hasRunning) return \"running\";\n\n return \"pending\";\n }\n\n /**\n * Get the current nodes including any active (running) steps and streams.\n */\n function getCurrentNodes(): FlowNode[] {\n const nodes = [...currentNodes];\n\n // Add active steps as running nodes\n for (const [, active] of activeSteps) {\n nodes.push({\n type: \"step\",\n id: active.id,\n name: active.name,\n key: active.key,\n state: \"running\",\n startTs: active.startTs,\n ...(active.retryCount > 0 && { retryCount: active.retryCount }),\n ...(active.timedOut && { timedOut: true, timeoutMs: active.timeoutMs }),\n });\n }\n\n // Add active streams as running nodes\n for (const [, stream] of activeStreams) {\n nodes.push({\n type: \"stream\",\n id: stream.id,\n namespace: stream.namespace,\n state: \"running\",\n startTs: stream.startTs,\n writeCount: stream.writeCount,\n readCount: stream.readCount,\n finalPosition: stream.finalPosition,\n streamState: stream.streamState,\n backpressureOccurred: stream.backpressureOccurred,\n } satisfies StreamNode);\n }\n\n return nodes;\n }\n\n /**\n * Build and return the current IR state.\n */\n function getIR(): WorkflowIR {\n let children = getCurrentNodes();\n\n // Apply parallel detection if enabled\n if (detectParallel) {\n children = detectParallelGroups(children, parallelDetection);\n }\n\n const root: WorkflowNode = {\n type: \"workflow\",\n id: workflowId ?? defaultWorkflowId,\n workflowId: workflowId ?? defaultWorkflowId,\n state: workflowState,\n startTs: workflowStartTs,\n endTs: workflowEndTs,\n durationMs: workflowDurationMs,\n children,\n error: workflowError,\n };\n\n // Include hooks if any have been recorded\n const hasHooks =\n hookState.shouldRun !== undefined ||\n hookState.onBeforeStart !== undefined ||\n hookState.onAfterStep.size > 0;\n\n return {\n root,\n metadata: {\n createdAt,\n lastUpdatedAt,\n },\n ...(hasHooks && { hooks: hookState }),\n };\n }\n\n /**\n * Reset the builder state.\n */\n function reset(): void {\n workflowId = undefined;\n workflowStartTs = undefined;\n workflowEndTs = undefined;\n workflowState = \"pending\";\n workflowError = undefined;\n workflowDurationMs = undefined;\n activeSteps.clear();\n scopeStack.length = 0;\n decisionStack.length = 0;\n activeStreams.clear();\n currentNodes = [];\n createdAt = Date.now();\n lastUpdatedAt = createdAt;\n // Clear hooks\n hookState = {\n onAfterStep: new Map(),\n };\n preStartHookWorkflowId = undefined;\n // Clear snapshots\n snapshots.length = 0;\n eventIndex = 0;\n }\n\n /**\n * Get all recorded snapshots.\n */\n function getSnapshots(): IRSnapshot[] {\n return [...snapshots];\n }\n\n /**\n * Get a snapshot at a specific index.\n */\n function getSnapshotAt(index: number): IRSnapshot | undefined {\n return snapshots[index];\n }\n\n /**\n * Get the IR state at a specific snapshot index.\n */\n function getIRAt(index: number): WorkflowIR | undefined {\n return snapshots[index]?.ir;\n }\n\n /**\n * Clear all recorded snapshots.\n */\n function clearSnapshots(): void {\n snapshots.length = 0;\n eventIndex = 0;\n }\n\n return {\n handleEvent,\n handleScopeEvent,\n handleDecisionEvent,\n getIR,\n reset,\n // Snapshot methods for time-travel\n getSnapshots,\n getSnapshotAt,\n getIRAt,\n clearSnapshots,\n /** Check if there are active (running) steps */\n get hasActiveSteps() {\n return activeSteps.size > 0;\n },\n /** Get the current workflow state */\n get state() {\n return workflowState;\n },\n /** Get the number of recorded snapshots */\n get snapshotCount() {\n return snapshots.length;\n },\n /** Check if snapshot recording is enabled */\n get snapshotsEnabled() {\n return enableSnapshots;\n },\n /** Enable or disable snapshot recording (e.g. for time-travel stop/start) */\n setSnapshotsEnabled(enabled: boolean): void {\n enableSnapshots = enabled;\n },\n };\n}\n\n/**\n * Type for the IR builder instance.\n */\nexport type IRBuilder = ReturnType<typeof createIRBuilder>;\n","/**\n * Slack Adapter\n *\n * Platform-specific adapter for Slack.\n * Handles only Slack-specific message formatting and API calls.\n */\n\nimport { ok, err, type Result, type AsyncResult } from \"awaitly\";\nimport type { NotifierAdapter, NotifierContext } from \"../adapter\";\nimport type { WorkflowIR } from \"../../types\";\nimport type { WorkflowStatus } from \"../types\";\n\n/**\n * Error types for Slack adapter operations.\n */\nexport type SlackError = \"CLIENT_LOAD_FAILED\" | \"POST_FAILED\" | \"UPDATE_FAILED\";\n\n/**\n * Options for Slack adapter.\n */\nexport interface SlackAdapterOptions {\n /** Slack Bot OAuth token (xoxb-...) */\n token: string;\n /** Channel ID or name to post to */\n channel: string;\n /** Bot username to display (optional) */\n username?: string;\n /** Bot icon emoji (optional, e.g., \":robot_face:\") */\n iconEmoji?: string;\n /** Bot icon URL (optional) */\n iconUrl?: string;\n}\n\n/**\n * Slack block kit message structure.\n */\ninterface SlackMessage {\n channel: string;\n text: string;\n blocks?: SlackBlock[];\n username?: string;\n icon_emoji?: string;\n icon_url?: string;\n ts?: string; // For updates\n}\n\n/**\n * Slack block types.\n */\ntype SlackBlock =\n | { type: \"header\"; text: { type: \"plain_text\"; text: string } }\n | {\n type: \"section\";\n text: { type: \"mrkdwn\"; text: string };\n accessory?: SlackAccessory;\n }\n | { type: \"image\"; image_url: string; alt_text: string }\n | { type: \"context\"; elements: Array<{ type: \"mrkdwn\"; text: string }> }\n | { type: \"divider\" };\n\n/**\n * Slack accessory types.\n */\ninterface SlackAccessory {\n type: \"image\";\n image_url: string;\n alt_text: string;\n}\n\n/**\n * Status emojis for Slack.\n */\nconst STATUS_EMOJIS: Record<WorkflowStatus | \"running\", string> = {\n running: \":arrows_counterclockwise:\",\n completed: \":white_check_mark:\",\n failed: \":x:\",\n cancelled: \":stop_sign:\",\n};\n\n/**\n * Minimal Slack Web API interface.\n * This allows us to work without requiring the full @slack/web-api package.\n */\ninterface SlackWebApi {\n chat: {\n postMessage(\n args: SlackMessage\n ): Promise<{ ok: boolean; ts?: string; error?: string }>;\n update(\n args: SlackMessage & { ts: string }\n ): Promise<{ ok: boolean; error?: string }>;\n };\n}\n\n/**\n * Dependencies for Slack adapter (for testing).\n */\nexport interface SlackAdapterDeps {\n client?: SlackWebApi;\n}\n\n/**\n * Create a Slack adapter.\n *\n * @param options - Slack adapter options\n * @param deps - Optional dependencies (for testing)\n * @returns A NotifierAdapter for Slack\n */\nexport function createSlackAdapter(\n options: SlackAdapterOptions,\n deps?: SlackAdapterDeps\n): NotifierAdapter<string> {\n const { token, channel, username, iconEmoji, iconUrl } = options;\n\n // Lazy-load Slack client\n let client: SlackWebApi | undefined = deps?.client;\n\n async function getClient(): AsyncResult<SlackWebApi, SlackError> {\n if (client) return ok(client);\n\n try {\n // Dynamic import to avoid bundling @slack/web-api when not used\n const { WebClient } = await import(\"@slack/web-api\");\n client = new WebClient(token) as unknown as SlackWebApi;\n return ok(client);\n } catch {\n return err(\"CLIENT_LOAD_FAILED\");\n }\n }\n\n // Store the title for use in sendNew/sendUpdate\n let currentTitle: string = \"Workflow\";\n\n return {\n name: \"Slack\",\n\n buildMessage(\n {\n ir,\n title,\n status,\n }: { ir: WorkflowIR; title: string; status: WorkflowStatus | \"running\" },\n ctx: NotifierContext\n ): SlackMessage {\n // Store title for use in API calls\n currentTitle = title;\n\n const emoji = STATUS_EMOJIS[status];\n const blocks: SlackBlock[] = [\n {\n type: \"header\",\n text: { type: \"plain_text\", text: `${emoji} ${title}` },\n },\n {\n type: \"section\",\n text: {\n type: \"mrkdwn\",\n text: `*Steps:* ${ctx.countSteps(ir)} | *Duration:* ${ctx.formatDuration(ir)} | *Status:* ${status}`,\n },\n },\n {\n type: \"image\",\n image_url: ctx.getDiagramUrl(ir),\n alt_text: `Workflow diagram: ${title}`,\n },\n {\n type: \"context\",\n elements: [\n {\n type: \"mrkdwn\",\n text: `Updated: <!date^${Math.floor(Date.now() / 1000)}^{date_short_pretty} at {time}|${new Date().toISOString()}>`,\n },\n ],\n },\n ];\n\n return {\n channel,\n text: title,\n blocks,\n username,\n icon_emoji: iconEmoji,\n icon_url: iconUrl,\n };\n },\n\n async sendNew(message: unknown): Promise<string | undefined> {\n const clientResult = await getClient();\n if (!clientResult.ok) {\n throw new Error(\"Slack client failed to load\");\n }\n const slackClient = clientResult.value;\n const slackMessage = message as SlackMessage;\n\n const result = await slackClient.chat.postMessage(slackMessage);\n if (!result.ok) {\n throw new Error(`Slack post failed: ${result.error}`);\n }\n return result.ts;\n },\n\n async sendUpdate(messageId: string, message: unknown): Promise<void> {\n const clientResult = await getClient();\n if (!clientResult.ok) {\n throw new Error(\"Slack client failed to load\");\n }\n const slackClient = clientResult.value;\n const slackMessage = message as SlackMessage;\n\n const result = await slackClient.chat.update({\n ...slackMessage,\n ts: messageId,\n });\n if (!result.ok) {\n throw new Error(`Slack update failed: ${result.error}`);\n }\n },\n };\n}\n"],"mappings":"0uBAmEAA,GAAA,cAAAC,GAYAD,GAAA,yBAAAE,GAeAF,GAAA,sBAAAG,GAsBAH,GAAA,wBAAAI,GAaAJ,GAAA,0BAAAK,GAjHA,IAAYC,IAAZ,SAAYA,EAAS,CAEnBA,EAAA,aAAA,6BACAA,EAAA,UAAA,0BACAA,EAAA,cAAA,8BACAA,EAAA,iBAAA,kCAGAA,EAAA,gCAAA,8CACAA,EAAA,4BAAA,+CACF,GAVYA,KAASN,GAAA,UAATM,GAAS,CAAA,EAAA,EAmDrB,SAAgBL,GAAcM,EAAcC,EAAe,CAEzD,IAAMC,EAAaF,EACnB,OAAAE,EAAW,KAAOD,EACXC,CACT,CAOA,SAAgBP,GAAyBQ,EAAiBC,EAAuB,CAC/E,IAAMJ,EAAQN,GACZ,IAAI,MAAM,6BAA6BS,EAAS,OAAO,EAAE,EACzDJ,GAAU,YAAY,EAExB,OAAIK,IACFJ,EAAM,SAAWG,GAEZH,CACT,CAMA,SAAgBJ,GAAsBS,EAAuB,CAC3D,IAAML,EAAQN,GACZ,IAAI,MAAM,iDAAiDW,EAAS,MAAM,EAAE,EAC5EN,GAAU,SAAS,EAErBC,EAAM,WAAaK,EAAS,OAC5BL,EAAM,cAAgBK,EAAS,WAC/B,IAAMC,EAAyC,CAAA,EAC/C,QAAWC,KAAK,OAAO,KAAKF,EAAS,OAAO,EACtCE,GAAKF,EAAS,QAAQE,CAAC,IACzBD,EAAeC,CAAC,EAAIF,EAAS,QAAQE,CAAC,GAG1C,OAAAP,EAAM,QAAUM,EAChBN,EAAM,KAAOK,EAAS,KACfL,CACT,CAMA,SAAgBH,GAAwBW,EAA4C,CAClF,IAAMR,EAAQN,GACZ,IAAI,MAAM,0BAA0Bc,EAAO,KAAK,EAAE,EAClDT,GAAU,aAAa,EAEzB,OAAAC,EAAM,KAAOQ,EACNR,CACT,CAMA,SAAgBF,GAA0BW,EAAgB,CACxD,IAAMT,EAAQN,GACZ,IAAI,MAAM,gEAAgEe,CAAQ,UAAU,EAC5FV,GAAU,gBAAgB,EAE5B,OAAAC,EAAM,WAAaS,EACZT,CACT,ICxIA,IAAAU,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SACE,KAAQ,iBACR,QAAW,SACX,YAAe,0DACf,OAAU,0BACV,QAAW,MACX,SAAY,CACV,QACA,UACA,MACA,SACA,OACA,MACA,QACA,gBACA,YACF,EACA,KAAQ,gBACR,MAAS,oBACT,MAAS,CACP,WACF,EACA,QAAW,CACT,KAAQ,QACR,IAAO,UACT,EACA,WAAc,0BACd,SAAY,uDACZ,cAAiB,CACf,OAAU,QACZ,EACA,KAAQ,CACN,IAAO,mDACT,EACA,QAAW,CACT,QAAW,gBACX,MAAS,6BACT,cAAe,+BACf,KAAQ,+CACR,KAAQ,6BACR,WAAY,qCACZ,MAAS,2DACT,KAAQ,sFACR,mBAAoB,iJACpB,sBAAuB,+DACvB,YAAa,+DACb,aAAc,MACd,MAAS,2DACX,EACA,aAAgB,CACd,gBAAiB,SACjB,eAAgB,UAChB,cAAe,WACf,eAAgB,SAChB,MAAS,UACT,cAAiB,SACjB,YAAa,SACb,cAAe,QACf,YAAa,KACb,UAAW,KACX,UAAW,KACX,MAAS,SACX,EACA,gBAAmB,CACjB,iBAAkB,SAClB,wBAAyB,KACzB,gBAAiB,SACjB,cAAe,KACf,eAAgB,MAChB,eAAgB,MAChB,OAAU,KACV,GAAM,UACN,KAAQ,KACR,MAAS,MACT,uBAAwB,SACxB,wBAAyB,SACzB,KAAQ,MACR,IAAO,SACP,MAAS,MACT,qBAAsB,UACtB,UAAW,MACX,IAAO,UACP,QAAW,UACX,0BAA2B,SAC3B,WAAc,OAChB,EACA,IAAO,CACL,UAAa,YACf,CACF,q4BC3DAC,GAAA,eAAAC,GAOAD,GAAA,aAAAE,GArCA,IAAAC,GAAAC,GAAA,QAAA,IAAA,CAAA,EACAC,GAAA,QAAA,MAAA,EAEMC,GAAc,KAKpB,SAASC,GAAeC,EAAS,CAC/B,OAAOA,EAAE,QAAQ,IAAK,GAAG,CAC3B,CAQA,IAAMC,GACJ,GAAGF,GAAeD,GAAY,IAAI,CAAC,IAAIA,GAAY,OAAO,OACvDD,GAAA,UAAS,QAAQ,KAAK,CAAC,IAAI,QAAQ,QAAQ,QAAQ,IAAK,EAAE,CAAC,IAC3DF,GAAG,SAAQ,CAAE,IAAIA,GAAG,QAAO,CAAE,GAE5BO,GAAyC,CAAA,EAO/C,SAAgBT,GAAe,CAAE,KAAAU,EAAM,QAAAC,CAAO,EAAqC,CACjFF,GAAYH,GAAeI,CAAI,CAAC,EAAIC,CACtC,CAKA,SAAgBV,IAAY,CAC1B,IAAMW,EAAgB,OAAO,QAAQH,EAAW,EAC7C,IAAI,CAAC,CAACC,EAAMC,CAAO,IAAM,GAAGD,CAAI,IAAIC,CAAO,EAAE,EAC7C,KAAK,GAAG,EAEX,OAAQC,EAAc,OAAS,EAAI,GAAGA,CAAa,IAAM,IAAMJ,EACjE,qHCtCA,IAAYK,IAAZ,SAAYA,EAAQ,CAClBA,EAAA,MAAA,QACAA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,MAAA,OACF,GALYA,GAAAC,GAAA,WAAAA,GAAA,SAAQ,CAAA,EAAA,EA8DpB,IAAaC,GAAb,MAAaC,CAAa,CAsBxB,aAAA,CACE,KAAK,MAAQH,GAAS,KACtB,KAAK,KAAO,EACd,CAEO,UAAQ,CACb,OAAO,KAAK,KACd,CAKO,SAASI,EAAe,CAC7B,KAAK,MAAQA,CACf,CAKO,QAAQC,EAAY,CACzB,KAAK,KAAOA,CACd,CAMO,SAASC,EAAU,CACpBH,EAAc,oBAAoBH,GAAS,MAAO,KAAK,KAAK,GAC9D,QAAQ,MAAMG,EAAc,OAAO,IAAIH,GAAS,KAAK,EAAG,KAAK,KAAM,GAAGM,CAAG,CAE7E,CAMO,QAAQA,EAAU,CACnBH,EAAc,oBAAoBH,GAAS,KAAM,KAAK,KAAK,GAC7D,QAAQ,KAAKG,EAAc,OAAO,IAAIH,GAAS,IAAI,EAAG,KAAK,KAAM,GAAGM,CAAG,CAE3E,CAMO,QAAQA,EAAU,CACnBH,EAAc,oBAAoBH,GAAS,KAAM,KAAK,KAAK,GAC7D,QAAQ,KAAKG,EAAc,OAAO,IAAIH,GAAS,IAAI,EAAG,KAAK,KAAM,GAAGM,CAAG,CAE3E,CAMO,SAASA,EAAU,CACpBH,EAAc,oBAAoBH,GAAS,MAAO,KAAK,KAAK,GAC9D,QAAQ,MAAMG,EAAc,OAAO,IAAIH,GAAS,KAAK,EAAG,KAAK,KAAM,GAAGM,CAAG,CAE7E,CAKQ,OAAO,oBAAoBC,EAAaC,EAAW,CACzD,OAAOL,EAAc,SAASI,CAAC,GAAKJ,EAAc,SAASK,CAAC,CAC9D,GA1FFP,GAAA,cAAAC,GAQiBA,GAAA,QAAiC,IAAK,CAEnD,IAAMO,EADU,OAAO,QAAQT,EAAQ,EACnB,IAAI,CAAC,CAACU,EAAKC,CAAK,IAAM,CAACA,EAAO,IAAID,CAAG,IAAI,CAAuB,EACpF,OAAO,IAAI,IAAID,CAAG,CACpB,GAAE,EAGaP,GAAA,SAA0C,CACvD,CAACF,GAAS,KAAK,EAAG,IAClB,CAACA,GAAS,IAAI,EAAG,IACjB,CAACA,GAAS,IAAI,EAAG,IACjB,CAACA,GAAS,KAAK,EAAG,uGC7EtBY,GAAA,UAAAC,GATA,IAAAC,GAAA,KAEAC,GAAA,KAAiB,OAAA,eAAAH,GAAA,WAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAG,GAAA,QAAQ,CAAA,CAAA,EAEzB,IAAIC,GAAgB,EAKpB,SAAgBH,GAAUI,EAAcC,EAAiBC,EAAuB,CAE9E,IAAMC,EAAaJ,GACnBA,IAAiB,EAGjB,IAAMK,EACAF,IAAmB,OACdA,EAEF,IAAIL,GAAA,cAEb,OAAAO,EAAO,QAAQ,WAAWJ,CAAI,IAAIG,CAAU,EAAE,EAC1CF,IAAU,QACZG,EAAO,SAASH,CAAK,EAGhBG,CACT,0KCfaC,GAAA,+BAA+C,CAC1D,QAAS,GACT,OAAQ,QACR,UAAW,IAMAA,GAAA,yBAAyC,CACpD,QAAS,EACT,OAAQ,MAMGA,GAAA,iBAAiC,CAC5C,WAAY,EACZ,WAAY,GAGd,IAAMC,GAAW,CACf,+BAAAD,GAAA,+BACA,yBAAAA,GAAA,yBACA,iBAAAA,GAAA,kBAGFA,GAAA,QAAeC,KCxCf,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAS,QAAQ,QAAQ,EAAE,OAC3BC,GAAO,QAAQ,MAAM,EAEzBF,GAAO,QAAUG,GACjB,SAASA,IAAgB,CACvB,KAAK,OAAS,KACd,KAAK,SAAW,EAChB,KAAK,YAAc,KAAO,KAC1B,KAAK,YAAc,GAEnB,KAAK,qBAAuB,GAC5B,KAAK,UAAY,GACjB,KAAK,gBAAkB,CAAC,CAC1B,CACAD,GAAK,SAASC,GAAeF,EAAM,EAEnCE,GAAc,OAAS,SAASC,EAAQC,EAAS,CAC/C,IAAIC,EAAgB,IAAI,KAExBD,EAAUA,GAAW,CAAC,EACtB,QAASE,KAAUF,EACjBC,EAAcC,CAAM,EAAIF,EAAQE,CAAM,EAGxCD,EAAc,OAASF,EAEvB,IAAII,EAAWJ,EAAO,KACtB,OAAAA,EAAO,KAAO,UAAW,CACvB,OAAAE,EAAc,YAAY,SAAS,EAC5BE,EAAS,MAAMJ,EAAQ,SAAS,CACzC,EAEAA,EAAO,GAAG,QAAS,UAAW,CAAC,CAAC,EAC5BE,EAAc,aAChBF,EAAO,MAAM,EAGRE,CACT,EAEA,OAAO,eAAeH,GAAc,UAAW,WAAY,CACzD,aAAc,GACd,WAAY,GACZ,IAAK,UAAW,CACd,OAAO,KAAK,OAAO,QACrB,CACF,CAAC,EAEDA,GAAc,UAAU,YAAc,UAAW,CAC/C,OAAO,KAAK,OAAO,YAAY,MAAM,KAAK,OAAQ,SAAS,CAC7D,EAEAA,GAAc,UAAU,OAAS,UAAW,CACrC,KAAK,WACR,KAAK,QAAQ,EAGf,KAAK,OAAO,OAAO,CACrB,EAEAA,GAAc,UAAU,MAAQ,UAAW,CACzC,KAAK,OAAO,MAAM,CACpB,EAEAA,GAAc,UAAU,QAAU,UAAW,CAC3C,KAAK,UAAY,GAEjB,KAAK,gBAAgB,QAAQ,SAASM,EAAM,CAC1C,KAAK,KAAK,MAAM,KAAMA,CAAI,CAC5B,EAAE,KAAK,IAAI,CAAC,EACZ,KAAK,gBAAkB,CAAC,CAC1B,EAEAN,GAAc,UAAU,KAAO,UAAW,CACxC,IAAIO,EAAIT,GAAO,UAAU,KAAK,MAAM,KAAM,SAAS,EACnD,YAAK,OAAO,EACLS,CACT,EAEAP,GAAc,UAAU,YAAc,SAASM,EAAM,CACnD,GAAI,KAAK,UAAW,CAClB,KAAK,KAAK,MAAM,KAAMA,CAAI,EAC1B,MACF,CAEIA,EAAK,CAAC,IAAM,SACd,KAAK,UAAYA,EAAK,CAAC,EAAE,OACzB,KAAK,4BAA4B,GAGnC,KAAK,gBAAgB,KAAKA,CAAI,CAChC,EAEAN,GAAc,UAAU,4BAA8B,UAAW,CAC/D,GAAI,MAAK,sBAIL,OAAK,UAAY,KAAK,aAI1B,MAAK,qBAAuB,GAC5B,IAAIQ,EACF,gCAAkC,KAAK,YAAc,mBACvD,KAAK,KAAK,QAAS,IAAI,MAAMA,CAAO,CAAC,EACvC,IC1GA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAO,QAAQ,MAAM,EACrBC,GAAS,QAAQ,QAAQ,EAAE,OAC3BC,GAAgB,KAEpBH,GAAO,QAAUI,EACjB,SAASA,GAAiB,CACxB,KAAK,SAAW,GAChB,KAAK,SAAW,GAChB,KAAK,SAAW,EAChB,KAAK,YAAc,EAAI,KAAO,KAC9B,KAAK,aAAe,GAEpB,KAAK,UAAY,GACjB,KAAK,SAAW,CAAC,EACjB,KAAK,eAAiB,KACtB,KAAK,YAAc,GACnB,KAAK,aAAe,EACtB,CACAH,GAAK,SAASG,EAAgBF,EAAM,EAEpCE,EAAe,OAAS,SAASC,EAAS,CACxC,IAAIC,EAAiB,IAAI,KAEzBD,EAAUA,GAAW,CAAC,EACtB,QAASE,KAAUF,EACjBC,EAAeC,CAAM,EAAIF,EAAQE,CAAM,EAGzC,OAAOD,CACT,EAEAF,EAAe,aAAe,SAASI,EAAQ,CAC7C,OAAQ,OAAOA,GAAW,YACpB,OAAOA,GAAW,UAClB,OAAOA,GAAW,WAClB,OAAOA,GAAW,UAClB,CAAC,OAAO,SAASA,CAAM,CAC/B,EAEAJ,EAAe,UAAU,OAAS,SAASI,EAAQ,CACjD,IAAIC,EAAeL,EAAe,aAAaI,CAAM,EAErD,GAAIC,EAAc,CAChB,GAAI,EAAED,aAAkBL,IAAgB,CACtC,IAAIO,EAAYP,GAAc,OAAOK,EAAQ,CAC3C,YAAa,IACb,YAAa,KAAK,YACpB,CAAC,EACDA,EAAO,GAAG,OAAQ,KAAK,eAAe,KAAK,IAAI,CAAC,EAChDA,EAASE,CACX,CAEA,KAAK,cAAcF,CAAM,EAErB,KAAK,cACPA,EAAO,MAAM,CAEjB,CAEA,YAAK,SAAS,KAAKA,CAAM,EAClB,IACT,EAEAJ,EAAe,UAAU,KAAO,SAASO,EAAMN,EAAS,CACtD,OAAAH,GAAO,UAAU,KAAK,KAAK,KAAMS,EAAMN,CAAO,EAC9C,KAAK,OAAO,EACLM,CACT,EAEAP,EAAe,UAAU,SAAW,UAAW,CAG7C,GAFA,KAAK,eAAiB,KAElB,KAAK,YAAa,CACpB,KAAK,aAAe,GACpB,MACF,CAEA,KAAK,YAAc,GACnB,GAAI,CACF,GACE,KAAK,aAAe,GACpB,KAAK,aAAa,QACX,KAAK,aAChB,QAAE,CACA,KAAK,YAAc,EACrB,CACF,EAEAA,EAAe,UAAU,aAAe,UAAW,CACjD,IAAII,EAAS,KAAK,SAAS,MAAM,EAGjC,GAAI,OAAOA,EAAU,IAAa,CAChC,KAAK,IAAI,EACT,MACF,CAEA,GAAI,OAAOA,GAAW,WAAY,CAChC,KAAK,UAAUA,CAAM,EACrB,MACF,CAEA,IAAII,EAAYJ,EAChBI,EAAU,SAASJ,EAAQ,CACzB,IAAIC,EAAeL,EAAe,aAAaI,CAAM,EACjDC,IACFD,EAAO,GAAG,OAAQ,KAAK,eAAe,KAAK,IAAI,CAAC,EAChD,KAAK,cAAcA,CAAM,GAG3B,KAAK,UAAUA,CAAM,CACvB,EAAE,KAAK,IAAI,CAAC,CACd,EAEAJ,EAAe,UAAU,UAAY,SAASI,EAAQ,CACpD,KAAK,eAAiBA,EAEtB,IAAIC,EAAeL,EAAe,aAAaI,CAAM,EACrD,GAAIC,EAAc,CAChBD,EAAO,GAAG,MAAO,KAAK,SAAS,KAAK,IAAI,CAAC,EACzCA,EAAO,KAAK,KAAM,CAAC,IAAK,EAAK,CAAC,EAC9B,MACF,CAEA,IAAIK,EAAQL,EACZ,KAAK,MAAMK,CAAK,EAChB,KAAK,SAAS,CAChB,EAEAT,EAAe,UAAU,cAAgB,SAASI,EAAQ,CACxD,IAAIM,EAAO,KACXN,EAAO,GAAG,QAAS,SAASO,EAAK,CAC/BD,EAAK,WAAWC,CAAG,CACrB,CAAC,CACH,EAEAX,EAAe,UAAU,MAAQ,SAASY,EAAM,CAC9C,KAAK,KAAK,OAAQA,CAAI,CACxB,EAEAZ,EAAe,UAAU,MAAQ,UAAW,CACrC,KAAK,eAIP,KAAK,cAAgB,KAAK,gBAAkB,OAAO,KAAK,eAAe,OAAU,YAAY,KAAK,eAAe,MAAM,EAC1H,KAAK,KAAK,OAAO,EACnB,EAEAA,EAAe,UAAU,OAAS,UAAW,CACtC,KAAK,YACR,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,SAAS,GAGb,KAAK,cAAgB,KAAK,gBAAkB,OAAO,KAAK,eAAe,QAAW,YAAY,KAAK,eAAe,OAAO,EAC5H,KAAK,KAAK,QAAQ,CACpB,EAEAA,EAAe,UAAU,IAAM,UAAW,CACxC,KAAK,OAAO,EACZ,KAAK,KAAK,KAAK,CACjB,EAEAA,EAAe,UAAU,QAAU,UAAW,CAC5C,KAAK,OAAO,EACZ,KAAK,KAAK,OAAO,CACnB,EAEAA,EAAe,UAAU,OAAS,UAAW,CAC3C,KAAK,SAAW,GAChB,KAAK,SAAW,CAAC,EACjB,KAAK,eAAiB,IACxB,EAEAA,EAAe,UAAU,eAAiB,UAAW,CAEnD,GADA,KAAK,gBAAgB,EACjB,OAAK,UAAY,KAAK,aAI1B,KAAIa,EACF,gCAAkC,KAAK,YAAc,mBACvD,KAAK,WAAW,IAAI,MAAMA,CAAO,CAAC,EACpC,EAEAb,EAAe,UAAU,gBAAkB,UAAW,CACpD,KAAK,SAAW,EAEhB,IAAIU,EAAO,KACX,KAAK,SAAS,QAAQ,SAASN,EAAQ,CAChCA,EAAO,WAIZM,EAAK,UAAYN,EAAO,SAC1B,CAAC,EAEG,KAAK,gBAAkB,KAAK,eAAe,WAC7C,KAAK,UAAY,KAAK,eAAe,SAEzC,EAEAJ,EAAe,UAAU,WAAa,SAASW,EAAK,CAClD,KAAK,OAAO,EACZ,KAAK,KAAK,QAASA,CAAG,CACxB,IC/MA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAA,SACE,uCAAwC,CACtC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,aAAa,CAC9B,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,mBAAoB,CAClB,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,mBAAoB,CAClB,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,UAAU,CAC3B,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,MAAM,CAC5B,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,mDAAoD,CAClD,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,WAAW,CAC5B,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,qCAAsC,CACpC,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,oBAAqB,CACnB,WAAc,CAAC,OAAO,CACxB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,CAC9B,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,KAAK,CAClC,EACA,qCAAsC,CACpC,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,yBAA0B,CACxB,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,KAAK,CAC3B,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,oBAAqB,CACnB,WAAc,CAAC,OAAO,CACxB,EACA,0BAA2B,CACzB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,aAAa,CAC9B,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,KAAK,IAAI,CAC/B,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,wDAAyD,CACvD,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,UAAU,CAC3B,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,qBAAsB,CACpB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,QAAW,UACb,EACA,6BAA8B,CAC5B,OAAU,OACV,QAAW,UACb,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,OAAO,QAAQ,MAAM,MAAM,OAAO,MAAM,SAAS,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAAQ,CAC7J,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,SAAS,UAAU,SAAS,QAAQ,CACrD,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,SAAS,CAC1B,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,MAAM,IAAI,CAChC,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,QAAW,OACb,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,wBAAyB,CACvB,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,OAAO,CAC9B,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,4CAA6C,CAC3C,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,kBAAmB,CACjB,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,WAAW,CAClC,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,mBAAoB,CAClB,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,qBAAsB,CACpB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,QACZ,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,qDAAsD,CACpD,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,kDAAmD,CACjD,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,sDAAuD,CACrD,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,qDAAsD,CACpD,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,uDAAwD,CACtD,OAAU,OACV,aAAgB,EAClB,EACA,oDAAqD,CACnD,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,mDAAoD,CAClD,OAAU,OACV,aAAgB,EAClB,EACA,kDAAmD,CACjD,OAAU,OACV,aAAgB,EAClB,EACA,wDAAyD,CACvD,OAAU,OACV,aAAgB,EAClB,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,4CAA6C,CAC3C,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,MAAM,OAAO,CAC9B,EACA,8DAA+D,CAC7D,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,yDAA0D,CACxD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sDAAuD,CACrD,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,SAAS,CAC1B,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAC9C,EACA,+CAAgD,CAC9C,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,mDAAoD,CAClD,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,gDAAiD,CAC/C,OAAU,MACZ,EACA,yDAA0D,CACxD,OAAU,MACZ,EACA,oDAAqD,CACnD,OAAU,MACZ,EACA,6DAA8D,CAC5D,OAAU,MACZ,EACA,mDAAoD,CAClD,OAAU,MACZ,EACA,4DAA6D,CAC3D,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,SAAS,CAC1B,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,MAAM,OAAO,MAAM,MAAM,CAC1C,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,qDAAsD,CACpD,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,wDAAyD,CACvD,OAAU,OACV,aAAgB,EAClB,EACA,yDAA0D,CACxD,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,2DAA4D,CAC1D,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,OAAO,UAAU,CAClC,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,QAAQ,QAAQ,MAAM,CAC5C,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,+CAAgD,CAC9C,OAAU,MACZ,EACA,kDAAmD,CACjD,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gDAAiD,CAC/C,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,kDAAmD,CACjD,OAAU,MACZ,EACA,2DAA4D,CAC1D,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,2CAA4C,CAC1C,aAAgB,GAChB,WAAc,CAAC,SAAS,CAC1B,EACA,0CAA2C,CACzC,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,UAAU,UAAU,CAC3C,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,sDAAuD,CACrD,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,sDAAuD,CACrD,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,+CAAgD,CAC9C,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,+CAAgD,CAC9C,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,qDAAsD,CACpD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0DAA2D,CACzD,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,SAAS,CAC1B,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gDAAiD,CAC/C,OAAU,MACZ,EACA,oDAAqD,CACnD,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,kDAAmD,CACjD,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,QACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CACpD,EACA,iDAAkD,CAChD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wDAAyD,CACvD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iDAAkD,CAChD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,oDAAqD,CACnD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,8BAA+B,CAC7B,OAAU,SACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iDAAkD,CAChD,OAAU,QACZ,EACA,gCAAiC,CAC/B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,KAAK,CAClC,EACA,sDAAuD,CACrD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6DAA8D,CAC5D,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sDAAuD,CACrD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,0DAA2D,CACzD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yDAA0D,CACxD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,SACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,4CAA6C,CAC3C,OAAU,MACZ,EACA,4CAA6C,CAC3C,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,mDAAoD,CAClD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,mDAAoD,CAClD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,+CAAgD,CAC9C,OAAU,OACV,WAAc,CAAC,QAAQ,CACzB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,8CAA+C,CAC7C,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,MACZ,EACA,8CAA+C,CAC7C,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oDAAqD,CACnD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8CAA+C,CAC7C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sDAAuD,CACrD,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uDAAwD,CACtD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2CAA4C,CAC1C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oDAAqD,CACnD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kDAAmD,CACjD,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,2DAA4D,CAC1D,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,0DAA2D,CACzD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iDAAkD,CAChD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mDAAoD,CAClD,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8CAA+C,CAC7C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,kDAAmD,CACjD,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,+DAAgE,CAC9D,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,6CAA8C,CAC5C,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,oDAAqD,CACnD,OAAU,MACZ,EACA,kDAAmD,CACjD,OAAU,OACV,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,uDAAwD,CACtD,OAAU,OACV,aAAgB,EAClB,EACA,2CAA4C,CAC1C,OAAU,OACV,aAAgB,EAClB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,oDAAqD,CACnD,OAAU,OACV,aAAgB,EAClB,EACA,wDAAyD,CACvD,OAAU,OACV,aAAgB,EAClB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,sEAAuE,CACrE,OAAU,OACV,aAAgB,EAClB,EACA,wEAAyE,CACvE,OAAU,OACV,aAAgB,EAClB,EACA,4DAA6D,CAC3D,OAAU,OACV,aAAgB,EAClB,EACA,oEAAqE,CACnE,OAAU,OACV,aAAgB,EAClB,EACA,0EAA2E,CACzE,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,0EAA2E,CACzE,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,2EAA4E,CAC1E,OAAU,OACV,aAAgB,EAClB,EACA,wEAAyE,CACvE,OAAU,OACV,aAAgB,EAClB,EACA,kFAAmF,CACjF,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,iFAAkF,CAChF,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,qFAAsF,CACpF,OAAU,OACV,aAAgB,EAClB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,qEAAsE,CACpE,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,yEAA0E,CACxE,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,yEAA0E,CACxE,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kFAAmF,CACjF,OAAU,OACV,aAAgB,EAClB,EACA,mFAAoF,CAClF,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,wEAAyE,CACvE,OAAU,OACV,aAAgB,EAClB,EACA,wEAAyE,CACvE,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iFAAkF,CAChF,OAAU,OACV,aAAgB,EAClB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,2EAA4E,CAC1E,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,uFAAwF,CACtF,OAAU,OACV,aAAgB,EAClB,EACA,oFAAqF,CACnF,OAAU,OACV,aAAgB,EAClB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,kFAAmF,CACjF,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,gFAAiF,CAC/E,OAAU,OACV,aAAgB,EAClB,EACA,oEAAqE,CACnE,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,6EAA8E,CAC5E,OAAU,OACV,aAAgB,EAClB,EACA,gFAAiF,CAC/E,OAAU,OACV,aAAgB,EAClB,EACA,yEAA0E,CACxE,OAAU,OACV,aAAgB,EAClB,EACA,wEAAyE,CACvE,OAAU,OACV,aAAgB,EAClB,EACA,mFAAoF,CAClF,OAAU,OACV,aAAgB,EAClB,EACA,uEAAwE,CACtE,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,gFAAiF,CAC/E,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,uFAAwF,CACtF,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,0DAA2D,CACzD,OAAU,OACV,aAAgB,EAClB,EACA,kEAAmE,CACjE,OAAU,OACV,aAAgB,EAClB,EACA,2DAA4D,CAC1D,OAAU,MACZ,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,0EAA2E,CACzE,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,uFAAwF,CACtF,OAAU,OACV,aAAgB,EAClB,EACA,mFAAoF,CAClF,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,+EAAgF,CAC9E,OAAU,OACV,aAAgB,EAClB,EACA,8EAA+E,CAC7E,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,0EAA2E,CACzE,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,mFAAoF,CAClF,OAAU,OACV,aAAgB,EAClB,EACA,iFAAkF,CAChF,OAAU,OACV,aAAgB,EAClB,EACA,6DAA8D,CAC5D,OAAU,OACV,aAAgB,EAClB,EACA,4EAA6E,CAC3E,OAAU,OACV,aAAgB,EAClB,EACA,2DAA4D,CAC1D,OAAU,OACV,aAAgB,EAClB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,CACnC,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+CAAgD,CAC9C,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CACpD,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,0CAA2C,CACzC,OAAU,OACV,aAAgB,EAClB,EACA,+CAAgD,CAC9C,OAAU,OACV,aAAgB,EAClB,EACA,qDAAsD,CACpD,OAAU,OACV,aAAgB,EAClB,EACA,uDAAwD,CACtD,OAAU,OACV,aAAgB,EAClB,EACA,gDAAiD,CAC/C,OAAU,OACV,aAAgB,EAClB,EACA,iDAAkD,CAChD,OAAU,OACV,aAAgB,EAClB,EACA,oDAAqD,CACnD,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,UAAU,CAC3B,EACA,mCAAoC,CAClC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,YAAY,CAC7B,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,mCAAoC,CAClC,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,4CAA6C,CAC3C,OAAU,MACZ,EACA,2CAA4C,CAC1C,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8CAA+C,CAC7C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6CAA8C,CAC5C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,EAClB,EACA,gCAAiC,CAC/B,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,SAAS,CAC1B,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,8CAA+C,CAC7C,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,kDAAmD,CACjD,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,CAC9B,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,SACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,6CAA8C,CAC5C,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2CAA4C,CAC1C,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wCAAyC,CACvC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0CAA2C,CACzC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,6BAA8B,CAC5B,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,QAAW,QACX,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,QAAW,QACX,aAAgB,EAClB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,OAAO,MAAM,KAAK,CACnC,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,wCAAyC,CACvC,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,UAAU,CAC3B,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,8CAA+C,CAC7C,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,EAClB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,OACV,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,QACX,WAAc,CAAC,OAAO,CACxB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,2BAA4B,CAC1B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,8CAA+C,CAC7C,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oDAAqD,CACnD,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,iCAAkC,CAChC,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,UAAU,CAC3B,EACA,8BAA+B,CAC7B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,QACZ,EACA,gCAAiC,CAC/B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,qBAAsB,CACpB,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,SAAS,CAC1B,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,MAAM,OAAO,CAC9B,EACA,qBAAsB,CACpB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAC9C,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,QACZ,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,CACtE,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,QACZ,EACA,gCAAiC,CAC/B,OAAU,QACZ,EACA,iCAAkC,CAChC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,QACZ,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,QACZ,EACA,gCAAiC,CAC/B,OAAU,QACZ,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,2BAA4B,CAC1B,OAAU,QACZ,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,UAAU,CAC3B,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,QAAQ,CACzB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,qBAAsB,CACpB,OAAU,QACZ,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,SACV,WAAc,CAAC,SAAS,CAC1B,EACA,8BAA+B,CAC7B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,WAAc,CAAC,SAAS,CAC1B,EACA,qCAAsC,CACpC,WAAc,CAAC,OAAO,CACxB,EACA,kCAAmC,CACjC,OAAU,QACV,WAAc,CAAC,SAAS,CAC1B,EACA,+BAAgC,CAC9B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,2BAA4B,CAC1B,aAAgB,EAClB,EACA,yBAA0B,CACxB,WAAc,CAAC,MAAM,CACvB,EACA,sBAAuB,CACrB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,6BAA8B,CAC5B,WAAc,CAAC,MAAM,CACvB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,yBAA0B,CACxB,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,wBAAyB,CACvB,aAAgB,EAClB,EACA,+BAAgC,CAC9B,OAAU,SACV,WAAc,CAAC,aAAa,CAC9B,EACA,4BAA6B,CAC3B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,KAAK,CAC9C,EACA,4BAA6B,CAC3B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,KAAK,CAClC,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,KAAK,CAC3B,EACA,oCAAqC,CACnC,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,QACV,WAAc,CAAC,KAAK,IAAI,CAC1B,EACA,sBAAuB,CACrB,OAAU,QACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,uBAAwB,CACtB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,mCAAoC,CAClC,OAAU,SACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,kCAAmC,CACjC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,gCAAiC,CAC/B,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,SAAS,CAC1B,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,QAAQ,CACzB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,MAAM,IAAI,CAC3B,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,WAAc,CAAC,UAAU,MAAM,CACjC,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wCAAyC,CACvC,aAAgB,GAChB,WAAc,CAAC,cAAc,CAC/B,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gCAAiC,CAC/B,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,4BAA6B,CAC3B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sCAAuC,CACrC,aAAgB,GAChB,WAAc,CAAC,QAAQ,CACzB,EACA,oCAAqC,CACnC,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,KAAK,CAClC,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,yBAA0B,CACxB,OAAU,SACV,WAAc,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,CACxD,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,0BAA2B,CACzB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uCAAwC,CACtC,OAAU,OACV,aAAgB,EAClB,EACA,4CAA6C,CAC3C,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,QAAQ,KAAK,CAC9B,EACA,8BAA+B,CAC7B,OAAU,SACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,MAAM,KAAK,CACxC,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,uBAAwB,CACtB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,qBAAsB,CACpB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,QAAQ,OAAO,KAAK,CAC5C,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,OACV,aAAgB,EAClB,EACA,6BAA8B,CAC5B,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,cAAe,CACb,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,KAAK,CAC3B,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,QACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,aAAgB,EAClB,EACA,WAAY,CACV,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,MAAM,OAAO,MAAM,KAAK,CACzC,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,OAAO,MAAM,MAAM,KAAK,CACtD,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,QACZ,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,MAAM,MAAM,CACzC,EACA,aAAc,CACZ,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,0BAA2B,CACzB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,4BAA6B,CAC3B,OAAU,OACV,WAAc,CAAC,WAAW,CAC5B,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,aAAgB,EAClB,EACA,sCAAuC,CACrC,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,iBAAkB,CAChB,aAAgB,EAClB,EACA,eAAgB,CACd,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,YAAa,CACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,SACV,WAAc,CAAC,MAAM,OAAO,MAAM,CACpC,EACA,cAAe,CACb,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,SACV,WAAc,CAAC,MAAM,IAAI,CAC3B,EACA,8BAA+B,CAC7B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,QACV,WAAc,CAAC,IAAI,CACrB,EACA,cAAe,CACb,OAAU,QACZ,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,QACZ,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,MACZ,EACA,WAAY,CACV,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,cAAe,CACb,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,KAAK,CACnC,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,cAAe,CACb,aAAgB,EAClB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,MAAM,OAAO,MAAM,MAAM,CAC1C,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,mBAAoB,CAClB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,SACV,WAAc,CAAC,KAAK,MAAM,MAAM,MAAM,KAAK,CAC7C,EACA,eAAgB,CACd,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,QACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,SACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,2BAA4B,CAC1B,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,aAAgB,EAClB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CACZ,0BACF,CACF,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,iCAAkC,CAChC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,0CAA2C,CACzC,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,OAAO,CACxB,EACA,eAAgB,CACd,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,OACV,aAAgB,EAClB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,EAClB,EACA,iBAAkB,CAChB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,oBAAqB,CACnB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,MAAM,CACpC,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,qBAAsB,CACpB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,QACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,OACV,aAAgB,EAClB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,oCAAqC,CACnC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,sCAAuC,CACrC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,mBAAoB,CAClB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,OAAO,OAAO,CAC/B,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,OAAO,OAAO,CAC/B,EACA,gBAAiB,CACf,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,wBAAyB,CACvB,OAAU,OACV,aAAgB,EAClB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,EAClB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,aAAgB,EAClB,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,aAAgB,EAClB,EACA,8BAA+B,CAC7B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,gCAAiC,CAC/B,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,WAAW,UAAU,CACtC,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,gBAAiB,CACf,aAAgB,EAClB,EACA,WAAY,CACV,aAAgB,EAClB,EACA,oBAAqB,CACnB,WAAc,CAAC,SAAS,WAAW,CACrC,EACA,WAAY,CACV,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,OAAO,CACrC,EACA,YAAa,CACX,WAAc,CAAC,MAAM,CACvB,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,EAClB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,WAAY,CACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,gBAAiB,CACf,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,WAAW,IAAI,CAChC,EACA,cAAe,CACb,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,MACZ,EACA,UAAW,CACT,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,IAAI,CACrB,EACA,kBAAmB,CACjB,OAAU,OACV,QAAW,OACb,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,KAAK,KAAK,CAClE,EACA,2BAA4B,CAC1B,OAAU,OACV,QAAW,OACb,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,cAAe,CACb,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,YAAa,CACX,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,cAAe,CACb,WAAc,CAAC,SAAS,MAAM,CAChC,EACA,YAAa,CACX,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,IAAI,KAAK,OAAO,MAAM,KAAK,IAAI,CAChD,EACA,cAAe,CACb,OAAU,OACV,QAAW,QACX,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,MAAM,CACpC,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,CACxB,EACA,aAAc,CACZ,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,sBAAuB,CACrB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,4BAA6B,CAC3B,OAAU,OACV,QAAW,OACb,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,qCAAsC,CACpC,OAAU,OACV,QAAW,OACb,EACA,+BAAgC,CAC9B,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,wCAAyC,CACvC,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,mCAAoC,CAClC,OAAU,OACV,QAAW,QACX,WAAc,CAAC,KAAK,CACtB,EACA,8BAA+B,CAC7B,OAAU,OACV,QAAW,OACb,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,mBAAoB,CAClB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yBAA0B,CACxB,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,WAAY,CACV,OAAU,OACV,QAAW,QACX,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,IAAI,KAAK,CAC1B,EACA,WAAY,CACV,OAAU,SACV,WAAc,CAAC,IAAI,KAAK,MAAM,MAAM,IAAI,KAAK,KAAK,CACpD,EACA,mBAAoB,CAClB,OAAU,QACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,IAAI,MAAM,MAAM,KAAK,CACtC,EACA,iBAAkB,CAChB,aAAgB,EAClB,EACA,6BAA8B,CAC5B,WAAc,CAAC,KAAK,CACtB,EACA,qBAAsB,CACpB,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,qBAAsB,CACpB,aAAgB,EAClB,EACA,aAAc,CACZ,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,SACV,WAAc,CAAC,IAAI,KAAK,CAC1B,EACA,oBAAqB,CACnB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,WAAc,CAAC,MAAM,CACvB,EACA,gBAAiB,CACf,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,mBAAoB,CAClB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,eAAgB,CACd,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,WAAY,CACV,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,YAAa,CACX,aAAgB,GAChB,WAAc,CAAC,OAAO,KAAK,CAC7B,EACA,iCAAkC,CAChC,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,cAAe,CACb,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,YAAa,CACX,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,cAAe,CACb,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,MAAM,CACvB,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,SACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,aAAc,CACZ,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,WAAc,CAAC,IAAI,CACrB,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,MAAM,CACpC,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,OAAO,MAAM,MAAM,MAAM,KAAK,CAC/C,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,WAAY,CACV,OAAU,MACZ,EACA,YAAa,CACX,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,gBAAiB,CACf,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,OACV,aAAgB,GAChB,WAAc,CAAC,KAAK,KAAK,CAC3B,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,kBAAmB,CACjB,OAAU,MACZ,EACA,eAAgB,CACd,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,iBAAkB,CAChB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,wBAAyB,CACvB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,qBAAsB,CACpB,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,uBAAwB,CACtB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,0BAA2B,CACzB,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,uCAAwC,CACtC,OAAU,MACZ,EACA,6BAA8B,CAC5B,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,2BAA4B,CAC1B,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,oBAAqB,CACnB,OAAU,OACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,mCAAoC,CAClC,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,yCAA0C,CACxC,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,4BAA6B,CAC3B,OAAU,MACZ,EACA,wBAAyB,CACvB,OAAU,MACZ,EACA,+BAAgC,CAC9B,OAAU,MACZ,EACA,kCAAmC,CACjC,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,yBAA0B,CACxB,OAAU,MACZ,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,qCAAsC,CACpC,OAAU,MACZ,EACA,qBAAsB,CACpB,OAAU,OACV,WAAc,CAAC,MAAM,MAAM,CAC7B,EACA,iBAAkB,CAChB,OAAU,OACV,WAAc,CAAC,KAAK,CACtB,EACA,uBAAwB,CACtB,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,YAAa,CACX,OAAU,MACZ,EACA,aAAc,CACZ,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,CACvB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,mBAAoB,CAClB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,MAAM,OAAO,KAAK,CACnC,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,MAAM,KAAK,CAC5B,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,gBAAiB,CACf,OAAU,SACV,WAAc,CAAC,IAAI,CACrB,EACA,iBAAkB,CAChB,OAAU,SACV,aAAgB,GAChB,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,iBAAkB,CAChB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,kBAAmB,CACjB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,oBAAqB,CACnB,OAAU,SACV,WAAc,CAAC,OAAO,CACxB,EACA,cAAe,CACb,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,0BAA2B,CACzB,OAAU,SACV,WAAc,CAAC,KAAK,CACtB,EACA,sBAAuB,CACrB,aAAgB,EAClB,EACA,oBAAqB,CACnB,aAAgB,EAClB,CACF,ICt0QA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAWAA,GAAO,QAAU,OCXjB,IAAAC,GAAAC,EAAAC,IAAA,cAcA,IAAIC,GAAK,KACLC,GAAU,QAAQ,MAAM,EAAE,QAO1BC,GAAsB,0BACtBC,GAAmB,WAOvBJ,GAAQ,QAAUK,GAClBL,GAAQ,SAAW,CAAE,OAAQK,EAAQ,EACrCL,GAAQ,YAAcM,GACtBN,GAAQ,UAAYO,GACpBP,GAAQ,WAAa,OAAO,OAAO,IAAI,EACvCA,GAAQ,OAASQ,GACjBR,GAAQ,MAAQ,OAAO,OAAO,IAAI,EAGlCS,GAAaT,GAAQ,WAAYA,GAAQ,KAAK,EAS9C,SAASK,GAASK,EAAM,CACtB,GAAI,CAACA,GAAQ,OAAOA,GAAS,SAC3B,MAAO,GAIT,IAAIC,EAAQR,GAAoB,KAAKO,CAAI,EACrCE,EAAOD,GAASV,GAAGU,EAAM,CAAC,EAAE,YAAY,CAAC,EAE7C,OAAIC,GAAQA,EAAK,QACRA,EAAK,QAIVD,GAASP,GAAiB,KAAKO,EAAM,CAAC,CAAC,EAClC,QAGF,EACT,CASA,SAASL,GAAaO,EAAK,CAEzB,GAAI,CAACA,GAAO,OAAOA,GAAQ,SACzB,MAAO,GAGT,IAAID,EAAOC,EAAI,QAAQ,GAAG,IAAM,GAC5Bb,GAAQ,OAAOa,CAAG,EAClBA,EAEJ,GAAI,CAACD,EACH,MAAO,GAIT,GAAIA,EAAK,QAAQ,SAAS,IAAM,GAAI,CAClC,IAAIP,EAAUL,GAAQ,QAAQY,CAAI,EAC9BP,IAASO,GAAQ,aAAeP,EAAQ,YAAY,EAC1D,CAEA,OAAOO,CACT,CASA,SAASL,GAAWG,EAAM,CACxB,GAAI,CAACA,GAAQ,OAAOA,GAAS,SAC3B,MAAO,GAIT,IAAIC,EAAQR,GAAoB,KAAKO,CAAI,EAGrCI,EAAOH,GAASX,GAAQ,WAAWW,EAAM,CAAC,EAAE,YAAY,CAAC,EAE7D,MAAI,CAACG,GAAQ,CAACA,EAAK,OACV,GAGFA,EAAK,CAAC,CACf,CASA,SAASN,GAAQO,EAAM,CACrB,GAAI,CAACA,GAAQ,OAAOA,GAAS,SAC3B,MAAO,GAIT,IAAIR,EAAYL,GAAQ,KAAOa,CAAI,EAChC,YAAY,EACZ,OAAO,CAAC,EAEX,OAAKR,GAIEP,GAAQ,MAAMO,CAAS,GAAK,EACrC,CAOA,SAASE,GAAcO,EAAYC,EAAO,CAExC,IAAIC,EAAa,CAAC,QAAS,SAAU,OAAW,MAAM,EAEtD,OAAO,KAAKjB,EAAE,EAAE,QAAQ,SAA0BS,EAAM,CACtD,IAAIE,EAAOX,GAAGS,CAAI,EACdI,EAAOF,EAAK,WAEhB,GAAI,GAACE,GAAQ,CAACA,EAAK,QAKnB,CAAAE,EAAWN,CAAI,EAAII,EAGnB,QAASK,EAAI,EAAGA,EAAIL,EAAK,OAAQK,IAAK,CACpC,IAAIZ,EAAYO,EAAKK,CAAC,EAEtB,GAAIF,EAAMV,CAAS,EAAG,CACpB,IAAIa,EAAOF,EAAW,QAAQjB,GAAGgB,EAAMV,CAAS,CAAC,EAAE,MAAM,EACrDc,EAAKH,EAAW,QAAQN,EAAK,MAAM,EAEvC,GAAIK,EAAMV,CAAS,IAAM,6BACtBa,EAAOC,GAAOD,IAASC,GAAMJ,EAAMV,CAAS,EAAE,OAAO,EAAG,EAAE,IAAM,gBAEjE,QAEJ,CAGAU,EAAMV,CAAS,EAAIG,CACrB,EACF,CAAC,CACH,IC3LA,IAAAY,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAAAA,GAAO,QAAUC,GAOjB,SAASA,GAAMC,EACf,CACE,IAAIC,EAAW,OAAO,cAAgB,WAClC,aAEA,OAAO,SAAW,UAAY,OAAO,QAAQ,UAAY,WACvD,QAAQ,SACR,KAGFA,EAEFA,EAASD,CAAE,EAIX,WAAWA,EAAI,CAAC,CAEpB,ICzBA,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAQ,KAGZD,GAAO,QAAUE,GASjB,SAASA,GAAMC,EACf,CACE,IAAIC,EAAU,GAGd,OAAAH,GAAM,UAAW,CAAEG,EAAU,EAAM,CAAC,EAE7B,SAAwBC,EAAKC,EACpC,CACMF,EAEFD,EAASE,EAAKC,CAAM,EAIpBL,GAAM,UACN,CACEE,EAASE,EAAKC,CAAM,CACtB,CAAC,CAEL,CACF,ICjCA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACAA,GAAO,QAAUC,GAOjB,SAASA,GAAMC,EACf,CACE,OAAO,KAAKA,EAAM,IAAI,EAAE,QAAQC,GAAM,KAAKD,CAAK,CAAC,EAGjDA,EAAM,KAAO,CAAC,CAChB,CAQA,SAASC,GAAMC,EACf,CACM,OAAO,KAAK,KAAKA,CAAG,GAAK,YAE3B,KAAK,KAAKA,CAAG,EAAE,CAEnB,IC5BA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAQ,KACRC,GAAQ,KAIZF,GAAO,QAAUG,GAUjB,SAASA,GAAQC,EAAMC,EAAUC,EAAOC,EACxC,CAEE,IAAIC,EAAMF,EAAM,UAAeA,EAAM,UAAaA,EAAM,KAAK,EAAIA,EAAM,MAEvEA,EAAM,KAAKE,CAAG,EAAIC,GAAOJ,EAAUG,EAAKJ,EAAKI,CAAG,EAAG,SAASE,EAAOC,EACnE,CAGQH,KAAOF,EAAM,OAMnB,OAAOA,EAAM,KAAKE,CAAG,EAEjBE,EAKFR,GAAMI,CAAK,EAIXA,EAAM,QAAQE,CAAG,EAAIG,EAIvBJ,EAASG,EAAOJ,EAAM,OAAO,EAC/B,CAAC,CACH,CAWA,SAASG,GAAOJ,EAAUG,EAAKI,EAAML,EACrC,CACE,IAAIM,EAGJ,OAAIR,EAAS,QAAU,EAErBQ,EAAUR,EAASO,EAAMX,GAAMM,EAAS,EAKxCM,EAAUR,EAASO,EAAMJ,EAAKP,GAAMM,EAAS,EAGxCM,CACT,IC1EA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACAA,GAAO,QAAUC,GAWjB,SAASA,GAAMC,EAAMC,EACrB,CACE,IAAIC,EAAc,CAAC,MAAM,QAAQF,CAAI,EACjCG,EACF,CACE,MAAW,EACX,UAAWD,GAAeD,EAAa,OAAO,KAAKD,CAAI,EAAI,KAC3D,KAAW,CAAC,EACZ,QAAWE,EAAc,CAAC,EAAI,CAAC,EAC/B,KAAWA,EAAc,OAAO,KAAKF,CAAI,EAAE,OAASA,EAAK,MAC3D,EAGF,OAAIC,GAIFE,EAAU,UAAU,KAAKD,EAAcD,EAAa,SAASG,EAAGC,EAChE,CACE,OAAOJ,EAAWD,EAAKI,CAAC,EAAGJ,EAAKK,CAAC,CAAC,CACpC,CAAC,EAGIF,CACT,ICpCA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAQ,KACRC,GAAQ,KAIZF,GAAO,QAAUG,GAQjB,SAASA,GAAWC,EACpB,CACO,OAAO,KAAK,KAAK,IAAI,EAAE,SAM5B,KAAK,MAAQ,KAAK,KAGlBH,GAAM,IAAI,EAGVC,GAAME,GAAU,KAAM,KAAK,OAAO,EACpC,IC5BA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAa,KACbC,GAAa,KACbC,GAAa,KAIjBH,GAAO,QAAUI,GAUjB,SAASA,GAASC,EAAMC,EAAUC,EAClC,CAGE,QAFIC,EAAQN,GAAUG,CAAI,EAEnBG,EAAM,OAASA,EAAM,WAAgBH,GAAM,QAEhDJ,GAAQI,EAAMC,EAAUE,EAAO,SAASC,EAAOC,EAC/C,CACE,GAAID,EACJ,CACEF,EAASE,EAAOC,CAAM,EACtB,MACF,CAGA,GAAI,OAAO,KAAKF,EAAM,IAAI,EAAE,SAAW,EACvC,CACED,EAAS,KAAMC,EAAM,OAAO,EAC5B,MACF,CACF,CAAC,EAEDA,EAAM,QAGR,OAAOL,GAAW,KAAKK,EAAOD,CAAQ,CACxC,IC1CA,IAAAI,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAa,KACbC,GAAa,KACbC,GAAa,KAIjBH,GAAO,QAAUI,GAEjBJ,GAAO,QAAQ,UAAaK,GAC5BL,GAAO,QAAQ,WAAaM,GAW5B,SAASF,GAAcG,EAAMC,EAAUC,EAAYC,EACnD,CACE,IAAIC,EAAQT,GAAUK,EAAME,CAAU,EAEtC,OAAAR,GAAQM,EAAMC,EAAUG,EAAO,SAASC,EAAgBC,EAAOC,EAC/D,CACE,GAAID,EACJ,CACEH,EAASG,EAAOC,CAAM,EACtB,MACF,CAKA,GAHAH,EAAM,QAGFA,EAAM,OAASA,EAAM,WAAgBJ,GAAM,OAC/C,CACEN,GAAQM,EAAMC,EAAUG,EAAOC,CAAe,EAC9C,MACF,CAGAF,EAAS,KAAMC,EAAM,OAAO,CAC9B,CAAC,EAEMR,GAAW,KAAKQ,EAAOD,CAAQ,CACxC,CAaA,SAASL,GAAUU,EAAGC,EACtB,CACE,OAAOD,EAAIC,EAAI,GAAKD,EAAIC,EAAI,EAAI,CAClC,CASA,SAASV,GAAWS,EAAGC,EACvB,CACE,MAAO,GAAKX,GAAUU,EAAGC,CAAC,CAC5B,IC1EA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAgB,KAGpBD,GAAO,QAAUE,GAUjB,SAASA,GAAOC,EAAMC,EAAUC,EAChC,CACE,OAAOJ,GAAcE,EAAMC,EAAU,KAAMC,CAAQ,CACrD,IChBA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAAAA,GAAO,QACP,CACE,SAAgB,KAChB,OAAgB,KAChB,cAAgB,IAClB,ICLA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,SCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,QCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,YCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,aCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,iBCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,cCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,YCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,WCHjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,MCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,QCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,MCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,MCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,MCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,KAAK,QCHtB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,OAAO,OAAS,SAAeC,EAAG,CAClD,OAAOA,IAAMA,CACd,ICLA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAS,KAGbD,GAAO,QAAU,SAAcE,EAAQ,CACtC,OAAID,GAAOC,CAAM,GAAKA,IAAW,EACzBA,EAEDA,EAAS,EAAI,GAAK,CAC1B,ICVA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,OAAO,2BCHxB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGA,IAAIC,GAAQ,KAEZ,GAAIA,GACH,GAAI,CACHA,GAAM,CAAC,EAAG,QAAQ,CACnB,MAAY,CAEXA,GAAQ,IACT,CAGDD,GAAO,QAAUC,KCdjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGA,IAAIC,GAAkB,OAAO,gBAAkB,GAC/C,GAAIA,GACH,GAAI,CACHA,GAAgB,CAAC,EAAG,IAAK,CAAE,MAAO,CAAE,CAAC,CACtC,MAAY,CAEXA,GAAkB,EACnB,CAGDD,GAAO,QAAUC,KCbjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIAA,GAAO,QAAU,UAAsB,CACtC,GAAI,OAAO,QAAW,YAAc,OAAO,OAAO,uBAA0B,WAAc,MAAO,GACjG,GAAI,OAAO,OAAO,UAAa,SAAY,MAAO,GAGlD,IAAIC,EAAM,CAAC,EACPC,EAAM,OAAO,MAAM,EACnBC,EAAS,OAAOD,CAAG,EAIvB,GAHI,OAAOA,GAAQ,UAEf,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,mBACxC,OAAO,UAAU,SAAS,KAAKC,CAAM,IAAM,kBAAqB,MAAO,GAU3E,IAAIC,EAAS,GACbH,EAAIC,CAAG,EAAIE,EACX,QAASC,KAAKJ,EAAO,MAAO,GAG5B,GAFI,OAAO,OAAO,MAAS,YAAc,OAAO,KAAKA,CAAG,EAAE,SAAW,GAEjE,OAAO,OAAO,qBAAwB,YAAc,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAAK,MAAO,GAE/G,IAAIK,EAAO,OAAO,sBAAsBL,CAAG,EAG3C,GAFIK,EAAK,SAAW,GAAKA,EAAK,CAAC,IAAMJ,GAEjC,CAAC,OAAO,UAAU,qBAAqB,KAAKD,EAAKC,CAAG,EAAK,MAAO,GAEpE,GAAI,OAAO,OAAO,0BAA6B,WAAY,CAE1D,IAAIK,EAAgD,OAAO,yBAAyBN,EAAKC,CAAG,EAC5F,GAAIK,EAAW,QAAUH,GAAUG,EAAW,aAAe,GAAQ,MAAO,EAC7E,CAEA,MAAO,EACR,IC5CA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAa,OAAO,OAAW,KAAe,OAC9CC,GAAgB,KAGpBF,GAAO,QAAU,UAA4B,CAI5C,OAHI,OAAOC,IAAe,YACtB,OAAO,QAAW,YAClB,OAAOA,GAAW,KAAK,GAAM,UAC7B,OAAO,OAAO,KAAK,GAAM,SAAmB,GAEzCC,GAAc,CACtB,ICbA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAW,OAAO,QAAY,KAAe,QAAQ,gBAAmB,OCH/E,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAU,KAGdD,GAAO,QAAUC,GAAQ,gBAAkB,OCL3C,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAIC,GAAgB,kDAChBC,GAAQ,OAAO,UAAU,SACzBC,GAAM,KAAK,IACXC,GAAW,oBAEXC,GAAW,SAAkBC,EAAGC,EAAG,CAGnC,QAFIC,EAAM,CAAC,EAEFC,EAAI,EAAGA,EAAIH,EAAE,OAAQG,GAAK,EAC/BD,EAAIC,CAAC,EAAIH,EAAEG,CAAC,EAEhB,QAASC,EAAI,EAAGA,EAAIH,EAAE,OAAQG,GAAK,EAC/BF,EAAIE,EAAIJ,EAAE,MAAM,EAAIC,EAAEG,CAAC,EAG3B,OAAOF,CACX,EAEIG,GAAQ,SAAeC,EAASC,EAAQ,CAExC,QADIL,EAAM,CAAC,EACFC,EAAII,GAAU,EAAGH,EAAI,EAAGD,EAAIG,EAAQ,OAAQH,GAAK,EAAGC,GAAK,EAC9DF,EAAIE,CAAC,EAAIE,EAAQH,CAAC,EAEtB,OAAOD,CACX,EAEIM,GAAQ,SAAUN,EAAKO,EAAQ,CAE/B,QADIC,EAAM,GACD,EAAI,EAAG,EAAIR,EAAI,OAAQ,GAAK,EACjCQ,GAAOR,EAAI,CAAC,EACR,EAAI,EAAIA,EAAI,SACZQ,GAAOD,GAGf,OAAOC,CACX,EAEAhB,GAAO,QAAU,SAAciB,EAAM,CACjC,IAAIC,EAAS,KACb,GAAI,OAAOA,GAAW,YAAchB,GAAM,MAAMgB,CAAM,IAAMd,GACxD,MAAM,IAAI,UAAUH,GAAgBiB,CAAM,EAyB9C,QAvBIC,EAAOR,GAAM,UAAW,CAAC,EAEzBS,EACAC,EAAS,UAAY,CACrB,GAAI,gBAAgBD,EAAO,CACvB,IAAIE,EAASJ,EAAO,MAChB,KACAb,GAASc,EAAM,SAAS,CAC5B,EACA,OAAI,OAAOG,CAAM,IAAMA,EACZA,EAEJ,IACX,CACA,OAAOJ,EAAO,MACVD,EACAZ,GAASc,EAAM,SAAS,CAC5B,CAEJ,EAEII,EAAcpB,GAAI,EAAGe,EAAO,OAASC,EAAK,MAAM,EAChDK,EAAY,CAAC,EACRf,EAAI,EAAGA,EAAIc,EAAad,IAC7Be,EAAUf,CAAC,EAAI,IAAMA,EAKzB,GAFAW,EAAQ,SAAS,SAAU,oBAAsBN,GAAMU,EAAW,GAAG,EAAI,2CAA2C,EAAEH,CAAM,EAExHH,EAAO,UAAW,CAClB,IAAIO,EAAQ,UAAiB,CAAC,EAC9BA,EAAM,UAAYP,EAAO,UACzBE,EAAM,UAAY,IAAIK,EACtBA,EAAM,UAAY,IACtB,CAEA,OAAOL,CACX,ICnFA,IAAAM,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAiB,KAErBD,GAAO,QAAU,SAAS,UAAU,MAAQC,KCJ5C,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,SAAS,UAAU,OCHpC,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,SAAS,UAAU,QCHpC,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,OAAO,QAAY,KAAe,SAAW,QAAQ,QCHtE,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAO,KAEPC,GAAS,KACTC,GAAQ,KACRC,GAAgB,KAGpBJ,GAAO,QAAUI,IAAiBH,GAAK,KAAKE,GAAOD,EAAM,ICTzD,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAO,KACPC,GAAa,KAEbC,GAAQ,KACRC,GAAe,KAGnBJ,GAAO,QAAU,SAAuBK,EAAM,CAC7C,GAAIA,EAAK,OAAS,GAAK,OAAOA,EAAK,CAAC,GAAM,WACzC,MAAM,IAAIH,GAAW,wBAAwB,EAE9C,OAAOE,GAAaH,GAAME,GAAOE,CAAI,CACtC,ICdA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAW,KACXC,GAAO,KAEPC,GACJ,GAAI,CAEHA,GAA0E,CAAC,EAAG,YAAc,MAAM,SACnG,OAAS,EAAG,CACX,GAAI,CAAC,GAAK,OAAO,GAAM,UAAY,EAAE,SAAU,IAAM,EAAE,OAAS,mBAC/D,MAAM,CAER,CAGA,IAAIC,GAAO,CAAC,CAACD,IAAoBD,IAAQA,GAAK,OAAO,UAAyD,WAAY,EAEtHG,GAAU,OACVC,GAAkBD,GAAQ,eAG9BL,GAAO,QAAUI,IAAQ,OAAOA,GAAK,KAAQ,WAC1CH,GAAS,CAACG,GAAK,GAAG,CAAC,EACnB,OAAOE,IAAoB,WACK,SAAmBC,EAAO,CAE1D,OAAOD,GAAgBC,GAAS,KAAOA,EAAQF,GAAQE,CAAK,CAAC,CAC9D,EACE,KC7BJ,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAkB,KAClBC,GAAmB,KAEnBC,GAAiB,KAGrBH,GAAO,QAAUC,GACd,SAAkBG,EAAG,CAEtB,OAAOH,GAAgBG,CAAC,CACzB,EACEF,GACC,SAAkBE,EAAG,CACtB,GAAI,CAACA,GAAM,OAAOA,GAAM,UAAY,OAAOA,GAAM,WAChD,MAAM,IAAI,UAAU,yBAAyB,EAG9C,OAAOF,GAAiBE,CAAC,CAC1B,EACED,GACC,SAAkBC,EAAG,CAEtB,OAAOD,GAAeC,CAAC,CACxB,EACE,OC1BL,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAO,SAAS,UAAU,KAC1BC,GAAU,OAAO,UAAU,eAC3BC,GAAO,KAGXH,GAAO,QAAUG,GAAK,KAAKF,GAAMC,EAAO,ICPxC,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,EAEAC,GAAU,KAEVC,GAAS,KACTC,GAAa,KACbC,GAAc,KACdC,GAAkB,KAClBC,GAAe,KACfC,GAAa,KACbC,GAAY,KAEZC,GAAM,KACNC,GAAQ,KACRC,GAAM,KACNC,GAAM,KACNC,GAAM,KACNC,GAAQ,KACRC,GAAO,KAEPC,GAAY,SAGZC,GAAwB,SAAUC,EAAkB,CACvD,GAAI,CACH,OAAOF,GAAU,yBAA2BE,EAAmB,gBAAgB,EAAE,CAClF,MAAY,CAAC,CACd,EAEIC,GAAQ,KACRC,GAAkB,KAElBC,GAAiB,UAAY,CAChC,MAAM,IAAId,EACX,EACIe,GAAiBH,IACjB,UAAY,CACd,GAAI,CAEH,iBAAU,OACHE,EACR,MAAuB,CACtB,GAAI,CAEH,OAAOF,GAAM,UAAW,QAAQ,EAAE,GACnC,MAAqB,CACpB,OAAOE,EACR,CACD,CACD,GAAE,EACAA,GAECE,GAAa,KAAuB,EAEpCC,EAAW,KACXC,GAAa,KACbC,GAAc,KAEdC,GAAS,KACTC,GAAQ,KAERC,GAAY,CAAC,EAEbC,GAAa,OAAO,WAAe,KAAe,CAACN,EAAWxB,EAAYwB,EAAS,UAAU,EAE7FO,GAAa,CAChB,UAAW,KACX,mBAAoB,OAAO,eAAmB,IAAc/B,EAAY,eACxE,UAAW,MACX,gBAAiB,OAAO,YAAgB,IAAcA,EAAY,YAClE,2BAA4BuB,IAAcC,EAAWA,EAAS,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,EAAIxB,EACvF,mCAAoCA,EACpC,kBAAmB6B,GACnB,mBAAoBA,GACpB,2BAA4BA,GAC5B,2BAA4BA,GAC5B,YAAa,OAAO,QAAY,IAAc7B,EAAY,QAC1D,WAAY,OAAO,OAAW,IAAcA,EAAY,OACxD,kBAAmB,OAAO,cAAkB,IAAcA,EAAY,cACtE,mBAAoB,OAAO,eAAmB,IAAcA,EAAY,eACxE,YAAa,QACb,aAAc,OAAO,SAAa,IAAcA,EAAY,SAC5D,SAAU,KACV,cAAe,UACf,uBAAwB,mBACxB,cAAe,UACf,uBAAwB,mBACxB,UAAWE,GACX,SAAU,KACV,cAAeC,GACf,iBAAkB,OAAO,aAAiB,IAAcH,EAAY,aACpE,iBAAkB,OAAO,aAAiB,IAAcA,EAAY,aACpE,iBAAkB,OAAO,aAAiB,IAAcA,EAAY,aACpE,yBAA0B,OAAO,qBAAyB,IAAcA,EAAY,qBACpF,aAAcgB,GACd,sBAAuBa,GACvB,cAAe,OAAO,UAAc,IAAc7B,EAAY,UAC9D,eAAgB,OAAO,WAAe,IAAcA,EAAY,WAChE,eAAgB,OAAO,WAAe,IAAcA,EAAY,WAChE,aAAc,SACd,UAAW,MACX,sBAAuBuB,IAAcC,EAAWA,EAASA,EAAS,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC,EAAIxB,EAC5F,SAAU,OAAO,MAAS,SAAW,KAAOA,EAC5C,QAAS,OAAO,IAAQ,IAAcA,EAAY,IAClD,yBAA0B,OAAO,IAAQ,KAAe,CAACuB,IAAc,CAACC,EAAWxB,EAAYwB,EAAS,IAAI,IAAI,EAAE,OAAO,QAAQ,EAAE,CAAC,EACpI,SAAU,KACV,WAAY,OACZ,WAAYvB,GACZ,oCAAqCkB,GACrC,eAAgB,WAChB,aAAc,SACd,YAAa,OAAO,QAAY,IAAcnB,EAAY,QAC1D,UAAW,OAAO,MAAU,IAAcA,EAAY,MACtD,eAAgBI,GAChB,mBAAoBC,GACpB,YAAa,OAAO,QAAY,IAAcL,EAAY,QAC1D,WAAY,OACZ,QAAS,OAAO,IAAQ,IAAcA,EAAY,IAClD,yBAA0B,OAAO,IAAQ,KAAe,CAACuB,IAAc,CAACC,EAAWxB,EAAYwB,EAAS,IAAI,IAAI,EAAE,OAAO,QAAQ,EAAE,CAAC,EACpI,sBAAuB,OAAO,kBAAsB,IAAcxB,EAAY,kBAC9E,WAAY,OACZ,4BAA6BuB,IAAcC,EAAWA,EAAS,GAAG,OAAO,QAAQ,EAAE,CAAC,EAAIxB,EACxF,WAAYuB,GAAa,OAASvB,EAClC,gBAAiBM,GACjB,mBAAoBgB,GACpB,eAAgBQ,GAChB,cAAevB,GACf,eAAgB,OAAO,WAAe,IAAcP,EAAY,WAChE,sBAAuB,OAAO,kBAAsB,IAAcA,EAAY,kBAC9E,gBAAiB,OAAO,YAAgB,IAAcA,EAAY,YAClE,gBAAiB,OAAO,YAAgB,IAAcA,EAAY,YAClE,aAAcQ,GACd,YAAa,OAAO,QAAY,IAAcR,EAAY,QAC1D,YAAa,OAAO,QAAY,IAAcA,EAAY,QAC1D,YAAa,OAAO,QAAY,IAAcA,EAAY,QAE1D,4BAA6B4B,GAC7B,6BAA8BD,GAC9B,0BAA2BP,GAC3B,0BAA2BK,GAC3B,aAAchB,GACd,eAAgBC,GAChB,aAAcC,GACd,aAAcC,GACd,aAAcC,GACd,eAAgBC,GAChB,cAAeC,GACf,2BAA4BW,EAC7B,EAEA,GAAIF,EACH,GAAI,CACH,KAAK,KACN,OAAS,EAAG,CAEPQ,GAAaR,EAASA,EAAS,CAAC,CAAC,EACrCO,GAAW,mBAAmB,EAAIC,EACnC,CAFK,IAAAA,GAKFC,GAAS,SAASA,EAAOC,EAAM,CAClC,IAAIC,EACJ,GAAID,IAAS,kBACZC,EAAQlB,GAAsB,sBAAsB,UAC1CiB,IAAS,sBACnBC,EAAQlB,GAAsB,iBAAiB,UACrCiB,IAAS,2BACnBC,EAAQlB,GAAsB,uBAAuB,UAC3CiB,IAAS,mBAAoB,CACvC,IAAIE,EAAKH,EAAO,0BAA0B,EACtCG,IACHD,EAAQC,EAAG,UAEb,SAAWF,IAAS,2BAA4B,CAC/C,IAAIG,EAAMJ,EAAO,kBAAkB,EAC/BI,GAAOb,IACVW,EAAQX,EAASa,EAAI,SAAS,EAEhC,CAEA,OAAAN,GAAWG,CAAI,EAAIC,EAEZA,CACR,EAEIG,GAAiB,CACpB,UAAW,KACX,yBAA0B,CAAC,cAAe,WAAW,EACrD,mBAAoB,CAAC,QAAS,WAAW,EACzC,uBAAwB,CAAC,QAAS,YAAa,SAAS,EACxD,uBAAwB,CAAC,QAAS,YAAa,SAAS,EACxD,oBAAqB,CAAC,QAAS,YAAa,MAAM,EAClD,sBAAuB,CAAC,QAAS,YAAa,QAAQ,EACtD,2BAA4B,CAAC,gBAAiB,WAAW,EACzD,mBAAoB,CAAC,yBAA0B,WAAW,EAC1D,4BAA6B,CAAC,yBAA0B,YAAa,WAAW,EAChF,qBAAsB,CAAC,UAAW,WAAW,EAC7C,sBAAuB,CAAC,WAAY,WAAW,EAC/C,kBAAmB,CAAC,OAAQ,WAAW,EACvC,mBAAoB,CAAC,QAAS,WAAW,EACzC,uBAAwB,CAAC,YAAa,WAAW,EACjD,0BAA2B,CAAC,eAAgB,WAAW,EACvD,0BAA2B,CAAC,eAAgB,WAAW,EACvD,sBAAuB,CAAC,WAAY,WAAW,EAC/C,cAAe,CAAC,oBAAqB,WAAW,EAChD,uBAAwB,CAAC,oBAAqB,YAAa,WAAW,EACtE,uBAAwB,CAAC,YAAa,WAAW,EACjD,wBAAyB,CAAC,aAAc,WAAW,EACnD,wBAAyB,CAAC,aAAc,WAAW,EACnD,cAAe,CAAC,OAAQ,OAAO,EAC/B,kBAAmB,CAAC,OAAQ,WAAW,EACvC,iBAAkB,CAAC,MAAO,WAAW,EACrC,oBAAqB,CAAC,SAAU,WAAW,EAC3C,oBAAqB,CAAC,SAAU,WAAW,EAC3C,sBAAuB,CAAC,SAAU,YAAa,UAAU,EACzD,qBAAsB,CAAC,SAAU,YAAa,SAAS,EACvD,qBAAsB,CAAC,UAAW,WAAW,EAC7C,sBAAuB,CAAC,UAAW,YAAa,MAAM,EACtD,gBAAiB,CAAC,UAAW,KAAK,EAClC,mBAAoB,CAAC,UAAW,QAAQ,EACxC,oBAAqB,CAAC,UAAW,SAAS,EAC1C,wBAAyB,CAAC,aAAc,WAAW,EACnD,4BAA6B,CAAC,iBAAkB,WAAW,EAC3D,oBAAqB,CAAC,SAAU,WAAW,EAC3C,iBAAkB,CAAC,MAAO,WAAW,EACrC,+BAAgC,CAAC,oBAAqB,WAAW,EACjE,oBAAqB,CAAC,SAAU,WAAW,EAC3C,oBAAqB,CAAC,SAAU,WAAW,EAC3C,yBAA0B,CAAC,cAAe,WAAW,EACrD,wBAAyB,CAAC,aAAc,WAAW,EACnD,uBAAwB,CAAC,YAAa,WAAW,EACjD,wBAAyB,CAAC,aAAc,WAAW,EACnD,+BAAgC,CAAC,oBAAqB,WAAW,EACjE,yBAA0B,CAAC,cAAe,WAAW,EACrD,yBAA0B,CAAC,cAAe,WAAW,EACrD,sBAAuB,CAAC,WAAY,WAAW,EAC/C,qBAAsB,CAAC,UAAW,WAAW,EAC7C,qBAAsB,CAAC,UAAW,WAAW,CAC9C,EAEIC,GAAO,KACPC,GAAS,KACTC,GAAUF,GAAK,KAAKX,GAAO,MAAM,UAAU,MAAM,EACjDc,GAAeH,GAAK,KAAKZ,GAAQ,MAAM,UAAU,MAAM,EACvDgB,GAAWJ,GAAK,KAAKX,GAAO,OAAO,UAAU,OAAO,EACpDgB,GAAYL,GAAK,KAAKX,GAAO,OAAO,UAAU,KAAK,EACnDiB,GAAQN,GAAK,KAAKX,GAAO,OAAO,UAAU,IAAI,EAG9CkB,GAAa,qGACbC,GAAe,WACfC,GAAe,SAAsBC,EAAQ,CAChD,IAAIC,EAAQN,GAAUK,EAAQ,EAAG,CAAC,EAC9BE,EAAOP,GAAUK,EAAQ,EAAE,EAC/B,GAAIC,IAAU,KAAOC,IAAS,IAC7B,MAAM,IAAI7C,GAAa,gDAAgD,EACjE,GAAI6C,IAAS,KAAOD,IAAU,IACpC,MAAM,IAAI5C,GAAa,gDAAgD,EAExE,IAAI8C,EAAS,CAAC,EACd,OAAAT,GAASM,EAAQH,GAAY,SAAUO,EAAOC,EAAQC,EAAOC,EAAW,CACvEJ,EAAOA,EAAO,MAAM,EAAIG,EAAQZ,GAASa,EAAWT,GAAc,IAAI,EAAIO,GAAUD,CACrF,CAAC,EACMD,CACR,EAGIK,GAAmB,SAA0BvB,EAAMwB,EAAc,CACpE,IAAIC,EAAgBzB,EAChB0B,EAMJ,GALIpB,GAAOF,GAAgBqB,CAAa,IACvCC,EAAQtB,GAAeqB,CAAa,EACpCA,EAAgB,IAAMC,EAAM,CAAC,EAAI,KAG9BpB,GAAOT,GAAY4B,CAAa,EAAG,CACtC,IAAIxB,EAAQJ,GAAW4B,CAAa,EAIpC,GAHIxB,IAAUN,KACbM,EAAQF,GAAO0B,CAAa,GAEzB,OAAOxB,EAAU,KAAe,CAACuB,EACpC,MAAM,IAAInD,GAAW,aAAe2B,EAAO,sDAAsD,EAGlG,MAAO,CACN,MAAO0B,EACP,KAAMD,EACN,MAAOxB,CACR,CACD,CAEA,MAAM,IAAI7B,GAAa,aAAe4B,EAAO,kBAAkB,CAChE,EAEAnC,GAAO,QAAU,SAAsBmC,EAAMwB,EAAc,CAC1D,GAAI,OAAOxB,GAAS,UAAYA,EAAK,SAAW,EAC/C,MAAM,IAAI3B,GAAW,2CAA2C,EAEjE,GAAI,UAAU,OAAS,GAAK,OAAOmD,GAAiB,UACnD,MAAM,IAAInD,GAAW,2CAA2C,EAGjE,GAAIsC,GAAM,cAAeX,CAAI,IAAM,KAClC,MAAM,IAAI5B,GAAa,oFAAoF,EAE5G,IAAIuD,EAAQb,GAAad,CAAI,EACzB4B,EAAoBD,EAAM,OAAS,EAAIA,EAAM,CAAC,EAAI,GAElDE,EAAYN,GAAiB,IAAMK,EAAoB,IAAKJ,CAAY,EACxEM,EAAoBD,EAAU,KAC9B5B,EAAQ4B,EAAU,MAClBE,EAAqB,GAErBL,EAAQG,EAAU,MAClBH,IACHE,EAAoBF,EAAM,CAAC,EAC3BlB,GAAamB,EAAOpB,GAAQ,CAAC,EAAG,CAAC,EAAGmB,CAAK,CAAC,GAG3C,QAASM,EAAI,EAAGC,EAAQ,GAAMD,EAAIL,EAAM,OAAQK,GAAK,EAAG,CACvD,IAAIE,EAAOP,EAAMK,CAAC,EACdhB,EAAQN,GAAUwB,EAAM,EAAG,CAAC,EAC5BjB,EAAOP,GAAUwB,EAAM,EAAE,EAC7B,IAEGlB,IAAU,KAAOA,IAAU,KAAOA,IAAU,KACzCC,IAAS,KAAOA,IAAS,KAAOA,IAAS,MAE3CD,IAAUC,EAEb,MAAM,IAAI7C,GAAa,sDAAsD,EAS9E,IAPI8D,IAAS,eAAiB,CAACD,KAC9BF,EAAqB,IAGtBH,GAAqB,IAAMM,EAC3BJ,EAAoB,IAAMF,EAAoB,IAE1CtB,GAAOT,GAAYiC,CAAiB,EACvC7B,EAAQJ,GAAWiC,CAAiB,UAC1B7B,GAAS,KAAM,CACzB,GAAI,EAAEiC,KAAQjC,GAAQ,CACrB,GAAI,CAACuB,EACJ,MAAM,IAAInD,GAAW,sBAAwB2B,EAAO,6CAA6C,EAElG,MACD,CACA,GAAIf,IAAU+C,EAAI,GAAML,EAAM,OAAQ,CACrC,IAAIQ,EAAOlD,GAAMgB,EAAOiC,CAAI,EAC5BD,EAAQ,CAAC,CAACE,EASNF,GAAS,QAASE,GAAQ,EAAE,kBAAmBA,EAAK,KACvDlC,EAAQkC,EAAK,IAEblC,EAAQA,EAAMiC,CAAI,CAEpB,MACCD,EAAQ3B,GAAOL,EAAOiC,CAAI,EAC1BjC,EAAQA,EAAMiC,CAAI,EAGfD,GAAS,CAACF,IACblC,GAAWiC,CAAiB,EAAI7B,EAElC,CACD,CACA,OAAOA,CACR,ICzXA,IAAAmC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAa,KAGjBD,GAAO,QAAU,UAA+B,CAC/C,OAAOC,GAAW,GAAK,CAAC,CAAC,OAAO,WACjC,ICPA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAe,KAEfC,GAAkBD,GAAa,0BAA2B,EAAI,EAE9DE,GAAiB,KAAiC,EAClDC,GAAS,KACTC,GAAa,KAEbC,GAAcH,GAAiB,OAAO,YAAc,KAGxDH,GAAO,QAAU,SAAwBO,EAAQC,EAAO,CACvD,IAAIC,EAAgB,UAAU,OAAS,GAAK,CAAC,CAAC,UAAU,CAAC,GAAK,UAAU,CAAC,EAAE,MACvEC,EAAkB,UAAU,OAAS,GAAK,CAAC,CAAC,UAAU,CAAC,GAAK,UAAU,CAAC,EAAE,gBAC7E,GACE,OAAOD,EAAkB,KAAe,OAAOA,GAAkB,WAC9D,OAAOC,EAAoB,KAAe,OAAOA,GAAoB,UAEzE,MAAM,IAAIL,GAAW,iFAAiF,EAEnGC,KAAgBG,GAAiB,CAACL,GAAOG,EAAQD,EAAW,KAC3DJ,GACHA,GAAgBK,EAAQD,GAAa,CACpC,aAAc,CAACI,EACf,WAAY,GACZ,MAAOF,EACP,SAAU,EACX,CAAC,EAEDD,EAAOD,EAAW,EAAIE,EAGzB,IClCA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAGAA,GAAO,QAAU,SAAUC,EAAKC,EAAK,CACnC,cAAO,KAAKA,CAAG,EAAE,QAAQ,SAAUC,EAAM,CACvCF,EAAIE,CAAI,EAAIF,EAAIE,CAAI,GAAKD,EAAIC,CAAI,CACnC,CAAC,EAEMF,CACT,ICTA,IAAAG,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAiB,KACjBC,GAAO,QAAQ,MAAM,EACrBC,GAAO,QAAQ,MAAM,EACrBC,GAAO,QAAQ,MAAM,EACrBC,GAAQ,QAAQ,OAAO,EACvBC,GAAW,QAAQ,KAAK,EAAE,MAC1BC,GAAK,QAAQ,IAAI,EACjBC,GAAS,QAAQ,QAAQ,EAAE,OAC3BC,GAAS,QAAQ,QAAQ,EACzBC,GAAO,KACPC,GAAW,KACXC,GAAiB,KACjBC,GAAS,KACTC,GAAW,KAUf,SAASC,EAASC,EAAS,CACzB,GAAI,EAAE,gBAAgBD,GACpB,OAAO,IAAIA,EAASC,CAAO,EAG7B,KAAK,gBAAkB,EACvB,KAAK,aAAe,EACpB,KAAK,iBAAmB,CAAC,EAEzBf,GAAe,KAAK,IAAI,EAExBe,EAAUA,GAAW,CAAC,EACtB,QAASC,KAAUD,EACjB,KAAKC,CAAM,EAAID,EAAQC,CAAM,CAEjC,CAGAf,GAAK,SAASa,EAAUd,EAAc,EAEtCc,EAAS,WAAa;AAAA,EACtBA,EAAS,qBAAuB,2BAEhCA,EAAS,UAAU,OAAS,SAAUG,EAAOC,EAAOH,EAAS,CAC3DA,EAAUA,GAAW,CAAC,EAGlB,OAAOA,GAAY,WACrBA,EAAU,CAAE,SAAUA,CAAQ,GAGhC,IAAII,EAASnB,GAAe,UAAU,OAAO,KAAK,IAAI,EAQtD,IALI,OAAOkB,GAAU,UAAYA,GAAS,QACxCA,EAAQ,OAAOA,CAAK,GAIlB,MAAM,QAAQA,CAAK,EAAG,CAKxB,KAAK,OAAO,IAAI,MAAM,2BAA2B,CAAC,EAClD,MACF,CAEA,IAAIE,EAAS,KAAK,iBAAiBH,EAAOC,EAAOH,CAAO,EACpDM,EAAS,KAAK,iBAAiB,EAEnCF,EAAOC,CAAM,EACbD,EAAOD,CAAK,EACZC,EAAOE,CAAM,EAGb,KAAK,aAAaD,EAAQF,EAAOH,CAAO,CAC1C,EAEAD,EAAS,UAAU,aAAe,SAAUM,EAAQF,EAAOH,EAAS,CAClE,IAAIO,EAAc,EAQdP,EAAQ,aAAe,KACzBO,GAAe,OAAOP,EAAQ,WAAW,EAChC,OAAO,SAASG,CAAK,EAC9BI,EAAcJ,EAAM,OACX,OAAOA,GAAU,WAC1BI,EAAc,OAAO,WAAWJ,CAAK,GAGvC,KAAK,cAAgBI,EAGrB,KAAK,iBAAmB,OAAO,WAAWF,CAAM,EAAIN,EAAS,WAAW,OAGpE,GAACI,GAAU,CAACA,EAAM,MAAQ,EAAEA,EAAM,UAAYN,GAAOM,EAAO,aAAa,IAAM,EAAEA,aAAiBX,OAKjGQ,EAAQ,aACX,KAAK,iBAAiB,KAAKG,CAAK,EAEpC,EAEAJ,EAAS,UAAU,iBAAmB,SAAUI,EAAOK,EAAU,CAC3DX,GAAOM,EAAO,IAAI,EAQhBA,EAAM,KAAO,MAAaA,EAAM,KAAO,KAAYA,EAAM,OAAS,KAIpEK,EAAS,KAAML,EAAM,IAAM,GAAKA,EAAM,MAAQA,EAAM,MAAQ,EAAE,EAK9DZ,GAAG,KAAKY,EAAM,KAAM,SAAUM,EAAKC,EAAM,CACvC,GAAID,EAAK,CACPD,EAASC,CAAG,EACZ,MACF,CAGA,IAAIE,EAAWD,EAAK,MAAQP,EAAM,MAAQA,EAAM,MAAQ,GACxDK,EAAS,KAAMG,CAAQ,CACzB,CAAC,EAIMd,GAAOM,EAAO,aAAa,EACpCK,EAAS,KAAM,OAAOL,EAAM,QAAQ,gBAAgB,CAAC,CAAC,EAG7CN,GAAOM,EAAO,YAAY,GAEnCA,EAAM,GAAG,WAAY,SAAUS,EAAU,CACvCT,EAAM,MAAM,EACZK,EAAS,KAAM,OAAOI,EAAS,QAAQ,gBAAgB,CAAC,CAAC,CAC3D,CAAC,EACDT,EAAM,OAAO,GAIbK,EAAS,gBAAgB,CAE7B,EAEAT,EAAS,UAAU,iBAAmB,SAAUG,EAAOC,EAAOH,EAAS,CAMrE,GAAI,OAAOA,EAAQ,QAAW,SAC5B,OAAOA,EAAQ,OAGjB,IAAIa,EAAqB,KAAK,uBAAuBV,EAAOH,CAAO,EAC/Dc,EAAc,KAAK,gBAAgBX,EAAOH,CAAO,EAEjDe,EAAW,GACXC,EAAU,CAEZ,sBAAuB,CAAC,YAAa,SAAWd,EAAQ,GAAG,EAAE,OAAOW,GAAsB,CAAC,CAAC,EAE5F,eAAgB,CAAC,EAAE,OAAOC,GAAe,CAAC,CAAC,CAC7C,EAGI,OAAOd,EAAQ,QAAW,UAC5BF,GAASkB,EAAShB,EAAQ,MAAM,EAGlC,IAAIK,EACJ,QAASY,KAAQD,EACf,GAAInB,GAAOmB,EAASC,CAAI,EAAG,CAIzB,GAHAZ,EAASW,EAAQC,CAAI,EAGjBZ,GAAU,KACZ,SAIG,MAAM,QAAQA,CAAM,IACvBA,EAAS,CAACA,CAAM,GAIdA,EAAO,SACTU,GAAYE,EAAO,KAAOZ,EAAO,KAAK,IAAI,EAAIN,EAAS,WAE3D,CAGF,MAAO,KAAO,KAAK,YAAY,EAAIA,EAAS,WAAagB,EAAWhB,EAAS,UAC/E,EAEAA,EAAS,UAAU,uBAAyB,SAAUI,EAAOH,EAAS,CACpE,IAAIkB,EAiBJ,GAfI,OAAOlB,EAAQ,UAAa,SAE9BkB,EAAW/B,GAAK,UAAUa,EAAQ,QAAQ,EAAE,QAAQ,MAAO,GAAG,EACrDA,EAAQ,UAAaG,IAAUA,EAAM,MAAQA,EAAM,MAM5De,EAAW/B,GAAK,SAASa,EAAQ,UAAaG,IAAUA,EAAM,MAAQA,EAAM,KAAM,EACzEA,GAASA,EAAM,UAAYN,GAAOM,EAAO,aAAa,IAE/De,EAAW/B,GAAK,SAASgB,EAAM,OAAO,aAAa,MAAQ,EAAE,GAG3De,EACF,MAAO,aAAeA,EAAW,GAErC,EAEAnB,EAAS,UAAU,gBAAkB,SAAUI,EAAOH,EAAS,CAE7D,IAAIc,EAAcd,EAAQ,YAG1B,MAAI,CAACc,GAAeX,GAASA,EAAM,OACjCW,EAAcpB,GAAK,OAAOS,EAAM,IAAI,GAIlC,CAACW,GAAeX,GAASA,EAAM,OACjCW,EAAcpB,GAAK,OAAOS,EAAM,IAAI,GAIlC,CAACW,GAAeX,GAASA,EAAM,UAAYN,GAAOM,EAAO,aAAa,IACxEW,EAAcX,EAAM,QAAQ,cAAc,GAIxC,CAACW,IAAgBd,EAAQ,UAAYA,EAAQ,YAC/Cc,EAAcpB,GAAK,OAAOM,EAAQ,UAAYA,EAAQ,QAAQ,GAI5D,CAACc,GAAeX,GAAS,OAAOA,GAAU,WAC5CW,EAAcf,EAAS,sBAGlBe,CACT,EAEAf,EAAS,UAAU,iBAAmB,UAAY,CAChD,OAAO,SAAUoB,EAAM,CACrB,IAAIb,EAASP,EAAS,WAElBqB,EAAW,KAAK,SAAS,SAAW,EACpCA,IACFd,GAAU,KAAK,cAAc,GAG/Ba,EAAKb,CAAM,CACb,EAAE,KAAK,IAAI,CACb,EAEAP,EAAS,UAAU,cAAgB,UAAY,CAC7C,MAAO,KAAO,KAAK,YAAY,EAAI,KAAOA,EAAS,UACrD,EAEAA,EAAS,UAAU,WAAa,SAAUsB,EAAa,CACrD,IAAIhB,EACAiB,EAAc,CAChB,eAAgB,iCAAmC,KAAK,YAAY,CACtE,EAEA,IAAKjB,KAAUgB,EACTxB,GAAOwB,EAAahB,CAAM,IAC5BiB,EAAYjB,EAAO,YAAY,CAAC,EAAIgB,EAAYhB,CAAM,GAI1D,OAAOiB,CACT,EAEAvB,EAAS,UAAU,YAAc,SAAUwB,EAAU,CACnD,GAAI,OAAOA,GAAa,SACtB,MAAM,IAAI,UAAU,oCAAoC,EAE1D,KAAK,UAAYA,CACnB,EAEAxB,EAAS,UAAU,YAAc,UAAY,CAC3C,OAAK,KAAK,WACR,KAAK,kBAAkB,EAGlB,KAAK,SACd,EAEAA,EAAS,UAAU,UAAY,UAAY,CAKzC,QAJIyB,EAAa,IAAI,OAAO,MAAM,CAAC,EAC/BD,EAAW,KAAK,YAAY,EAGvBE,EAAI,EAAGC,EAAM,KAAK,SAAS,OAAQD,EAAIC,EAAKD,IAC/C,OAAO,KAAK,SAASA,CAAC,GAAM,aAE1B,OAAO,SAAS,KAAK,SAASA,CAAC,CAAC,EAClCD,EAAa,OAAO,OAAO,CAACA,EAAY,KAAK,SAASC,CAAC,CAAC,CAAC,EAEzDD,EAAa,OAAO,OAAO,CAACA,EAAY,OAAO,KAAK,KAAK,SAASC,CAAC,CAAC,CAAC,CAAC,GAIpE,OAAO,KAAK,SAASA,CAAC,GAAM,UAAY,KAAK,SAASA,CAAC,EAAE,UAAU,EAAGF,EAAS,OAAS,CAAC,IAAMA,KACjGC,EAAa,OAAO,OAAO,CAACA,EAAY,OAAO,KAAKzB,EAAS,UAAU,CAAC,CAAC,IAM/E,OAAO,OAAO,OAAO,CAACyB,EAAY,OAAO,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CACtE,EAEAzB,EAAS,UAAU,kBAAoB,UAAY,CAIjD,KAAK,UAAY,6BAA+BN,GAAO,YAAY,EAAE,EAAE,SAAS,KAAK,CACvF,EAIAM,EAAS,UAAU,cAAgB,UAAY,CAC7C,IAAI4B,EAAc,KAAK,gBAAkB,KAAK,aAG9C,OAAI,KAAK,SAAS,SAChBA,GAAe,KAAK,cAAc,EAAE,QAIjC,KAAK,eAAe,GAMvB,KAAK,OAAO,IAAI,MAAM,oDAAoD,CAAC,EAGtEA,CACT,EAKA5B,EAAS,UAAU,eAAiB,UAAY,CAC9C,IAAI6B,EAAiB,GAErB,OAAI,KAAK,iBAAiB,SACxBA,EAAiB,IAGZA,CACT,EAEA7B,EAAS,UAAU,UAAY,SAAU8B,EAAI,CAC3C,IAAIF,EAAc,KAAK,gBAAkB,KAAK,aAM9C,GAJI,KAAK,SAAS,SAChBA,GAAe,KAAK,cAAc,EAAE,QAGlC,CAAC,KAAK,iBAAiB,OAAQ,CACjC,QAAQ,SAASE,EAAG,KAAK,KAAM,KAAMF,CAAW,CAAC,EACjD,MACF,CAEAhC,GAAS,SAAS,KAAK,iBAAkB,KAAK,iBAAkB,SAAUc,EAAKqB,EAAQ,CACrF,GAAIrB,EAAK,CACPoB,EAAGpB,CAAG,EACN,MACF,CAEAqB,EAAO,QAAQ,SAAUC,EAAQ,CAC/BJ,GAAeI,CACjB,CAAC,EAEDF,EAAG,KAAMF,CAAW,CACtB,CAAC,CACH,EAEA5B,EAAS,UAAU,OAAS,SAAUiC,EAAQH,EAAI,CAChD,IAAII,EACAjC,EACAkC,EAAW,CAAE,OAAQ,MAAO,EAGhC,OAAI,OAAOF,GAAW,UACpBA,EAAS1C,GAAS0C,CAAM,EAExBhC,EAAUF,GAAS,CACjB,KAAMkC,EAAO,KACb,KAAMA,EAAO,SACb,KAAMA,EAAO,SACb,SAAUA,EAAO,QACnB,EAAGE,CAAQ,IAEXlC,EAAUF,GAASkC,EAAQE,CAAQ,EAE9BlC,EAAQ,OACXA,EAAQ,KAAOA,EAAQ,WAAa,SAAW,IAAM,KAKzDA,EAAQ,QAAU,KAAK,WAAWgC,EAAO,OAAO,EAG5ChC,EAAQ,WAAa,SACvBiC,EAAU5C,GAAM,QAAQW,CAAO,EAE/BiC,EAAU7C,GAAK,QAAQY,CAAO,EAIhC,KAAK,UAAU,SAAUS,EAAKsB,EAAQ,CACpC,GAAItB,GAAOA,IAAQ,iBAAkB,CACnC,KAAK,OAAOA,CAAG,EACf,MACF,CAQA,GALIsB,GACFE,EAAQ,UAAU,iBAAkBF,CAAM,EAG5C,KAAK,KAAKE,CAAO,EACbJ,EAAI,CACN,IAAIM,EAEA3B,EAAW,SAAU4B,EAAOC,EAAU,CACxC,OAAAJ,EAAQ,eAAe,QAASzB,CAAQ,EACxCyB,EAAQ,eAAe,WAAYE,CAAU,EAEtCN,EAAG,KAAK,KAAMO,EAAOC,CAAQ,CACtC,EAEAF,EAAa3B,EAAS,KAAK,KAAM,IAAI,EAErCyB,EAAQ,GAAG,QAASzB,CAAQ,EAC5ByB,EAAQ,GAAG,WAAYE,CAAU,CACnC,CACF,EAAE,KAAK,IAAI,CAAC,EAELF,CACT,EAEAlC,EAAS,UAAU,OAAS,SAAUU,EAAK,CACpC,KAAK,QACR,KAAK,MAAQA,EACb,KAAK,MAAM,EACX,KAAK,KAAK,QAASA,CAAG,EAE1B,EAEAV,EAAS,UAAU,SAAW,UAAY,CACxC,MAAO,mBACT,EACAH,GAAeG,EAAS,UAAW,UAAU,EAG7Cf,GAAO,QAAUe,IC7ejB,IAAAuC,GAAAC,EAAAC,IAAA,cAEA,IAAIC,GAAW,QAAQ,KAAK,EAAE,MAE1BC,GAAgB,CAClB,IAAK,GACL,OAAQ,GACR,KAAM,GACN,MAAO,IACP,GAAI,GACJ,IAAK,GACP,EAEIC,GAAiB,OAAO,UAAU,UAAY,SAASC,EAAG,CAC5D,OAAOA,EAAE,QAAU,KAAK,QACtB,KAAK,QAAQA,EAAG,KAAK,OAASA,EAAE,MAAM,IAAM,EAChD,EAOA,SAASC,GAAeC,EAAK,CAC3B,IAAIC,EAAY,OAAOD,GAAQ,SAAWL,GAASK,CAAG,EAAIA,GAAO,CAAC,EAC9DE,EAAQD,EAAU,SAClBE,EAAWF,EAAU,KACrBG,EAAOH,EAAU,KAUrB,GATI,OAAOE,GAAa,UAAY,CAACA,GAAY,OAAOD,GAAU,WAIlEA,EAAQA,EAAM,MAAM,IAAK,CAAC,EAAE,CAAC,EAG7BC,EAAWA,EAAS,QAAQ,QAAS,EAAE,EACvCC,EAAO,SAASA,CAAI,GAAKR,GAAcM,CAAK,GAAK,EAC7C,CAACG,GAAYF,EAAUC,CAAI,GAC7B,MAAO,GAGT,IAAIE,EACFC,GAAO,cAAgBL,EAAQ,QAAQ,GACvCK,GAAOL,EAAQ,QAAQ,GACvBK,GAAO,kBAAkB,GACzBA,GAAO,WAAW,EACpB,OAAID,GAASA,EAAM,QAAQ,KAAK,IAAM,KAEpCA,EAAQJ,EAAQ,MAAQI,GAEnBA,CACT,CAUA,SAASD,GAAYF,EAAUC,EAAM,CACnC,IAAII,GACDD,GAAO,qBAAqB,GAAKA,GAAO,UAAU,GAAG,YAAY,EACpE,OAAKC,EAGDA,IAAa,IACR,GAGFA,EAAS,MAAM,OAAO,EAAE,MAAM,SAASF,EAAO,CACnD,GAAI,CAACA,EACH,MAAO,GAET,IAAIG,EAAcH,EAAM,MAAM,cAAc,EACxCI,EAAsBD,EAAcA,EAAY,CAAC,EAAIH,EACrDK,EAAkBF,EAAc,SAASA,EAAY,CAAC,CAAC,EAAI,EAC/D,OAAIE,GAAmBA,IAAoBP,EAClC,GAGJ,QAAQ,KAAKM,CAAmB,GAKjCA,EAAoB,OAAO,CAAC,IAAM,MAEpCA,EAAsBA,EAAoB,MAAM,CAAC,GAG5C,CAACb,GAAe,KAAKM,EAAUO,CAAmB,GARhDP,IAAaO,CASxB,CAAC,EA5BQ,EA6BX,CASA,SAASH,GAAOK,EAAK,CACnB,OAAO,QAAQ,IAAIA,EAAI,YAAY,CAAC,GAAK,QAAQ,IAAIA,EAAI,YAAY,CAAC,GAAK,EAC7E,CAEAlB,GAAQ,eAAiBK,KC3GzB,IAAAc,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAIA,IAAIC,GAAI,IACJC,GAAID,GAAI,GACRE,GAAID,GAAI,GACRE,GAAID,GAAI,GACRE,GAAID,GAAI,EACRE,GAAIF,GAAI,OAgBZJ,GAAO,QAAU,SAAUO,EAAKC,EAAS,CACvCA,EAAUA,GAAW,CAAC,EACtB,IAAIC,EAAO,OAAOF,EAClB,GAAIE,IAAS,UAAYF,EAAI,OAAS,EACpC,OAAOG,GAAMH,CAAG,EACX,GAAIE,IAAS,UAAY,SAASF,CAAG,EAC1C,OAAOC,EAAQ,KAAOG,GAAQJ,CAAG,EAAIK,GAASL,CAAG,EAEnD,MAAM,IAAI,MACR,wDACE,KAAK,UAAUA,CAAG,CACtB,CACF,EAUA,SAASG,GAAMG,EAAK,CAElB,GADAA,EAAM,OAAOA,CAAG,EACZ,EAAAA,EAAI,OAAS,KAGjB,KAAIC,EAAQ,mIAAmI,KAC7ID,CACF,EACA,GAAKC,EAGL,KAAI,EAAI,WAAWA,EAAM,CAAC,CAAC,EACvBL,GAAQK,EAAM,CAAC,GAAK,MAAM,YAAY,EAC1C,OAAQL,EAAM,CACZ,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAO,EAAIH,GACb,IAAK,QACL,IAAK,OACL,IAAK,IACH,OAAO,EAAID,GACb,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,EAAID,GACb,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAO,EAAID,GACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,EAAID,GACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO,EAAID,GACb,IAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACH,OAAO,EACT,QACE,MACJ,GACF,CAUA,SAASW,GAASG,EAAI,CACpB,IAAIC,EAAQ,KAAK,IAAID,CAAE,EACvB,OAAIC,GAASZ,GACJ,KAAK,MAAMW,EAAKX,EAAC,EAAI,IAE1BY,GAASb,GACJ,KAAK,MAAMY,EAAKZ,EAAC,EAAI,IAE1Ba,GAASd,GACJ,KAAK,MAAMa,EAAKb,EAAC,EAAI,IAE1Bc,GAASf,GACJ,KAAK,MAAMc,EAAKd,EAAC,EAAI,IAEvBc,EAAK,IACd,CAUA,SAASJ,GAAQI,EAAI,CACnB,IAAIC,EAAQ,KAAK,IAAID,CAAE,EACvB,OAAIC,GAASZ,GACJa,GAAOF,EAAIC,EAAOZ,GAAG,KAAK,EAE/BY,GAASb,GACJc,GAAOF,EAAIC,EAAOb,GAAG,MAAM,EAEhCa,GAASd,GACJe,GAAOF,EAAIC,EAAOd,GAAG,QAAQ,EAElCc,GAASf,GACJgB,GAAOF,EAAIC,EAAOf,GAAG,QAAQ,EAE/Bc,EAAK,KACd,CAMA,SAASE,GAAOF,EAAIC,EAAO,EAAGE,EAAM,CAClC,IAAIC,EAAWH,GAAS,EAAI,IAC5B,OAAO,KAAK,MAAMD,EAAK,CAAC,EAAI,IAAMG,GAAQC,EAAW,IAAM,GAC7D,ICjKA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMA,SAASC,GAAMC,EAAK,CACnBC,EAAY,MAAQA,EACpBA,EAAY,QAAUA,EACtBA,EAAY,OAASC,EACrBD,EAAY,QAAUE,EACtBF,EAAY,OAASG,EACrBH,EAAY,QAAUI,EACtBJ,EAAY,SAAW,KACvBA,EAAY,QAAUK,EAEtB,OAAO,KAAKN,CAAG,EAAE,QAAQO,GAAO,CAC/BN,EAAYM,CAAG,EAAIP,EAAIO,CAAG,CAC3B,CAAC,EAMDN,EAAY,MAAQ,CAAC,EACrBA,EAAY,MAAQ,CAAC,EAOrBA,EAAY,WAAa,CAAC,EAQ1B,SAASO,EAAYC,EAAW,CAC/B,IAAIC,EAAO,EAEX,QAASC,EAAI,EAAGA,EAAIF,EAAU,OAAQE,IACrCD,GAASA,GAAQ,GAAKA,EAAQD,EAAU,WAAWE,CAAC,EACpDD,GAAQ,EAGT,OAAOT,EAAY,OAAO,KAAK,IAAIS,CAAI,EAAIT,EAAY,OAAO,MAAM,CACrE,CACAA,EAAY,YAAcO,EAS1B,SAASP,EAAYQ,EAAW,CAC/B,IAAIG,EACAC,EAAiB,KACjBC,EACAC,EAEJ,SAASC,KAASC,EAAM,CAEvB,GAAI,CAACD,EAAM,QACV,OAGD,IAAME,EAAOF,EAGPG,EAAO,OAAO,IAAI,IAAM,EACxBC,EAAKD,GAAQP,GAAYO,GAC/BD,EAAK,KAAOE,EACZF,EAAK,KAAON,EACZM,EAAK,KAAOC,EACZP,EAAWO,EAEXF,EAAK,CAAC,EAAIhB,EAAY,OAAOgB,EAAK,CAAC,CAAC,EAEhC,OAAOA,EAAK,CAAC,GAAM,UAEtBA,EAAK,QAAQ,IAAI,EAIlB,IAAII,EAAQ,EACZJ,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAE,QAAQ,gBAAiB,CAACK,EAAOC,IAAW,CAE7D,GAAID,IAAU,KACb,MAAO,IAERD,IACA,IAAMG,EAAYvB,EAAY,WAAWsB,CAAM,EAC/C,GAAI,OAAOC,GAAc,WAAY,CACpC,IAAMC,EAAMR,EAAKI,CAAK,EACtBC,EAAQE,EAAU,KAAKN,EAAMO,CAAG,EAGhCR,EAAK,OAAOI,EAAO,CAAC,EACpBA,GACD,CACA,OAAOC,CACR,CAAC,EAGDrB,EAAY,WAAW,KAAKiB,EAAMD,CAAI,GAExBC,EAAK,KAAOjB,EAAY,KAChC,MAAMiB,EAAMD,CAAI,CACvB,CAEA,OAAAD,EAAM,UAAYP,EAClBO,EAAM,UAAYf,EAAY,UAAU,EACxCe,EAAM,MAAQf,EAAY,YAAYQ,CAAS,EAC/CO,EAAM,OAASU,EACfV,EAAM,QAAUf,EAAY,QAE5B,OAAO,eAAee,EAAO,UAAW,CACvC,WAAY,GACZ,aAAc,GACd,IAAK,IACAH,IAAmB,KACfA,GAEJC,IAAoBb,EAAY,aACnCa,EAAkBb,EAAY,WAC9Bc,EAAed,EAAY,QAAQQ,CAAS,GAGtCM,GAER,IAAKY,GAAK,CACTd,EAAiBc,CAClB,CACD,CAAC,EAGG,OAAO1B,EAAY,MAAS,YAC/BA,EAAY,KAAKe,CAAK,EAGhBA,CACR,CAEA,SAASU,EAAOjB,EAAWmB,EAAW,CACrC,IAAMC,EAAW5B,EAAY,KAAK,WAAa,OAAO2B,EAAc,IAAc,IAAMA,GAAanB,CAAS,EAC9G,OAAAoB,EAAS,IAAM,KAAK,IACbA,CACR,CASA,SAASzB,EAAO0B,EAAY,CAC3B7B,EAAY,KAAK6B,CAAU,EAC3B7B,EAAY,WAAa6B,EAEzB7B,EAAY,MAAQ,CAAC,EACrBA,EAAY,MAAQ,CAAC,EAErB,IAAM8B,GAAS,OAAOD,GAAe,SAAWA,EAAa,IAC3D,KAAK,EACL,QAAQ,OAAQ,GAAG,EACnB,MAAM,GAAG,EACT,OAAO,OAAO,EAEhB,QAAWE,KAAMD,EACZC,EAAG,CAAC,IAAM,IACb/B,EAAY,MAAM,KAAK+B,EAAG,MAAM,CAAC,CAAC,EAElC/B,EAAY,MAAM,KAAK+B,CAAE,CAG5B,CAUA,SAASC,EAAgBC,EAAQC,EAAU,CAC1C,IAAIC,EAAc,EACdC,EAAgB,EAChBC,EAAY,GACZC,EAAa,EAEjB,KAAOH,EAAcF,EAAO,QAC3B,GAAIG,EAAgBF,EAAS,SAAWA,EAASE,CAAa,IAAMH,EAAOE,CAAW,GAAKD,EAASE,CAAa,IAAM,KAElHF,EAASE,CAAa,IAAM,KAC/BC,EAAYD,EACZE,EAAaH,EACbC,MAEAD,IACAC,aAESC,IAAc,GAExBD,EAAgBC,EAAY,EAC5BC,IACAH,EAAcG,MAEd,OAAO,GAKT,KAAOF,EAAgBF,EAAS,QAAUA,EAASE,CAAa,IAAM,KACrEA,IAGD,OAAOA,IAAkBF,EAAS,MACnC,CAQA,SAAShC,GAAU,CAClB,IAAM2B,EAAa,CAClB,GAAG7B,EAAY,MACf,GAAGA,EAAY,MAAM,IAAIQ,GAAa,IAAMA,CAAS,CACtD,EAAE,KAAK,GAAG,EACV,OAAAR,EAAY,OAAO,EAAE,EACd6B,CACR,CASA,SAASzB,EAAQmC,EAAM,CACtB,QAAWC,KAAQxC,EAAY,MAC9B,GAAIgC,EAAgBO,EAAMC,CAAI,EAC7B,MAAO,GAIT,QAAWT,KAAM/B,EAAY,MAC5B,GAAIgC,EAAgBO,EAAMR,CAAE,EAC3B,MAAO,GAIT,MAAO,EACR,CASA,SAAS9B,EAAOuB,EAAK,CACpB,OAAIA,aAAe,MACXA,EAAI,OAASA,EAAI,QAElBA,CACR,CAMA,SAASnB,GAAU,CAClB,QAAQ,KAAK,uIAAuI,CACrJ,CAEA,OAAAL,EAAY,OAAOA,EAAY,KAAK,CAAC,EAE9BA,CACR,CAEAH,GAAO,QAAUC,KCnSjB,IAAA2C,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAMAD,GAAQ,WAAaE,GACrBF,GAAQ,KAAOG,GACfH,GAAQ,KAAOI,GACfJ,GAAQ,UAAYK,GACpBL,GAAQ,QAAUM,GAAa,EAC/BN,GAAQ,SAAW,IAAM,CACxB,IAAIO,EAAS,GAEb,MAAO,IAAM,CACPA,IACJA,EAAS,GACT,QAAQ,KAAK,uIAAuI,EAEtJ,CACD,GAAG,EAMHP,GAAQ,OAAS,CAChB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACD,EAWA,SAASK,IAAY,CAIpB,GAAI,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,QAAQ,OAAS,YAAc,OAAO,QAAQ,QAC5G,MAAO,GAIR,GAAI,OAAO,UAAc,KAAe,UAAU,WAAa,UAAU,UAAU,YAAY,EAAE,MAAM,uBAAuB,EAC7H,MAAO,GAGR,IAAIG,EAKJ,OAAQ,OAAO,SAAa,KAAe,SAAS,iBAAmB,SAAS,gBAAgB,OAAS,SAAS,gBAAgB,MAAM,kBAEtI,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,QAAQ,SAAY,OAAO,QAAQ,WAAa,OAAO,QAAQ,QAG1H,OAAO,UAAc,KAAe,UAAU,YAAcA,EAAI,UAAU,UAAU,YAAY,EAAE,MAAM,gBAAgB,IAAM,SAASA,EAAE,CAAC,EAAG,EAAE,GAAK,IAEpJ,OAAO,UAAc,KAAe,UAAU,WAAa,UAAU,UAAU,YAAY,EAAE,MAAM,oBAAoB,CAC1H,CAQA,SAASN,GAAWO,EAAM,CAQzB,GAPAA,EAAK,CAAC,GAAK,KAAK,UAAY,KAAO,IAClC,KAAK,WACJ,KAAK,UAAY,MAAQ,KAC1BA,EAAK,CAAC,GACL,KAAK,UAAY,MAAQ,KAC1B,IAAMR,GAAO,QAAQ,SAAS,KAAK,IAAI,EAEpC,CAAC,KAAK,UACT,OAGD,IAAMS,EAAI,UAAY,KAAK,MAC3BD,EAAK,OAAO,EAAG,EAAGC,EAAG,gBAAgB,EAKrC,IAAIC,EAAQ,EACRC,EAAQ,EACZH,EAAK,CAAC,EAAE,QAAQ,cAAeI,GAAS,CACnCA,IAAU,OAGdF,IACIE,IAAU,OAGbD,EAAQD,GAEV,CAAC,EAEDF,EAAK,OAAOG,EAAO,EAAGF,CAAC,CACxB,CAUAV,GAAQ,IAAM,QAAQ,OAAS,QAAQ,MAAQ,IAAM,CAAC,GAQtD,SAASG,GAAKW,EAAY,CACzB,GAAI,CACCA,EACHd,GAAQ,QAAQ,QAAQ,QAASc,CAAU,EAE3Cd,GAAQ,QAAQ,WAAW,OAAO,CAEpC,MAAgB,CAGhB,CACD,CAQA,SAASI,IAAO,CACf,IAAIW,EACJ,GAAI,CACHA,EAAIf,GAAQ,QAAQ,QAAQ,OAAO,GAAKA,GAAQ,QAAQ,QAAQ,OAAO,CACxE,MAAgB,CAGhB,CAGA,MAAI,CAACe,GAAK,OAAO,QAAY,KAAe,QAAS,UACpDA,EAAI,QAAQ,IAAI,OAGVA,CACR,CAaA,SAAST,IAAe,CACvB,GAAI,CAGH,OAAO,YACR,MAAgB,CAGhB,CACD,CAEAL,GAAO,QAAU,KAAoBD,EAAO,EAE5C,GAAM,CAAC,WAAAgB,EAAU,EAAIf,GAAO,QAM5Be,GAAW,EAAI,SAAUC,EAAG,CAC3B,GAAI,CACH,OAAO,KAAK,UAAUA,CAAC,CACxB,OAASC,EAAO,CACf,MAAO,+BAAiCA,EAAM,OAC/C,CACD,IC/QA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEAA,GAAO,QAAU,CAACC,EAAMC,EAAO,QAAQ,OAAS,CAC/C,IAAMC,EAASF,EAAK,WAAW,GAAG,EAAI,GAAMA,EAAK,SAAW,EAAI,IAAM,KAChEG,EAAWF,EAAK,QAAQC,EAASF,CAAI,EACrCI,EAAqBH,EAAK,QAAQ,IAAI,EAC5C,OAAOE,IAAa,KAAOC,IAAuB,IAAMD,EAAWC,EACpE,ICPA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACA,IAAMC,GAAK,QAAQ,IAAI,EACjBC,GAAM,QAAQ,KAAK,EACnBC,GAAU,KAEV,CAAC,IAAAC,CAAG,EAAI,QAEVC,GACAF,GAAQ,UAAU,GACrBA,GAAQ,WAAW,GACnBA,GAAQ,aAAa,GACrBA,GAAQ,aAAa,EACrBE,GAAa,GACHF,GAAQ,OAAO,GACzBA,GAAQ,QAAQ,GAChBA,GAAQ,YAAY,GACpBA,GAAQ,cAAc,KACtBE,GAAa,GAGV,gBAAiBD,IAChBA,EAAI,cAAgB,OACvBC,GAAa,EACHD,EAAI,cAAgB,QAC9BC,GAAa,EAEbA,GAAaD,EAAI,YAAY,SAAW,EAAI,EAAI,KAAK,IAAI,SAASA,EAAI,YAAa,EAAE,EAAG,CAAC,GAI3F,SAASE,GAAeC,EAAO,CAC9B,OAAIA,IAAU,EACN,GAGD,CACN,MAAAA,EACA,SAAU,GACV,OAAQA,GAAS,EACjB,OAAQA,GAAS,CAClB,CACD,CAEA,SAASC,GAAcC,EAAYC,EAAa,CAC/C,GAAIL,KAAe,EAClB,MAAO,GAGR,GAAIF,GAAQ,WAAW,GACtBA,GAAQ,YAAY,GACpBA,GAAQ,iBAAiB,EACzB,MAAO,GAGR,GAAIA,GAAQ,WAAW,EACtB,MAAO,GAGR,GAAIM,GAAc,CAACC,GAAeL,KAAe,OAChD,MAAO,GAGR,IAAMM,EAAMN,IAAc,EAE1B,GAAID,EAAI,OAAS,OAChB,OAAOO,EAGR,GAAI,QAAQ,WAAa,QAAS,CAGjC,IAAMC,EAAYX,GAAG,QAAQ,EAAE,MAAM,GAAG,EACxC,OACC,OAAOW,EAAU,CAAC,CAAC,GAAK,IACxB,OAAOA,EAAU,CAAC,CAAC,GAAK,MAEjB,OAAOA,EAAU,CAAC,CAAC,GAAK,MAAQ,EAAI,EAGrC,CACR,CAEA,GAAI,OAAQR,EACX,MAAI,CAAC,SAAU,WAAY,WAAY,YAAa,iBAAkB,WAAW,EAAE,KAAKS,GAAQA,KAAQT,CAAG,GAAKA,EAAI,UAAY,WACxH,EAGDO,EAGR,GAAI,qBAAsBP,EACzB,MAAO,gCAAgC,KAAKA,EAAI,gBAAgB,EAAI,EAAI,EAGzE,GAAIA,EAAI,YAAc,YACrB,MAAO,GAGR,GAAI,iBAAkBA,EAAK,CAC1B,IAAMU,EAAU,UAAUV,EAAI,sBAAwB,IAAI,MAAM,GAAG,EAAE,CAAC,EAAG,EAAE,EAE3E,OAAQA,EAAI,aAAc,CACzB,IAAK,YACJ,OAAOU,GAAW,EAAI,EAAI,EAC3B,IAAK,iBACJ,MAAO,EAET,CACD,CAEA,MAAI,iBAAiB,KAAKV,EAAI,IAAI,EAC1B,EAGJ,8DAA8D,KAAKA,EAAI,IAAI,GAI3E,cAAeA,EACX,EAGDO,CACR,CAEA,SAASI,GAAgBC,EAAQ,CAChC,IAAMT,EAAQC,GAAcQ,EAAQA,GAAUA,EAAO,KAAK,EAC1D,OAAOV,GAAeC,CAAK,CAC5B,CAEAP,GAAO,QAAU,CAChB,cAAee,GACf,OAAQT,GAAeE,GAAc,GAAMN,GAAI,OAAO,CAAC,CAAC,CAAC,EACzD,OAAQI,GAAeE,GAAc,GAAMN,GAAI,OAAO,CAAC,CAAC,CAAC,CAC1D,ICtIA,IAAAe,GAAAC,EAAA,CAAAC,EAAAC,KAAA,cAIA,IAAMC,GAAM,QAAQ,KAAK,EACnBC,GAAO,QAAQ,MAAM,EAM3BH,EAAQ,KAAOI,GACfJ,EAAQ,IAAMK,GACdL,EAAQ,WAAaM,GACrBN,EAAQ,KAAOO,GACfP,EAAQ,KAAOQ,GACfR,EAAQ,UAAYS,GACpBT,EAAQ,QAAUG,GAAK,UACtB,IAAM,CAAC,EACP,uIACD,EAMAH,EAAQ,OAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAElC,GAAI,CAGH,IAAMU,EAAgB,KAElBA,IAAkBA,EAAc,QAAUA,GAAe,OAAS,IACrEV,EAAQ,OAAS,CAChB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,EAEF,MAAgB,CAEhB,CAQAA,EAAQ,YAAc,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAOW,GAC9C,WAAW,KAAKA,CAAG,CAC1B,EAAE,OAAO,CAACC,EAAKD,IAAQ,CAEvB,IAAME,EAAOF,EACX,UAAU,CAAC,EACX,YAAY,EACZ,QAAQ,YAAa,CAACG,EAAGC,IAClBA,EAAE,YAAY,CACrB,EAGEC,EAAM,QAAQ,IAAIL,CAAG,EACzB,MAAI,2BAA2B,KAAKK,CAAG,EACtCA,EAAM,GACI,6BAA6B,KAAKA,CAAG,EAC/CA,EAAM,GACIA,IAAQ,OAClBA,EAAM,KAENA,EAAM,OAAOA,CAAG,EAGjBJ,EAAIC,CAAI,EAAIG,EACLJ,CACR,EAAG,CAAC,CAAC,EAML,SAASH,IAAY,CACpB,MAAO,WAAYT,EAAQ,YAC1B,EAAQA,EAAQ,YAAY,OAC5BE,GAAI,OAAO,QAAQ,OAAO,EAAE,CAC9B,CAQA,SAASI,GAAWW,EAAM,CACzB,GAAM,CAAC,UAAWC,EAAM,UAAAT,CAAS,EAAI,KAErC,GAAIA,EAAW,CACd,IAAMU,EAAI,KAAK,MACTC,EAAY,UAAcD,EAAI,EAAIA,EAAI,OAASA,GAC/CE,EAAS,KAAKD,CAAS,MAAMF,CAAI,WAEvCD,EAAK,CAAC,EAAII,EAASJ,EAAK,CAAC,EAAE,MAAM;AAAA,CAAI,EAAE,KAAK;AAAA,EAAOI,CAAM,EACzDJ,EAAK,KAAKG,EAAY,KAAOnB,GAAO,QAAQ,SAAS,KAAK,IAAI,EAAI,SAAW,CAC9E,MACCgB,EAAK,CAAC,EAAIK,GAAQ,EAAIJ,EAAO,IAAMD,EAAK,CAAC,CAE3C,CAEA,SAASK,IAAU,CAClB,OAAItB,EAAQ,YAAY,SAChB,GAED,IAAI,KAAK,EAAE,YAAY,EAAI,GACnC,CAMA,SAASK,MAAOY,EAAM,CACrB,OAAO,QAAQ,OAAO,MAAMd,GAAK,kBAAkBH,EAAQ,YAAa,GAAGiB,CAAI,EAAI;AAAA,CAAI,CACxF,CAQA,SAASV,GAAKgB,EAAY,CACrBA,EACH,QAAQ,IAAI,MAAQA,EAIpB,OAAO,QAAQ,IAAI,KAErB,CASA,SAASf,IAAO,CACf,OAAO,QAAQ,IAAI,KACpB,CASA,SAASJ,GAAKoB,EAAO,CACpBA,EAAM,YAAc,CAAC,EAErB,IAAMC,EAAO,OAAO,KAAKzB,EAAQ,WAAW,EAC5C,QAAS0B,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAChCF,EAAM,YAAYC,EAAKC,CAAC,CAAC,EAAI1B,EAAQ,YAAYyB,EAAKC,CAAC,CAAC,CAE1D,CAEAzB,GAAO,QAAU,KAAoBD,CAAO,EAE5C,GAAM,CAAC,WAAA2B,EAAU,EAAI1B,GAAO,QAM5B0B,GAAW,EAAI,SAAUC,EAAG,CAC3B,YAAK,YAAY,OAAS,KAAK,UACxBzB,GAAK,QAAQyB,EAAG,KAAK,WAAW,EACrC,MAAM;AAAA,CAAI,EACV,IAAIC,GAAOA,EAAI,KAAK,CAAC,EACrB,KAAK,GAAG,CACX,EAMAF,GAAW,EAAI,SAAUC,EAAG,CAC3B,YAAK,YAAY,OAAS,KAAK,UACxBzB,GAAK,QAAQyB,EAAG,KAAK,WAAW,CACxC,ICtQA,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAKI,OAAO,QAAY,KAAe,QAAQ,OAAS,YAAc,QAAQ,UAAY,IAAQ,QAAQ,OACxGA,GAAO,QAAU,KAEjBA,GAAO,QAAU,OCRlB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAEJD,GAAO,QAAU,UAAY,CAC3B,GAAI,CAACC,GAAO,CACV,GAAI,CAEFA,GAAQ,KAAiB,kBAAkB,CAC7C,MACc,CAAQ,CAClB,OAAOA,IAAU,aACnBA,GAAQ,UAAY,CAAQ,EAEhC,CACAA,GAAM,MAAM,KAAM,SAAS,CAC7B,ICdA,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,kBAAIC,GAAM,QAAQ,KAAK,EACnBC,GAAMD,GAAI,IACVE,GAAO,QAAQ,MAAM,EACrBC,GAAQ,QAAQ,OAAO,EACvBC,GAAW,QAAQ,QAAQ,EAAE,SAC7BC,GAAS,QAAQ,QAAQ,EACzBC,GAAQ,MAIX,UAAwC,CACvC,IAAIC,EAAgB,OAAO,QAAY,IACnCC,EAAmB,OAAO,OAAW,KAAe,OAAO,SAAa,IACxEC,EAAcC,GAAW,MAAM,iBAAiB,EAChD,CAACH,IAAkBC,GAAoB,CAACC,IAC1C,QAAQ,KAAK,sEAAsE,CAEvF,GAAE,EAGF,IAAIE,GAAe,GACnB,GAAI,CACFN,GAAO,IAAIJ,GAAI,EAAE,CAAC,CACpB,OACOW,EAAO,CACZD,GAAeC,EAAM,OAAS,iBAChC,CAGA,IAAIC,GAAqB,CACvB,OACA,OACA,WACA,OACA,OACA,WACA,OACA,WACA,QACA,SACA,MACF,EAGIC,GAAS,CAAC,QAAS,UAAW,UAAW,QAAS,SAAU,SAAS,EACrEC,GAAgB,OAAO,OAAO,IAAI,EACtCD,GAAO,QAAQ,SAAUE,EAAO,CAC9BD,GAAcC,CAAK,EAAI,SAAUC,EAAMC,EAAMC,EAAM,CACjD,KAAK,cAAc,KAAKH,EAAOC,EAAMC,EAAMC,CAAI,CACjD,CACF,CAAC,EAGD,IAAIC,GAAkBC,GACpB,kBACA,cACA,SACF,EACIC,GAAmBD,GACrB,6BACA,2BACF,EACIE,GAAwBF,GAC1B,4BACA,uCACAC,EACF,EACIE,GAA6BH,GAC/B,kCACA,8CACF,EACII,GAAqBJ,GACvB,6BACA,iBACF,EAGIK,GAAUtB,GAAS,UAAU,SAAWuB,GAG5C,SAASC,GAAoBC,EAASC,EAAkB,CAEtD1B,GAAS,KAAK,IAAI,EAClB,KAAK,iBAAiByB,CAAO,EAC7B,KAAK,SAAWA,EAChB,KAAK,OAAS,GACd,KAAK,QAAU,GACf,KAAK,eAAiB,EACtB,KAAK,WAAa,CAAC,EACnB,KAAK,mBAAqB,EAC1B,KAAK,oBAAsB,CAAC,EAGxBC,GACF,KAAK,GAAG,WAAYA,CAAgB,EAItC,IAAIC,EAAO,KACX,KAAK,kBAAoB,SAAUC,EAAU,CAC3C,GAAI,CACFD,EAAK,iBAAiBC,CAAQ,CAChC,OACOC,EAAO,CACZF,EAAK,KAAK,QAASE,aAAiBX,GAClCW,EAAQ,IAAIX,GAAiB,CAAE,MAAOW,CAAM,CAAC,CAAC,CAClD,CACF,EAGA,KAAK,gBAAgB,CACvB,CACAL,GAAoB,UAAY,OAAO,OAAOxB,GAAS,SAAS,EAEhEwB,GAAoB,UAAU,MAAQ,UAAY,CAChDM,GAAe,KAAK,eAAe,EACnC,KAAK,gBAAgB,MAAM,EAC3B,KAAK,KAAK,OAAO,CACnB,EAEAN,GAAoB,UAAU,QAAU,SAAUhB,EAAO,CACvD,OAAAsB,GAAe,KAAK,gBAAiBtB,CAAK,EAC1Cc,GAAQ,KAAK,KAAMd,CAAK,EACjB,IACT,EAGAgB,GAAoB,UAAU,MAAQ,SAAUO,EAAMC,EAAUC,EAAU,CAExE,GAAI,KAAK,QACP,MAAM,IAAIZ,GAIZ,GAAI,CAACa,GAASH,CAAI,GAAK,CAACI,GAASJ,CAAI,EACnC,MAAM,IAAI,UAAU,+CAA+C,EASrE,GAPIzB,GAAW0B,CAAQ,IACrBC,EAAWD,EACXA,EAAW,MAKTD,EAAK,SAAW,EAAG,CACjBE,GACFA,EAAS,EAEX,MACF,CAEI,KAAK,mBAAqBF,EAAK,QAAU,KAAK,SAAS,eACzD,KAAK,oBAAsBA,EAAK,OAChC,KAAK,oBAAoB,KAAK,CAAE,KAAMA,EAAM,SAAUC,CAAS,CAAC,EAChE,KAAK,gBAAgB,MAAMD,EAAMC,EAAUC,CAAQ,IAInD,KAAK,KAAK,QAAS,IAAIb,EAA4B,EACnD,KAAK,MAAM,EAEf,EAGAI,GAAoB,UAAU,IAAM,SAAUO,EAAMC,EAAUC,EAAU,CAYtE,GAVI3B,GAAWyB,CAAI,GACjBE,EAAWF,EACXA,EAAOC,EAAW,MAEX1B,GAAW0B,CAAQ,IAC1BC,EAAWD,EACXA,EAAW,MAIT,CAACD,EACH,KAAK,OAAS,KAAK,QAAU,GAC7B,KAAK,gBAAgB,IAAI,KAAM,KAAME,CAAQ,MAE1C,CACH,IAAIN,EAAO,KACPS,EAAiB,KAAK,gBAC1B,KAAK,MAAML,EAAMC,EAAU,UAAY,CACrCL,EAAK,OAAS,GACdS,EAAe,IAAI,KAAM,KAAMH,CAAQ,CACzC,CAAC,EACD,KAAK,QAAU,EACjB,CACF,EAGAT,GAAoB,UAAU,UAAY,SAAUa,EAAMC,EAAO,CAC/D,KAAK,SAAS,QAAQD,CAAI,EAAIC,EAC9B,KAAK,gBAAgB,UAAUD,EAAMC,CAAK,CAC5C,EAGAd,GAAoB,UAAU,aAAe,SAAUa,EAAM,CAC3D,OAAO,KAAK,SAAS,QAAQA,CAAI,EACjC,KAAK,gBAAgB,aAAaA,CAAI,CACxC,EAGAb,GAAoB,UAAU,WAAa,SAAUe,EAAON,EAAU,CACpE,IAAIN,EAAO,KAGX,SAASa,EAAiBC,EAAQ,CAChCA,EAAO,WAAWF,CAAK,EACvBE,EAAO,eAAe,UAAWA,EAAO,OAAO,EAC/CA,EAAO,YAAY,UAAWA,EAAO,OAAO,CAC9C,CAGA,SAASC,EAAWD,EAAQ,CACtBd,EAAK,UACP,aAAaA,EAAK,QAAQ,EAE5BA,EAAK,SAAW,WAAW,UAAY,CACrCA,EAAK,KAAK,SAAS,EACnBgB,EAAW,CACb,EAAGJ,CAAK,EACRC,EAAiBC,CAAM,CACzB,CAGA,SAASE,GAAa,CAEhBhB,EAAK,WACP,aAAaA,EAAK,QAAQ,EAC1BA,EAAK,SAAW,MAIlBA,EAAK,eAAe,QAASgB,CAAU,EACvChB,EAAK,eAAe,QAASgB,CAAU,EACvChB,EAAK,eAAe,WAAYgB,CAAU,EAC1ChB,EAAK,eAAe,QAASgB,CAAU,EACnCV,GACFN,EAAK,eAAe,UAAWM,CAAQ,EAEpCN,EAAK,QACRA,EAAK,gBAAgB,eAAe,SAAUe,CAAU,CAE5D,CAGA,OAAIT,GACF,KAAK,GAAG,UAAWA,CAAQ,EAIzB,KAAK,OACPS,EAAW,KAAK,MAAM,EAGtB,KAAK,gBAAgB,KAAK,SAAUA,CAAU,EAIhD,KAAK,GAAG,SAAUF,CAAgB,EAClC,KAAK,GAAG,QAASG,CAAU,EAC3B,KAAK,GAAG,QAASA,CAAU,EAC3B,KAAK,GAAG,WAAYA,CAAU,EAC9B,KAAK,GAAG,QAASA,CAAU,EAEpB,IACT,EAGA,CACE,eAAgB,YAChB,aAAc,oBAChB,EAAE,QAAQ,SAAUC,EAAQ,CAC1BpB,GAAoB,UAAUoB,CAAM,EAAI,SAAUC,EAAGC,EAAG,CACtD,OAAO,KAAK,gBAAgBF,CAAM,EAAEC,EAAGC,CAAC,CAC1C,CACF,CAAC,EAGD,CAAC,UAAW,aAAc,QAAQ,EAAE,QAAQ,SAAUC,EAAU,CAC9D,OAAO,eAAevB,GAAoB,UAAWuB,EAAU,CAC7D,IAAK,UAAY,CAAE,OAAO,KAAK,gBAAgBA,CAAQ,CAAG,CAC5D,CAAC,CACH,CAAC,EAEDvB,GAAoB,UAAU,iBAAmB,SAAUC,EAAS,CAkBlE,GAhBKA,EAAQ,UACXA,EAAQ,QAAU,CAAC,GAMjBA,EAAQ,OAELA,EAAQ,WACXA,EAAQ,SAAWA,EAAQ,MAE7B,OAAOA,EAAQ,MAIb,CAACA,EAAQ,UAAYA,EAAQ,KAAM,CACrC,IAAIuB,EAAYvB,EAAQ,KAAK,QAAQ,GAAG,EACpCuB,EAAY,EACdvB,EAAQ,SAAWA,EAAQ,MAG3BA,EAAQ,SAAWA,EAAQ,KAAK,UAAU,EAAGuB,CAAS,EACtDvB,EAAQ,OAASA,EAAQ,KAAK,UAAUuB,CAAS,EAErD,CACF,EAIAxB,GAAoB,UAAU,gBAAkB,UAAY,CAE1D,IAAIyB,EAAW,KAAK,SAAS,SACzBC,EAAiB,KAAK,SAAS,gBAAgBD,CAAQ,EAC3D,GAAI,CAACC,EACH,MAAM,IAAI,UAAU,wBAA0BD,CAAQ,EAKxD,GAAI,KAAK,SAAS,OAAQ,CACxB,IAAIE,EAASF,EAAS,MAAM,EAAG,EAAE,EACjC,KAAK,SAAS,MAAQ,KAAK,SAAS,OAAOE,CAAM,CACnD,CAGA,IAAIC,EAAU,KAAK,gBACbF,EAAe,QAAQ,KAAK,SAAU,KAAK,iBAAiB,EAClEE,EAAQ,cAAgB,KACxB,QAASxC,KAASF,GAChB0C,EAAQ,GAAGxC,EAAOD,GAAcC,CAAK,CAAC,EAaxC,GARA,KAAK,YAAc,MAAM,KAAK,KAAK,SAAS,IAAI,EAC9ChB,GAAI,OAAO,KAAK,QAAQ,EAGxB,KAAK,SAAS,KAIZ,KAAK,YAAa,CAEpB,IAAIyD,EAAI,EACJ1B,EAAO,KACP2B,EAAU,KAAK,qBAClB,SAASC,EAAU/C,EAAO,CAGzB,GAAI4C,IAAYzB,EAAK,gBAGnB,GAAInB,EACFmB,EAAK,KAAK,QAASnB,CAAK,UAGjB6C,EAAIC,EAAQ,OAAQ,CAC3B,IAAIE,EAASF,EAAQD,GAAG,EAEnBD,EAAQ,UACXA,EAAQ,MAAMI,EAAO,KAAMA,EAAO,SAAUD,CAAS,CAEzD,MAES5B,EAAK,QACZyB,EAAQ,IAAI,CAGlB,GAAE,CACJ,CACF,EAGA5B,GAAoB,UAAU,iBAAmB,SAAUI,EAAU,CAEnE,IAAI6B,EAAa7B,EAAS,WACtB,KAAK,SAAS,gBAChB,KAAK,WAAW,KAAK,CACnB,IAAK,KAAK,YACV,QAASA,EAAS,QAClB,WAAY6B,CACd,CAAC,EAWH,IAAIC,EAAW9B,EAAS,QAAQ,SAChC,GAAI,CAAC8B,GAAY,KAAK,SAAS,kBAAoB,IAC/CD,EAAa,KAAOA,GAAc,IAAK,CACzC7B,EAAS,YAAc,KAAK,YAC5BA,EAAS,UAAY,KAAK,WAC1B,KAAK,KAAK,WAAYA,CAAQ,EAG9B,KAAK,oBAAsB,CAAC,EAC5B,MACF,CASA,GANAE,GAAe,KAAK,eAAe,EAEnCF,EAAS,QAAQ,EAIb,EAAE,KAAK,eAAiB,KAAK,SAAS,aACxC,MAAM,IAAIT,GAIZ,IAAIwC,EACAC,EAAiB,KAAK,SAAS,eAC/BA,IACFD,EAAiB,OAAO,OAAO,CAE7B,KAAM/B,EAAS,IAAI,UAAU,MAAM,CACrC,EAAG,KAAK,SAAS,OAAO,GAO1B,IAAIgB,EAAS,KAAK,SAAS,SACtBa,IAAe,KAAOA,IAAe,MAAQ,KAAK,SAAS,SAAW,QAKtEA,IAAe,KAAQ,CAAC,iBAAiB,KAAK,KAAK,SAAS,MAAM,KACrE,KAAK,SAAS,OAAS,MAEvB,KAAK,oBAAsB,CAAC,EAC5BI,GAAsB,aAAc,KAAK,SAAS,OAAO,GAI3D,IAAIC,EAAoBD,GAAsB,UAAW,KAAK,SAAS,OAAO,EAG1EE,EAAkBC,GAAS,KAAK,WAAW,EAC3CC,EAAcH,GAAqBC,EAAgB,KACnDG,EAAa,QAAQ,KAAKR,CAAQ,EAAI,KAAK,YAC7C9D,GAAI,OAAO,OAAO,OAAOmE,EAAiB,CAAE,KAAME,CAAY,CAAC,CAAC,EAG9DE,EAAcC,GAAWV,EAAUQ,CAAU,EAejD,GAdAhE,GAAM,iBAAkBiE,EAAY,IAAI,EACxC,KAAK,YAAc,GACnBE,GAAgBF,EAAa,KAAK,QAAQ,GAItCA,EAAY,WAAaJ,EAAgB,UAC1CI,EAAY,WAAa,UACzBA,EAAY,OAASF,GACrB,CAACK,GAAYH,EAAY,KAAMF,CAAW,IAC3CJ,GAAsB,yCAA0C,KAAK,SAAS,OAAO,EAInFvD,GAAWsD,CAAc,EAAG,CAC9B,IAAIW,EAAkB,CACpB,QAAS3C,EAAS,QAClB,WAAY6B,CACd,EACIe,EAAiB,CACnB,IAAKN,EACL,OAAQtB,EACR,QAASe,CACX,EACAC,EAAe,KAAK,SAAUW,EAAiBC,CAAc,EAC7D,KAAK,iBAAiB,KAAK,QAAQ,CACrC,CAGA,KAAK,gBAAgB,CACvB,EAGA,SAASC,GAAKC,EAAW,CAEvB,IAAIhF,EAAU,CACZ,aAAc,GACd,cAAe,QACjB,EAGIiF,EAAkB,CAAC,EACvB,cAAO,KAAKD,CAAS,EAAE,QAAQ,SAAUvB,EAAQ,CAC/C,IAAIF,EAAWE,EAAS,IACpBD,EAAiByB,EAAgB1B,CAAQ,EAAIyB,EAAUvB,CAAM,EAC7DyB,EAAkBlF,EAAQyD,CAAM,EAAI,OAAO,OAAOD,CAAc,EAGpE,SAASE,EAAQyB,EAAOpD,EAASQ,EAAU,CAEzC,OAAI6C,GAAMD,CAAK,EACbA,EAAQR,GAAgBQ,CAAK,EAEtB3C,GAAS2C,CAAK,EACrBA,EAAQR,GAAgBL,GAASa,CAAK,CAAC,GAGvC5C,EAAWR,EACXA,EAAUsD,GAAYF,CAAK,EAC3BA,EAAQ,CAAE,SAAU5B,CAAS,GAE3B3C,GAAWmB,CAAO,IACpBQ,EAAWR,EACXA,EAAU,MAIZA,EAAU,OAAO,OAAO,CACtB,aAAc/B,EAAQ,aACtB,cAAeA,EAAQ,aACzB,EAAGmF,EAAOpD,CAAO,EACjBA,EAAQ,gBAAkBkD,EACtB,CAACzC,GAAST,EAAQ,IAAI,GAAK,CAACS,GAAST,EAAQ,QAAQ,IACvDA,EAAQ,SAAW,OAGrBxB,GAAO,MAAMwB,EAAQ,SAAUwB,EAAU,mBAAmB,EAC5D/C,GAAM,UAAWuB,CAAO,EACjB,IAAID,GAAoBC,EAASQ,CAAQ,CAClD,CAGA,SAAS+C,EAAIH,EAAOpD,EAASQ,EAAU,CACrC,IAAIgD,EAAiBL,EAAgB,QAAQC,EAAOpD,EAASQ,CAAQ,EACrE,OAAAgD,EAAe,IAAI,EACZA,CACT,CAGA,OAAO,iBAAiBL,EAAiB,CACvC,QAAS,CAAE,MAAOxB,EAAS,aAAc,GAAM,WAAY,GAAM,SAAU,EAAK,EAChF,IAAK,CAAE,MAAO4B,EAAK,aAAc,GAAM,WAAY,GAAM,SAAU,EAAK,CAC1E,CAAC,CACH,CAAC,EACMtF,CACT,CAEA,SAAS6B,IAAO,CAAc,CAE9B,SAASyC,GAASa,EAAO,CACvB,IAAIK,EAEJ,GAAI3E,GACF2E,EAAS,IAAIrF,GAAIgF,CAAK,UAItBK,EAASH,GAAYnF,GAAI,MAAMiF,CAAK,CAAC,EACjC,CAAC3C,GAASgD,EAAO,QAAQ,EAC3B,MAAM,IAAIlE,GAAgB,CAAE,MAAA6D,CAAM,CAAC,EAGvC,OAAOK,CACT,CAEA,SAASd,GAAWe,EAAUC,EAAM,CAElC,OAAO7E,GAAe,IAAIV,GAAIsF,EAAUC,CAAI,EAAIpB,GAASpE,GAAI,QAAQwF,EAAMD,CAAQ,CAAC,CACtF,CAEA,SAASJ,GAAYF,EAAO,CAC1B,GAAI,MAAM,KAAKA,EAAM,QAAQ,GAAK,CAAC,oBAAoB,KAAKA,EAAM,QAAQ,EACxE,MAAM,IAAI7D,GAAgB,CAAE,MAAO6D,EAAM,MAAQA,CAAM,CAAC,EAE1D,GAAI,MAAM,KAAKA,EAAM,IAAI,GAAK,CAAC,2BAA2B,KAAKA,EAAM,IAAI,EACvE,MAAM,IAAI7D,GAAgB,CAAE,MAAO6D,EAAM,MAAQA,CAAM,CAAC,EAE1D,OAAOA,CACT,CAEA,SAASR,GAAgBgB,EAAWC,EAAQ,CAC1C,IAAIC,EAASD,GAAU,CAAC,EACxB,QAASE,KAAO/E,GACd8E,EAAOC,CAAG,EAAIH,EAAUG,CAAG,EAI7B,OAAID,EAAO,SAAS,WAAW,GAAG,IAChCA,EAAO,SAAWA,EAAO,SAAS,MAAM,EAAG,EAAE,GAG3CA,EAAO,OAAS,KAClBA,EAAO,KAAO,OAAOA,EAAO,IAAI,GAGlCA,EAAO,KAAOA,EAAO,OAASA,EAAO,SAAWA,EAAO,OAASA,EAAO,SAEhEA,CACT,CAEA,SAAS1B,GAAsB4B,EAAOC,EAAS,CAC7C,IAAIC,EACJ,QAASC,KAAUF,EACbD,EAAM,KAAKG,CAAM,IACnBD,EAAYD,EAAQE,CAAM,EAC1B,OAAOF,EAAQE,CAAM,GAGzB,OAAQD,IAAc,MAAQ,OAAOA,EAAc,IACjD,OAAY,OAAOA,CAAS,EAAE,KAAK,CACvC,CAEA,SAAS1E,GAAgB4E,EAAMC,EAASC,EAAW,CAEjD,SAASC,EAAYC,EAAY,CAE3B3F,GAAW,MAAM,iBAAiB,GACpC,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAEhD,OAAO,OAAO,KAAM2F,GAAc,CAAC,CAAC,EACpC,KAAK,KAAOJ,EACZ,KAAK,QAAU,KAAK,MAAQC,EAAU,KAAO,KAAK,MAAM,QAAUA,CACpE,CAGA,OAAAE,EAAY,UAAY,IAAKD,GAAa,OAC1C,OAAO,iBAAiBC,EAAY,UAAW,CAC7C,YAAa,CACX,MAAOA,EACP,WAAY,EACd,EACA,KAAM,CACJ,MAAO,UAAYH,EAAO,IAC1B,WAAY,EACd,CACF,CAAC,EACMG,CACT,CAEA,SAASlE,GAAesB,EAAS5C,EAAO,CACtC,QAASI,KAASF,GAChB0C,EAAQ,eAAexC,EAAOD,GAAcC,CAAK,CAAC,EAEpDwC,EAAQ,GAAG,QAAS7B,EAAI,EACxB6B,EAAQ,QAAQ5C,CAAK,CACvB,CAEA,SAAS8D,GAAY4B,EAAWC,EAAQ,CACtClG,GAAOiC,GAASgE,CAAS,GAAKhE,GAASiE,CAAM,CAAC,EAC9C,IAAIC,EAAMF,EAAU,OAASC,EAAO,OAAS,EAC7C,OAAOC,EAAM,GAAKF,EAAUE,CAAG,IAAM,KAAOF,EAAU,SAASC,CAAM,CACvE,CAEA,SAASjE,GAASI,EAAO,CACvB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACvD,CAEA,SAAShC,GAAWgC,EAAO,CACzB,OAAO,OAAOA,GAAU,UAC1B,CAEA,SAASH,GAASG,EAAO,CACvB,OAAO,OAAOA,GAAU,UAAa,WAAYA,CACnD,CAEA,SAASwC,GAAMxC,EAAO,CACpB,OAAOzC,IAAOyC,aAAiBzC,EACjC,CAGAF,GAAO,QAAU8E,GAAK,CAAE,KAAM3E,GAAM,MAAOC,EAAM,CAAC,EAClDJ,GAAO,QAAQ,KAAO8E,8aCpqBP,SAAS4B,GAAKC,EAAIC,EAAS,CACxC,OAAO,UAAgB,CACrB,OAAOD,EAAG,MAAMC,EAAS,SAAS,CACtC,CACA,CCPA,GAAM,CAAC,SAAAC,EAAQ,EAAI,OAAO,UACpB,CAAC,eAAAC,EAAc,EAAI,OACnB,CAAC,SAAAC,GAAU,YAAAC,EAAW,EAAI,OAE1BC,IAAUC,GAASC,GAAS,CAC9B,IAAMC,EAAMP,GAAS,KAAKM,CAAK,EAC/B,OAAOD,EAAME,CAAG,IAAMF,EAAME,CAAG,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAE,YAAW,EACnE,GAAG,OAAO,OAAO,IAAI,CAAC,EAEhBC,GAAcC,IAClBA,EAAOA,EAAK,YAAW,EACfH,GAAUF,GAAOE,CAAK,IAAMG,GAGhCC,GAAaD,GAAQH,GAAS,OAAOA,IAAUG,EAS/C,CAAC,QAAAE,EAAO,EAAI,MASZC,GAAcF,GAAW,WAAW,EAS1C,SAASG,GAASC,EAAK,CACrB,OAAOA,IAAQ,MAAQ,CAACF,GAAYE,CAAG,GAAKA,EAAI,cAAgB,MAAQ,CAACF,GAAYE,EAAI,WAAW,GAC/FC,GAAWD,EAAI,YAAY,QAAQ,GAAKA,EAAI,YAAY,SAASA,CAAG,CAC3E,CASA,IAAME,GAAgBR,GAAW,aAAa,EAU9C,SAASS,GAAkBH,EAAK,CAC9B,IAAII,EACJ,OAAK,OAAO,YAAgB,KAAiB,YAAY,OACvDA,EAAS,YAAY,OAAOJ,CAAG,EAE/BI,EAAUJ,GAASA,EAAI,QAAYE,GAAcF,EAAI,MAAM,EAEtDI,CACT,CASA,IAAMC,GAAWT,GAAW,QAAQ,EAQ9BK,GAAaL,GAAW,UAAU,EASlCU,GAAWV,GAAW,QAAQ,EAS9BW,GAAYf,GAAUA,IAAU,MAAQ,OAAOA,GAAU,SAQzDgB,GAAYhB,GAASA,IAAU,IAAQA,IAAU,GASjDiB,GAAiBT,GAAQ,CAC7B,GAAIV,GAAOU,CAAG,IAAM,SAClB,MAAO,GAGT,IAAMU,EAAYvB,GAAea,CAAG,EACpC,OAAQU,IAAc,MAAQA,IAAc,OAAO,WAAa,OAAO,eAAeA,CAAS,IAAM,OAAS,EAAErB,MAAeW,IAAQ,EAAEZ,MAAYY,EACvJ,EASMW,GAAiBX,GAAQ,CAE7B,GAAI,CAACO,GAASP,CAAG,GAAKD,GAASC,CAAG,EAChC,MAAO,GAGT,GAAI,CACF,OAAO,OAAO,KAAKA,CAAG,EAAE,SAAW,GAAK,OAAO,eAAeA,CAAG,IAAM,OAAO,SAClF,MAAc,CAEV,MAAO,EACX,CACA,EASMY,GAASlB,GAAW,MAAM,EAS1BmB,GAASnB,GAAW,MAAM,EAS1BoB,GAASpB,GAAW,MAAM,EAS1BqB,GAAarB,GAAW,UAAU,EASlCsB,GAAYhB,GAAQO,GAASP,CAAG,GAAKC,GAAWD,EAAI,IAAI,EASxDiB,GAAczB,GAAU,CAC5B,IAAI0B,EACJ,OAAO1B,IACJ,OAAO,UAAa,YAAcA,aAAiB,UAClDS,GAAWT,EAAM,MAAM,KACpB0B,EAAO5B,GAAOE,CAAK,KAAO,YAE1B0B,IAAS,UAAYjB,GAAWT,EAAM,QAAQ,GAAKA,EAAM,SAAQ,IAAO,qBAIjF,EASM2B,GAAoBzB,GAAW,iBAAiB,EAEhD,CAAC0B,GAAkBC,GAAWC,GAAYC,EAAS,EAAI,CAAC,iBAAkB,UAAW,WAAY,SAAS,EAAE,IAAI7B,EAAU,EAS1H8B,GAAQ/B,GAAQA,EAAI,KACxBA,EAAI,KAAI,EAAKA,EAAI,QAAQ,qCAAsC,EAAE,EAkBnE,SAASgC,GAAQC,EAAK1C,EAAI,CAAC,WAAA2C,EAAa,EAAK,EAAI,CAAA,EAAI,CAEnD,GAAID,IAAQ,MAAQ,OAAOA,EAAQ,IACjC,OAGF,IAAI,EACAE,EAQJ,GALI,OAAOF,GAAQ,WAEjBA,EAAM,CAACA,CAAG,GAGR7B,GAAQ6B,CAAG,EAEb,IAAK,EAAI,EAAGE,EAAIF,EAAI,OAAQ,EAAIE,EAAG,IACjC5C,EAAG,KAAK,KAAM0C,EAAI,CAAC,EAAG,EAAGA,CAAG,MAEzB,CAEL,GAAI3B,GAAS2B,CAAG,EACd,OAIF,IAAMG,EAAOF,EAAa,OAAO,oBAAoBD,CAAG,EAAI,OAAO,KAAKA,CAAG,EACrEI,EAAMD,EAAK,OACbE,EAEJ,IAAK,EAAI,EAAG,EAAID,EAAK,IACnBC,EAAMF,EAAK,CAAC,EACZ7C,EAAG,KAAK,KAAM0C,EAAIK,CAAG,EAAGA,EAAKL,CAAG,CAEtC,CACA,CAEA,SAASM,GAAQN,EAAKK,EAAK,CACzB,GAAIhC,GAAS2B,CAAG,EACd,OAAO,KAGTK,EAAMA,EAAI,YAAW,EACrB,IAAMF,EAAO,OAAO,KAAKH,CAAG,EACxB,EAAIG,EAAK,OACTI,EACJ,KAAO,KAAM,GAEX,GADAA,EAAOJ,EAAK,CAAC,EACTE,IAAQE,EAAK,YAAW,EAC1B,OAAOA,EAGX,OAAO,IACT,CAEA,IAAMC,GAEA,OAAO,WAAe,IAAoB,WACvC,OAAO,KAAS,IAAc,KAAQ,OAAO,OAAW,IAAc,OAAS,OAGlFC,GAAoBC,GAAY,CAACtC,GAAYsC,CAAO,GAAKA,IAAYF,GAoB3E,SAASG,IAAmC,CAC1C,GAAM,CAAC,SAAAC,EAAU,cAAAC,CAAa,EAAIJ,GAAiB,IAAI,GAAK,MAAQ,CAAA,EAC9D/B,EAAS,CAAA,EACToC,EAAc,CAACxC,EAAK+B,IAAQ,CAChC,IAAMU,EAAYH,GAAYN,GAAQ5B,EAAQ2B,CAAG,GAAKA,EAClDtB,GAAcL,EAAOqC,CAAS,CAAC,GAAKhC,GAAcT,CAAG,EACvDI,EAAOqC,CAAS,EAAIJ,GAAMjC,EAAOqC,CAAS,EAAGzC,CAAG,EACvCS,GAAcT,CAAG,EAC1BI,EAAOqC,CAAS,EAAIJ,GAAM,CAAA,EAAIrC,CAAG,EACxBH,GAAQG,CAAG,EACpBI,EAAOqC,CAAS,EAAIzC,EAAI,MAAK,GACpB,CAACuC,GAAiB,CAACzC,GAAYE,CAAG,KAC3CI,EAAOqC,CAAS,EAAIzC,EAE1B,EAEE,QAAS0C,EAAI,EAAGd,EAAI,UAAU,OAAQc,EAAId,EAAGc,IAC3C,UAAUA,CAAC,GAAKjB,GAAQ,UAAUiB,CAAC,EAAGF,CAAW,EAEnD,OAAOpC,CACT,CAaA,IAAMuC,GAAS,CAACC,EAAGC,EAAG5D,EAAS,CAAC,WAAA0C,CAAU,EAAG,CAAA,KAC3CF,GAAQoB,EAAG,CAAC7C,EAAK+B,IAAQ,CACnB9C,GAAWgB,GAAWD,CAAG,EAC3B,OAAO,eAAe4C,EAAGb,EAAK,CAC5B,MAAOhD,GAAKiB,EAAKf,CAAO,EACxB,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAO,EAED,OAAO,eAAe2D,EAAGb,EAAK,CAC5B,MAAO/B,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAO,CAEP,EAAK,CAAC,WAAA2B,CAAU,CAAC,EACRiB,GAUHE,GAAYC,IACZA,EAAQ,WAAW,CAAC,IAAM,QAC5BA,EAAUA,EAAQ,MAAM,CAAC,GAEpBA,GAYHC,GAAW,CAACC,EAAaC,EAAkBC,EAAOC,IAAgB,CACtEH,EAAY,UAAY,OAAO,OAAOC,EAAiB,UAAWE,CAAW,EAC7E,OAAO,eAAeH,EAAY,UAAW,cAAe,CAC1D,MAAOA,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EAClB,CAAG,EACD,OAAO,eAAeA,EAAa,QAAS,CAC1C,MAAOC,EAAiB,SAC5B,CAAG,EACDC,GAAS,OAAO,OAAOF,EAAY,UAAWE,CAAK,CACrD,EAWME,GAAe,CAACC,EAAWC,EAASC,EAAQC,IAAe,CAC/D,IAAIN,EACAT,EACAgB,EACEC,EAAS,CAAA,EAIf,GAFAJ,EAAUA,GAAW,CAAA,EAEjBD,GAAa,KAAM,OAAOC,EAE9B,EAAG,CAGD,IAFAJ,EAAQ,OAAO,oBAAoBG,CAAS,EAC5CZ,EAAIS,EAAM,OACHT,KAAM,GACXgB,EAAOP,EAAMT,CAAC,GACT,CAACe,GAAcA,EAAWC,EAAMJ,EAAWC,CAAO,IAAM,CAACI,EAAOD,CAAI,IACvEH,EAAQG,CAAI,EAAIJ,EAAUI,CAAI,EAC9BC,EAAOD,CAAI,EAAI,IAGnBJ,EAAYE,IAAW,IAASrE,GAAemE,CAAS,CAC5D,OAAWA,IAAc,CAACE,GAAUA,EAAOF,EAAWC,CAAO,IAAMD,IAAc,OAAO,WAEtF,OAAOC,CACT,EAWMK,GAAW,CAACnE,EAAKoE,EAAcC,IAAa,CAChDrE,EAAM,OAAOA,CAAG,GACZqE,IAAa,QAAaA,EAAWrE,EAAI,UAC3CqE,EAAWrE,EAAI,QAEjBqE,GAAYD,EAAa,OACzB,IAAME,EAAYtE,EAAI,QAAQoE,EAAcC,CAAQ,EACpD,OAAOC,IAAc,IAAMA,IAAcD,CAC3C,EAUME,GAAWxE,GAAU,CACzB,GAAI,CAACA,EAAO,OAAO,KACnB,GAAIK,GAAQL,CAAK,EAAG,OAAOA,EAC3B,IAAIkD,EAAIlD,EAAM,OACd,GAAI,CAACc,GAASoC,CAAC,EAAG,OAAO,KACzB,IAAMuB,EAAM,IAAI,MAAMvB,CAAC,EACvB,KAAOA,KAAM,GACXuB,EAAIvB,CAAC,EAAIlD,EAAMkD,CAAC,EAElB,OAAOuB,CACT,EAWMC,IAAgBC,GAEb3E,GACE2E,GAAc3E,aAAiB2E,GAEvC,OAAO,WAAe,KAAehF,GAAe,UAAU,CAAC,EAU5DiF,GAAe,CAAC1C,EAAK1C,IAAO,CAGhC,IAAMqF,GAFY3C,GAAOA,EAAItC,EAAQ,GAET,KAAKsC,CAAG,EAEhCtB,EAEJ,MAAQA,EAASiE,EAAU,KAAI,IAAO,CAACjE,EAAO,MAAM,CAClD,IAAMkE,EAAOlE,EAAO,MACpBpB,EAAG,KAAK0C,EAAK4C,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CACjC,CACA,EAUMC,GAAW,CAACC,EAAQ/E,IAAQ,CAChC,IAAIgF,EACER,EAAM,CAAA,EAEZ,MAAQQ,EAAUD,EAAO,KAAK/E,CAAG,KAAO,MACtCwE,EAAI,KAAKQ,CAAO,EAGlB,OAAOR,CACT,EAGMS,GAAahF,GAAW,iBAAiB,EAEzCiF,GAAclF,GACXA,EAAI,YAAW,EAAG,QAAQ,wBAC/B,SAAkBmF,EAAGC,EAAIC,EAAI,CAC3B,OAAOD,EAAG,YAAW,EAAKC,CAChC,CACA,EAIMC,IAAkB,CAAC,CAAC,eAAAA,CAAc,IAAM,CAACrD,EAAKgC,IAASqB,EAAe,KAAKrD,EAAKgC,CAAI,GAAG,OAAO,SAAS,EASvGsB,GAAWtF,GAAW,QAAQ,EAE9BuF,GAAoB,CAACvD,EAAKwD,IAAY,CAC1C,IAAM9B,EAAc,OAAO,0BAA0B1B,CAAG,EAClDyD,EAAqB,CAAA,EAE3B1D,GAAQ2B,EAAa,CAACgC,EAAYC,IAAS,CACzC,IAAIC,GACCA,EAAMJ,EAAQE,EAAYC,EAAM3D,CAAG,KAAO,KAC7CyD,EAAmBE,CAAI,EAAIC,GAAOF,EAExC,CAAG,EAED,OAAO,iBAAiB1D,EAAKyD,CAAkB,CACjD,EAOMI,GAAiB7D,GAAQ,CAC7BuD,GAAkBvD,EAAK,CAAC0D,EAAYC,IAAS,CAE3C,GAAIpF,GAAWyB,CAAG,GAAK,CAAC,YAAa,SAAU,QAAQ,EAAE,QAAQ2D,CAAI,IAAM,GACzE,MAAO,GAGT,IAAMG,EAAQ9D,EAAI2D,CAAI,EAEtB,GAAKpF,GAAWuF,CAAK,EAIrB,IAFAJ,EAAW,WAAa,GAEpB,aAAcA,EAAY,CAC5BA,EAAW,SAAW,GACtB,MACN,CAESA,EAAW,MACdA,EAAW,IAAM,IAAM,CACrB,MAAM,MAAM,qCAAwCC,EAAO,GAAI,CACvE,GAEA,CAAG,CACH,EAEMI,GAAc,CAACC,EAAeC,IAAc,CAChD,IAAMjE,EAAM,CAAA,EAENkE,EAAU3B,GAAQ,CACtBA,EAAI,QAAQuB,GAAS,CACnB9D,EAAI8D,CAAK,EAAI,EACnB,CAAK,CACL,EAEE,OAAA3F,GAAQ6F,CAAa,EAAIE,EAAOF,CAAa,EAAIE,EAAO,OAAOF,CAAa,EAAE,MAAMC,CAAS,CAAC,EAEvFjE,CACT,EAEMmE,GAAO,IAAM,CAAA,EAEbC,GAAiB,CAACN,EAAOO,IACtBP,GAAS,MAAQ,OAAO,SAASA,EAAQ,CAACA,CAAK,EAAIA,EAAQO,EAYpE,SAASC,GAAoBxG,EAAO,CAClC,MAAO,CAAC,EAAEA,GAASS,GAAWT,EAAM,MAAM,GAAKA,EAAMH,EAAW,IAAM,YAAcG,EAAMJ,EAAQ,EACpG,CAEA,IAAM6G,GAAgBvE,GAAQ,CAC5B,IAAMwE,EAAQ,IAAI,MAAM,EAAE,EAEpBC,EAAQ,CAACC,EAAQ1D,IAAM,CAE3B,GAAInC,GAAS6F,CAAM,EAAG,CACpB,GAAIF,EAAM,QAAQE,CAAM,GAAK,EAC3B,OAIF,GAAIrG,GAASqG,CAAM,EACjB,OAAOA,EAGT,GAAG,EAAE,WAAYA,GAAS,CACxBF,EAAMxD,CAAC,EAAI0D,EACX,IAAMC,EAASxG,GAAQuG,CAAM,EAAI,CAAA,EAAK,CAAA,EAEtC,OAAA3E,GAAQ2E,EAAQ,CAACZ,EAAOzD,IAAQ,CAC9B,IAAMuE,EAAeH,EAAMX,EAAO9C,EAAI,CAAC,EACvC,CAAC5C,GAAYwG,CAAY,IAAMD,EAAOtE,CAAG,EAAIuE,EACvD,CAAS,EAEDJ,EAAMxD,CAAC,EAAI,OAEJ2D,CACf,CACA,CAEI,OAAOD,CACX,EAEE,OAAOD,EAAMzE,EAAK,CAAC,CACrB,EAEM6E,GAAY7G,GAAW,eAAe,EAEtC8G,GAAchH,GAClBA,IAAUe,GAASf,CAAK,GAAKS,GAAWT,CAAK,IAAMS,GAAWT,EAAM,IAAI,GAAKS,GAAWT,EAAM,KAAK,EAK/FiH,IAAiB,CAACC,EAAuBC,IACzCD,EACK,aAGFC,GAAwB,CAACC,EAAOC,KACrC3E,GAAQ,iBAAiB,UAAW,CAAC,CAAC,OAAAkE,EAAQ,KAAAU,CAAI,IAAM,CAClDV,IAAWlE,IAAW4E,IAASF,GACjCC,EAAU,QAAUA,EAAU,MAAK,EAAE,CAE7C,EAAO,EAAK,EAEAE,GAAO,CACbF,EAAU,KAAKE,CAAE,EACjB7E,GAAQ,YAAY0E,EAAO,GAAG,CACpC,IACK,SAAS,KAAK,OAAM,CAAE,GAAI,CAAA,CAAE,EAAKG,GAAO,WAAWA,CAAE,GAExD,OAAO,cAAiB,WACxB9G,GAAWiC,GAAQ,WAAW,CAChC,EAEM8E,GAAO,OAAO,eAAmB,IACrC,eAAe,KAAK9E,EAAO,EAAM,OAAO,QAAY,KAAe,QAAQ,UAAYuE,GAKnFQ,GAAczH,GAAUA,GAAS,MAAQS,GAAWT,EAAMJ,EAAQ,CAAC,EAGzE8H,EAAe,CACb,QAAArH,GACA,cAAAK,GACA,SAAAH,GACA,WAAAkB,GACA,kBAAAd,GACA,SAAAE,GACA,SAAAC,GACA,UAAAE,GACA,SAAAD,GACA,cAAAE,GACA,cAAAE,GACA,iBAAAS,GACA,UAAAC,GACA,WAAAC,GACA,UAAAC,GACA,YAAAzB,GACA,OAAAc,GACA,OAAAC,GACA,OAAAC,GACA,SAAAkE,GACF,WAAE/E,GACA,SAAAe,GACA,kBAAAG,GACA,aAAA+C,GACA,WAAAnD,GACA,QAAAU,GACA,MAAAY,GACA,OAAAM,GACA,KAAAnB,GACA,SAAAsB,GACA,SAAAE,GACA,aAAAK,GACA,OAAA/D,GACA,WAAAI,GACA,SAAAkE,GACA,QAAAI,GACA,aAAAI,GACA,SAAAG,GACA,WAAAG,GACA,eAAAK,GACA,WAAYA,GACZ,kBAAAE,GACA,cAAAM,GACA,YAAAE,GACA,YAAAd,GACA,KAAAkB,GACA,eAAAC,GACA,QAAA9D,GACA,OAAQE,GACR,iBAAAC,GACA,oBAAA6D,GACA,aAAAC,GACA,UAAAM,GACA,WAAAC,GACA,aAAcC,GACd,KAAAO,GACA,WAAAC,EACF,EC1xBME,GAAN,MAAMC,UAAmB,KAAM,CAC3B,OAAO,KAAKC,EAAOC,EAAMC,EAAQC,EAASC,EAAUC,EAAa,CAC7D,IAAMC,EAAa,IAAIP,EAAWC,EAAM,QAASC,GAAQD,EAAM,KAAME,EAAQC,EAASC,CAAQ,EAC9F,OAAAE,EAAW,MAAQN,EACnBM,EAAW,KAAON,EAAM,KACxBK,GAAe,OAAO,OAAOC,EAAYD,CAAW,EAC7CC,CACf,CAaI,YAAYC,EAASN,EAAMC,EAAQC,EAASC,EAAU,CAClD,MAAMG,CAAO,EACb,KAAK,KAAO,aACZ,KAAK,aAAe,GACpBN,IAAS,KAAK,KAAOA,GACrBC,IAAW,KAAK,OAASA,GACzBC,IAAY,KAAK,QAAUA,GACvBC,IACA,KAAK,SAAWA,EAChB,KAAK,OAASA,EAAS,OAEnC,CAEI,QAAS,CACL,MAAO,CAEH,QAAS,KAAK,QACd,KAAM,KAAK,KAEX,YAAa,KAAK,YAClB,OAAQ,KAAK,OAEb,SAAU,KAAK,SACf,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,MAAO,KAAK,MAEZ,OAAQI,EAAM,aAAa,KAAK,MAAM,EACtC,KAAM,KAAK,KACX,OAAQ,KAAK,MACzB,CACA,CACA,EAGAV,GAAW,qBAAuB,uBAClCA,GAAW,eAAiB,iBAC5BA,GAAW,aAAe,eAC1BA,GAAW,UAAY,YACvBA,GAAW,YAAc,cACzBA,GAAW,0BAA4B,4BACvCA,GAAW,eAAiB,iBAC5BA,GAAW,iBAAmB,mBAC9BA,GAAW,gBAAkB,kBAC7BA,GAAW,aAAe,eAC1BA,GAAW,gBAAkB,kBAC7BA,GAAW,gBAAkB,kBAE7B,IAAAW,EAAeX,GC1Df,SAASY,GAAYvI,EAAO,CAC1B,OAAOqI,EAAM,cAAcrI,CAAK,GAAKqI,EAAM,QAAQrI,CAAK,CAC1D,CASA,SAASwI,GAAejG,EAAK,CAC3B,OAAO8F,EAAM,SAAS9F,EAAK,IAAI,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAIA,CACxD,CAWA,SAASkG,GAAUC,EAAMnG,EAAKoG,EAAM,CAClC,OAAKD,EACEA,EAAK,OAAOnG,CAAG,EAAE,IAAI,SAAc6E,EAAOlE,EAAG,CAElD,OAAAkE,EAAQoB,GAAepB,CAAK,EACrB,CAACuB,GAAQzF,EAAI,IAAMkE,EAAQ,IAAMA,CAC5C,CAAG,EAAE,KAAKuB,EAAO,IAAM,EAAE,EALLpG,CAMpB,CASA,SAASqG,GAAYnE,EAAK,CACxB,OAAO4D,EAAM,QAAQ5D,CAAG,GAAK,CAACA,EAAI,KAAK8D,EAAW,CACpD,CAEA,IAAMM,GAAaR,EAAM,aAAaA,EAAO,CAAA,EAAI,KAAM,SAAgBnE,EAAM,CAC3E,MAAO,WAAW,KAAKA,CAAI,CAC7B,CAAC,EAyBD,SAAS4E,GAAW5G,EAAK6G,EAAUC,EAAS,CAC1C,GAAI,CAACX,EAAM,SAASnG,CAAG,EACrB,MAAM,IAAI,UAAU,0BAA0B,EAIhD6G,EAAWA,GAAY,IAAKE,GAAAA,SAAoB,UAGhDD,EAAUX,EAAM,aAAaW,EAAS,CACpC,WAAY,GACZ,KAAM,GACN,QAAS,EACb,EAAK,GAAO,SAAiBE,EAAQtC,EAAQ,CAEzC,MAAO,CAACyB,EAAM,YAAYzB,EAAOsC,CAAM,CAAC,CAC5C,CAAG,EAED,IAAMC,EAAaH,EAAQ,WAErBI,EAAUJ,EAAQ,SAAWK,EAC7BV,EAAOK,EAAQ,KACfM,EAAUN,EAAQ,QAElBO,GADQP,EAAQ,MAAQ,OAAO,KAAS,KAAe,OACpCX,EAAM,oBAAoBU,CAAQ,EAE3D,GAAI,CAACV,EAAM,WAAWe,CAAO,EAC3B,MAAM,IAAI,UAAU,4BAA4B,EAGlD,SAASI,EAAaxD,EAAO,CAC3B,GAAIA,IAAU,KAAM,MAAO,GAE3B,GAAIqC,EAAM,OAAOrC,CAAK,EACpB,OAAOA,EAAM,YAAW,EAG1B,GAAIqC,EAAM,UAAUrC,CAAK,EACvB,OAAOA,EAAM,SAAQ,EAGvB,GAAI,CAACuD,GAAWlB,EAAM,OAAOrC,CAAK,EAChC,MAAM,IAAI2B,EAAW,8CAA8C,EAGrE,OAAIU,EAAM,cAAcrC,CAAK,GAAKqC,EAAM,aAAarC,CAAK,EACjDuD,GAAW,OAAO,MAAS,WAAa,IAAI,KAAK,CAACvD,CAAK,CAAC,EAAI,OAAO,KAAKA,CAAK,EAG/EA,CACX,CAYE,SAASqD,EAAerD,EAAOzD,EAAKmG,EAAM,CACxC,IAAIjE,EAAMuB,EAEV,GAAIA,GAAS,CAAC0C,GAAQ,OAAO1C,GAAU,UACrC,GAAIqC,EAAM,SAAS9F,EAAK,IAAI,EAE1BA,EAAM4G,EAAa5G,EAAMA,EAAI,MAAM,EAAG,EAAE,EAExCyD,EAAQ,KAAK,UAAUA,CAAK,UAE3BqC,EAAM,QAAQrC,CAAK,GAAK4C,GAAY5C,CAAK,IACxCqC,EAAM,WAAWrC,CAAK,GAAKqC,EAAM,SAAS9F,EAAK,IAAI,KAAOkC,EAAM4D,EAAM,QAAQrC,CAAK,GAGrF,OAAAzD,EAAMiG,GAAejG,CAAG,EAExBkC,EAAI,QAAQ,SAAcgF,EAAIC,EAAO,CACnC,EAAErB,EAAM,YAAYoB,CAAE,GAAKA,IAAO,OAASV,EAAS,OAElDO,IAAY,GAAOb,GAAU,CAAClG,CAAG,EAAGmH,EAAOf,CAAI,EAAKW,IAAY,KAAO/G,EAAMA,EAAM,KACnFiH,EAAaC,CAAE,CAC3B,CACA,CAAS,EACM,GAIX,OAAIlB,GAAYvC,CAAK,EACZ,IAGT+C,EAAS,OAAON,GAAUC,EAAMnG,EAAKoG,CAAI,EAAGa,EAAaxD,CAAK,CAAC,EAExD,GACX,CAEE,IAAMU,EAAQ,CAAA,EAERiD,EAAiB,OAAO,OAAOd,GAAY,CAC/C,eAAAQ,EACA,aAAAG,EACA,YAAAjB,EACJ,CAAG,EAED,SAASqB,EAAM5D,EAAO0C,EAAM,CAC1B,GAAIL,CAAAA,EAAM,YAAYrC,CAAK,EAE3B,IAAIU,EAAM,QAAQV,CAAK,IAAM,GAC3B,MAAM,MAAM,kCAAoC0C,EAAK,KAAK,GAAG,CAAC,EAGhEhC,EAAM,KAAKV,CAAK,EAEhBqC,EAAM,QAAQrC,EAAO,SAAcyD,EAAIlH,EAAK,EAC3B,EAAE8F,EAAM,YAAYoB,CAAE,GAAKA,IAAO,OAASL,EAAQ,KAChEL,EAAUU,EAAIpB,EAAM,SAAS9F,CAAG,EAAIA,EAAI,KAAI,EAAKA,EAAKmG,EAAMiB,CACpE,KAEqB,IACbC,EAAMH,EAAIf,EAAOA,EAAK,OAAOnG,CAAG,EAAI,CAACA,CAAG,CAAC,CAEjD,CAAK,EAEDmE,EAAM,IAAG,EACb,CAEE,GAAI,CAAC2B,EAAM,SAASnG,CAAG,EACrB,MAAM,IAAI,UAAU,wBAAwB,EAG9C,OAAA0H,EAAM1H,CAAG,EAEF6G,CACT,CChNA,SAASc,GAAO5J,EAAK,CACnB,IAAM6J,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,IACX,EACE,OAAO,mBAAmB7J,CAAG,EAAE,QAAQ,mBAAoB,SAAkB8J,EAAO,CAClF,OAAOD,EAAQC,CAAK,CACxB,CAAG,CACH,CAUA,SAASC,GAAqBC,EAAQjB,EAAS,CAC7C,KAAK,OAAS,CAAA,EAEdiB,GAAUnB,GAAWmB,EAAQ,KAAMjB,CAAO,CAC5C,CAEA,IAAM9H,GAAY8I,GAAqB,UAEvC9I,GAAU,OAAS,SAAgB2E,EAAMG,EAAO,CAC9C,KAAK,OAAO,KAAK,CAACH,EAAMG,CAAK,CAAC,CAChC,EAEA9E,GAAU,SAAW,SAAkBgJ,EAAS,CAC9C,IAAMC,EAAUD,EAAU,SAASlE,EAAO,CACxC,OAAOkE,EAAQ,KAAK,KAAMlE,EAAO6D,EAAM,CAC3C,EAAMA,GAEJ,OAAO,KAAK,OAAO,IAAI,SAAc/E,EAAM,CACzC,OAAOqF,EAAQrF,EAAK,CAAC,CAAC,EAAI,IAAMqF,EAAQrF,EAAK,CAAC,CAAC,CACnD,EAAK,EAAE,EAAE,KAAK,GAAG,CACjB,EC1CA,SAAS+E,GAAOrJ,EAAK,CACnB,OAAO,mBAAmBA,CAAG,EAC3B,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,CACvB,CAWe,SAAS4J,GAASC,EAAKJ,EAAQjB,EAAS,CACrD,GAAI,CAACiB,EACH,OAAOI,EAGT,IAAMF,EAAUnB,GAAWA,EAAQ,QAAUa,GAEvCS,EAAWjC,EAAM,WAAWW,CAAO,EAAI,CAC3C,UAAWA,CACf,EAAMA,EAEEuB,EAAcD,GAAYA,EAAS,UAErCE,EAUJ,GARID,EACFC,EAAmBD,EAAYN,EAAQK,CAAQ,EAE/CE,EAAmBnC,EAAM,kBAAkB4B,CAAM,EAC/CA,EAAO,SAAQ,EACf,IAAID,GAAqBC,EAAQK,CAAQ,EAAE,SAASH,CAAO,EAG3DK,EAAkB,CACpB,IAAMC,EAAgBJ,EAAI,QAAQ,GAAG,EAEjCI,IAAkB,KACpBJ,EAAMA,EAAI,MAAM,EAAGI,CAAa,GAElCJ,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAOG,CACnD,CAEE,OAAOH,CACT,CC3DA,IAAMK,GAAN,KAAyB,CACvB,aAAc,CACZ,KAAK,SAAW,CAAA,CACpB,CAWE,IAAIC,EAAWC,EAAU5B,EAAS,CAChC,YAAK,SAAS,KAAK,CACjB,UAAA2B,EACA,SAAAC,EACA,YAAa5B,EAAUA,EAAQ,YAAc,GAC7C,QAASA,EAAUA,EAAQ,QAAU,IAC3C,CAAK,EACM,KAAK,SAAS,OAAS,CAClC,CASE,MAAM6B,EAAI,CACJ,KAAK,SAASA,CAAE,IAClB,KAAK,SAASA,CAAE,EAAI,KAE1B,CAOE,OAAQ,CACF,KAAK,WACP,KAAK,SAAW,CAAA,EAEtB,CAYE,QAAQrL,EAAI,CACV6I,EAAM,QAAQ,KAAK,SAAU,SAAwByC,EAAG,CAClDA,IAAM,MACRtL,EAAGsL,CAAC,CAEZ,CAAK,CACL,CACA,EAEAC,GAAeL,GCrEfM,GAAe,CACb,kBAAmB,GACnB,kBAAmB,GACnB,oBAAqB,EACvB,ECHAC,GAAeZ,GAAAA,QAAI,gBCCba,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACf,MAAAD,GACA,MAAAD,GACA,YAAaA,GAAQA,GAAM,YAAW,EAAKC,EAC7C,EAEME,GAAiB,CAACC,EAAO,GAAIC,EAAWH,GAAS,cAAgB,CACrE,IAAInL,EAAM,GACJ,CAAC,OAAAuL,CAAM,EAAID,EACXE,EAAe,IAAI,YAAYH,CAAI,EACzCI,GAAAA,QAAO,eAAeD,CAAY,EAClC,QAASvI,EAAI,EAAGA,EAAIoI,EAAMpI,IACxBjD,GAAOsL,EAASE,EAAavI,CAAC,EAAIsI,CAAM,EAG1C,OAAOvL,CACT,EAGA0L,GAAe,CACb,OAAQ,GACR,QAAS,CACP,gBAAAV,GACJ,SAAIW,GAAAA,QACA,KAAM,OAAO,KAAS,KAAe,MAAQ,IACjD,EACE,SAAAR,GACA,eAAAC,GACA,UAAW,CAAE,OAAQ,QAAS,OAAQ,MAAM,CAC9C,ECrCMQ,GAAgB,OAAO,OAAW,KAAe,OAAO,SAAa,IAErEC,GAAa,OAAO,WAAc,UAAY,WAAa,OAmB3DC,GAAwBF,KAC3B,CAACC,IAAc,CAAC,cAAe,eAAgB,IAAI,EAAE,QAAQA,GAAW,OAAO,EAAI,GAWhFE,GAEF,OAAO,kBAAsB,KAE7B,gBAAgB,mBAChB,OAAO,KAAK,eAAkB,WAI5BC,GAASJ,IAAiB,OAAO,SAAS,MAAQ,yJCvCxDK,EAAe,CACb,GAAG7D,GACH,GAAG6D,EACL,ECAe,SAASC,GAAiB7E,EAAM0B,EAAS,CACtD,OAAOF,GAAWxB,EAAM,IAAI4E,EAAS,QAAQ,gBAAmB,CAC9D,QAAS,SAASlG,EAAOzD,EAAKmG,EAAM0D,EAAS,CAC3C,OAAIF,EAAS,QAAU7D,EAAM,SAASrC,CAAK,GACzC,KAAK,OAAOzD,EAAKyD,EAAM,SAAS,QAAQ,CAAC,EAClC,IAGFoG,EAAQ,eAAe,MAAM,KAAM,SAAS,CACzD,EACI,GAAGpD,CACP,CAAG,CACH,CCPA,SAASqD,GAAcxG,EAAM,CAK3B,OAAOwC,EAAM,SAAS,gBAAiBxC,CAAI,EAAE,IAAIkE,GACxCA,EAAM,CAAC,IAAM,KAAO,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,CACpD,CACH,CASA,SAASuC,GAAc7H,EAAK,CAC1B,IAAMvC,EAAM,CAAA,EACNG,EAAO,OAAO,KAAKoC,CAAG,EACxB,EACEnC,EAAMD,EAAK,OACbE,EACJ,IAAK,EAAI,EAAG,EAAID,EAAK,IACnBC,EAAMF,EAAK,CAAC,EACZH,EAAIK,CAAG,EAAIkC,EAAIlC,CAAG,EAEpB,OAAOL,CACT,CASA,SAASqK,GAAexD,EAAU,CAChC,SAASyD,EAAU9D,EAAM1C,EAAOa,EAAQ6C,EAAO,CAC7C,IAAI7D,EAAO6C,EAAKgB,GAAO,EAEvB,GAAI7D,IAAS,YAAa,MAAO,GAEjC,IAAM4G,EAAe,OAAO,SAAS,CAAC5G,CAAI,EACpC6G,EAAShD,GAAShB,EAAK,OAG7B,OAFA7C,EAAO,CAACA,GAAQwC,EAAM,QAAQxB,CAAM,EAAIA,EAAO,OAAShB,EAEpD6G,GACErE,EAAM,WAAWxB,EAAQhB,CAAI,EAC/BgB,EAAOhB,CAAI,EAAI,CAACgB,EAAOhB,CAAI,EAAGG,CAAK,EAEnCa,EAAOhB,CAAI,EAAIG,EAGV,CAACyG,KAGN,CAAC5F,EAAOhB,CAAI,GAAK,CAACwC,EAAM,SAASxB,EAAOhB,CAAI,CAAC,KAC/CgB,EAAOhB,CAAI,EAAI,CAAA,GAGF2G,EAAU9D,EAAM1C,EAAOa,EAAOhB,CAAI,EAAG6D,CAAK,GAE3CrB,EAAM,QAAQxB,EAAOhB,CAAI,CAAC,IACtCgB,EAAOhB,CAAI,EAAIyG,GAAczF,EAAOhB,CAAI,CAAC,GAGpC,CAAC4G,EACZ,CAEE,GAAIpE,EAAM,WAAWU,CAAQ,GAAKV,EAAM,WAAWU,EAAS,OAAO,EAAG,CACpE,IAAM7G,EAAM,CAAA,EAEZmG,OAAAA,EAAM,aAAaU,EAAU,CAAClD,EAAMG,IAAU,CAC5CwG,EAAUH,GAAcxG,CAAI,EAAGG,EAAO9D,EAAK,CAAC,CAClD,CAAK,EAEMA,CACX,CAEE,OAAO,IACT,CCxEA,SAASyK,GAAgBC,EAAUC,EAAQ3C,EAAS,CAClD,GAAI7B,EAAM,SAASuE,CAAQ,EACzB,GAAI,CACF,OAACC,GAAU,KAAK,OAAOD,CAAQ,EACxBvE,EAAM,KAAKuE,CAAQ,CAChC,OAAaE,EAAG,CACV,GAAIA,EAAE,OAAS,cACb,MAAMA,CAEd,CAGE,OAAQ5C,GAAW,KAAK,WAAW0C,CAAQ,CAC7C,CAEA,IAAMG,GAAW,CAEf,aAAc/B,GAEd,QAAS,CAAC,MAAO,OAAQ,OAAO,EAEhC,iBAAkB,CAAC,SAA0B1D,EAAM0F,EAAS,CAC1D,IAAMC,EAAcD,EAAQ,eAAc,GAAM,GAC1CE,EAAqBD,EAAY,QAAQ,kBAAkB,EAAI,GAC/DE,EAAkB9E,EAAM,SAASf,CAAI,EAQ3C,GANI6F,GAAmB9E,EAAM,WAAWf,CAAI,IAC1CA,EAAO,IAAI,SAASA,CAAI,GAGPe,EAAM,WAAWf,CAAI,EAGtC,OAAO4F,EAAqB,KAAK,UAAUX,GAAejF,CAAI,CAAC,EAAIA,EAGrE,GAAIe,EAAM,cAAcf,CAAI,GAC1Be,EAAM,SAASf,CAAI,GACnBe,EAAM,SAASf,CAAI,GACnBe,EAAM,OAAOf,CAAI,GACjBe,EAAM,OAAOf,CAAI,GACjBe,EAAM,iBAAiBf,CAAI,EAE3B,OAAOA,EAET,GAAIe,EAAM,kBAAkBf,CAAI,EAC9B,OAAOA,EAAK,OAEd,GAAIe,EAAM,kBAAkBf,CAAI,EAC9B,OAAA0F,EAAQ,eAAe,kDAAmD,EAAK,EACxE1F,EAAK,SAAQ,EAGtB,IAAI/F,EAEJ,GAAI4L,EAAiB,CACnB,GAAIF,EAAY,QAAQ,mCAAmC,EAAI,GAC7D,OAAOd,GAAiB7E,EAAM,KAAK,cAAc,EAAE,SAAQ,EAG7D,IAAK/F,EAAa8G,EAAM,WAAWf,CAAI,IAAM2F,EAAY,QAAQ,qBAAqB,EAAI,GAAI,CAC5F,IAAMG,EAAY,KAAK,KAAO,KAAK,IAAI,SAEvC,OAAOtE,GACLvH,EAAa,CAAC,UAAW+F,CAAI,EAAIA,EACjC8F,GAAa,IAAIA,EACjB,KAAK,cACf,CACA,CACA,CAEI,OAAID,GAAmBD,GACrBF,EAAQ,eAAe,mBAAoB,EAAK,EACzCL,GAAgBrF,CAAI,GAGtBA,CACX,CAAG,EAED,kBAAmB,CAAC,SAA2BA,EAAM,CACnD,IAAM+F,EAAe,KAAK,cAAgBN,GAAS,aAC7CO,EAAoBD,GAAgBA,EAAa,kBACjDE,EAAgB,KAAK,eAAiB,OAE5C,GAAIlF,EAAM,WAAWf,CAAI,GAAKe,EAAM,iBAAiBf,CAAI,EACvD,OAAOA,EAGT,GAAIA,GAAQe,EAAM,SAASf,CAAI,IAAOgG,GAAqB,CAAC,KAAK,cAAiBC,GAAgB,CAEhG,IAAMC,EAAoB,EADAH,GAAgBA,EAAa,oBACPE,EAEhD,GAAI,CACF,OAAO,KAAK,MAAMjG,EAAM,KAAK,YAAY,CACjD,OAAewF,EAAG,CACV,GAAIU,EACF,MAAIV,EAAE,OAAS,cACPnF,EAAW,KAAKmF,EAAGnF,EAAW,iBAAkB,KAAM,KAAM,KAAK,QAAQ,EAE3EmF,CAEhB,CACA,CAEI,OAAOxF,CACX,CAAG,EAMD,QAAS,EAET,eAAgB,aAChB,eAAgB,eAEhB,iBAAkB,GAClB,cAAe,GAEf,IAAK,CACH,SAAU4E,EAAS,QAAQ,SAC3B,KAAMA,EAAS,QAAQ,IAC3B,EAEE,eAAgB,SAAwBuB,EAAQ,CAC9C,OAAOA,GAAU,KAAOA,EAAS,GACrC,EAEE,QAAS,CACP,OAAQ,CACN,OAAU,oCACV,eAAgB,MACtB,CACA,CACA,EAEApF,EAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,OAAO,EAAIqF,GAAW,CAC3EX,GAAS,QAAQW,CAAM,EAAI,CAAA,CAC7B,CAAC,EAED,IAAAC,GAAeZ,GC1JTa,GAAoBvF,EAAM,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,YAC5B,CAAC,EAgBDwF,GAAeC,GAAc,CAC3B,IAAMC,EAAS,CAAA,EACXxL,EACA/B,EACA0C,EAEJ,OAAA4K,GAAcA,EAAW,MAAM;CAAI,EAAE,QAAQ,SAAgBE,EAAM,CACjE9K,EAAI8K,EAAK,QAAQ,GAAG,EACpBzL,EAAMyL,EAAK,UAAU,EAAG9K,CAAC,EAAE,KAAI,EAAG,YAAW,EAC7C1C,EAAMwN,EAAK,UAAU9K,EAAI,CAAC,EAAE,KAAI,EAE5B,GAACX,GAAQwL,EAAOxL,CAAG,GAAKqL,GAAkBrL,CAAG,KAI7CA,IAAQ,aACNwL,EAAOxL,CAAG,EACZwL,EAAOxL,CAAG,EAAE,KAAK/B,CAAG,EAEpBuN,EAAOxL,CAAG,EAAI,CAAC/B,CAAG,EAGpBuN,EAAOxL,CAAG,EAAIwL,EAAOxL,CAAG,EAAIwL,EAAOxL,CAAG,EAAI,KAAO/B,EAAMA,EAE7D,CAAG,EAEMuN,CACT,ECjDME,GAAa,OAAO,WAAW,EAErC,SAASC,GAAgBC,EAAQ,CAC/B,OAAOA,GAAU,OAAOA,CAAM,EAAE,KAAI,EAAG,YAAW,CACpD,CAEA,SAASC,GAAepI,EAAO,CAC7B,OAAIA,IAAU,IAASA,GAAS,KACvBA,EAGFqC,EAAM,QAAQrC,CAAK,EAAIA,EAAM,IAAIoI,EAAc,EAAI,OAAOpI,CAAK,CACxE,CAEA,SAASqI,GAAYpO,EAAK,CACxB,IAAMqO,EAAS,OAAO,OAAO,IAAI,EAC3BC,EAAW,mCACbxE,EAEJ,KAAQA,EAAQwE,EAAS,KAAKtO,CAAG,GAC/BqO,EAAOvE,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,EAG5B,OAAOuE,CACT,CAEA,IAAME,GAAqBvO,GAAQ,iCAAiC,KAAKA,EAAI,KAAI,CAAE,EAEnF,SAASwO,GAAiB7L,EAASoD,EAAOmI,EAAQnK,EAAQ0K,EAAoB,CAC5E,GAAIrG,EAAM,WAAWrE,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAMgC,EAAOmI,CAAM,EAOxC,GAJIO,IACF1I,EAAQmI,GAGN,EAAC9F,EAAM,SAASrC,CAAK,EAEzB,IAAIqC,EAAM,SAASrE,CAAM,EACvB,OAAOgC,EAAM,QAAQhC,CAAM,IAAM,GAGnC,GAAIqE,EAAM,SAASrE,CAAM,EACvB,OAAOA,EAAO,KAAKgC,CAAK,EAE5B,CAEA,SAAS2I,GAAaR,EAAQ,CAC5B,OAAOA,EAAO,KAAI,EACf,YAAW,EAAG,QAAQ,kBAAmB,CAACS,EAAGC,EAAM5O,IAC3C4O,EAAK,YAAW,EAAK5O,CAC7B,CACL,CAEA,SAAS6O,GAAe5M,EAAKiM,EAAQ,CACnC,IAAMY,EAAe1G,EAAM,YAAY,IAAM8F,CAAM,EAEnD,CAAC,MAAO,MAAO,KAAK,EAAE,QAAQa,GAAc,CAC1C,OAAO,eAAe9M,EAAK8M,EAAaD,EAAc,CACpD,MAAO,SAASE,EAAMC,EAAMC,EAAM,CAChC,OAAO,KAAKH,CAAU,EAAE,KAAK,KAAMb,EAAQc,EAAMC,EAAMC,CAAI,CACnE,EACM,aAAc,EACpB,CAAK,CACL,CAAG,CACH,CAEA,IAAMC,GAAN,KAAmB,CACjB,YAAYpC,EAAS,CACnBA,GAAW,KAAK,IAAIA,CAAO,CAC/B,CAEE,IAAImB,EAAQkB,EAAgBC,EAAS,CACnC,IAAMC,EAAO,KAEb,SAASC,EAAUC,EAAQC,EAASC,EAAU,CAC5C,IAAMC,EAAU1B,GAAgBwB,CAAO,EAEvC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,wCAAwC,EAG1D,IAAMrN,EAAM8F,EAAM,QAAQkH,EAAMK,CAAO,GAEpC,CAACrN,GAAOgN,EAAKhN,CAAG,IAAM,QAAaoN,IAAa,IAASA,IAAa,QAAaJ,EAAKhN,CAAG,IAAM,MAClGgN,EAAKhN,GAAOmN,CAAO,EAAItB,GAAeqB,CAAM,EAEpD,CAEI,IAAMI,EAAa,CAAC7C,EAAS2C,IAC3BtH,EAAM,QAAQ2E,EAAS,CAACyC,EAAQC,IAAYF,EAAUC,EAAQC,EAASC,CAAQ,CAAC,EAElF,GAAItH,EAAM,cAAc8F,CAAM,GAAKA,aAAkB,KAAK,YACxD0B,EAAW1B,EAAQkB,CAAc,UACzBhH,EAAM,SAAS8F,CAAM,IAAMA,EAASA,EAAO,KAAI,IAAO,CAACK,GAAkBL,CAAM,EACvF0B,EAAWhC,GAAaM,CAAM,EAAGkB,CAAc,UACtChH,EAAM,SAAS8F,CAAM,GAAK9F,EAAM,WAAW8F,CAAM,EAAG,CAC7D,IAAIjM,EAAM,CAAA,EAAI4N,EAAMvN,EACpB,QAAWwN,KAAS5B,EAAQ,CAC1B,GAAI,CAAC9F,EAAM,QAAQ0H,CAAK,EACtB,MAAM,UAAU,8CAA8C,EAGhE7N,EAAIK,EAAMwN,EAAM,CAAC,CAAC,GAAKD,EAAO5N,EAAIK,CAAG,GAClC8F,EAAM,QAAQyH,CAAI,EAAI,CAAC,GAAGA,EAAMC,EAAM,CAAC,CAAC,EAAI,CAACD,EAAMC,EAAM,CAAC,CAAC,EAAKA,EAAM,CAAC,CAClF,CAEMF,EAAW3N,EAAKmN,CAAc,CACpC,MACMlB,GAAU,MAAQqB,EAAUH,EAAgBlB,EAAQmB,CAAO,EAG7D,OAAO,IACX,CAEE,IAAInB,EAAQtB,EAAQ,CAGlB,GAFAsB,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,IAAM5L,EAAM8F,EAAM,QAAQ,KAAM8F,CAAM,EAEtC,GAAI5L,EAAK,CACP,IAAMyD,EAAQ,KAAKzD,CAAG,EAEtB,GAAI,CAACsK,EACH,OAAO7G,EAGT,GAAI6G,IAAW,GACb,OAAOwB,GAAYrI,CAAK,EAG1B,GAAIqC,EAAM,WAAWwE,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAM7G,EAAOzD,CAAG,EAGrC,GAAI8F,EAAM,SAASwE,CAAM,EACvB,OAAOA,EAAO,KAAK7G,CAAK,EAG1B,MAAM,IAAI,UAAU,wCAAwC,CACpE,CACA,CACA,CAEE,IAAImI,EAAQ6B,EAAS,CAGnB,GAFA7B,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,IAAM5L,EAAM8F,EAAM,QAAQ,KAAM8F,CAAM,EAEtC,MAAO,CAAC,EAAE5L,GAAO,KAAKA,CAAG,IAAM,SAAc,CAACyN,GAAWvB,GAAiB,KAAM,KAAKlM,CAAG,EAAGA,EAAKyN,CAAO,GAC7G,CAEI,MAAO,EACX,CAEE,OAAO7B,EAAQ6B,EAAS,CACtB,IAAMT,EAAO,KACTU,EAAU,GAEd,SAASC,EAAaR,EAAS,CAG7B,GAFAA,EAAUxB,GAAgBwB,CAAO,EAE7BA,EAAS,CACX,IAAMnN,EAAM8F,EAAM,QAAQkH,EAAMG,CAAO,EAEnCnN,IAAQ,CAACyN,GAAWvB,GAAiBc,EAAMA,EAAKhN,CAAG,EAAGA,EAAKyN,CAAO,KACpE,OAAOT,EAAKhN,CAAG,EAEf0N,EAAU,GAEpB,CACA,CAEI,OAAI5H,EAAM,QAAQ8F,CAAM,EACtBA,EAAO,QAAQ+B,CAAY,EAE3BA,EAAa/B,CAAM,EAGd8B,CACX,CAEE,MAAMD,EAAS,CACb,IAAM3N,EAAO,OAAO,KAAK,IAAI,EACzB,EAAIA,EAAK,OACT4N,EAAU,GAEd,KAAO,KAAK,CACV,IAAM1N,EAAMF,EAAK,CAAC,GACf,CAAC2N,GAAWvB,GAAiB,KAAM,KAAKlM,CAAG,EAAGA,EAAKyN,EAAS,EAAI,KACjE,OAAO,KAAKzN,CAAG,EACf0N,EAAU,GAElB,CAEI,OAAOA,CACX,CAEE,UAAUE,EAAQ,CAChB,IAAMZ,EAAO,KACPvC,EAAU,CAAA,EAEhB3E,OAAAA,EAAM,QAAQ,KAAM,CAACrC,EAAOmI,IAAW,CACrC,IAAM5L,EAAM8F,EAAM,QAAQ2E,EAASmB,CAAM,EAEzC,GAAI5L,EAAK,CACPgN,EAAKhN,CAAG,EAAI6L,GAAepI,CAAK,EAChC,OAAOuJ,EAAKpB,CAAM,EAClB,MACR,CAEM,IAAMiC,EAAaD,EAASxB,GAAaR,CAAM,EAAI,OAAOA,CAAM,EAAE,KAAI,EAElEiC,IAAejC,GACjB,OAAOoB,EAAKpB,CAAM,EAGpBoB,EAAKa,CAAU,EAAIhC,GAAepI,CAAK,EAEvCgH,EAAQoD,CAAU,EAAI,EAC5B,CAAK,EAEM,IACX,CAEE,UAAUC,EAAS,CACjB,OAAO,KAAK,YAAY,OAAO,KAAM,GAAGA,CAAO,CACnD,CAEE,OAAOC,EAAW,CAChB,IAAMpO,EAAM,OAAO,OAAO,IAAI,EAE9BmG,OAAAA,EAAM,QAAQ,KAAM,CAACrC,EAAOmI,IAAW,CACrCnI,GAAS,MAAQA,IAAU,KAAU9D,EAAIiM,CAAM,EAAImC,GAAajI,EAAM,QAAQrC,CAAK,EAAIA,EAAM,KAAK,IAAI,EAAIA,EAChH,CAAK,EAEM9D,CACX,CAEE,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAAE,OAAO,QAAQ,EAAC,CACzD,CAEE,UAAW,CACT,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAAE,IAAI,CAAC,CAACiM,EAAQnI,CAAK,IAAMmI,EAAS,KAAOnI,CAAK,EAAE,KAAK;CAAI,CAClG,CAEE,cAAe,CACb,OAAO,KAAK,IAAI,YAAY,GAAK,CAAA,CACrC,CAEE,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACX,CAEE,OAAO,KAAKhG,EAAO,CACjB,OAAOA,aAAiB,KAAOA,EAAQ,IAAI,KAAKA,CAAK,CACzD,CAEE,OAAO,OAAOuQ,KAAUF,EAAS,CAC/B,IAAMG,EAAW,IAAI,KAAKD,CAAK,EAE/B,OAAAF,EAAQ,QAASxJ,GAAW2J,EAAS,IAAI3J,CAAM,CAAC,EAEzC2J,CACX,CAEE,OAAO,SAASrC,EAAQ,CAKtB,IAAMsC,GAJY,KAAKxC,EAAU,EAAK,KAAKA,EAAU,EAAI,CACvD,UAAW,CAAA,CACjB,GAEgC,UACtB/M,EAAY,KAAK,UAEvB,SAASwP,EAAehB,EAAS,CAC/B,IAAME,EAAU1B,GAAgBwB,CAAO,EAElCe,EAAUb,CAAO,IACpBd,GAAe5N,EAAWwO,CAAO,EACjCe,EAAUb,CAAO,EAAI,GAE7B,CAEIvH,OAAAA,EAAM,QAAQ8F,CAAM,EAAIA,EAAO,QAAQuC,CAAc,EAAIA,EAAevC,CAAM,EAEvE,IACX,CACA,EAEAiB,GAAa,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,eAAe,CAAC,EAGpH/G,EAAM,kBAAkB+G,GAAa,UAAW,CAAC,CAAC,MAAApJ,CAAK,EAAGzD,IAAQ,CAChE,IAAIoO,EAASpO,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,EAC/C,MAAO,CACL,IAAK,IAAMyD,EACX,IAAI4K,EAAa,CACf,KAAKD,CAAM,EAAIC,CACrB,CACA,CACA,CAAC,EAEDvI,EAAM,cAAc+G,EAAY,EAEhC,IAAAyB,GAAezB,GC3SA,SAAS0B,GAAcC,EAAK9I,EAAU,CACnD,IAAMF,EAAS,MAAQgF,GACjBnK,EAAUqF,GAAYF,EACtBiF,EAAUoC,GAAa,KAAKxM,EAAQ,OAAO,EAC7C0E,EAAO1E,EAAQ,KAEnByF,OAAAA,EAAM,QAAQ0I,EAAK,SAAmBvR,EAAI,CACxC8H,EAAO9H,EAAG,KAAKuI,EAAQT,EAAM0F,EAAQ,UAAS,EAAI/E,EAAWA,EAAS,OAAS,MAAS,CAC5F,CAAG,EAED+E,EAAQ,UAAS,EAEV1F,CACT,CCzBe,SAAS0J,GAAShL,EAAO,CACtC,MAAO,CAAC,EAAEA,GAASA,EAAM,WAC3B,CCAA,IAAMiL,GAAN,cAA4BtJ,CAAW,CAUrC,YAAYS,EAASL,EAAQC,EAAS,CACpC,MAAMI,GAAkB,WAAsBT,EAAW,aAAcI,EAAQC,CAAO,EACtF,KAAK,KAAO,gBACZ,KAAK,WAAa,EACtB,CACA,EAEAkJ,GAAeD,GCRA,SAASE,GAAOC,EAASC,EAAQpJ,EAAU,CACxD,IAAMqJ,EAAiBrJ,EAAS,OAAO,eACnC,CAACA,EAAS,QAAU,CAACqJ,GAAkBA,EAAerJ,EAAS,MAAM,EACvEmJ,EAAQnJ,CAAQ,EAEhBoJ,EAAO,IAAI1J,EACT,mCAAqCM,EAAS,OAC9C,CAACN,EAAW,gBAAiBA,EAAW,gBAAgB,EAAE,KAAK,MAAMM,EAAS,OAAS,GAAG,EAAI,CAAC,EAC/FA,EAAS,OACTA,EAAS,QACTA,CACN,CAAK,CAEL,CCjBe,SAASsJ,GAAclH,EAAK,CAIzC,MAAO,8BAA8B,KAAKA,CAAG,CAC/C,CCJe,SAASmH,GAAYC,EAASC,EAAa,CACxD,OAAOA,EACHD,EAAQ,QAAQ,SAAU,EAAE,EAAI,IAAMC,EAAY,QAAQ,OAAQ,EAAE,EACpED,CACN,CCCe,SAASE,GAAcF,EAASG,EAAcC,EAAmB,CAC9E,IAAIC,EAAgB,CAACP,GAAcK,CAAY,EAC/C,OAAIH,IAAYK,GAAiBD,GAAqB,IAC7CL,GAAYC,EAASG,CAAY,EAEnCA,CACT,CCrBO,IAAMG,GAAU,SCER,SAASC,GAAc3H,EAAK,CACzC,IAAMN,EAAQ,4BAA4B,KAAKM,CAAG,EAClD,OAAON,GAASA,EAAM,CAAC,GAAK,EAC9B,CCCA,IAAMkI,GAAmB,gDAYV,SAASC,GAAYC,EAAKC,EAAQpJ,EAAS,CACxD,IAAMqJ,EAAQrJ,GAAWA,EAAQ,MAAQkD,EAAS,QAAQ,KACpDoG,EAAWN,GAAcG,CAAG,EAMlC,GAJIC,IAAW,QAAaC,IAC1BD,EAAS,IAGPE,IAAa,OAAQ,CACvBH,EAAMG,EAAS,OAASH,EAAI,MAAMG,EAAS,OAAS,CAAC,EAAIH,EAEzD,IAAMpI,EAAQkI,GAAiB,KAAKE,CAAG,EAEvC,GAAI,CAACpI,EACH,MAAM,IAAIpC,EAAW,cAAeA,EAAW,eAAe,EAGhE,IAAM4K,EAAOxI,EAAM,CAAC,EACdyI,EAAWzI,EAAM,CAAC,EAClB0I,EAAO1I,EAAM,CAAC,EACd2I,EAAS,OAAO,KAAK,mBAAmBD,CAAI,EAAGD,EAAW,SAAW,MAAM,EAEjF,GAAIJ,EAAQ,CACV,GAAI,CAACC,EACH,MAAM,IAAI1K,EAAW,wBAAyBA,EAAW,eAAe,EAG1E,OAAO,IAAI0K,EAAM,CAACK,CAAM,EAAG,CAAC,KAAMH,CAAI,CAAC,CAC7C,CAEI,OAAOG,CACX,CAEE,MAAM,IAAI/K,EAAW,wBAA0B2K,EAAU3K,EAAW,eAAe,CACrF,CC/CA,IAAMgL,GAAa,OAAO,WAAW,EAE/BC,GAAN,cAAmCC,GAAAA,QAAO,SAAS,CACjD,YAAY7J,EAAS,CACnBA,EAAUX,EAAM,aAAaW,EAAS,CACpC,QAAS,EACT,UAAW,GAAK,KAChB,aAAc,IACd,WAAY,IACZ,UAAW,EACX,aAAc,EACpB,EAAO,KAAM,CAAC9E,EAAM0C,IACP,CAACyB,EAAM,YAAYzB,EAAO1C,CAAI,CAAC,CACvC,EAED,MAAM,CACJ,sBAAuB8E,EAAQ,SACrC,CAAK,EAED,IAAM8J,EAAY,KAAKH,EAAU,EAAI,CACnC,WAAY3J,EAAQ,WACpB,UAAWA,EAAQ,UACnB,QAASA,EAAQ,QACjB,aAAcA,EAAQ,aACtB,UAAW,EACX,WAAY,GACZ,oBAAqB,EACrB,GAAI,KAAK,IAAG,EACZ,MAAO,EACP,eAAgB,IACtB,EAEI,KAAK,GAAG,cAAe+J,GAAS,CAC1BA,IAAU,aACPD,EAAU,aACbA,EAAU,WAAa,IAGjC,CAAK,CACL,CAEE,MAAMxH,EAAM,CACV,IAAMwH,EAAY,KAAKH,EAAU,EAEjC,OAAIG,EAAU,gBACZA,EAAU,eAAc,EAGnB,MAAM,MAAMxH,CAAI,CAC3B,CAEE,WAAW0H,EAAOC,EAAUC,EAAU,CACpC,IAAMJ,EAAY,KAAKH,EAAU,EAC3BQ,EAAUL,EAAU,QAEpBM,EAAwB,KAAK,sBAE7BC,EAAaP,EAAU,WAEvBQ,EAAU,IAAOD,EACjBE,EAAkBJ,EAAUG,EAC5BE,EAAeV,EAAU,eAAiB,GAAQ,KAAK,IAAIA,EAAU,aAAcS,EAAiB,GAAI,EAAI,EAE5GE,EAAY,CAACC,EAAQC,IAAc,CACvC,IAAMC,EAAQ,OAAO,WAAWF,CAAM,EACtCZ,EAAU,WAAac,EACvBd,EAAU,OAASc,EAEnBd,EAAU,YAAc,KAAK,KAAK,WAAYA,EAAU,SAAS,EAE7D,KAAK,KAAKY,CAAM,EAClB,QAAQ,SAASC,CAAS,EAE1Bb,EAAU,eAAiB,IAAM,CAC/BA,EAAU,eAAiB,KAC3B,QAAQ,SAASa,CAAS,CACpC,CAEA,EAEUE,EAAiB,CAACH,EAAQC,IAAc,CAC5C,IAAMG,EAAY,OAAO,WAAWJ,CAAM,EACtCK,EAAiB,KACjBC,EAAeZ,EACfa,EACAC,EAAS,EAEb,GAAIf,EAAS,CACX,IAAMgB,EAAM,KAAK,IAAG,GAEhB,CAACrB,EAAU,KAAOoB,EAAUC,EAAMrB,EAAU,KAAQO,KACtDP,EAAU,GAAKqB,EACfF,EAAYV,EAAiBT,EAAU,MACvCA,EAAU,MAAQmB,EAAY,EAAI,CAACA,EAAY,EAC/CC,EAAS,GAGXD,EAAYV,EAAiBT,EAAU,KAC/C,CAEM,GAAIK,EAAS,CACX,GAAIc,GAAa,EAEf,OAAO,WAAW,IAAM,CACtBN,EAAU,KAAMD,CAAM,CAClC,EAAaL,EAAaa,CAAM,EAGpBD,EAAYD,IACdA,EAAeC,EAEzB,CAEUD,GAAgBF,EAAYE,GAAiBF,EAAYE,EAAgBR,IAC3EO,EAAiBL,EAAO,SAASM,CAAY,EAC7CN,EAASA,EAAO,SAAS,EAAGM,CAAY,GAG1CP,EAAUC,EAAQK,EAAiB,IAAM,CACvC,QAAQ,SAASJ,EAAW,KAAMI,CAAc,CACxD,EAAUJ,CAAS,CACnB,EAEIE,EAAeb,EAAO,SAASoB,EAAmBC,EAAKX,EAAQ,CAC7D,GAAIW,EACF,OAAOnB,EAASmB,CAAG,EAGjBX,EACFG,EAAeH,EAAQU,CAAkB,EAEzClB,EAAS,IAAI,CAErB,CAAK,CACL,CACA,EAEAoB,GAAe1B,GC9IT,CAAC,cAAA2B,EAAa,EAAI,OAElBC,GAAW,gBAAiBC,EAAM,CAClCA,EAAK,OACP,MAAOA,EAAK,OAAM,EACTA,EAAK,YACd,MAAM,MAAMA,EAAK,YAAW,EACnBA,EAAKF,EAAa,EAC3B,MAAOE,EAAKF,EAAa,EAAC,EAE1B,MAAME,CAEV,EAEAC,GAAeF,GCRTG,GAAoBzI,EAAS,SAAS,YAAc,KAEpD0I,GAAc,OAAO,aAAgB,WAAa,IAAI,YAAgB,IAAIC,GAAAA,QAAK,YAE/EC,GAAO;EACPC,GAAaH,GAAY,OAAOE,EAAI,EACpCE,GAAmB,EAEnBC,GAAN,KAAmB,CACjB,YAAYpP,EAAMG,EAAO,CACvB,GAAM,CAAC,WAAAkP,CAAU,EAAI,KAAK,YACpBC,EAAgB9M,EAAM,SAASrC,CAAK,EAEtCgH,EAAU,yCAAyCkI,EAAWrP,CAAI,CAAC,IACrE,CAACsP,GAAiBnP,EAAM,KAAO,eAAekP,EAAWlP,EAAM,IAAI,CAAC,IAAM,EAChF,GAAO8O,EAAI,GAEHK,EACFnP,EAAQ4O,GAAY,OAAO,OAAO5O,CAAK,EAAE,QAAQ,eAAgB8O,EAAI,CAAC,EAEtE9H,GAAW,iBAAiBhH,EAAM,MAAQ,0BAA0B,GAAG8O,EAAI,GAG7E,KAAK,QAAUF,GAAY,OAAO5H,EAAU8H,EAAI,EAEhD,KAAK,cAAgBK,EAAgBnP,EAAM,WAAaA,EAAM,KAE9D,KAAK,KAAO,KAAK,QAAQ,WAAa,KAAK,cAAgBgP,GAE3D,KAAK,KAAOnP,EACZ,KAAK,MAAQG,CACjB,CAEE,MAAO,QAAQ,CACb,MAAM,KAAK,QAEX,GAAM,CAAC,MAAAA,CAAK,EAAI,KAEbqC,EAAM,aAAarC,CAAK,EACzB,MAAMA,EAEN,MAAOwO,GAASxO,CAAK,EAGvB,MAAM+O,EACV,CAEE,OAAO,WAAWlP,EAAM,CACpB,OAAO,OAAOA,CAAI,EAAE,QAAQ,WAAakE,IAAW,CAClD,KAAO,MACP,KAAO,MACP,IAAM,KACd,GAAQA,CAAK,CAAE,CACf,CACA,EAEMqL,GAAmB,CAACC,EAAMC,EAAgBtM,IAAY,CAC1D,GAAM,CACJ,IAAAuM,EAAM,qBACN,KAAAjK,EAAO,GACP,SAAAkK,EAAWD,EAAM,IAAMrJ,EAAS,eAAeZ,EAAMqJ,EAAiB,CAC1E,EAAM3L,GAAW,CAAA,EAEf,GAAG,CAACX,EAAM,WAAWgN,CAAI,EACvB,MAAM,UAAU,4BAA4B,EAG9C,GAAIG,EAAS,OAAS,GAAKA,EAAS,OAAS,GAC3C,MAAM,MAAM,wCAAwC,EAGtD,IAAMC,EAAgBb,GAAY,OAAO,KAAOY,EAAWV,EAAI,EACzDY,EAAcd,GAAY,OAAO,KAAOY,EAAW,KAAOV,EAAI,EAChEa,EAAgBD,EAAY,WAE1BE,EAAQ,MAAM,KAAKP,EAAK,QAAO,CAAE,EAAE,IAAI,CAAC,CAACxP,EAAMG,CAAK,IAAM,CAC9D,IAAM6P,EAAO,IAAIZ,GAAapP,EAAMG,CAAK,EACzC,OAAA2P,GAAiBE,EAAK,KACfA,CACX,CAAG,EAEDF,GAAiBF,EAAc,WAAaG,EAAM,OAElDD,EAAgBtN,EAAM,eAAesN,CAAa,EAElD,IAAMG,EAAkB,CACtB,eAAgB,iCAAiCN,CAAQ,EAC7D,EAEE,OAAI,OAAO,SAASG,CAAa,IAC/BG,EAAgB,gBAAgB,EAAIH,GAGtCL,GAAkBA,EAAeQ,CAAe,EAEzCC,GAAAA,SAAS,MAAM,iBAAmB,CACvC,QAAUF,KAAQD,EAChB,MAAMH,EACN,MAAOI,EAAK,OAAM,EAGpB,MAAMH,CACV,GAAG,CAAG,CACN,EAEAM,GAAeZ,GC3GTa,GAAN,cAAwCpD,GAAAA,QAAO,SAAU,CACvD,YAAYG,EAAOC,EAAUC,EAAU,CACrC,KAAK,KAAKF,CAAK,EACfE,EAAQ,CACZ,CAEE,WAAWF,EAAOC,EAAUC,EAAU,CACpC,GAAIF,EAAM,SAAW,IACnB,KAAK,WAAa,KAAK,YAGnBA,EAAM,CAAC,IAAM,KAAK,CACpB,IAAM7E,EAAS,OAAO,MAAM,CAAC,EAC7BA,EAAO,CAAC,EAAI,IACZA,EAAO,CAAC,EAAI,IACZ,KAAK,KAAKA,EAAQ8E,CAAQ,CAClC,CAGI,KAAK,YAAYD,EAAOC,EAAUC,CAAQ,CAC9C,CACA,EAEAgD,GAAeD,GCzBTE,GAAc,CAAC3W,EAAIkG,IAChB2C,EAAM,UAAU7I,CAAE,EAAI,YAAa4W,EAAM,CAC9C,IAAM7O,EAAK6O,EAAK,IAAG,EACnB5W,EAAG,MAAM,KAAM4W,CAAI,EAAE,KAAMpQ,GAAU,CACnC,GAAI,CACFN,EAAU6B,EAAG,KAAM,GAAG7B,EAAQM,CAAK,CAAC,EAAIuB,EAAG,KAAMvB,CAAK,CAC9D,OAAeqO,EAAK,CACZ9M,EAAG8M,CAAG,CACd,CACA,EAAO9M,CAAE,CACT,EAAM/H,EAGN6W,GAAeF,GCPf,SAASG,GAAYC,EAAcC,EAAK,CACtCD,EAAeA,GAAgB,GAC/B,IAAM3C,EAAQ,IAAI,MAAM2C,CAAY,EAC9BE,EAAa,IAAI,MAAMF,CAAY,EACrCG,EAAO,EACPC,EAAO,EACPC,EAEJ,OAAAJ,EAAMA,IAAQ,OAAYA,EAAM,IAEzB,SAAcK,EAAa,CAChC,IAAM1C,EAAM,KAAK,IAAG,EAEd2C,EAAYL,EAAWE,CAAI,EAE5BC,IACHA,EAAgBzC,GAGlBP,EAAM8C,CAAI,EAAIG,EACdJ,EAAWC,CAAI,EAAIvC,EAEnB,IAAIjR,EAAIyT,EACJI,EAAa,EAEjB,KAAO7T,IAAMwT,GACXK,GAAcnD,EAAM1Q,GAAG,EACvBA,EAAIA,EAAIqT,EASV,GANAG,GAAQA,EAAO,GAAKH,EAEhBG,IAASC,IACXA,GAAQA,EAAO,GAAKJ,GAGlBpC,EAAMyC,EAAgBJ,EACxB,OAGF,IAAMtC,EAAS4C,GAAa3C,EAAM2C,EAElC,OAAO5C,EAAS,KAAK,MAAM6C,EAAa,IAAO7C,CAAM,EAAI,MAC7D,CACA,CC9CA,SAAS8C,GAASxX,EAAIyX,EAAM,CAC1B,IAAIC,EAAY,EACZC,EAAY,IAAOF,EACnBG,EACAC,EAEEC,EAAS,CAAClB,EAAMjC,EAAM,KAAK,IAAG,IAAO,CACzC+C,EAAY/C,EACZiD,EAAW,KACPC,IACF,aAAaA,CAAK,EAClBA,EAAQ,MAEV7X,EAAG,GAAG4W,CAAI,CACd,EAoBE,MAAO,CAlBW,IAAIA,IAAS,CAC7B,IAAMjC,EAAM,KAAK,IAAG,EACdD,EAASC,EAAM+C,EAChBhD,GAAUiD,EACbG,EAAOlB,EAAMjC,CAAG,GAEhBiD,EAAWhB,EACNiB,IACHA,EAAQ,WAAW,IAAM,CACvBA,EAAQ,KACRC,EAAOF,CAAQ,CACzB,EAAWD,EAAYjD,CAAM,GAG7B,EAEgB,IAAMkD,GAAYE,EAAOF,CAAQ,CAEvB,CAC1B,CCrCO,IAAMG,GAAuB,CAACC,EAAUC,EAAkBR,EAAO,IAAM,CAC5E,IAAIS,EAAgB,EACdC,EAAerB,GAAY,GAAI,GAAG,EAExC,OAAOU,GAASlK,GAAK,CACnB,IAAM8K,EAAS9K,EAAE,OACX+K,EAAQ/K,EAAE,iBAAmBA,EAAE,MAAQ,OACvCgL,EAAgBF,EAASF,EACzBK,EAAOJ,EAAaG,CAAa,EACjCE,EAAUJ,GAAUC,EAE1BH,EAAgBE,EAEhB,IAAMtQ,EAAO,CACX,OAAAsQ,EACA,MAAAC,EACA,SAAUA,EAASD,EAASC,EAAS,OACrC,MAAOC,EACP,KAAMC,GAAc,OACpB,UAAWA,GAAQF,GAASG,GAAWH,EAAQD,GAAUG,EAAO,OAChE,MAAOjL,EACP,iBAAkB+K,GAAS,KAC3B,CAACJ,EAAmB,WAAa,QAAQ,EAAG,EAClD,EAEID,EAASlQ,CAAI,CACjB,EAAK2P,CAAI,CACT,EAEagB,GAAyB,CAACJ,EAAOK,IAAc,CAC1D,IAAMC,EAAmBN,GAAS,KAElC,MAAO,CAAED,GAAWM,EAAU,CAAC,EAAE,CAC/B,iBAAAC,EACA,MAAAN,EACA,OAAAD,CACJ,CAAG,EAAGM,EAAU,CAAC,CAAC,CAClB,EAEaE,GAAkB5Y,GAAO,IAAI4W,IAAS/N,EAAM,KAAK,IAAM7I,EAAG,GAAG4W,CAAI,CAAC,EClChE,SAASiC,GAA4BhO,EAAK,CAEvD,GADI,CAACA,GAAO,OAAOA,GAAQ,UACvB,CAACA,EAAI,WAAW,OAAO,EAAG,MAAO,GAErC,IAAMiO,EAAQjO,EAAI,QAAQ,GAAG,EAC7B,GAAIiO,EAAQ,EAAG,MAAO,GAEtB,IAAMC,EAAOlO,EAAI,MAAM,EAAGiO,CAAK,EACzB7F,EAAOpI,EAAI,MAAMiO,EAAQ,CAAC,EAGhC,GAFiB,WAAW,KAAKC,CAAI,EAEvB,CACZ,IAAIC,EAAe/F,EAAK,OAClBnQ,EAAMmQ,EAAK,OAEjB,QAASvP,EAAI,EAAGA,EAAIZ,EAAKY,IACvB,GAAIuP,EAAK,WAAWvP,CAAC,IAAM,IAAgBA,EAAI,EAAIZ,EAAK,CACtD,IAAMc,EAAIqP,EAAK,WAAWvP,EAAI,CAAC,EACzBG,EAAIoP,EAAK,WAAWvP,EAAI,CAAC,GAE3BE,GAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,OAChEC,GAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,IAAQA,GAAK,IAAMA,GAAK,OAGlEmV,GAAgB,EAChBtV,GAAK,EAEf,CAGI,IAAIuV,EAAM,EACNC,EAAMpW,EAAM,EAEVqW,EAAeC,GACnBA,GAAK,GACLnG,EAAK,WAAWmG,EAAI,CAAC,IAAM,IAC3BnG,EAAK,WAAWmG,EAAI,CAAC,IAAM,KAC1BnG,EAAK,WAAWmG,CAAC,IAAM,IAAMnG,EAAK,WAAWmG,CAAC,IAAM,KAEnDF,GAAO,IACLjG,EAAK,WAAWiG,CAAG,IAAM,IAC3BD,IACAC,KACSC,EAAYD,CAAG,IACxBD,IACAC,GAAO,IAIPD,IAAQ,GAAKC,GAAO,IAClBjG,EAAK,WAAWiG,CAAG,IAAM,IAElBC,EAAYD,CAAG,IACxBD,IAKJ,IAAM7E,EADS,KAAK,MAAM4E,EAAe,CAAC,EACnB,GAAKC,GAAO,GACnC,OAAO7E,EAAQ,EAAIA,EAAQ,CAC/B,CAEE,OAAO,OAAO,WAAWnB,EAAM,MAAM,CACvC,CC5CA,IAAMoG,GAAc,CAClB,MAAOC,GAAAA,QAAK,UAAU,aACtB,YAAaA,GAAAA,QAAK,UAAU,YAC9B,EAEMC,GAAgB,CACpB,MAAOD,GAAAA,QAAK,UAAU,uBACtB,YAAaA,GAAAA,QAAK,UAAU,sBAC9B,EAEME,GAAoB3Q,EAAM,WAAWyQ,GAAAA,QAAK,sBAAsB,EAEhE,CAAC,KAAMG,GAAY,MAAOC,EAAW,EAAIC,GAAAA,QAEzCC,GAAU,UAEVC,GAAqBnN,EAAS,UAAU,IAAIoG,GACzCA,EAAW,GACnB,EAGKgH,GAAgB,CAACzG,EAAQ,CAACqF,EAAWqB,CAAK,KAC9C1G,EACG,GAAG,MAAO0G,CAAK,EACf,GAAG,QAASA,CAAK,EAEbrB,GAGHsB,GAAN,KAAoB,CAClB,aAAc,CACZ,KAAK,SAAW,OAAO,OAAO,IAAI,CACtC,CAEE,WAAWC,EAAWzQ,EAAS,CAC7BA,EAAU,OAAO,OAAO,CACtB,eAAgB,GACtB,EAAOA,CAAO,EAEV,IAAI0Q,EAAoB,KAAK,SAASD,CAAS,EAE/C,GAAIC,EAAmB,CACrB,IAAIpX,EAAMoX,EAAkB,OAE5B,QAASxW,EAAI,EAAGA,EAAIZ,EAAKY,IAAK,CAC5B,GAAM,CAACyW,EAAeC,CAAc,EAAIF,EAAkBxW,CAAC,EAC3D,GAAI,CAACyW,EAAc,WAAa,CAACA,EAAc,QAAU9E,GAAAA,QAAK,kBAAkB+E,EAAgB5Q,CAAO,EACrG,OAAO2Q,CAEjB,CACA,CAEI,IAAME,EAAUC,GAAAA,QAAM,QAAQL,EAAWzQ,CAAO,EAE5C+Q,EAEEC,EAAgB,IAAM,CAC1B,GAAID,EACF,OAGFA,EAAU,GAEV,IAAIE,EAAUP,EAAmBpX,EAAM2X,EAAQ,OAAQ/W,EAAIZ,EAE3D,KAAOY,KACL,GAAI+W,EAAQ/W,CAAC,EAAE,CAAC,IAAM2W,EAAS,CACzBvX,IAAQ,EACV,OAAO,KAAK,SAASmX,CAAS,EAE9BQ,EAAQ,OAAO/W,EAAG,CAAC,EAErB,MACV,CAEA,EAEUgX,EAAoBL,EAAQ,QAE5B,CAAC,eAAAM,CAAc,EAAInR,EAEzB,GAAGmR,GAAkB,KAAM,CAEzB,IAAI9C,EACA+C,EAAe,EAEnBP,EAAQ,QAAU,UAAY,CAC5B,IAAMhH,EAASqH,EAAkB,MAAM,KAAM,SAAS,EAEtD,OAAAE,IAEI/C,IACF,aAAaA,CAAK,EAClBA,EAAQ,MAGVxE,EAAO,KAAK,QAAS,IAAM,CACpB,EAAEuH,IACL/C,EAAQ,WAAW,IAAM,CACvBA,EAAQ,KACR2C,EAAa,CAC3B,EAAeG,CAAc,EAE7B,CAAS,EAEMtH,CACf,CACA,CAEIgH,EAAQ,KAAK,QAASG,CAAa,EAEnC,IAAIjK,EAAQ,CACR8J,EACA7Q,CACR,EAEI,OAAA0Q,EAAoBA,EAAkB,KAAK3J,CAAK,EAAI2J,EAAqB,KAAK,SAASD,CAAS,EAAI,CAAC1J,CAAK,EAEnG8J,CACX,CACA,EAEMQ,GAAgB,IAAIb,GAW1B,SAASc,GAAuBtR,EAASuR,EAAiB,CACpDvR,EAAQ,gBAAgB,OAC1BA,EAAQ,gBAAgB,MAAMA,CAAO,EAEnCA,EAAQ,gBAAgB,QAC1BA,EAAQ,gBAAgB,OAAOA,EAASuR,CAAe,CAE3D,CAWA,SAASC,GAASxR,EAASyR,EAAaC,EAAU,CAChD,IAAIC,EAAQF,EACZ,GAAI,CAACE,GAASA,IAAU,GAAO,CAC7B,IAAMC,EAAWC,GAAAA,QAAa,eAAeH,CAAQ,EACjDE,IACFD,EAAQ,IAAI,IAAIC,CAAQ,EAE9B,CACE,GAAID,EAAO,CAMT,GAJIA,EAAM,WACRA,EAAM,MAAQA,EAAM,UAAY,IAAM,KAAOA,EAAM,UAAY,KAG7DA,EAAM,KAAM,CAId,GAFuB,GAAQA,EAAM,KAAK,UAAYA,EAAM,KAAK,UAG/DA,EAAM,MAAQA,EAAM,KAAK,UAAY,IAAM,KAAOA,EAAM,KAAK,UAAY,YAChE,OAAOA,EAAM,MAAS,SAC/B,MAAM,IAAIhT,EAAW,8BAA+BA,EAAW,eAAgB,CAAE,MAAAgT,CAAK,CAAE,EAG1F,IAAMG,EAAS,OAAO,KAAKH,EAAM,KAAM,MAAM,EAAE,SAAS,QAAQ,EAEhE3R,EAAQ,QAAQ,qBAAqB,EAAI,SAAW8R,CAC1D,CAEI9R,EAAQ,QAAQ,KAAOA,EAAQ,UAAYA,EAAQ,KAAO,IAAMA,EAAQ,KAAO,IAC/E,IAAM+R,EAAYJ,EAAM,UAAYA,EAAM,KAC1C3R,EAAQ,SAAW+R,EAEnB/R,EAAQ,KAAO+R,EACf/R,EAAQ,KAAO2R,EAAM,KACrB3R,EAAQ,KAAO0R,EACXC,EAAM,WACR3R,EAAQ,SAAW2R,EAAM,SAAS,SAAS,GAAG,EAAIA,EAAM,SAAW,GAAGA,EAAM,QAAQ,IAE1F,CAEE3R,EAAQ,gBAAgB,MAAQ,SAAwBgS,EAAiB,CAGvER,GAASQ,EAAiBP,EAAaO,EAAgB,IAAI,CAC/D,CACA,CAEA,IAAMC,GAAyB,OAAO,QAAY,KAAe5S,EAAM,OAAO,OAAO,IAAM,UAIrF6S,GAAaC,GACV,IAAI,QAAQ,CAAC/J,EAASC,IAAW,CACtC,IAAI+J,EACAC,EAEEC,EAAO,CAACtV,EAAOuV,IAAe,CAC9BF,IACJA,EAAS,GACTD,GAAUA,EAAOpV,EAAOuV,CAAU,EACxC,EAEUC,EAAYxV,GAAU,CAC1BsV,EAAKtV,CAAK,EACVoL,EAAQpL,CAAK,CACnB,EAEUyV,EAAWC,GAAW,CAC1BJ,EAAKI,EAAQ,EAAI,EACjBrK,EAAOqK,CAAM,CACnB,EAEIP,EAAcK,EAAUC,EAAUE,GAAmBP,EAASO,CAAc,EAAE,MAAMF,CAAO,CAC/F,CAAG,EAGGG,GAAgB,CAAC,CAAC,QAAAC,EAAS,OAAAC,CAAM,IAAM,CAC3C,GAAI,CAACzT,EAAM,SAASwT,CAAO,EACzB,MAAM,UAAU,0BAA0B,EAE5C,MAAQ,CACN,QAAAA,EACA,OAAQC,IAAWD,EAAQ,QAAQ,GAAG,EAAI,EAAI,EAAI,EACtD,CACA,EAEME,GAAoB,CAACF,EAASC,IAAWF,GAAcvT,EAAM,SAASwT,CAAO,EAAIA,EAAU,CAAC,QAAAA,EAAS,OAAAC,CAAM,CAAC,EAE5GE,GAAiB,CACrB,QAAQhT,EAASzB,EAAI,CACjB,IAAMkS,EAAYzQ,EAAQ,SAAW,KAAOA,EAAQ,SAAW,KAAOA,EAAQ,OAAQA,EAAQ,WAAa,SAAW,IAAM,KAGtH,CAAC,aAAAiT,EAAc,QAAAjP,CAAO,EAAIhE,EAE1B6Q,EAAUQ,GAAc,WAAWZ,EAAWwC,CAAY,EAE1D,CACJ,oBAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,oBAAAC,CACR,EAAUvC,GAAAA,QAAM,UAEJwC,EAAe,CACnB,CAACJ,CAAmB,EAAGlT,EAAQ,SAAS,QAAQ,IAAK,EAAE,EACvD,CAACmT,CAAmB,EAAGnT,EAAQ,OAC/B,CAACoT,CAAiB,EAAGpT,EAAQ,IACrC,EAEMX,EAAM,QAAQ2E,EAAS,CAACmB,EAAQtI,IAAS,CACvCA,EAAK,OAAO,CAAC,IAAM,MAAQyW,EAAazW,CAAI,EAAIsI,EACxD,CAAO,EAED,IAAMoO,EAAM1C,EAAQ,QAAQyC,CAAY,EAExC,OAAAC,EAAI,KAAK,WAAaC,GAAoB,CACxC,IAAMvU,EAAWsU,EAEjBC,EAAkB,OAAO,OAAO,CAAA,EAAIA,CAAe,EAEnD,IAAM/O,EAAS+O,EAAgBH,CAAmB,EAElD,OAAOG,EAAgBH,CAAmB,EAE1CpU,EAAS,QAAUuU,EAEnBvU,EAAS,WAAa,CAACwF,EAEvBlG,EAAGU,CAAQ,CACnB,CAAO,EAEMsU,CACb,CACA,EAGAE,GAAexB,IAA0B,SAAqBlT,EAAQ,CACpE,OAAOmT,GAAU,eAAmC9J,EAASC,EAAQ+J,EAAQ,CAC3E,GAAI,CAAC,KAAA9T,EAAM,OAAAoV,EAAQ,OAAAZ,EAAQ,YAAAa,EAAc,EAAG,aAAAV,CAAY,EAAIlU,EACtD,CAAC,aAAA6U,EAAc,iBAAAC,CAAgB,EAAI9U,EACnC2F,EAAS3F,EAAO,OAAO,YAAW,EACpCsT,EACAzQ,EAAW,GACX2R,EAIJ,GAFAI,EAAc,CAACA,EAEX,OAAO,MAAMA,CAAW,EAC1B,MAAM,UAAU,8BAA8B5U,EAAO,WAAW,mBAAmB,EAGrF,GAAI4U,IAAgB,GAAKA,IAAgB,EACvC,MAAM,UAAU,iCAAiCA,CAAW,GAAG,EAGjE,IAAMG,EAAUH,IAAgB,EAEhC,GAAID,EAAQ,CACV,IAAMK,EAAU5G,GAAYuG,EAAS1W,GAAUqC,EAAM,QAAQrC,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAAC,EAErF0W,EAAS,CAACM,EAAUC,EAAK1V,IAAO,CAC9BwV,EAAQC,EAAUC,EAAK,CAAC5I,EAAK6I,EAAMjO,IAAS,CAC1C,GAAIoF,EACF,OAAO9M,EAAG8M,CAAG,EAGf,IAAM8I,EAAY9U,EAAM,QAAQ6U,CAAI,EAAIA,EAAK,IAAIE,IAAQrB,GAAkBqB,EAAI,CAAC,EAAI,CAACrB,GAAkBmB,EAAMjO,CAAI,CAAC,EAElHgO,EAAI,IAAM1V,EAAG8M,EAAK8I,CAAS,EAAI5V,EAAG8M,EAAK8I,EAAU,CAAC,EAAE,QAASA,EAAU,CAAC,EAAE,MAAM,CAC1F,CAAS,CACT,CACA,CAEI,IAAME,EAAe,IAAIC,GAAAA,aAEzB,SAASC,EAAM7B,EAAQ,CACrB,GAAI,CACF2B,EAAa,KAAK,QAAS,CAAC3B,GAAUA,EAAO,KAAO,IAAIzK,GAAc,KAAMlJ,EAAQwU,CAAG,EAAIb,CAAM,CACzG,OAAcrH,EAAK,CACX,QAAQ,KAAK,aAAcA,CAAG,CACtC,CACA,CAEIgJ,EAAa,KAAK,QAAShM,CAAM,EAEjC,IAAMmM,EAAa,IAAM,CACnBzV,EAAO,aACTA,EAAO,YAAY,YAAYwV,CAAK,EAGlCxV,EAAO,QACTA,EAAO,OAAO,oBAAoB,QAASwV,CAAK,EAGlDF,EAAa,mBAAkB,CACrC,GAEQtV,EAAO,aAAeA,EAAO,UAC/BA,EAAO,aAAeA,EAAO,YAAY,UAAUwV,CAAK,EACpDxV,EAAO,SACTA,EAAO,OAAO,QAAUwV,EAAK,EAAKxV,EAAO,OAAO,iBAAiB,QAASwV,CAAK,IAInFnC,EAAO,CAACnT,EAAUsT,IAAe,CAG/B,GAFAF,EAAS,GAELE,EAAY,CACd3Q,EAAW,GACX4S,EAAU,EACV,MACR,CAEM,GAAM,CAAC,KAAAlW,CAAI,EAAIW,EAEf,GAAIX,aAAgBuL,GAAAA,QAAO,UAAYvL,aAAgBuL,GAAAA,QAAO,OAAQ,CACpE,IAAM4K,EAAe5K,GAAAA,QAAO,SAASvL,EAAM,IAAM,CAC/CmW,EAAY,EACZD,EAAU,CACpB,CAAS,CACT,MACQA,EAAU,CAElB,CAAK,EAOD,IAAME,EAAW/L,GAAc5J,EAAO,QAASA,EAAO,IAAKA,EAAO,iBAAiB,EAC7EgG,EAAS,IAAI,IAAI2P,EAAUxR,EAAS,cAAgBA,EAAS,OAAS,MAAS,EAC/EoG,EAAWvE,EAAO,UAAYsL,GAAmB,CAAC,EAExD,GAAI/G,IAAa,QAAS,CAExB,GAAIvK,EAAO,iBAAmB,GAAI,CAEhC,IAAM4V,EAAU,OAAO5V,EAAO,KAAO2V,GAAY,EAAE,EAGnD,GAFkBrF,GAA4BsF,CAAO,EAErC5V,EAAO,iBACrB,OAAOsJ,EAAO,IAAI1J,EAChB,4BAA8BI,EAAO,iBAAmB,YACxDJ,EAAW,iBACXI,CACZ,CAAW,CAEX,CAEM,IAAI6V,EAEJ,GAAIlQ,IAAW,MACb,OAAOyD,GAAOC,EAASC,EAAQ,CAC7B,OAAQ,IACR,WAAY,qBACZ,QAAS,CAAA,EACT,OAAAtJ,CACV,CAAS,EAGH,GAAI,CACF6V,EAAgB1L,GAAYnK,EAAO,IAAK6U,IAAiB,OAAQ,CAC/D,KAAM7U,EAAO,KAAOA,EAAO,IAAI,IACzC,CAAS,CACT,OAAesM,EAAK,CACZ,MAAM1M,EAAW,KAAK0M,EAAK1M,EAAW,gBAAiBI,CAAM,CACrE,CAEM,OAAI6U,IAAiB,QACnBgB,EAAgBA,EAAc,SAASf,CAAgB,GAEnD,CAACA,GAAoBA,IAAqB,UAC5Ce,EAAgBvV,EAAM,SAASuV,CAAa,IAErChB,IAAiB,WAC1BgB,EAAgB/K,GAAAA,QAAO,SAAS,KAAK+K,CAAa,GAG7CzM,GAAOC,EAASC,EAAQ,CAC7B,KAAMuM,EACN,OAAQ,IACR,WAAY,KACZ,QAAS,IAAIxO,GACb,OAAArH,CACR,CAAO,CACP,CAEI,GAAIsR,GAAmB,QAAQ/G,CAAQ,IAAM,GAC3C,OAAOjB,EAAO,IAAI1J,EAChB,wBAA0B2K,EAC1B3K,EAAW,gBACXI,CACR,CAAO,EAGH,IAAMiF,EAAUoC,GAAa,KAAKrH,EAAO,OAAO,EAAE,UAAS,EAM3DiF,EAAQ,IAAI,aAAc,SAAW+E,GAAS,EAAK,EAEnD,GAAM,CAAC,iBAAA8L,EAAkB,mBAAAC,EAAkB,EAAI/V,EACzCoL,GAAUpL,EAAO,QACnBgW,GACAC,GAGJ,GAAI3V,EAAM,oBAAoBf,CAAI,EAAG,CACnC,IAAM2W,EAAejR,EAAQ,eAAe,6BAA6B,EAEzE1F,EAAO8N,GAAiB9N,EAAO4W,GAAgB,CAC7ClR,EAAQ,IAAIkR,CAAW,CAC/B,EAAS,CACD,IAAK,SAASnM,EAAO,YACrB,SAAUkM,GAAgBA,EAAa,CAAC,GAAK,MACrD,CAAO,CAEP,SAAe5V,EAAM,WAAWf,CAAI,GAAKe,EAAM,WAAWf,EAAK,UAAU,GAGnE,GAFA0F,EAAQ,IAAI1F,EAAK,WAAU,CAAE,EAEzB,CAAC0F,EAAQ,iBAAgB,EAC3B,GAAI,CACF,IAAMmR,EAAc,MAAMtJ,GAAAA,QAAK,UAAUvN,EAAK,SAAS,EAAE,KAAKA,CAAI,EAClE,OAAO,SAAS6W,CAAW,GAAKA,GAAe,GAAKnR,EAAQ,iBAAiBmR,CAAW,CAElG,MAAoB,CACpB,UAEe9V,EAAM,OAAOf,CAAI,GAAKe,EAAM,OAAOf,CAAI,EAChDA,EAAK,MAAQ0F,EAAQ,eAAe1F,EAAK,MAAQ,0BAA0B,EAC3E0F,EAAQ,iBAAiB1F,EAAK,MAAQ,CAAC,EACvCA,EAAOuL,GAAAA,QAAO,SAAS,KAAK2B,GAASlN,CAAI,CAAC,UACjCA,GAAQ,CAACe,EAAM,SAASf,CAAI,EAAG,CACxC,GAAI,QAAO,SAASA,CAAI,EAEjB,GAAIe,EAAM,cAAcf,CAAI,EACjCA,EAAO,OAAO,KAAK,IAAI,WAAWA,CAAI,CAAC,UAC9Be,EAAM,SAASf,CAAI,EAC5BA,EAAO,OAAO,KAAKA,EAAM,OAAO,MAEhC,QAAO+J,EAAO,IAAI1J,EAChB,oFACAA,EAAW,gBACXI,CACV,CAAS,EAMH,GAFAiF,EAAQ,iBAAiB1F,EAAK,OAAQ,EAAK,EAEvCS,EAAO,cAAgB,IAAMT,EAAK,OAASS,EAAO,cACpD,OAAOsJ,EAAO,IAAI1J,EAChB,+CACAA,EAAW,gBACXI,CACV,CAAS,CAET,CAEI,IAAM4N,GAAgBtN,EAAM,eAAe2E,EAAQ,iBAAgB,CAAE,EAEjE3E,EAAM,QAAQ8K,EAAO,GACvB4K,GAAgB5K,GAAQ,CAAC,EACzB6K,GAAkB7K,GAAQ,CAAC,GAE3B4K,GAAgBC,GAAkB7K,GAGhC7L,IAASuW,GAAoBE,MAC1B1V,EAAM,SAASf,CAAI,IACtBA,EAAOuL,GAAAA,QAAO,SAAS,KAAKvL,EAAM,CAAC,WAAY,EAAK,CAAC,GAGvDA,EAAOuL,GAAAA,QAAO,SAAS,CAACvL,EAAM,IAAIsL,GAAqB,CACrD,QAASvK,EAAM,eAAe0V,EAAa,CACnD,CAAO,CAAC,EAAG1V,EAAM,IAAI,EAEfwV,GAAoBvW,EAAK,GAAG,WAAYgS,GACtChS,EACA2Q,GACEtC,GACA4B,GAAqBa,GAAeyF,CAAgB,EAAG,GAAO,CAAC,CACzE,CACA,CAAO,GAIH,IAAIO,GACJ,GAAIrW,EAAO,KAAM,CACf,IAAMsW,EAAWtW,EAAO,KAAK,UAAY,GACnCuW,EAAWvW,EAAO,KAAK,UAAY,GACzCqW,GAAOC,EAAW,IAAMC,CAC9B,CAEI,GAAI,CAACF,IAAQrQ,EAAO,SAAU,CAC5B,IAAMwQ,EAAcxQ,EAAO,SACrByQ,EAAczQ,EAAO,SAC3BqQ,GAAOG,EAAc,IAAMC,CACjC,CAEIJ,IAAQpR,EAAQ,OAAO,eAAe,EAEtC,IAAItE,GAEJ,GAAI,CACFA,GAAO0B,GACL2D,EAAO,SAAWA,EAAO,OACzBhG,EAAO,OACPA,EAAO,gBACf,EAAQ,QAAQ,MAAO,EAAE,CACzB,OAAasM,EAAK,CACZ,IAAMoK,EAAY,IAAI,MAAMpK,EAAI,OAAO,EACvC,OAAAoK,EAAU,OAAS1W,EACnB0W,EAAU,IAAM1W,EAAO,IACvB0W,EAAU,OAAS,GACZpN,EAAOoN,CAAS,CAC7B,CAEIzR,EAAQ,IACN,kBACA,2BAA6BgM,GAAoB,OAAS,IAAK,EACrE,EAEI,IAAMhQ,EAAU,CACd,KAAAN,GACA,OAAQgF,EACR,QAASV,EAAQ,OAAM,EACvB,OAAQ,CAAE,KAAMjF,EAAO,UAAW,MAAOA,EAAO,UAAU,EAC1D,KAAAqW,GACA,SAAA9L,EACA,OAAAwJ,EACA,eAAgBxB,GAChB,gBAAiB,CAAA,EACjB,aAAA2B,CACN,EAGI,CAAC5T,EAAM,YAAYqU,CAAM,IAAM1T,EAAQ,OAAS0T,GAE5C3U,EAAO,WACTiB,EAAQ,WAAajB,EAAO,YAE5BiB,EAAQ,SAAW+E,EAAO,SAAS,WAAW,GAAG,EAAIA,EAAO,SAAS,MAAM,EAAG,EAAE,EAAIA,EAAO,SAC3F/E,EAAQ,KAAO+E,EAAO,KACtByM,GAASxR,EAASjB,EAAO,MAAOuK,EAAW,KAAOvE,EAAO,UAAYA,EAAO,KAAO,IAAMA,EAAO,KAAO,IAAM/E,EAAQ,IAAI,GAG3H,IAAI0V,GACEC,GAAiBvF,GAAQ,KAAKpQ,EAAQ,QAAQ,EAqMpD,GApMAA,EAAQ,MAAQ2V,GAAiB5W,EAAO,WAAaA,EAAO,UAExD+U,EACD4B,GAAY1C,GAETjU,EAAO,UACT2W,GAAY3W,EAAO,UACVA,EAAO,eAAiB,EACjC2W,GAAYC,GAAiBC,GAAAA,QAAQC,GAAAA,SAEjC9W,EAAO,eACTiB,EAAQ,aAAejB,EAAO,cAE5BA,EAAO,iBACTiB,EAAQ,gBAAgB,OAASjB,EAAO,gBAE1C2W,GAAYC,GAAiBzF,GAAcD,IAI3ClR,EAAO,cAAgB,GACzBiB,EAAQ,cAAgBjB,EAAO,cAG/BiB,EAAQ,cAAgB,IAGtBjB,EAAO,qBACTiB,EAAQ,mBAAqBjB,EAAO,oBAItCwU,EAAMmC,GAAU,QAAQ1V,EAAS,SAAwB8V,EAAK,CAC5D,GAAIvC,EAAI,UAAW,OAEnB,IAAMwC,EAAU,CAACD,CAAG,EAEdE,EAAiB3W,EAAM,eAAeyW,EAAI,QAAQ,gBAAgB,CAAC,EAEzE,GAAIhB,IAAsBE,GAAiB,CACzC,IAAMiB,EAAkB,IAAIrM,GAAqB,CAC/C,QAASvK,EAAM,eAAe2V,EAAe,CACvD,CAAS,EAEDF,IAAsBmB,EAAgB,GAAG,WAAY3F,GACnD2F,EACAhH,GACE+G,EACAzH,GAAqBa,GAAe0F,EAAkB,EAAG,GAAM,CAAC,CAC5E,CACA,CAAS,EAEDiB,EAAQ,KAAKE,CAAe,CACpC,CAGM,IAAIC,EAAiBJ,EAGfK,EAAcL,EAAI,KAAOvC,EAG/B,GAAIxU,EAAO,aAAe,IAAS+W,EAAI,QAAQ,kBAAkB,EAO/D,QAJIpR,IAAW,QAAUoR,EAAI,aAAe,MAC1C,OAAOA,EAAI,QAAQ,kBAAkB,GAG9BA,EAAI,QAAQ,kBAAkB,GAAK,IAAI,YAAW,EAAE,CAE7D,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,aAEHC,EAAQ,KAAKjG,GAAAA,QAAK,YAAYD,EAAW,CAAC,EAG1C,OAAOiG,EAAI,QAAQ,kBAAkB,EACrC,MACF,IAAK,UACHC,EAAQ,KAAK,IAAI9I,EAA2B,EAG5C8I,EAAQ,KAAKjG,GAAAA,QAAK,YAAYD,EAAW,CAAC,EAG1C,OAAOiG,EAAI,QAAQ,kBAAkB,EACrC,MACF,IAAK,KACC9F,KACF+F,EAAQ,KAAKjG,GAAAA,QAAK,uBAAuBC,EAAa,CAAC,EACvD,OAAO+F,EAAI,QAAQ,kBAAkB,EAEjD,CAGMI,EAAiBH,EAAQ,OAAS,EAAIlM,GAAAA,QAAO,SAASkM,EAAS1W,EAAM,IAAI,EAAI0W,EAAQ,CAAC,EAItF,IAAM9W,EAAW,CACf,OAAQ6W,EAAI,WACZ,WAAYA,EAAI,cAChB,QAAS,IAAI1P,GAAa0P,EAAI,OAAO,EACrC,OAAA/W,EACA,QAASoX,CACjB,EAEM,GAAIvC,IAAiB,SACnB3U,EAAS,KAAOiX,EAChB/N,GAAOC,EAASC,EAAQpJ,CAAQ,MAC3B,CACL,IAAMmX,EAAiB,CAAA,EACnBC,GAAqB,EAEzBH,EAAe,GAAG,OAAQ,SAA0BlM,GAAO,CACzDoM,EAAe,KAAKpM,EAAK,EACzBqM,IAAsBrM,GAAM,OAGxBjL,EAAO,iBAAmB,IAAMsX,GAAqBtX,EAAO,mBAE9D6C,EAAW,GACXsU,EAAe,QAAO,EACtB3B,EAAM,IAAI5V,EAAW,4BAA8BI,EAAO,iBAAmB,YAC3EJ,EAAW,iBAAkBI,EAAQoX,CAAW,CAAC,EAE/D,CAAS,EAEDD,EAAe,GAAG,UAAW,UAAgC,CAC3D,GAAItU,EACF,OAGF,IAAMyJ,GAAM,IAAI1M,EACd,0BACAA,EAAW,iBACXI,EACAoX,CACZ,EACUD,EAAe,QAAQ7K,EAAG,EAC1BhD,EAAOgD,EAAG,CACpB,CAAS,EAED6K,EAAe,GAAG,QAAS,SAA2B7K,GAAK,CACrDkI,EAAI,WACRlL,EAAO1J,EAAW,KAAK0M,GAAK,KAAMtM,EAAQoX,CAAW,CAAC,CAChE,CAAS,EAEDD,EAAe,GAAG,MAAO,UAA2B,CAClD,GAAI,CACF,IAAII,GAAeF,EAAe,SAAW,EAAIA,EAAe,CAAC,EAAI,OAAO,OAAOA,CAAc,EAC7FxC,IAAiB,gBACnB0C,GAAeA,GAAa,SAASzC,CAAgB,GACjD,CAACA,GAAoBA,IAAqB,UAC5CyC,GAAejX,EAAM,SAASiX,EAAY,IAG9CrX,EAAS,KAAOqX,EAC5B,OAAmBjL,GAAK,CACZ,OAAOhD,EAAO1J,EAAW,KAAK0M,GAAK,KAAMtM,EAAQE,EAAS,QAASA,CAAQ,CAAC,CACxF,CACUkJ,GAAOC,EAASC,EAAQpJ,CAAQ,CAC1C,CAAS,CACT,CAEMoV,EAAa,KAAK,QAAShJ,GAAO,CAC3B6K,EAAe,YAClBA,EAAe,KAAK,QAAS7K,CAAG,EAChC6K,EAAe,QAAO,EAEhC,CAAO,CACP,CAAK,EAED7B,EAAa,KAAK,QAAShJ,GAAO,CAC5BkI,EAAI,MACNA,EAAI,MAAK,EAETA,EAAI,QAAQlI,CAAG,CAEvB,CAAK,EAGDkI,EAAI,GAAG,QAAS,SAA4BlI,EAAK,CAC/ChD,EAAO1J,EAAW,KAAK0M,EAAK,KAAMtM,EAAQwU,CAAG,CAAC,CACpD,CAAK,EAGDA,EAAI,GAAG,SAAU,SAA6BgD,EAAQ,CAEpDA,EAAO,aAAa,GAAM,IAAO,EAAE,CACzC,CAAK,EAGGxX,EAAO,QAAS,CAElB,IAAMyX,EAAU,SAASzX,EAAO,QAAS,EAAE,EAE3C,GAAI,OAAO,MAAMyX,CAAO,EAAG,CACzBjC,EAAM,IAAI5V,EACR,gDACAA,EAAW,qBACXI,EACAwU,CACV,CAAS,EAED,MACR,CAOMA,EAAI,WAAWiD,EAAS,UAAgC,CACtD,GAAInE,EAAQ,OACZ,IAAIoE,EAAsB1X,EAAO,QAAU,cAAgBA,EAAO,QAAU,cAAgB,mBACtFsF,EAAetF,EAAO,cAAgBiD,GACxCjD,EAAO,sBACT0X,EAAsB1X,EAAO,qBAE/BwV,EAAM,IAAI5V,EACR8X,EACApS,EAAa,oBAAsB1F,EAAW,UAAYA,EAAW,aACrEI,EACAwU,CACV,CAAS,CACT,CAAO,CACP,MAEMA,EAAI,WAAW,CAAC,EAKlB,GAAIlU,EAAM,SAASf,CAAI,EAAG,CACxB,IAAIoY,EAAQ,GACRC,EAAU,GAEdrY,EAAK,GAAG,MAAO,IAAM,CACnBoY,EAAQ,EAChB,CAAO,EAEDpY,EAAK,KAAK,QAAS+M,GAAO,CACxBsL,EAAU,GACVpD,EAAI,QAAQlI,CAAG,CACvB,CAAO,EAED/M,EAAK,GAAG,QAAS,IAAM,CACjB,CAACoY,GAAS,CAACC,GACbpC,EAAM,IAAItM,GAAc,kCAAmClJ,EAAQwU,CAAG,CAAC,CAEjF,CAAO,EAEDjV,EAAK,KAAKiV,CAAG,CACnB,MACMjV,GAAQiV,EAAI,MAAMjV,CAAI,EACtBiV,EAAI,IAAG,CAEb,CAAG,CACH,EC73BAqD,GAAe1T,EAAS,uBAAyB,CAACD,EAAQ4T,IAAYxV,IACpEA,EAAM,IAAI,IAAIA,EAAK6B,EAAS,MAAM,EAGhCD,EAAO,WAAa5B,EAAI,UACxB4B,EAAO,OAAS5B,EAAI,OACnBwV,GAAU5T,EAAO,OAAS5B,EAAI,QAGjC,IAAI,IAAI6B,EAAS,MAAM,EACvBA,EAAS,WAAa,kBAAkB,KAAKA,EAAS,UAAU,SAAS,CAC3E,EAAI,IAAM,GCVV4T,GAAe5T,EAAS,sBAGtB,CACE,MAAMrG,EAAMG,EAAO+Z,EAASrX,EAAMsX,EAAQC,EAAQC,EAAU,CAC1D,GAAI,OAAO,SAAa,IAAa,OAErC,IAAMC,EAAS,CAAC,GAAGta,CAAI,IAAI,mBAAmBG,CAAK,CAAC,EAAE,EAElDqC,EAAM,SAAS0X,CAAO,GACxBI,EAAO,KAAK,WAAW,IAAI,KAAKJ,CAAO,EAAE,YAAW,CAAE,EAAE,EAEtD1X,EAAM,SAASK,CAAI,GACrByX,EAAO,KAAK,QAAQzX,CAAI,EAAE,EAExBL,EAAM,SAAS2X,CAAM,GACvBG,EAAO,KAAK,UAAUH,CAAM,EAAE,EAE5BC,IAAW,IACbE,EAAO,KAAK,QAAQ,EAElB9X,EAAM,SAAS6X,CAAQ,GACzBC,EAAO,KAAK,YAAYD,CAAQ,EAAE,EAGpC,SAAS,OAASC,EAAO,KAAK,IAAI,CACxC,EAEI,KAAKta,EAAM,CACT,GAAI,OAAO,SAAa,IAAa,OAAO,KAC5C,IAAMkE,EAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,WAAalE,EAAO,UAAU,CAAC,EAC9E,OAAOkE,EAAQ,mBAAmBA,EAAM,CAAC,CAAC,EAAI,IACpD,EAEI,OAAOlE,EAAM,CACX,KAAK,MAAMA,EAAM,GAAI,KAAK,IAAG,EAAK,MAAU,GAAG,CACrD,CACA,EAKE,CACE,OAAQ,CAAA,EACR,MAAO,CACL,OAAO,IACb,EACI,QAAS,CAAA,CACb,EC9CMua,GAAmBpgB,GAAUA,aAAiBoP,GAAe,CAAE,GAAGpP,CAAK,EAAKA,EAWnE,SAASqgB,GAAYC,EAASC,EAAS,CAEpDA,EAAUA,GAAW,CAAA,EACrB,IAAMxY,EAAS,CAAA,EAEf,SAASyY,EAAe3Z,EAAQD,EAAQ1C,EAAMpB,EAAU,CACtD,OAAIuF,EAAM,cAAcxB,CAAM,GAAKwB,EAAM,cAAczB,CAAM,EACpDyB,EAAM,MAAM,KAAK,CAAE,SAAAvF,CAAQ,EAAI+D,EAAQD,CAAM,EAC3CyB,EAAM,cAAczB,CAAM,EAC5ByB,EAAM,MAAM,CAAA,EAAIzB,CAAM,EACpByB,EAAM,QAAQzB,CAAM,EACtBA,EAAO,MAAK,EAEdA,CACX,CAEE,SAAS6Z,EAAoBrd,EAAGC,EAAGa,EAAMpB,EAAU,CACjD,GAAKuF,EAAM,YAAYhF,CAAC,GAEjB,GAAI,CAACgF,EAAM,YAAYjF,CAAC,EAC7B,OAAOod,EAAe,OAAWpd,EAAGc,EAAMpB,CAAQ,MAFlD,QAAO0d,EAAepd,EAAGC,EAAGa,EAAMpB,CAAQ,CAIhD,CAGE,SAAS4d,EAAiBtd,EAAGC,EAAG,CAC9B,GAAI,CAACgF,EAAM,YAAYhF,CAAC,EACtB,OAAOmd,EAAe,OAAWnd,CAAC,CAExC,CAGE,SAASsd,EAAiBvd,EAAGC,EAAG,CAC9B,GAAKgF,EAAM,YAAYhF,CAAC,GAEjB,GAAI,CAACgF,EAAM,YAAYjF,CAAC,EAC7B,OAAOod,EAAe,OAAWpd,CAAC,MAFlC,QAAOod,EAAe,OAAWnd,CAAC,CAIxC,CAGE,SAASud,EAAgBxd,EAAGC,EAAGa,EAAM,CACnC,GAAIA,KAAQqc,EACV,OAAOC,EAAepd,EAAGC,CAAC,EACrB,GAAIa,KAAQoc,EACjB,OAAOE,EAAe,OAAWpd,CAAC,CAExC,CAEE,IAAMyd,EAAW,CACf,IAAKH,EACL,OAAQA,EACR,KAAMA,EACN,QAASC,EACT,iBAAkBA,EAClB,kBAAmBA,EACnB,iBAAkBA,EAClB,QAASA,EACT,eAAgBA,EAChB,gBAAiBA,EACjB,cAAeA,EACf,QAASA,EACT,aAAcA,EACd,eAAgBA,EAChB,eAAgBA,EAChB,iBAAkBA,EAClB,mBAAoBA,EACpB,WAAYA,EACZ,iBAAkBA,EAClB,cAAeA,EACf,eAAgBA,EAChB,UAAWA,EACX,UAAWA,EACX,WAAYA,EACZ,YAAaA,EACb,WAAYA,EACZ,iBAAkBA,EAClB,eAAgBC,EAChB,QAAS,CAACxd,EAAGC,EAAGa,IAASuc,EAAoBL,GAAgBhd,CAAC,EAAGgd,GAAgB/c,CAAC,EAAGa,EAAM,EAAI,CACnG,EAEEmE,OAAAA,EAAM,QAAQ,OAAO,KAAK,CAAE,GAAGiY,EAAS,GAAGC,CAAO,CAAE,EAAG,SAA4Brc,EAAM,CACvF,IAAMrB,EAAQge,EAAS3c,CAAI,GAAKuc,EAC1BK,EAAcje,EAAMyd,EAAQpc,CAAI,EAAGqc,EAAQrc,CAAI,EAAGA,CAAI,EAC3DmE,EAAM,YAAYyY,CAAW,GAAKje,IAAU+d,IAAqB7Y,EAAO7D,CAAI,EAAI4c,EACrF,CAAG,EAEM/Y,CACT,CC/FA,IAAAgZ,GAAgBhZ,GAAW,CACzB,IAAMiZ,EAAYX,GAAY,CAAA,EAAItY,CAAM,EAEpC,CAAE,KAAAT,EAAM,cAAA2Z,EAAe,eAAAC,EAAgB,eAAAC,EAAgB,QAAAnU,EAAS,KAAAoR,CAAI,EAAK4C,EAa7E,GAXAA,EAAU,QAAUhU,EAAUoC,GAAa,KAAKpC,CAAO,EAEvDgU,EAAU,IAAM5W,GAASuH,GAAcqP,EAAU,QAASA,EAAU,IAAKA,EAAU,iBAAiB,EAAGjZ,EAAO,OAAQA,EAAO,gBAAgB,EAGzIqW,GACFpR,EAAQ,IAAI,gBAAiB,SAC3B,MAAMoR,EAAK,UAAY,IAAM,KAAOA,EAAK,SAAW,SAAS,mBAAmBA,EAAK,QAAQ,CAAC,EAAI,GAAG,CAC3G,EAGM/V,EAAM,WAAWf,CAAI,GACvB,GAAI4E,EAAS,uBAAyBA,EAAS,+BAC7Cc,EAAQ,eAAe,MAAS,UACvB3E,EAAM,WAAWf,EAAK,UAAU,EAAG,CAE5C,IAAM4W,EAAc5W,EAAK,WAAU,EAE7B8Z,EAAiB,CAAC,eAAgB,gBAAgB,EACxD,OAAO,QAAQlD,CAAW,EAAE,QAAQ,CAAC,CAAC3b,EAAK/B,CAAG,IAAM,CAC9C4gB,EAAe,SAAS7e,EAAI,YAAW,CAAE,GAC3CyK,EAAQ,IAAIzK,EAAK/B,CAAG,CAE9B,CAAO,CACP,EAOE,GAAI0L,EAAS,wBACX+U,GAAiB5Y,EAAM,WAAW4Y,CAAa,IAAMA,EAAgBA,EAAcD,CAAS,GAExFC,GAAkBA,IAAkB,IAASrB,GAAgBoB,EAAU,GAAG,GAAI,CAEhF,IAAMK,EAAYH,GAAkBC,GAAkBrB,GAAQ,KAAKqB,CAAc,EAE7EE,GACFrU,EAAQ,IAAIkU,EAAgBG,CAAS,CAE7C,CAGE,OAAOL,CACT,EChDMM,GAAwB,OAAO,eAAmB,IAExDC,GAAeD,IAAyB,SAAUvZ,EAAQ,CACxD,OAAO,IAAI,QAAQ,SAA4BqJ,EAASC,EAAQ,CAC9D,IAAMmQ,EAAUT,GAAchZ,CAAM,EAChC0Z,EAAcD,EAAQ,KACpBE,EAAiBtS,GAAa,KAAKoS,EAAQ,OAAO,EAAE,UAAS,EAC/D,CAAC,aAAA5E,EAAc,iBAAAiB,EAAkB,mBAAAC,CAAkB,EAAI0D,EACvDG,EACAC,EAAiBC,EACjBC,EAAaC,EAEjB,SAASzG,GAAO,CACdwG,GAAeA,EAAW,EAC1BC,GAAiBA,EAAa,EAE9BP,EAAQ,aAAeA,EAAQ,YAAY,YAAYG,CAAU,EAEjEH,EAAQ,QAAUA,EAAQ,OAAO,oBAAoB,QAASG,CAAU,CAC9E,CAEI,IAAI3Z,EAAU,IAAI,eAElBA,EAAQ,KAAKwZ,EAAQ,OAAO,YAAW,EAAIA,EAAQ,IAAK,EAAI,EAG5DxZ,EAAQ,QAAUwZ,EAAQ,QAE1B,SAASQ,GAAY,CACnB,GAAI,CAACha,EACH,OAGF,IAAMwU,EAAkBpN,GAAa,KACnC,0BAA2BpH,GAAWA,EAAQ,sBAAqB,CAC3E,EAGYC,EAAW,CACf,KAHmB,CAAC2U,GAAgBA,IAAiB,QAAUA,IAAiB,OAChF5U,EAAQ,aAAeA,EAAQ,SAG/B,OAAQA,EAAQ,OAChB,WAAYA,EAAQ,WACpB,QAASwU,EACT,OAAAzU,EACA,QAAAC,CACR,EAEMmJ,GAAO,SAAkBnL,EAAO,CAC9BoL,EAAQpL,CAAK,EACbsV,EAAI,CACZ,EAAS,SAAiBjH,EAAK,CACvBhD,EAAOgD,CAAG,EACViH,EAAI,CACZ,EAASrT,CAAQ,EAGXD,EAAU,IAChB,CAEQ,cAAeA,EAEjBA,EAAQ,UAAYga,EAGpBha,EAAQ,mBAAqB,UAAsB,CAC7C,CAACA,GAAWA,EAAQ,aAAe,GAQnCA,EAAQ,SAAW,GAAK,EAAEA,EAAQ,aAAeA,EAAQ,YAAY,QAAQ,OAAO,IAAM,IAK9F,WAAWga,CAAS,CAC5B,EAIIha,EAAQ,QAAU,UAAuB,CAClCA,IAILqJ,EAAO,IAAI1J,EAAW,kBAAmBA,EAAW,aAAcI,EAAQC,CAAO,CAAC,EAGlFA,EAAU,KAChB,EAGEA,EAAQ,QAAU,SAAqB+K,EAAO,CAIzC,IAAMkP,EAAMlP,GAASA,EAAM,QAAUA,EAAM,QAAU,gBAC/CsB,EAAM,IAAI1M,EAAWsa,EAAKta,EAAW,YAAaI,EAAQC,CAAO,EAEvEqM,EAAI,MAAQtB,GAAS,KACrB1B,EAAOgD,CAAG,EACVrM,EAAU,IACjB,EAGIA,EAAQ,UAAY,UAAyB,CAC3C,IAAIyX,EAAsB+B,EAAQ,QAAU,cAAgBA,EAAQ,QAAU,cAAgB,mBACxFnU,EAAemU,EAAQ,cAAgBxW,GACzCwW,EAAQ,sBACV/B,EAAsB+B,EAAQ,qBAEhCnQ,EAAO,IAAI1J,EACT8X,EACApS,EAAa,oBAAsB1F,EAAW,UAAYA,EAAW,aACrEI,EACAC,CAAO,CAAC,EAGVA,EAAU,IAChB,EAGIyZ,IAAgB,QAAaC,EAAe,eAAe,IAAI,EAG3D,qBAAsB1Z,GACxBK,EAAM,QAAQqZ,EAAe,OAAM,EAAI,SAA0BlhB,EAAK+B,EAAK,CACzEyF,EAAQ,iBAAiBzF,EAAK/B,CAAG,CACzC,CAAO,EAIE6H,EAAM,YAAYmZ,EAAQ,eAAe,IAC5CxZ,EAAQ,gBAAkB,CAAC,CAACwZ,EAAQ,iBAIlC5E,GAAgBA,IAAiB,SACnC5U,EAAQ,aAAewZ,EAAQ,cAI7B1D,IACD,CAAC+D,EAAmBE,CAAa,EAAIxK,GAAqBuG,EAAoB,EAAI,EACnF9V,EAAQ,iBAAiB,WAAY6Z,CAAiB,GAIpDhE,GAAoB7V,EAAQ,SAC7B,CAAC4Z,EAAiBE,CAAW,EAAIvK,GAAqBsG,CAAgB,EAEvE7V,EAAQ,OAAO,iBAAiB,WAAY4Z,CAAe,EAE3D5Z,EAAQ,OAAO,iBAAiB,UAAW8Z,CAAW,IAGpDN,EAAQ,aAAeA,EAAQ,UAGjCG,EAAaO,GAAU,CAChBla,IAGLqJ,EAAO,CAAC6Q,GAAUA,EAAO,KAAO,IAAIjR,GAAc,KAAMlJ,EAAQC,CAAO,EAAIka,CAAM,EACjFla,EAAQ,MAAK,EACbA,EAAU,KAClB,EAEMwZ,EAAQ,aAAeA,EAAQ,YAAY,UAAUG,CAAU,EAC3DH,EAAQ,SACVA,EAAQ,OAAO,QAAUG,EAAU,EAAKH,EAAQ,OAAO,iBAAiB,QAASG,CAAU,IAI/F,IAAMrP,EAAWN,GAAcwP,EAAQ,GAAG,EAE1C,GAAIlP,GAAYpG,EAAS,UAAU,QAAQoG,CAAQ,IAAM,GAAI,CAC3DjB,EAAO,IAAI1J,EAAW,wBAA0B2K,EAAW,IAAK3K,EAAW,gBAAiBI,CAAM,CAAC,EACnG,MACN,CAIIC,EAAQ,KAAKyZ,GAAe,IAAI,CACpC,CAAG,CACH,ECnMMU,GAAiB,CAACC,EAAS5C,IAAY,CAC3C,GAAM,CAAC,OAAAhU,CAAM,EAAK4W,EAAUA,EAAUA,EAAQ,OAAO,OAAO,EAAI,CAAA,EAEhE,GAAI5C,GAAWhU,EAAQ,CACrB,IAAI6W,EAAa,IAAI,gBAEjBC,EAEEC,EAAU,SAAU7G,EAAQ,CAChC,GAAI,CAAC4G,EAAS,CACZA,EAAU,GACVE,EAAW,EACX,IAAMnO,EAAMqH,aAAkB,MAAQA,EAAS,KAAK,OACpD2G,EAAW,MAAMhO,aAAe1M,EAAa0M,EAAM,IAAIpD,GAAcoD,aAAe,MAAQA,EAAI,QAAUA,CAAG,CAAC,CACtH,CACA,EAEQgD,EAAQmI,GAAW,WAAW,IAAM,CACtCnI,EAAQ,KACRkL,EAAQ,IAAI5a,EAAW,cAAc6X,CAAO,cAAe7X,EAAW,SAAS,CAAC,CACtF,EAAO6X,CAAO,EAEJgD,EAAc,IAAM,CACpBJ,IACF/K,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,KACR+K,EAAQ,QAAQK,GAAU,CACxBA,EAAO,YAAcA,EAAO,YAAYF,CAAO,EAAIE,EAAO,oBAAoB,QAASF,CAAO,CACxG,CAAS,EACDH,EAAU,KAElB,EAEIA,EAAQ,QAASK,GAAWA,EAAO,iBAAiB,QAASF,CAAO,CAAC,EAErE,GAAM,CAAC,OAAAE,CAAM,EAAIJ,EAEjB,OAAAI,EAAO,YAAc,IAAMpa,EAAM,KAAKma,CAAW,EAE1CC,CACX,CACA,EAEAC,GAAeP,GC9CFQ,GAAc,UAAW3P,EAAOc,EAAW,CACtD,IAAIxR,EAAM0Q,EAAM,WAEhB,GAAI,CAACc,GAAaxR,EAAMwR,EAAW,CACjC,MAAMd,EACN,MACJ,CAEE,IAAI4P,EAAM,EACNC,EAEJ,KAAOD,EAAMtgB,GACXugB,EAAMD,EAAM9O,EACZ,MAAMd,EAAM,MAAM4P,EAAKC,CAAG,EAC1BD,EAAMC,CAEV,EAEaC,GAAY,gBAAiBC,EAAUjP,EAAW,CAC7D,cAAiBd,KAASgQ,GAAWD,CAAQ,EAC3C,MAAOJ,GAAY3P,EAAOc,CAAS,CAEvC,EAEMkP,GAAa,gBAAiBnQ,EAAQ,CAC1C,GAAIA,EAAO,OAAO,aAAa,EAAG,CAChC,MAAOA,EACP,MACJ,CAEE,IAAMoQ,EAASpQ,EAAO,UAAS,EAC/B,GAAI,CACF,OAAS,CACP,GAAM,CAAC,KAAAyI,EAAM,MAAAtV,CAAK,EAAI,MAAMid,EAAO,KAAI,EACvC,GAAI3H,EACF,MAEF,MAAMtV,CACZ,CACA,QAAG,CACC,MAAMid,EAAO,OAAM,CACvB,CACA,EAEaC,GAAc,CAACrQ,EAAQiB,EAAWqP,EAAYC,IAAa,CACtE,IAAMxjB,EAAWkjB,GAAUjQ,EAAQiB,CAAS,EAExCF,EAAQ,EACR0H,EACA+H,EAAavW,GAAM,CAChBwO,IACHA,EAAO,GACP8H,GAAYA,EAAStW,CAAC,EAE5B,EAEE,OAAO,IAAI,eAAe,CACxB,MAAM,KAAKuV,EAAY,CACrB,GAAI,CACF,GAAM,CAAC,KAAA/G,EAAM,MAAAtV,CAAK,EAAI,MAAMpG,EAAS,KAAI,EAEzC,GAAI0b,EAAM,CACT+H,EAAS,EACRhB,EAAW,MAAK,EAChB,MACV,CAEQ,IAAI/f,EAAM0D,EAAM,WAChB,GAAImd,EAAY,CACd,IAAIG,EAAc1P,GAAStR,EAC3B6gB,EAAWG,CAAW,CAChC,CACQjB,EAAW,QAAQ,IAAI,WAAWrc,CAAK,CAAC,CAChD,OAAeqO,EAAK,CACZ,MAAAgP,EAAUhP,CAAG,EACPA,CACd,CACA,EACI,OAAOqH,EAAQ,CACb,OAAA2H,EAAU3H,CAAM,EACT9b,EAAS,OAAM,CAC5B,CACA,EAAK,CACD,cAAe,CACnB,CAAG,CACH,EC5EM2jB,GAAqB,GAAK,KAE1B,CAAC,WAAA9iB,EAAU,EAAI4H,EAEfmb,IAAkB,CAAC,CAAC,QAAAC,EAAS,SAAAC,CAAQ,KAAO,CAChD,QAAAD,EAAS,SAAAC,CACX,IAAIrb,EAAM,MAAM,EAEV,CACN,eAAEsb,GAAc,YAAEC,EAClB,EAAIvb,EAAM,OAGJwb,GAAO,CAACrkB,KAAO4W,IAAS,CAC5B,GAAI,CACF,MAAO,CAAC,CAAC5W,EAAG,GAAG4W,CAAI,CACvB,MAAc,CACV,MAAO,EACX,CACA,EAEM0N,GAAWC,GAAQ,CACvBA,EAAM1b,EAAM,MAAM,KAAK,CACrB,cAAe,EACnB,EAAKmb,GAAgBO,CAAG,EAEtB,GAAM,CAAC,MAAOC,EAAU,QAAAP,EAAS,SAAAC,CAAQ,EAAIK,EACvCE,EAAmBD,EAAWvjB,GAAWujB,CAAQ,EAAI,OAAO,OAAU,WACtEE,EAAqBzjB,GAAWgjB,CAAO,EACvCU,EAAsB1jB,GAAWijB,CAAQ,EAE/C,GAAI,CAACO,EACH,MAAO,GAGT,IAAMG,EAA4BH,GAAoBxjB,GAAWkjB,EAAc,EAEzEU,EAAaJ,IAAqB,OAAOL,IAAgB,YACzD1Z,GAAajK,GAAQiK,EAAQ,OAAOjK,CAAG,GAAG,IAAI2jB,EAAa,EAC7D,MAAO3jB,GAAQ,IAAI,WAAW,MAAM,IAAIwjB,EAAQxjB,CAAG,EAAE,YAAW,CAAE,GAGhEqkB,EAAwBJ,GAAsBE,GAA6BP,GAAK,IAAM,CAC1F,IAAIU,EAAiB,GAEfC,EAAiB,IAAIf,EAAQvX,EAAS,OAAQ,CAClD,KAAM,IAAIyX,GACV,OAAQ,OACR,IAAI,QAAS,CACX,OAAAY,EAAiB,GACV,MACf,CACA,CAAK,EAAE,QAAQ,IAAI,cAAc,EAE7B,OAAOA,GAAkB,CAACC,CAC9B,CAAG,EAEKC,EAAyBN,GAAuBC,GACpDP,GAAK,IAAMxb,EAAM,iBAAiB,IAAIqb,EAAS,EAAE,EAAE,IAAI,CAAC,EAEpDgB,EAAY,CAChB,OAAQD,IAA4B3F,GAAQA,EAAI,KACpD,EAEEmF,GACE,CAAC,OAAQ,cAAe,OAAQ,WAAY,QAAQ,EAAE,QAAQ9jB,GAAQ,CACpE,CAACukB,EAAUvkB,CAAI,IAAMukB,EAAUvkB,CAAI,EAAI,CAAC2e,EAAK/W,IAAW,CACtD,IAAI2F,EAASoR,GAAOA,EAAI3e,CAAI,EAE5B,GAAIuN,EACF,OAAOA,EAAO,KAAKoR,CAAG,EAGxB,MAAM,IAAInX,EAAW,kBAAkBxH,CAAI,qBAAsBwH,EAAW,gBAAiBI,CAAM,CAC3G,EACA,CAAK,EAGH,IAAM4c,EAAgB,MAAOlS,GAAS,CACpC,GAAIA,GAAQ,KACV,MAAO,GAGT,GAAIpK,EAAM,OAAOoK,CAAI,EACnB,OAAOA,EAAK,KAGd,GAAIpK,EAAM,oBAAoBoK,CAAI,EAKhC,OAAQ,MAJS,IAAIgR,EAAQvX,EAAS,OAAQ,CAC5C,OAAQ,OACR,KAAAuG,CACR,CAAO,EACsB,YAAW,GAAI,WAGxC,GAAIpK,EAAM,kBAAkBoK,CAAI,GAAKpK,EAAM,cAAcoK,CAAI,EAC3D,OAAOA,EAAK,WAOd,GAJIpK,EAAM,kBAAkBoK,CAAI,IAC9BA,EAAOA,EAAO,IAGZpK,EAAM,SAASoK,CAAI,EACrB,OAAQ,MAAM4R,EAAW5R,CAAI,GAAG,UAEtC,EAEQmS,EAAoB,MAAO5X,EAASyF,IAAS,CACjD,IAAMjH,EAASnD,EAAM,eAAe2E,EAAQ,iBAAgB,CAAE,EAE9D,OAAOxB,GAAiBmZ,EAAclS,CAAI,CAC9C,EAEE,MAAO,OAAO1K,GAAW,CACvB,GAAI,CACF,IAAAsC,EACA,OAAAqD,EACA,KAAApG,EACA,OAAAmb,EACA,YAAAoC,EACA,QAAArF,EACA,mBAAA1B,EACA,iBAAAD,EACA,aAAAjB,EACA,QAAA5P,EACA,gBAAA8X,EAAkB,cAClB,aAAAC,EACN,EAAQhE,GAAchZ,CAAM,EAEpBid,GAAShB,GAAY,MAEzBpH,EAAeA,GAAgBA,EAAe,IAAI,YAAW,EAAK,OAElE,IAAIqI,GAAiB9C,GAAe,CAACM,EAAQoC,GAAeA,EAAY,cAAa,CAAE,EAAGrF,CAAO,EAE7FxX,GAAU,KAERwa,GAAcyC,IAAkBA,GAAe,cAAgB,IAAM,CACzEA,GAAe,YAAW,CAChC,GAEQC,GAEJ,GAAI,CACF,GACErH,GAAoByG,GAAyB5W,IAAW,OAASA,IAAW,SAC3EwX,GAAuB,MAAMN,EAAkB5X,EAAS1F,CAAI,KAAO,EACpE,CACA,IAAI6d,EAAW,IAAI1B,EAAQpZ,EAAK,CAC9B,OAAQ,OACR,KAAM/C,EACN,OAAQ,MAClB,CAAS,EAEG8d,EAMJ,GAJI/c,EAAM,WAAWf,CAAI,IAAM8d,EAAoBD,EAAS,QAAQ,IAAI,cAAc,IACpFnY,EAAQ,eAAeoY,CAAiB,EAGtCD,EAAS,KAAM,CACjB,GAAM,CAAChC,EAAY5J,CAAK,EAAItB,GAC1BiN,GACA3N,GAAqBa,GAAeyF,CAAgB,CAAC,CACjE,EAEUvW,EAAO4b,GAAYiC,EAAS,KAAM5B,GAAoBJ,EAAY5J,CAAK,CACjF,CACA,CAEWlR,EAAM,SAASyc,CAAe,IACjCA,EAAkBA,EAAkB,UAAY,QAKlD,IAAMO,GAAyBnB,GAAsB,gBAAiBT,EAAQ,UAExE6B,EAAkB,CACtB,GAAGP,GACH,OAAQE,GACR,OAAQvX,EAAO,YAAW,EAC1B,QAASV,EAAQ,UAAS,EAAG,OAAM,EACnC,KAAM1F,EACN,OAAQ,OACR,YAAa+d,GAAyBP,EAAkB,MAChE,EAEM9c,GAAUkc,GAAsB,IAAIT,EAAQpZ,EAAKib,CAAe,EAEhE,IAAIrd,GAAW,MAAOic,EAAqBc,GAAOhd,GAAS+c,EAAY,EAAIC,GAAO3a,EAAKib,CAAe,GAEhGC,GAAmBd,IAA2B7H,IAAiB,UAAYA,IAAiB,YAElG,GAAI6H,IAA2B3G,GAAuByH,IAAoB/C,IAAe,CACvF,IAAMxZ,EAAU,CAAA,EAEhB,CAAC,SAAU,aAAc,SAAS,EAAE,QAAQ9E,GAAQ,CAClD8E,EAAQ9E,CAAI,EAAI+D,GAAS/D,CAAI,CACvC,CAAS,EAED,IAAMshB,EAAwBnd,EAAM,eAAeJ,GAAS,QAAQ,IAAI,gBAAgB,CAAC,EAEnF,CAACkb,EAAY5J,CAAK,EAAIuE,GAAsB7F,GAChDuN,EACAjO,GAAqBa,GAAe0F,CAAkB,EAAG,EAAI,CACvE,GAAa,CAAA,EAEL7V,GAAW,IAAIyb,EACbR,GAAYjb,GAAS,KAAMsb,GAAoBJ,EAAY,IAAM,CAC/D5J,GAASA,EAAK,EACdiJ,IAAeA,GAAW,CACtC,CAAW,EACDxZ,CACV,CACA,CAEM4T,EAAeA,GAAgB,OAE/B,IAAI0C,EAAe,MAAMoF,EAAUrc,EAAM,QAAQqc,EAAW9H,CAAY,GAAK,MAAM,EAAE3U,GAAUF,CAAM,EAErG,OAACwd,IAAoB/C,IAAeA,GAAW,EAExC,MAAM,IAAI,QAAQ,CAACpR,EAASC,IAAW,CAC5CF,GAAOC,EAASC,EAAQ,CACtB,KAAMiO,EACN,QAASlQ,GAAa,KAAKnH,GAAS,OAAO,EAC3C,OAAQA,GAAS,OACjB,WAAYA,GAAS,WACrB,OAAAF,EACA,QAAAC,EACV,CAAS,CACT,CAAO,CACP,OAAaqM,GAAK,CAGZ,MAFAmO,IAAeA,GAAW,EAEtBnO,IAAOA,GAAI,OAAS,aAAe,qBAAqB,KAAKA,GAAI,OAAO,EACpE,OAAO,OACX,IAAI1M,EAAW,gBAAiBA,EAAW,YAAaI,EAAQC,EAAO,EACvE,CACE,MAAOqM,GAAI,OAASA,EAChC,CACA,EAGY1M,EAAW,KAAK0M,GAAKA,IAAOA,GAAI,KAAMtM,EAAQC,EAAO,CACjE,CACA,CACA,EAEMyd,GAAY,IAAI,IAETC,GAAY3d,GAAW,CAClC,IAAIgc,EAAOhc,GAAUA,EAAO,KAAQ,CAAA,EAC9B,CAAC,MAAA4d,EAAO,QAAAlC,EAAS,SAAAC,CAAQ,EAAIK,EAC7B6B,EAAQ,CACZnC,EAASC,EAAUiC,CACvB,EAEMrjB,EAAMsjB,EAAM,OAAQ1iB,EAAIZ,EAC1BujB,EAAMhf,EAAQif,EAAML,GAEtB,KAAOviB,KACL2iB,EAAOD,EAAM1iB,CAAC,EACd2D,EAASif,EAAI,IAAID,CAAI,EAErBhf,IAAW,QAAaif,EAAI,IAAID,EAAMhf,EAAU3D,EAAI,IAAI,IAAQ4gB,GAAQC,CAAG,CAAE,EAE7E+B,EAAMjf,EAGR,OAAOA,CACT,EAEgB6e,GAAQ,EC9QxB,IAAMK,GAAgB,CACpB,KAAMtJ,GACN,IAAK8E,GACL,MAAO,CACL,IAAKyE,EACT,CACA,EAGA3d,EAAM,QAAQ0d,GAAe,CAACvmB,EAAIwG,IAAU,CAC1C,GAAIxG,EAAI,CACN,GAAI,CACF,OAAO,eAAeA,EAAI,OAAQ,CAAE,MAAAwG,CAAK,CAAE,CACjD,MAAgB,CAEhB,CACI,OAAO,eAAexG,EAAI,cAAe,CAAE,MAAAwG,CAAK,CAAE,CACtD,CACA,CAAC,EAQD,IAAMigB,GAAgBvK,GAAW,KAAKA,CAAM,GAQtCwK,GAAoBC,GAAY9d,EAAM,WAAW8d,CAAO,GAAKA,IAAY,MAAQA,IAAY,GAYnG,SAASC,GAAWC,EAAUte,EAAQ,CACpCse,EAAWhe,EAAM,QAAQge,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EAEzD,GAAM,CAAE,OAAA7a,CAAM,EAAK6a,EACfC,EACAH,EAEEI,EAAkB,CAAA,EAExB,QAASrjB,EAAI,EAAGA,EAAIsI,EAAQtI,IAAK,CAC/BojB,EAAgBD,EAASnjB,CAAC,EAC1B,IAAI2H,EAIJ,GAFAsb,EAAUG,EAEN,CAACJ,GAAiBI,CAAa,IACjCH,EAAUJ,IAAelb,EAAK,OAAOyb,CAAa,GAAG,YAAW,CAAE,EAE9DH,IAAY,QACd,MAAM,IAAIxe,EAAW,oBAAoBkD,CAAE,GAAG,EAIlD,GAAIsb,IAAY9d,EAAM,WAAW8d,CAAO,IAAMA,EAAUA,EAAQ,IAAIpe,CAAM,IACxE,MAGFwe,EAAgB1b,GAAM,IAAM3H,CAAC,EAAIijB,CACrC,CAEE,GAAI,CAACA,EAAS,CACZ,IAAMK,EAAU,OAAO,QAAQD,CAAe,EAC3C,IAAI,CAAC,CAAC1b,EAAI4b,CAAK,IAAM,WAAW5b,CAAE,KAChC4b,IAAU,GAAQ,sCAAwC,gCACnE,EAEQC,EAAIlb,EACLgb,EAAQ,OAAS,EAAI;EAAcA,EAAQ,IAAIP,EAAY,EAAE,KAAK;CAAI,EAAI,IAAMA,GAAaO,EAAQ,CAAC,CAAC,EACxG,0BAEF,MAAM,IAAI7e,EACR,wDAA0D+e,EAC1D,iBACN,CACA,CAEE,OAAOP,CACT,CAKA,IAAAE,GAAe,CAKb,WAAAD,GAMA,SAAUL,EACZ,EC7GA,SAASY,GAA6B5e,EAAQ,CAK5C,GAJIA,EAAO,aACTA,EAAO,YAAY,iBAAgB,EAGjCA,EAAO,QAAUA,EAAO,OAAO,QACjC,MAAM,IAAIkJ,GAAc,KAAMlJ,CAAM,CAExC,CASe,SAAS6e,GAAgB7e,EAAQ,CAC9C,OAAA4e,GAA6B5e,CAAM,EAEnCA,EAAO,QAAUqH,GAAa,KAAKrH,EAAO,OAAO,EAGjDA,EAAO,KAAO+I,GAAc,KAC1B/I,EACAA,EAAO,gBACX,EAEM,CAAC,OAAQ,MAAO,OAAO,EAAE,QAAQA,EAAO,MAAM,IAAM,IACtDA,EAAO,QAAQ,eAAe,oCAAqC,EAAK,EAG1Dse,GAAS,WAAWte,EAAO,SAAWgF,GAAS,QAAShF,CAAM,EAE/DA,CAAM,EAAE,KAAK,SAA6BE,EAAU,CACjE,OAAA0e,GAA6B5e,CAAM,EAGnCE,EAAS,KAAO6I,GAAc,KAC5B/I,EACAA,EAAO,kBACPE,CACN,EAEIA,EAAS,QAAUmH,GAAa,KAAKnH,EAAS,OAAO,EAE9CA,CACX,EAAK,SAA4ByT,EAAQ,CACrC,OAAK1K,GAAS0K,CAAM,IAClBiL,GAA6B5e,CAAM,EAG/B2T,GAAUA,EAAO,WACnBA,EAAO,SAAS,KAAO5K,GAAc,KACnC/I,EACAA,EAAO,kBACP2T,EAAO,QACjB,EACQA,EAAO,SAAS,QAAUtM,GAAa,KAAKsM,EAAO,SAAS,OAAO,IAIhE,QAAQ,OAAOA,CAAM,CAChC,CAAG,CACH,CC3EA,IAAMmL,GAAa,CAAA,EAGnB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,QAAQ,EAAE,QAAQ,CAAC1mB,EAAM+C,IAAM,CACnF2jB,GAAW1mB,CAAI,EAAI,SAAmBH,EAAO,CAC3C,OAAO,OAAOA,IAAUG,GAAQ,KAAO+C,EAAI,EAAI,KAAO,KAAO/C,CACjE,CACA,CAAC,EAED,IAAM2mB,GAAqB,CAAA,EAW3BD,GAAW,aAAe,SAAsBE,EAAWC,EAAS5e,EAAS,CAC3E,SAAS6e,EAAchK,EAAKiK,EAAM,CAChC,MAAO,WAAanV,GAAU,0BAA6BkL,EAAM,IAAOiK,GAAQ9e,EAAU,KAAOA,EAAU,GAC/G,CAGE,MAAO,CAACpC,EAAOiX,EAAKkK,IAAS,CAC3B,GAAIJ,IAAc,GAChB,MAAM,IAAIpf,EACRsf,EAAchK,EAAK,qBAAuB+J,EAAU,OAASA,EAAU,GAAG,EAC1Erf,EAAW,cACnB,EAGI,OAAIqf,GAAW,CAACF,GAAmB7J,CAAG,IACpC6J,GAAmB7J,CAAG,EAAI,GAE1B,QAAQ,KACNgK,EACEhK,EACA,+BAAiC+J,EAAU,yCACrD,CACA,GAGWD,EAAYA,EAAU/gB,EAAOiX,EAAKkK,CAAI,EAAI,EACrD,CACA,EAEAN,GAAW,SAAW,SAAkBO,EAAiB,CACvD,MAAO,CAACphB,EAAOiX,KAEb,QAAQ,KAAK,GAAGA,CAAG,+BAA+BmK,CAAe,EAAE,EAC5D,GAEX,EAYA,SAASC,GAAcre,EAASse,EAAQC,EAAc,CACpD,GAAI,OAAOve,GAAY,SACrB,MAAM,IAAIrB,EAAW,4BAA6BA,EAAW,oBAAoB,EAEnF,IAAMtF,EAAO,OAAO,KAAK2G,CAAO,EAC5B9F,EAAIb,EAAK,OACb,KAAOa,KAAM,GAAG,CACd,IAAM+Z,EAAM5a,EAAKa,CAAC,EACZ6jB,EAAYO,EAAOrK,CAAG,EAC5B,GAAI8J,EAAW,CACb,IAAM/gB,EAAQgD,EAAQiU,CAAG,EACnBrc,EAASoF,IAAU,QAAa+gB,EAAU/gB,EAAOiX,EAAKjU,CAAO,EACnE,GAAIpI,IAAW,GACb,MAAM,IAAI+G,EAAW,UAAYsV,EAAM,YAAcrc,EAAQ+G,EAAW,oBAAoB,EAE9F,QACN,CACI,GAAI4f,IAAiB,GACnB,MAAM,IAAI5f,EAAW,kBAAoBsV,EAAKtV,EAAW,cAAc,CAE7E,CACA,CAEA,IAAAof,GAAe,CACb,cAAAM,GACF,WAAER,EACF,ECvFMA,GAAaE,GAAU,WASvBS,GAAN,KAAY,CACV,YAAYC,EAAgB,CAC1B,KAAK,SAAWA,GAAkB,CAAA,EAClC,KAAK,aAAe,CAClB,QAAS,IAAI/c,GACb,SAAU,IAAIA,EACpB,CACA,CAUE,MAAM,QAAQgd,EAAa3f,EAAQ,CACjC,GAAI,CACF,OAAO,MAAM,KAAK,SAAS2f,EAAa3f,CAAM,CACpD,OAAasM,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,IAAIsT,EAAQ,CAAA,EAEZ,MAAM,kBAAoB,MAAM,kBAAkBA,CAAK,EAAKA,EAAQ,IAAI,MAGxE,IAAMjhB,EAAQihB,EAAM,MAAQA,EAAM,MAAM,QAAQ,QAAS,EAAE,EAAI,GAC/D,GAAI,CACGtT,EAAI,MAGE3N,GAAS,CAAC,OAAO2N,EAAI,KAAK,EAAE,SAAS3N,EAAM,QAAQ,YAAa,EAAE,CAAC,IAC5E2N,EAAI,OAAS;EAAO3N,GAHpB2N,EAAI,MAAQ3N,CAKxB,MAAoB,CAEpB,CACA,CAEM,MAAM2N,CACZ,CACA,CAEE,SAASqT,EAAa3f,EAAQ,CAGxB,OAAO2f,GAAgB,UACzB3f,EAASA,GAAU,CAAA,EACnBA,EAAO,IAAM2f,GAEb3f,EAAS2f,GAAe,CAAA,EAG1B3f,EAASsY,GAAY,KAAK,SAAUtY,CAAM,EAE1C,GAAM,CAAC,aAAAsF,EAAc,iBAAAua,EAAkB,QAAA5a,CAAO,EAAIjF,EAE9CsF,IAAiB,QACnB0Z,GAAU,cAAc1Z,EAAc,CACpC,kBAAmBwZ,GAAW,aAAaA,GAAW,OAAO,EAC7D,kBAAmBA,GAAW,aAAaA,GAAW,OAAO,EAC7D,oBAAqBA,GAAW,aAAaA,GAAW,OAAO,CACvE,EAAS,EAAK,EAGNe,GAAoB,OAClBvf,EAAM,WAAWuf,CAAgB,EACnC7f,EAAO,iBAAmB,CACxB,UAAW6f,CACrB,EAEQb,GAAU,cAAca,EAAkB,CACxC,OAAQf,GAAW,SACnB,UAAWA,GAAW,QAChC,EAAW,EAAI,GAKP9e,EAAO,oBAAsB,SAEtB,KAAK,SAAS,oBAAsB,OAC7CA,EAAO,kBAAoB,KAAK,SAAS,kBAEzCA,EAAO,kBAAoB,IAG7Bgf,GAAU,cAAchf,EAAQ,CAC9B,QAAS8e,GAAW,SAAS,SAAS,EACtC,cAAeA,GAAW,SAAS,eAAe,CACxD,EAAO,EAAI,EAGP9e,EAAO,QAAUA,EAAO,QAAU,KAAK,SAAS,QAAU,OAAO,YAAW,EAG5E,IAAI8f,EAAiB7a,GAAW3E,EAAM,MACpC2E,EAAQ,OACRA,EAAQjF,EAAO,MAAM,CAC3B,EAEIiF,GAAW3E,EAAM,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,QAAQ,EACzDqF,GAAW,CACV,OAAOV,EAAQU,CAAM,CAC7B,CACA,EAEI3F,EAAO,QAAUqH,GAAa,OAAOyY,EAAgB7a,CAAO,EAG5D,IAAM8a,EAA0B,CAAA,EAC5BC,EAAiC,GACrC,KAAK,aAAa,QAAQ,QAAQ,SAAoCC,EAAa,CAC7E,OAAOA,EAAY,SAAY,YAAcA,EAAY,QAAQjgB,CAAM,IAAM,KAIjFggB,EAAiCA,GAAkCC,EAAY,YAE/EF,EAAwB,QAAQE,EAAY,UAAWA,EAAY,QAAQ,EACjF,CAAK,EAED,IAAMC,EAA2B,CAAA,EACjC,KAAK,aAAa,SAAS,QAAQ,SAAkCD,EAAa,CAChFC,EAAyB,KAAKD,EAAY,UAAWA,EAAY,QAAQ,CAC/E,CAAK,EAED,IAAIE,EACAhlB,EAAI,EACJZ,EAEJ,GAAI,CAACylB,EAAgC,CACnC,IAAMI,EAAQ,CAACvB,GAAgB,KAAK,IAAI,EAAG,MAAS,EAOpD,IANAuB,EAAM,QAAQ,GAAGL,CAAuB,EACxCK,EAAM,KAAK,GAAGF,CAAwB,EACtC3lB,EAAM6lB,EAAM,OAEZD,EAAU,QAAQ,QAAQngB,CAAM,EAEzB7E,EAAIZ,GACT4lB,EAAUA,EAAQ,KAAKC,EAAMjlB,GAAG,EAAGilB,EAAMjlB,GAAG,CAAC,EAG/C,OAAOglB,CACb,CAEI5lB,EAAMwlB,EAAwB,OAE9B,IAAI9G,EAAYjZ,EAEhB,KAAO7E,EAAIZ,GAAK,CACd,IAAM8lB,EAAcN,EAAwB5kB,GAAG,EACzCmlB,EAAaP,EAAwB5kB,GAAG,EAC9C,GAAI,CACF8d,EAAYoH,EAAYpH,CAAS,CACzC,OAAenZ,EAAO,CACdwgB,EAAW,KAAK,KAAMxgB,CAAK,EAC3B,KACR,CACA,CAEI,GAAI,CACFqgB,EAAUtB,GAAgB,KAAK,KAAM5F,CAAS,CACpD,OAAanZ,EAAO,CACd,OAAO,QAAQ,OAAOA,CAAK,CACjC,CAKI,IAHA3E,EAAI,EACJZ,EAAM2lB,EAAyB,OAExB/kB,EAAIZ,GACT4lB,EAAUA,EAAQ,KAAKD,EAAyB/kB,GAAG,EAAG+kB,EAAyB/kB,GAAG,CAAC,EAGrF,OAAOglB,CACX,CAEE,OAAOngB,EAAQ,CACbA,EAASsY,GAAY,KAAK,SAAUtY,CAAM,EAC1C,IAAM2V,EAAW/L,GAAc5J,EAAO,QAASA,EAAO,IAAKA,EAAO,iBAAiB,EACnF,OAAOqC,GAASsT,EAAU3V,EAAO,OAAQA,EAAO,gBAAgB,CACpE,CACA,EAGAM,EAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,SAAS,EAAG,SAA6BqF,EAAQ,CAEvF8Z,GAAM,UAAU9Z,CAAM,EAAI,SAASrD,EAAKtC,EAAQ,CAC9C,OAAO,KAAK,QAAQsY,GAAYtY,GAAU,CAAA,EAAI,CAC5C,OAAA2F,EACA,IAAArD,EACA,MAAOtC,GAAU,CAAA,GAAI,IAC3B,CAAK,CAAC,CACN,CACA,CAAC,EAEDM,EAAM,QAAQ,CAAC,OAAQ,MAAO,OAAO,EAAG,SAA+BqF,EAAQ,CAG7E,SAAS4a,EAAmBC,EAAQ,CAClC,OAAO,SAAoBle,EAAK/C,EAAMS,EAAQ,CAC5C,OAAO,KAAK,QAAQsY,GAAYtY,GAAU,CAAA,EAAI,CAC5C,OAAA2F,EACA,QAAS6a,EAAS,CAChB,eAAgB,qBAC1B,EAAY,CAAA,EACJ,IAAAle,EACA,KAAA/C,CACR,CAAO,CAAC,CACR,CACA,CAEEkgB,GAAM,UAAU9Z,CAAM,EAAI4a,EAAkB,EAE5Cd,GAAM,UAAU9Z,EAAS,MAAM,EAAI4a,EAAmB,EAAI,CAC5D,CAAC,EAED,IAAAE,GAAehB,GCpOTiB,GAAN,MAAMC,CAAY,CAChB,YAAYC,EAAU,CACpB,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,UAAU,8BAA8B,EAGpD,IAAIC,EAEJ,KAAK,QAAU,IAAI,QAAQ,SAAyBxX,EAAS,CAC3DwX,EAAiBxX,CACvB,CAAK,EAED,IAAMhK,EAAQ,KAGd,KAAK,QAAQ,KAAK8a,GAAU,CAC1B,GAAI,CAAC9a,EAAM,WAAY,OAEvB,IAAIlE,EAAIkE,EAAM,WAAW,OAEzB,KAAOlE,KAAM,GACXkE,EAAM,WAAWlE,CAAC,EAAEgf,CAAM,EAE5B9a,EAAM,WAAa,IACzB,CAAK,EAGD,KAAK,QAAQ,KAAOyhB,GAAe,CACjC,IAAIrN,EAEE0M,EAAU,IAAI,QAAQ9W,GAAW,CACrChK,EAAM,UAAUgK,CAAO,EACvBoK,EAAWpK,CACnB,CAAO,EAAE,KAAKyX,CAAW,EAEnB,OAAAX,EAAQ,OAAS,UAAkB,CACjC9gB,EAAM,YAAYoU,CAAQ,CAClC,EAEa0M,CACb,EAEIS,EAAS,SAAgBvgB,EAASL,EAAQC,EAAS,CAC7CZ,EAAM,SAKVA,EAAM,OAAS,IAAI6J,GAAc7I,EAASL,EAAQC,CAAO,EACzD4gB,EAAexhB,EAAM,MAAM,EACjC,CAAK,CACL,CAKE,kBAAmB,CACjB,GAAI,KAAK,OACP,MAAM,KAAK,MAEjB,CAME,UAAUoQ,EAAU,CAClB,GAAI,KAAK,OAAQ,CACfA,EAAS,KAAK,MAAM,EACpB,MACN,CAEQ,KAAK,WACP,KAAK,WAAW,KAAKA,CAAQ,EAE7B,KAAK,WAAa,CAACA,CAAQ,CAEjC,CAME,YAAYA,EAAU,CACpB,GAAI,CAAC,KAAK,WACR,OAEF,IAAM9N,EAAQ,KAAK,WAAW,QAAQ8N,CAAQ,EAC1C9N,IAAU,IACZ,KAAK,WAAW,OAAOA,EAAO,CAAC,CAErC,CAEE,eAAgB,CACd,IAAM2Y,EAAa,IAAI,gBAEjB9E,EAASlJ,GAAQ,CACrBgO,EAAW,MAAMhO,CAAG,CAC1B,EAEI,YAAK,UAAUkJ,CAAK,EAEpB8E,EAAW,OAAO,YAAc,IAAM,KAAK,YAAY9E,CAAK,EAErD8E,EAAW,MACtB,CAME,OAAO,QAAS,CACd,IAAIH,EAIJ,MAAO,CACL,MAJY,IAAIwG,EAAY,SAAkBI,EAAG,CACjD5G,EAAS4G,CACf,CAAK,EAGC,OAAA5G,CACN,CACA,CACA,EAEA6G,GAAeN,GC/GA,SAASO,GAAO9V,EAAU,CACvC,OAAO,SAAczO,EAAK,CACxB,OAAOyO,EAAS,MAAM,KAAMzO,CAAG,CACnC,CACA,CChBe,SAASwkB,GAAaC,EAAS,CAC5C,OAAO7gB,EAAM,SAAS6gB,CAAO,GAAMA,EAAQ,eAAiB,EAC9D,CCbA,IAAMC,GAAiB,CACrB,SAAU,IACV,mBAAoB,IACpB,WAAY,IACZ,WAAY,IACZ,GAAI,IACJ,QAAS,IACT,SAAU,IACV,4BAA6B,IAC7B,UAAW,IACX,aAAc,IACd,eAAgB,IAChB,YAAa,IACb,gBAAiB,IACjB,OAAQ,IACR,gBAAiB,IACjB,iBAAkB,IAClB,MAAO,IACP,SAAU,IACV,YAAa,IACb,SAAU,IACV,OAAQ,IACR,kBAAmB,IACnB,kBAAmB,IACnB,WAAY,IACZ,aAAc,IACd,gBAAiB,IACjB,UAAW,IACX,SAAU,IACV,iBAAkB,IAClB,cAAe,IACf,4BAA6B,IAC7B,eAAgB,IAChB,SAAU,IACV,KAAM,IACN,eAAgB,IAChB,mBAAoB,IACpB,gBAAiB,IACjB,WAAY,IACZ,qBAAsB,IACtB,oBAAqB,IACrB,kBAAmB,IACnB,UAAW,IACX,mBAAoB,IACpB,oBAAqB,IACrB,OAAQ,IACR,iBAAkB,IAClB,SAAU,IACV,gBAAiB,IACjB,qBAAsB,IACtB,gBAAiB,IACjB,4BAA6B,IAC7B,2BAA4B,IAC5B,oBAAqB,IACrB,eAAgB,IAChB,WAAY,IACZ,mBAAoB,IACpB,eAAgB,IAChB,wBAAyB,IACzB,sBAAuB,IACvB,oBAAqB,IACrB,aAAc,IACd,YAAa,IACb,8BAA+B,IAC/B,gBAAiB,IACjB,mBAAoB,IACpB,oBAAqB,IACrB,gBAAiB,IACjB,mBAAoB,IACpB,sBAAuB,GACzB,EAEA,OAAO,QAAQA,EAAc,EAAE,QAAQ,CAAC,CAAC5mB,EAAKyD,CAAK,IAAM,CACvDmjB,GAAenjB,CAAK,EAAIzD,CAC1B,CAAC,EAED,IAAA6mB,GAAeD,GCjDf,SAASE,GAAeC,EAAe,CACrC,IAAM1mB,EAAU,IAAI4kB,GAAM8B,CAAa,EACjCC,EAAWhqB,GAAKioB,GAAM,UAAU,QAAS5kB,CAAO,EAGtDyF,OAAAA,EAAM,OAAOkhB,EAAU/B,GAAM,UAAW5kB,EAAS,CAAC,WAAY,EAAI,CAAC,EAGnEyF,EAAM,OAAOkhB,EAAU3mB,EAAS,KAAM,CAAC,WAAY,EAAI,CAAC,EAGxD2mB,EAAS,OAAS,SAAgB9B,EAAgB,CAChD,OAAO4B,GAAehJ,GAAYiJ,EAAe7B,CAAc,CAAC,CACpE,EAES8B,CACT,CAGK,IAACC,EAAQH,GAAetc,EAAQ,EAGrCyc,EAAM,MAAQhC,GAGdgC,EAAM,cAAgBvY,GACtBuY,EAAM,YAAcf,GACpBe,EAAM,SAAWxY,GACjBwY,EAAM,QAAUzX,GAChByX,EAAM,WAAa1gB,GAGnB0gB,EAAM,WAAa7hB,EAGnB6hB,EAAM,OAASA,EAAM,cAGrBA,EAAM,IAAM,SAAaC,EAAU,CACjC,OAAO,QAAQ,IAAIA,CAAQ,CAC7B,EAEAD,EAAM,OAASR,GAGfQ,EAAM,aAAeP,GAGrBO,EAAM,YAAcnJ,GAEpBmJ,EAAM,aAAepa,GAErBoa,EAAM,WAAaxpB,GAASuM,GAAelE,EAAM,WAAWrI,CAAK,EAAI,IAAI,SAASA,CAAK,EAAIA,CAAK,EAEhGwpB,EAAM,WAAanD,GAAS,WAE5BmD,EAAM,eAAiBL,GAEvBK,EAAM,QAAUA,iBCrFhB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACA,SAASC,IAAa,CAYlB,MAVI,UAAO,OAAW,KAAe,OAAO,OAAO,SAAY,UAAY,OAAO,QAAQ,OAAS,YAK/F,OAAO,QAAY,KAAe,OAAO,QAAQ,UAAa,UAAc,QAAQ,SAAS,UAK7F,OAAO,WAAc,UAAY,OAAO,UAAU,WAAc,UAAY,UAAU,UAAU,QAAQ,UAAU,GAAK,EAK/H,CAEAD,GAAO,QAAUC,KCpBjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAWC,GAChBA,IAAW,MACX,OAAOA,GAAW,UAClB,OAAOA,EAAO,MAAS,WAExBD,GAAS,SAAWC,GACnBD,GAASC,CAAM,GACfA,EAAO,WAAa,IACpB,OAAOA,EAAO,QAAW,YACzB,OAAOA,EAAO,gBAAmB,SAElCD,GAAS,SAAWC,GACnBD,GAASC,CAAM,GACfA,EAAO,WAAa,IACpB,OAAOA,EAAO,OAAU,YACxB,OAAOA,EAAO,gBAAmB,SAElCD,GAAS,OAASC,GACjBD,GAAS,SAASC,CAAM,GACxBD,GAAS,SAASC,CAAM,EAEzBD,GAAS,UAAYC,GACpBD,GAAS,OAAOC,CAAM,GACtB,OAAOA,EAAO,YAAe,WAE9BF,GAAO,QAAUC,KC3BjB,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAM,OAAO,UAAU,eACvBC,GAAS,IASb,SAASC,IAAS,CAAC,CASf,OAAO,SACTA,GAAO,UAAY,OAAO,OAAO,IAAI,EAMhC,IAAIA,GAAO,EAAE,YAAWD,GAAS,KAYxC,SAASE,GAAGC,EAAIC,EAASC,EAAM,CAC7B,KAAK,GAAKF,EACV,KAAK,QAAUC,EACf,KAAK,KAAOC,GAAQ,EACtB,CAaA,SAASC,GAAYC,EAASC,EAAOL,EAAIC,EAASC,EAAM,CACtD,GAAI,OAAOF,GAAO,WAChB,MAAM,IAAI,UAAU,iCAAiC,EAGvD,IAAIM,EAAW,IAAIP,GAAGC,EAAIC,GAAWG,EAASF,CAAI,EAC9CK,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,OAAKD,EAAQ,QAAQG,CAAG,EACdH,EAAQ,QAAQG,CAAG,EAAE,GAC1BH,EAAQ,QAAQG,CAAG,EAAI,CAACH,EAAQ,QAAQG,CAAG,EAAGD,CAAQ,EADxBF,EAAQ,QAAQG,CAAG,EAAE,KAAKD,CAAQ,GAD1CF,EAAQ,QAAQG,CAAG,EAAID,EAAUF,EAAQ,gBAI7DA,CACT,CASA,SAASI,GAAWJ,EAASG,EAAK,CAC5B,EAAEH,EAAQ,eAAiB,EAAGA,EAAQ,QAAU,IAAIN,GACnD,OAAOM,EAAQ,QAAQG,CAAG,CACjC,CASA,SAASE,IAAe,CACtB,KAAK,QAAU,IAAIX,GACnB,KAAK,aAAe,CACtB,CASAW,GAAa,UAAU,WAAa,UAAsB,CACxD,IAAIC,EAAQ,CAAC,EACTC,EACAC,EAEJ,GAAI,KAAK,eAAiB,EAAG,OAAOF,EAEpC,IAAKE,KAASD,EAAS,KAAK,QACtBf,GAAI,KAAKe,EAAQC,CAAI,GAAGF,EAAM,KAAKb,GAASe,EAAK,MAAM,CAAC,EAAIA,CAAI,EAGtE,OAAI,OAAO,sBACFF,EAAM,OAAO,OAAO,sBAAsBC,CAAM,CAAC,EAGnDD,CACT,EASAD,GAAa,UAAU,UAAY,SAAmBJ,EAAO,CAC3D,IAAIE,EAAMV,GAASA,GAASQ,EAAQA,EAChCQ,EAAW,KAAK,QAAQN,CAAG,EAE/B,GAAI,CAACM,EAAU,MAAO,CAAC,EACvB,GAAIA,EAAS,GAAI,MAAO,CAACA,EAAS,EAAE,EAEpC,QAASC,EAAI,EAAGC,EAAIF,EAAS,OAAQG,EAAK,IAAI,MAAMD,CAAC,EAAGD,EAAIC,EAAGD,IAC7DE,EAAGF,CAAC,EAAID,EAASC,CAAC,EAAE,GAGtB,OAAOE,CACT,EASAP,GAAa,UAAU,cAAgB,SAAuBJ,EAAO,CACnE,IAAIE,EAAMV,GAASA,GAASQ,EAAQA,EAChCY,EAAY,KAAK,QAAQV,CAAG,EAEhC,OAAKU,EACDA,EAAU,GAAW,EAClBA,EAAU,OAFM,CAGzB,EASAR,GAAa,UAAU,KAAO,SAAcJ,EAAOa,EAAIC,EAAIC,EAAIC,EAAIC,EAAI,CACrE,IAAIf,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,GAAI,CAAC,KAAK,QAAQE,CAAG,EAAG,MAAO,GAE/B,IAAIU,EAAY,KAAK,QAAQV,CAAG,EAC5BgB,EAAM,UAAU,OAChBC,EACAV,EAEJ,GAAIG,EAAU,GAAI,CAGhB,OAFIA,EAAU,MAAM,KAAK,eAAeZ,EAAOY,EAAU,GAAI,OAAW,EAAI,EAEpEM,EAAK,CACX,IAAK,GAAG,OAAON,EAAU,GAAG,KAAKA,EAAU,OAAO,EAAG,GACrD,IAAK,GAAG,OAAOA,EAAU,GAAG,KAAKA,EAAU,QAASC,CAAE,EAAG,GACzD,IAAK,GAAG,OAAOD,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,CAAE,EAAG,GAC7D,IAAK,GAAG,OAAOF,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,CAAE,EAAG,GACjE,IAAK,GAAG,OAAOH,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,GACrE,IAAK,GAAG,OAAOJ,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,EAC3E,CAEA,IAAKR,EAAI,EAAGU,EAAO,IAAI,MAAMD,EAAK,CAAC,EAAGT,EAAIS,EAAKT,IAC7CU,EAAKV,EAAI,CAAC,EAAI,UAAUA,CAAC,EAG3BG,EAAU,GAAG,MAAMA,EAAU,QAASO,CAAI,CAC5C,KAAO,CACL,IAAIC,EAASR,EAAU,OACnBS,EAEJ,IAAKZ,EAAI,EAAGA,EAAIW,EAAQX,IAGtB,OAFIG,EAAUH,CAAC,EAAE,MAAM,KAAK,eAAeT,EAAOY,EAAUH,CAAC,EAAE,GAAI,OAAW,EAAI,EAE1ES,EAAK,CACX,IAAK,GAAGN,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,OAAO,EAAG,MACpD,IAAK,GAAGG,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,CAAE,EAAG,MACxD,IAAK,GAAGD,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,EAAIC,CAAE,EAAG,MAC5D,IAAK,GAAGF,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,EAAIC,EAAIC,CAAE,EAAG,MAChE,QACE,GAAI,CAACI,EAAM,IAAKE,EAAI,EAAGF,EAAO,IAAI,MAAMD,EAAK,CAAC,EAAGG,EAAIH,EAAKG,IACxDF,EAAKE,EAAI,CAAC,EAAI,UAAUA,CAAC,EAG3BT,EAAUH,CAAC,EAAE,GAAG,MAAMG,EAAUH,CAAC,EAAE,QAASU,CAAI,CACpD,CAEJ,CAEA,MAAO,EACT,EAWAf,GAAa,UAAU,GAAK,SAAYJ,EAAOL,EAAIC,EAAS,CAC1D,OAAOE,GAAY,KAAME,EAAOL,EAAIC,EAAS,EAAK,CACpD,EAWAQ,GAAa,UAAU,KAAO,SAAcJ,EAAOL,EAAIC,EAAS,CAC9D,OAAOE,GAAY,KAAME,EAAOL,EAAIC,EAAS,EAAI,CACnD,EAYAQ,GAAa,UAAU,eAAiB,SAAwBJ,EAAOL,EAAIC,EAASC,EAAM,CACxF,IAAIK,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,GAAI,CAAC,KAAK,QAAQE,CAAG,EAAG,OAAO,KAC/B,GAAI,CAACP,EACH,OAAAQ,GAAW,KAAMD,CAAG,EACb,KAGT,IAAIU,EAAY,KAAK,QAAQV,CAAG,EAEhC,GAAIU,EAAU,GAEVA,EAAU,KAAOjB,IAChB,CAACE,GAAQe,EAAU,QACnB,CAAChB,GAAWgB,EAAU,UAAYhB,IAEnCO,GAAW,KAAMD,CAAG,MAEjB,CACL,QAASO,EAAI,EAAGH,EAAS,CAAC,EAAGc,EAASR,EAAU,OAAQH,EAAIW,EAAQX,KAEhEG,EAAUH,CAAC,EAAE,KAAOd,GACnBE,GAAQ,CAACe,EAAUH,CAAC,EAAE,MACtBb,GAAWgB,EAAUH,CAAC,EAAE,UAAYb,IAErCU,EAAO,KAAKM,EAAUH,CAAC,CAAC,EAOxBH,EAAO,OAAQ,KAAK,QAAQJ,CAAG,EAAII,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,EACpEH,GAAW,KAAMD,CAAG,CAC3B,CAEA,OAAO,IACT,EASAE,GAAa,UAAU,mBAAqB,SAA4BJ,EAAO,CAC7E,IAAIE,EAEJ,OAAIF,GACFE,EAAMV,GAASA,GAASQ,EAAQA,EAC5B,KAAK,QAAQE,CAAG,GAAGC,GAAW,KAAMD,CAAG,IAE3C,KAAK,QAAU,IAAIT,GACnB,KAAK,aAAe,GAGf,IACT,EAKAW,GAAa,UAAU,IAAMA,GAAa,UAAU,eACpDA,GAAa,UAAU,YAAcA,GAAa,UAAU,GAK5DA,GAAa,SAAWZ,GAKxBY,GAAa,aAAeA,GAKR,OAAOd,GAAvB,MACFA,GAAO,QAAUc,MC9UnB,IAAAkB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACAA,GAAO,QAAU,CAACC,EAASC,KAC1BA,EAAYA,IAAc,IAAM,CAAC,GAE1BD,EAAQ,KACdE,GAAO,IAAI,QAAQC,GAAW,CAC7BA,EAAQF,EAAU,CAAC,CACpB,CAAC,EAAE,KAAK,IAAMC,CAAG,EACjBE,GAAO,IAAI,QAAQD,GAAW,CAC7BA,EAAQF,EAAU,CAAC,CACpB,CAAC,EAAE,KAAK,IAAM,CACb,MAAMG,CACP,CAAC,CACF,KCbD,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAMC,GAAW,KAEXC,GAAN,cAA2B,KAAM,CAChC,YAAYC,EAAS,CACpB,MAAMA,CAAO,EACb,KAAK,KAAO,cACb,CACD,EAEMC,GAAW,CAACC,EAASC,EAAcC,IAAa,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtF,GAAI,OAAOH,GAAiB,UAAYA,EAAe,EACtD,MAAM,IAAI,UAAU,iDAAiD,EAGtE,GAAIA,IAAiB,IAAU,CAC9BE,EAAQH,CAAO,EACf,MACD,CAEA,IAAMK,EAAQ,WAAW,IAAM,CAC9B,GAAI,OAAOH,GAAa,WAAY,CACnC,GAAI,CACHC,EAAQD,EAAS,CAAC,CACnB,OAASI,EAAO,CACfF,EAAOE,CAAK,CACb,CAEA,MACD,CAEA,IAAMR,EAAU,OAAOI,GAAa,SAAWA,EAAW,2BAA2BD,CAAY,gBAC3FM,EAAeL,aAAoB,MAAQA,EAAW,IAAIL,GAAaC,CAAO,EAEhF,OAAOE,EAAQ,QAAW,YAC7BA,EAAQ,OAAO,EAGhBI,EAAOG,CAAY,CACpB,EAAGN,CAAY,EAGfL,GAECI,EAAQ,KAAKG,EAASC,CAAM,EAC5B,IAAM,CACL,aAAaC,CAAK,CACnB,CACD,CACD,CAAC,EAEDV,GAAO,QAAUI,GAEjBJ,GAAO,QAAQ,QAAUI,GAEzBJ,GAAO,QAAQ,aAAeE,KCxD9B,IAAAW,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAG5D,SAASC,GAAWC,EAAOC,EAAOC,EAAY,CAC1C,IAAIC,EAAQ,EACRC,EAAQJ,EAAM,OAClB,KAAOI,EAAQ,GAAG,CACd,IAAMC,EAAQD,EAAQ,EAAK,EACvBE,EAAKH,EAAQE,EACbH,EAAWF,EAAMM,CAAE,EAAGL,CAAK,GAAK,GAChCE,EAAQ,EAAEG,EACVF,GAASC,EAAO,GAGhBD,EAAQC,CAEhB,CACA,OAAOF,CACX,CACAL,GAAQ,QAAUC,KCpBlB,IAAAQ,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,IAAMC,GAAgB,KAChBC,GAAN,KAAoB,CAChB,aAAc,CACV,KAAK,OAAS,CAAC,CACnB,CACA,QAAQC,EAAKC,EAAS,CAClBA,EAAU,OAAO,OAAO,CAAE,SAAU,CAAE,EAAGA,CAAO,EAChD,IAAMC,EAAU,CACZ,SAAUD,EAAQ,SAClB,IAAAD,CACJ,EACA,GAAI,KAAK,MAAQ,KAAK,OAAO,KAAK,KAAO,CAAC,EAAE,UAAYC,EAAQ,SAAU,CACtE,KAAK,OAAO,KAAKC,CAAO,EACxB,MACJ,CACA,IAAMC,EAAQL,GAAc,QAAQ,KAAK,OAAQI,EAAS,CAAC,EAAGE,IAAMA,EAAE,SAAW,EAAE,QAAQ,EAC3F,KAAK,OAAO,OAAOD,EAAO,EAAGD,CAAO,CACxC,CACA,SAAU,CACN,IAAMG,EAAO,KAAK,OAAO,MAAM,EAC/B,OAAmDA,GAAK,GAC5D,CACA,OAAOJ,EAAS,CACZ,OAAO,KAAK,OAAO,OAAQC,GAAYA,EAAQ,WAAaD,EAAQ,QAAQ,EAAE,IAAKC,GAAYA,EAAQ,GAAG,CAC9G,CACA,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,MACvB,CACJ,EACAL,GAAQ,QAAUE,KC/BlB,IAAAO,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,IAAMC,GAAe,KACfC,GAAc,KACdC,GAAmB,KAEnBC,GAAQ,IAAM,CAAE,EAChBC,GAAe,IAAIH,GAAY,aAI/BI,GAAN,cAAqBL,EAAa,CAC9B,YAAYM,EAAS,CACjB,IAAIC,EAAIC,EAAIC,EAAIC,EAShB,GARA,MAAM,EACN,KAAK,eAAiB,EACtB,KAAK,aAAe,EACpB,KAAK,cAAgB,EACrB,KAAK,cAAgBP,GACrB,KAAK,aAAeA,GAEpBG,EAAU,OAAO,OAAO,CAAE,0BAA2B,GAAO,YAAa,IAAU,SAAU,EAAG,YAAa,IAAU,UAAW,GAAM,WAAYJ,GAAiB,OAAQ,EAAGI,CAAO,EACnL,EAAE,OAAOA,EAAQ,aAAgB,UAAYA,EAAQ,aAAe,GACpE,MAAM,IAAI,UAAU,iEAAiEE,GAAMD,EAAKD,EAAQ,eAAiB,MAAQC,IAAO,OAAS,OAASA,EAAG,SAAS,KAAO,MAAQC,IAAO,OAASA,EAAK,EAAE,OAAO,OAAOF,EAAQ,WAAW,GAAG,EAEpP,GAAIA,EAAQ,WAAa,QAAa,EAAE,OAAO,SAASA,EAAQ,QAAQ,GAAKA,EAAQ,UAAY,GAC7F,MAAM,IAAI,UAAU,4DAA4DI,GAAMD,EAAKH,EAAQ,YAAc,MAAQG,IAAO,OAAS,OAASA,EAAG,SAAS,KAAO,MAAQC,IAAO,OAASA,EAAK,EAAE,OAAO,OAAOJ,EAAQ,QAAQ,GAAG,EAEzO,KAAK,2BAA6BA,EAAQ,0BAC1C,KAAK,mBAAqBA,EAAQ,cAAgB,KAAYA,EAAQ,WAAa,EACnF,KAAK,aAAeA,EAAQ,YAC5B,KAAK,UAAYA,EAAQ,SACzB,KAAK,OAAS,IAAIA,EAAQ,WAC1B,KAAK,YAAcA,EAAQ,WAC3B,KAAK,YAAcA,EAAQ,YAC3B,KAAK,SAAWA,EAAQ,QACxB,KAAK,gBAAkBA,EAAQ,iBAAmB,GAClD,KAAK,UAAYA,EAAQ,YAAc,EAC3C,CACA,IAAI,2BAA4B,CAC5B,OAAO,KAAK,oBAAsB,KAAK,eAAiB,KAAK,YACjE,CACA,IAAI,6BAA8B,CAC9B,OAAO,KAAK,cAAgB,KAAK,YACrC,CACA,OAAQ,CACJ,KAAK,gBACL,KAAK,mBAAmB,EACxB,KAAK,KAAK,MAAM,CACpB,CACA,kBAAmB,CACf,KAAK,cAAc,EACnB,KAAK,cAAgBH,GACjB,KAAK,gBAAkB,IACvB,KAAK,aAAa,EAClB,KAAK,aAAeA,GACpB,KAAK,KAAK,MAAM,EAExB,CACA,mBAAoB,CAChB,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,WAAa,MACtB,CACA,mBAAoB,CAChB,IAAMQ,EAAM,KAAK,IAAI,EACrB,GAAI,KAAK,cAAgB,OAAW,CAChC,IAAMC,EAAQ,KAAK,aAAeD,EAClC,GAAIC,EAAQ,EAGR,KAAK,eAAkB,KAAK,2BAA8B,KAAK,cAAgB,MAI/E,QAAI,KAAK,aAAe,SACpB,KAAK,WAAa,WAAW,IAAM,CAC/B,KAAK,kBAAkB,CAC3B,EAAGA,CAAK,GAEL,EAEf,CACA,MAAO,EACX,CACA,oBAAqB,CACjB,GAAI,KAAK,OAAO,OAAS,EAGrB,OAAI,KAAK,aACL,cAAc,KAAK,WAAW,EAElC,KAAK,YAAc,OACnB,KAAK,iBAAiB,EACf,GAEX,GAAI,CAAC,KAAK,UAAW,CACjB,IAAMC,EAAwB,CAAC,KAAK,kBAAkB,EACtD,GAAI,KAAK,2BAA6B,KAAK,4BAA6B,CACpE,IAAMC,EAAM,KAAK,OAAO,QAAQ,EAChC,OAAKA,GAGL,KAAK,KAAK,QAAQ,EAClBA,EAAI,EACAD,GACA,KAAK,4BAA4B,EAE9B,IAPI,EAQf,CACJ,CACA,MAAO,EACX,CACA,6BAA8B,CACtB,KAAK,oBAAsB,KAAK,cAAgB,SAGpD,KAAK,YAAc,YAAY,IAAM,CACjC,KAAK,YAAY,CACrB,EAAG,KAAK,SAAS,EACjB,KAAK,aAAe,KAAK,IAAI,EAAI,KAAK,UAC1C,CACA,aAAc,CACN,KAAK,iBAAmB,GAAK,KAAK,gBAAkB,GAAK,KAAK,cAC9D,cAAc,KAAK,WAAW,EAC9B,KAAK,YAAc,QAEvB,KAAK,eAAiB,KAAK,2BAA6B,KAAK,cAAgB,EAC7E,KAAK,cAAc,CACvB,CAIA,eAAgB,CAEZ,KAAO,KAAK,mBAAmB,GAAG,CACtC,CACA,IAAI,aAAc,CACd,OAAO,KAAK,YAChB,CACA,IAAI,YAAYE,EAAgB,CAC5B,GAAI,EAAE,OAAOA,GAAmB,UAAYA,GAAkB,GAC1D,MAAM,IAAI,UAAU,gEAAgEA,CAAc,OAAO,OAAOA,CAAc,GAAG,EAErI,KAAK,aAAeA,EACpB,KAAK,cAAc,CACvB,CAIA,MAAM,IAAIC,EAAIV,EAAU,CAAC,EAAG,CACxB,OAAO,IAAI,QAAQ,CAACW,EAASC,IAAW,CACpC,IAAMC,EAAM,SAAY,CACpB,KAAK,gBACL,KAAK,iBACL,GAAI,CACA,IAAMC,EAAa,KAAK,WAAa,QAAad,EAAQ,UAAY,OAAaU,EAAG,EAAIf,GAAY,QAAQ,QAAQ,QAAQe,EAAG,CAAC,EAAIV,EAAQ,UAAY,OAAY,KAAK,SAAWA,EAAQ,QAAU,IAAM,EACtMA,EAAQ,iBAAmB,OAAY,KAAK,gBAAkBA,EAAQ,iBACtEY,EAAOd,EAAY,CAG3B,CAAC,EACDa,EAAQ,MAAMG,CAAS,CAC3B,OACOC,EAAO,CACVH,EAAOG,CAAK,CAChB,CACA,KAAK,MAAM,CACf,EACA,KAAK,OAAO,QAAQF,EAAKb,CAAO,EAChC,KAAK,mBAAmB,EACxB,KAAK,KAAK,KAAK,CACnB,CAAC,CACL,CAMA,MAAM,OAAOgB,EAAWhB,EAAS,CAC7B,OAAO,QAAQ,IAAIgB,EAAU,IAAI,MAAOC,GAAc,KAAK,IAAIA,EAAWjB,CAAO,CAAC,CAAC,CACvF,CAIA,OAAQ,CACJ,OAAK,KAAK,WAGV,KAAK,UAAY,GACjB,KAAK,cAAc,EACZ,MAJI,IAKf,CAIA,OAAQ,CACJ,KAAK,UAAY,EACrB,CAIA,OAAQ,CACJ,KAAK,OAAS,IAAI,KAAK,WAC3B,CAMA,MAAM,SAAU,CAEZ,GAAI,KAAK,OAAO,OAAS,EAGzB,OAAO,IAAI,QAAQW,GAAW,CAC1B,IAAMO,EAAkB,KAAK,cAC7B,KAAK,cAAgB,IAAM,CACvBA,EAAgB,EAChBP,EAAQ,CACZ,CACJ,CAAC,CACL,CAMA,MAAM,QAAS,CAEX,GAAI,OAAK,gBAAkB,GAAK,KAAK,OAAO,OAAS,GAGrD,OAAO,IAAI,QAAQA,GAAW,CAC1B,IAAMO,EAAkB,KAAK,aAC7B,KAAK,aAAe,IAAM,CACtBA,EAAgB,EAChBP,EAAQ,CACZ,CACJ,CAAC,CACL,CAIA,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,IACvB,CAMA,OAAOX,EAAS,CAEZ,OAAO,KAAK,OAAO,OAAOA,CAAO,EAAE,MACvC,CAIA,IAAI,SAAU,CACV,OAAO,KAAK,aAChB,CAIA,IAAI,UAAW,CACX,OAAO,KAAK,SAChB,CACA,IAAI,SAAU,CACV,OAAO,KAAK,QAChB,CAIA,IAAI,QAAQmB,EAAc,CACtB,KAAK,SAAWA,CACpB,CACJ,EACA1B,GAAQ,QAAUM,KCtRlB,IAAAqB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,uBAASC,GAAeC,EAAUC,EAAS,CAErC,OAAOA,GAAY,YACrBA,EAAU,CAAE,QAASA,CAAQ,GAG/B,KAAK,kBAAoB,KAAK,MAAM,KAAK,UAAUD,CAAQ,CAAC,EAC5D,KAAK,UAAYA,EACjB,KAAK,SAAWC,GAAW,CAAC,EAC5B,KAAK,cAAgBA,GAAWA,EAAQ,cAAgB,IACxD,KAAK,IAAM,KACX,KAAK,QAAU,CAAC,EAChB,KAAK,UAAY,EACjB,KAAK,kBAAoB,KACzB,KAAK,oBAAsB,KAC3B,KAAK,SAAW,KAChB,KAAK,gBAAkB,KACvB,KAAK,OAAS,KAEV,KAAK,SAAS,UAChB,KAAK,gBAAkB,KAAK,UAAU,MAAM,CAAC,EAEjD,CACAH,GAAO,QAAUC,GAEjBA,GAAe,UAAU,MAAQ,UAAW,CAC1C,KAAK,UAAY,EACjB,KAAK,UAAY,KAAK,kBAAkB,MAAM,CAAC,CACjD,EAEAA,GAAe,UAAU,KAAO,UAAW,CACrC,KAAK,UACP,aAAa,KAAK,QAAQ,EAExB,KAAK,QACP,aAAa,KAAK,MAAM,EAG1B,KAAK,UAAkB,CAAC,EACxB,KAAK,gBAAkB,IACzB,EAEAA,GAAe,UAAU,MAAQ,SAASG,EAAK,CAK7C,GAJI,KAAK,UACP,aAAa,KAAK,QAAQ,EAGxB,CAACA,EACH,MAAO,GAET,IAAIC,EAAc,IAAI,KAAK,EAAE,QAAQ,EACrC,GAAID,GAAOC,EAAc,KAAK,iBAAmB,KAAK,cACpD,YAAK,QAAQ,KAAKD,CAAG,EACrB,KAAK,QAAQ,QAAQ,IAAI,MAAM,iCAAiC,CAAC,EAC1D,GAGT,KAAK,QAAQ,KAAKA,CAAG,EAErB,IAAIE,EAAU,KAAK,UAAU,MAAM,EACnC,GAAIA,IAAY,OACd,GAAI,KAAK,gBAEP,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EAC9CA,EAAU,KAAK,gBAAgB,MAAM,EAAE,MAEvC,OAAO,GAIX,IAAIC,EAAO,KACX,YAAK,OAAS,WAAW,UAAW,CAClCA,EAAK,YAEDA,EAAK,sBACPA,EAAK,SAAW,WAAW,UAAW,CACpCA,EAAK,oBAAoBA,EAAK,SAAS,CACzC,EAAGA,EAAK,iBAAiB,EAErBA,EAAK,SAAS,OACdA,EAAK,SAAS,MAAM,GAI1BA,EAAK,IAAIA,EAAK,SAAS,CACzB,EAAGD,CAAO,EAEN,KAAK,SAAS,OACd,KAAK,OAAO,MAAM,EAGf,EACT,EAEAL,GAAe,UAAU,QAAU,SAASO,EAAIC,EAAY,CAC1D,KAAK,IAAMD,EAEPC,IACEA,EAAW,UACb,KAAK,kBAAoBA,EAAW,SAElCA,EAAW,KACb,KAAK,oBAAsBA,EAAW,KAI1C,IAAIF,EAAO,KACP,KAAK,sBACP,KAAK,SAAW,WAAW,UAAW,CACpCA,EAAK,oBAAoB,CAC3B,EAAGA,EAAK,iBAAiB,GAG3B,KAAK,gBAAkB,IAAI,KAAK,EAAE,QAAQ,EAE1C,KAAK,IAAI,KAAK,SAAS,CACzB,EAEAN,GAAe,UAAU,IAAM,SAASO,EAAI,CAC1C,QAAQ,IAAI,0CAA0C,EACtD,KAAK,QAAQA,CAAE,CACjB,EAEAP,GAAe,UAAU,MAAQ,SAASO,EAAI,CAC5C,QAAQ,IAAI,4CAA4C,EACxD,KAAK,QAAQA,CAAE,CACjB,EAEAP,GAAe,UAAU,MAAQA,GAAe,UAAU,IAE1DA,GAAe,UAAU,OAAS,UAAW,CAC3C,OAAO,KAAK,OACd,EAEAA,GAAe,UAAU,SAAW,UAAW,CAC7C,OAAO,KAAK,SACd,EAEAA,GAAe,UAAU,UAAY,UAAW,CAC9C,GAAI,KAAK,QAAQ,SAAW,EAC1B,OAAO,KAOT,QAJIS,EAAS,CAAC,EACVC,EAAY,KACZC,EAAiB,EAEZ,EAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,IAAK,CAC5C,IAAIC,EAAQ,KAAK,QAAQ,CAAC,EACtBC,EAAUD,EAAM,QAChBE,GAASL,EAAOI,CAAO,GAAK,GAAK,EAErCJ,EAAOI,CAAO,EAAIC,EAEdA,GAASH,IACXD,EAAYE,EACZD,EAAiBG,EAErB,CAEA,OAAOJ,CACT,ICjKA,IAAAK,GAAAC,EAAAC,IAAA,kBAAIC,GAAiB,KAErBD,GAAQ,UAAY,SAASE,EAAS,CACpC,IAAIC,EAAWH,GAAQ,SAASE,CAAO,EACvC,OAAO,IAAID,GAAeE,EAAU,CAChC,QAASD,IAAYA,EAAQ,SAAWA,EAAQ,UAAY,KAC5D,MAAOA,GAAWA,EAAQ,MAC1B,aAAcA,GAAWA,EAAQ,YACrC,CAAC,CACH,EAEAF,GAAQ,SAAW,SAASE,EAAS,CACnC,GAAIA,aAAmB,MACrB,MAAO,CAAC,EAAE,OAAOA,CAAO,EAG1B,IAAIE,EAAO,CACT,QAAS,GACT,OAAQ,EACR,WAAY,EAAI,IAChB,WAAY,IACZ,UAAW,EACb,EACA,QAASC,KAAOH,EACdE,EAAKC,CAAG,EAAIH,EAAQG,CAAG,EAGzB,GAAID,EAAK,WAAaA,EAAK,WACzB,MAAM,IAAI,MAAM,uCAAuC,EAIzD,QADID,EAAW,CAAC,EACPG,EAAI,EAAGA,EAAIF,EAAK,QAASE,IAChCH,EAAS,KAAK,KAAK,cAAcG,EAAGF,CAAI,CAAC,EAG3C,OAAIF,GAAWA,EAAQ,SAAW,CAACC,EAAS,QAC1CA,EAAS,KAAK,KAAK,cAAcG,EAAGF,CAAI,CAAC,EAI3CD,EAAS,KAAK,SAAS,EAAEI,EAAG,CAC1B,OAAO,EAAIA,CACb,CAAC,EAEMJ,CACT,EAEAH,GAAQ,cAAgB,SAASQ,EAASJ,EAAM,CAC9C,IAAIK,EAAUL,EAAK,UACd,KAAK,OAAO,EAAI,EACjB,EAEAM,EAAU,KAAK,MAAMD,EAAS,KAAK,IAAIL,EAAK,WAAY,CAAC,EAAI,KAAK,IAAIA,EAAK,OAAQI,CAAO,CAAC,EAC/F,OAAAE,EAAU,KAAK,IAAIA,EAASN,EAAK,UAAU,EAEpCM,CACT,EAEAV,GAAQ,KAAO,SAASW,EAAKT,EAASU,EAAS,CAM7C,GALIV,aAAmB,QACrBU,EAAUV,EACVA,EAAU,MAGR,CAACU,EAAS,CACZA,EAAU,CAAC,EACX,QAASP,KAAOM,EACV,OAAOA,EAAIN,CAAG,GAAM,YACtBO,EAAQ,KAAKP,CAAG,CAGtB,CAEA,QAASC,EAAI,EAAGA,EAAIM,EAAQ,OAAQN,IAAK,CACvC,IAAIO,EAAWD,EAAQN,CAAC,EACpBQ,EAAWH,EAAIE,CAAM,EAEzBF,EAAIE,CAAM,EAAI,SAAsBC,EAAU,CAC5C,IAAIC,EAAWf,GAAQ,UAAUE,CAAO,EACpCc,EAAW,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAClDC,EAAWD,EAAK,IAAI,EAExBA,EAAK,KAAK,SAASE,EAAK,CAClBH,EAAG,MAAMG,CAAG,IAGZA,IACF,UAAU,CAAC,EAAIH,EAAG,UAAU,GAE9BE,EAAS,MAAM,KAAM,SAAS,EAChC,CAAC,EAEDF,EAAG,QAAQ,UAAW,CACpBD,EAAS,MAAMH,EAAKK,CAAI,CAC1B,CAAC,CACH,EAAE,KAAKL,EAAKG,CAAQ,EACpBH,EAAIE,CAAM,EAAE,QAAUX,CACxB,CACF,ICnGA,IAAAiB,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAAAA,GAAO,QAAU,OCAjB,IAAAC,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cACA,IAAMC,GAAQ,KAERC,GAAmB,CACxB,kBACA,kDACA,iDACA,wBACD,EAEMC,GAAN,cAAyB,KAAM,CAC9B,YAAYC,EAAS,CACpB,MAAM,EAEFA,aAAmB,OACtB,KAAK,cAAgBA,EACpB,CAAC,QAAAA,CAAO,EAAIA,IAEb,KAAK,cAAgB,IAAI,MAAMA,CAAO,EACtC,KAAK,cAAc,MAAQ,KAAK,OAGjC,KAAK,KAAO,aACZ,KAAK,QAAUA,CAChB,CACD,EAEMC,GAA0B,CAACC,EAAOC,EAAeC,IAAY,CAElE,IAAMC,EAAcD,EAAQ,SAAWD,EAAgB,GAEvD,OAAAD,EAAM,cAAgBC,EACtBD,EAAM,YAAcG,EACbH,CACR,EAEMI,GAAiBC,GAAgBT,GAAiB,SAASS,CAAY,EAEvEC,GAAS,CAACC,EAAOL,IAAY,IAAI,QAAQ,CAACM,EAASC,IAAW,CACnEP,EAAU,CACT,gBAAiB,IAAM,CAAC,EACxB,QAAS,GACT,GAAGA,CACJ,EAEA,IAAMQ,EAAYf,GAAM,UAAUO,CAAO,EAEzCQ,EAAU,QAAQ,MAAMT,GAAiB,CACxC,GAAI,CACHO,EAAQ,MAAMD,EAAMN,CAAa,CAAC,CACnC,OAASD,EAAO,CACf,GAAI,EAAEA,aAAiB,OAAQ,CAC9BS,EAAO,IAAI,UAAU,0BAA0BT,CAAK,kCAAkC,CAAC,EACvF,MACD,CAEA,GAAIA,aAAiBH,GACpBa,EAAU,KAAK,EACfD,EAAOT,EAAM,aAAa,UAChBA,aAAiB,WAAa,CAACI,GAAeJ,EAAM,OAAO,EACrEU,EAAU,KAAK,EACfD,EAAOT,CAAK,MACN,CACND,GAAwBC,EAAOC,EAAeC,CAAO,EAErD,GAAI,CACH,MAAMA,EAAQ,gBAAgBF,CAAK,CACpC,OAASA,EAAO,CACfS,EAAOT,CAAK,EACZ,MACD,CAEKU,EAAU,MAAMV,CAAK,GACzBS,EAAOC,EAAU,UAAU,CAAC,CAE9B,CACD,CACD,CAAC,CACF,CAAC,EAEDhB,GAAO,QAAUY,GAEjBZ,GAAO,QAAQ,QAAUY,GAEzBZ,GAAO,QAAQ,WAAaG,gbCvE5B,IAAac,GAAb,KAAyB,CAuCvB,YAAYC,EAAmBC,EAAgBC,EAAgCC,EAA4B,OAtCnG,KAAA,OAAS,GAuCf,KAAK,OAASH,EACd,KAAK,OAASC,EACd,KAAK,QAAU,CACb,aAAaG,EAAAD,EAAQ,eAAW,MAAAC,IAAA,OAAAA,EAAI,KAEtC,KAAK,MAAQ,WACb,KAAK,WAAaF,CACpB,CAsBM,OACJA,EAAuD,0CAEvD,GAAI,KAAK,QAAU,YACjB,MAAM,IAAI,MAAM,4CAA4C,KAAK,KAAK,EAAE,EAM1E,GAJIA,EAAK,QACP,KAAK,MAAQA,EAAK,OAEpB,KAAK,QAAUA,EAAK,cAChB,KAAK,OAAO,QAAU,KAAK,QAAQ,YACrC,OAAO,MAAM,KAAK,YAAYA,CAAI,EAEpC,IAAMG,EAAU,CACd,aAAc,KAAK,OAAO,OAC1B,WAAY,KAAK,QAAQ,YACzB,QAAS,KAAK,WAAW,QACzB,gBAAiB,KAAK,WAAW,kBACjC,gBAAiB,KAAK,WAAW,kBACjC,SAAU,KAAK,WAAW,WAE5B,YAAK,OAAO,MAAM,oCAAoC,KAAK,UAAUA,CAAO,CAAC,EAAE,EACxE,IACT,CAAC,EAoBK,KAAKH,EAAsD,0CAC/D,GAAI,KAAK,QAAU,YACjB,MAAM,IAAI,MAAM,0CAA0C,KAAK,KAAK,EAAE,EAQxE,GANIA,GAAM,QACR,KAAK,MAAQA,EAAK,OAEhBA,GAAM,gBACR,KAAK,QAAUA,EAAK,eAElB,CAAC,KAAK,SAAU,CAClB,IAAMI,EAAW,MAAM,KAAK,OAAO,KAAK,YAAW,OAAA,OAAA,OAAA,OAAA,CAAA,EAC9C,KAAK,UAAU,EAAA,CAClB,MAAO,KAAK,KAAK,CAAA,CAAA,EAEnB,GAAI,CAACA,EAAS,GACZ,MAAM,IAAI,MAAM,2CAA2C,EAE7D,KAAK,SAAWA,EAAS,GACzB,KAAK,MAAQ,aACf,CACA,IAAMA,EAAW,MAAM,KAAK,OAAO,KAAK,WAAU,OAAA,OAAA,OAAA,OAAA,CAChD,MAAO,KAAK,MACZ,QAAS,KAAK,WAAW,QACzB,GAAI,KAAK,QAAQ,EACdJ,CAAI,EAAA,CACP,cAAe,KAAK,MAAM,CAAA,CAAA,EAE5B,YAAK,MAAQ,YACNI,CACT,CAAC,EAEa,YACZJ,EAAkF,0CAElF,GAAI,CAAC,KAAK,SAAU,CAClB,IAAMI,EAAW,MAAM,KAAK,OAAO,KAAK,YAAW,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,CAAA,EAC9C,KAAK,UAAU,EAAA,CAClB,MAAO,KAAK,KAAK,CAAA,EACdJ,CAAI,EAAA,CACP,cAAe,KAAK,MAAM,CAAA,CAAA,EAE5B,YAAK,OAAS,GACd,KAAK,SAAWI,EAAS,GACzB,KAAK,MAAQ,cACNA,CACT,CACA,IAAMA,EAAW,MAAM,KAAK,OAAO,KAAK,aAAY,OAAA,OAAA,OAAA,OAAA,CAClD,MAAO,KAAK,MACZ,QAAS,KAAK,WAAW,QACzB,GAAI,KAAK,QAAQ,EACdJ,CAAI,EAAA,CACP,cAAe,KAAK,MAAM,CAAA,CAAA,EAE5B,YAAK,OAAS,GACPI,CACT,CAAC,IAxKHC,GAAA,aAAAR,qZCCAS,EAAA,iBAAAC,GA0EAD,EAAA,0BAAAE,GAoEAF,EAAA,YAAAG,GAqCAH,EAAA,kBAAAI,GAOAJ,EAAA,oBAAAK,GA+BAL,EAAA,4BAAAM,GAiDAN,EAAA,4BAAAO,GAYAP,EAAA,eAAAQ,GAWAR,EAAA,mBAAAS,GAWAT,EAAA,gCAAAU,GA6BAV,EAAA,yCAAAW,GAwBAX,EAAA,qBAAAY,GAQAZ,EAAA,wBAAAa,GAIAb,EAAA,sBAAAc,GAIAd,EAAA,2BAAAe,GAQAf,EAAA,4BAAAgB,GAQAhB,EAAA,6BAAAiB,GAIAjB,EAAA,yBAAAkB,GAIAlB,EAAA,+BAAAmB,GAOAnB,EAAA,+BAAAoB,GAIApB,EAAA,qBAAAqB,GAOArB,EAAA,8BAAAsB,GAIAtB,EAAA,kCAAAuB,GA7aA,IAAAC,GAAA,QAAA,IAAA,EACAC,GAAA,QAAA,QAAA,EAIAC,EAAA,KASA,SAAsBzB,GACpB0B,EACAC,EAAc,sDAGdhB,GAAqBe,EAASC,CAAM,EACpCpB,GAAemB,EAASC,CAAM,EAC9BnB,GAAmBkB,CAAO,EAC1B,IAAME,EAAWlB,GAAyCgB,EAASC,CAAM,EACnEE,EAAW,MAAM3B,GAAYwB,CAAO,EACpCI,EAAsB3B,GAAkB0B,CAAQ,EAEhDE,EAAyC,CAE7C,SAAUL,EAAQ,SAClB,OAAQA,EAAQ,OAChB,YAAYM,EAAAN,EAAQ,YAAQ,MAAAM,IAAA,OAAAA,EAAIN,EAAQ,WACxC,UAAUO,EAAAP,EAAQ,YAAQ,MAAAO,IAAA,OAAAA,EAAIL,EAC9B,gBAAiBF,EAAQ,gBACzB,aAAcA,EAAQ,aACtB,OAAOQ,GAAAC,EAAAT,EAAQ,SAAK,MAAAS,IAAA,OAAAA,EAAIT,EAAQ,YAAQ,MAAAQ,IAAA,OAAAA,EAAIN,EAE5C,KAAMC,EACN,OAAQC,GAQV,GANI,cAAeJ,IACjBK,EAAc,UAAYL,EAAQ,WAEhC,UAAWA,IACbK,EAAc,MAAQL,EAAQ,OAE5B,YAAaA,EACf,OAAA,OAAA,OAAA,CACE,QAASA,EAAQ,OAAO,EACrBK,CAAa,EAGpB,GAAI,SAAUL,EACZ,OAAA,OAAA,OAAA,CACE,KAAMA,EAAQ,IAAI,EACfK,CAAa,EAGpB,QAAMN,EAAA,eACJ,IAAI,MAAM,uFAAuF,EACjGA,EAAA,UAAU,+BAA+B,CAE7C,CAAC,EA2BD,SAAsBxB,GACpByB,EACAC,EAAc,0CAEd,GAAI,iBAAkBD,EAEpB,OAAO,QAAQ,IACbA,EAAQ,aAAa,IAAKU,GAAU,CAIlC,GAAM,CAAE,OAAAC,EAAQ,WAAAC,EAAY,SAAAC,EAAU,gBAAAC,EAAiB,UAAAC,CAAS,EAAKL,EACrE,GAAIC,GAAUC,GAAcC,GAAYC,GAAmBC,EACzD,QAAMhB,EAAA,eACJ,IAAI,MAAMH,GAAiC,CAAE,EAC7CG,EAAA,UAAU,+BAA+B,EAK7C,IAAMiB,EAAa,OAAA,OAAA,OAAA,OAAA,CAAA,EACdN,CAAM,EAAA,CACT,OAAQV,EAAQ,OAChB,SAAUA,EAAQ,SAClB,WAAYA,EAAQ,WACpB,gBAAiBA,EAAQ,eAAe,CAAA,EAQ1C,GANI,cAAeA,IACjBgB,EAAc,UAAYhB,EAAQ,WAEhC,UAAWA,IACbgB,EAAc,MAAQhB,EAAQ,OAE5B,YAAaU,EACf,OAAOpC,GAAgB,OAAA,OAAA,CAEnB,QAASoC,EAAO,OAAO,EACpBM,CAAa,EAElBf,CAAM,EAGV,GAAI,SAAUS,EACZ,OAAOpC,GAAgB,OAAA,OAAA,CAEnB,KAAMoC,EAAO,IAAI,EACdM,CAAa,EAElBf,CAAM,EAGV,QAAMF,EAAA,eACJ,IAAI,MAAM,uFAAuF,EACjGA,EAAA,UAAU,+BAA+B,CAE7C,CAAC,CAAC,EAGN,MAAM,IAAI,MAAMN,GAA8B,CAAE,CAClD,CAAC,EASD,SAAsBjB,GAAYwB,EAA8C,0CAG9E,GAFAjB,GAAgCiB,CAAO,EAEnC,SAAUA,EAAS,CACrB,GAAM,CAAE,KAAAiB,CAAI,EAAKjB,EAEjB,GAAI,OAAO,SAASiB,CAAI,EAAG,OAAOA,EAGlC,GAAI,OAAOA,GAAS,SAElB,GAAI,CAEF,SADmBpB,GAAA,cAAaoB,CAAI,CAEtC,MAAe,CACb,QAAMlB,EAAA,eACJ,IAAI,MACF,mCAAmCkB,CAAI,8EAA8E,EAEvHlB,EAAA,UAAU,+BAA+B,CAE7C,CAIF,IAAMmB,EAAO,MAAMxC,GAAoBuC,CAAgB,EACvD,GAAIC,EAAM,OAAOA,CACnB,CACA,GAAI,YAAalB,EAAS,OAAO,OAAO,KAAKA,EAAQ,OAAO,EAG5D,QAAMD,EAAA,eACJ,IAAI,MAAM,2EAA2E,EACrFA,EAAA,UAAU,2BAA2B,CAEzC,CAAC,EAED,SAAgBtB,GAAkByC,EAAY,CAC5C,GAAIA,EACF,OAAO,OAAO,WAAWA,EAAM,MAAM,EAEvC,QAAMnB,EAAA,eAAc,IAAI,MAAMZ,GAAqB,CAAE,EAAGY,EAAA,UAAU,2BAA2B,CAC/F,CAEA,SAAsBrB,GAAoByC,EAAkB,0CAC1D,IAAMC,EAAuB,CAAA,EAE7B,OAAO,IAAI,QAAQ,CAACC,EAASC,IAAU,CACrCH,EAAS,GAAG,WAAY,IAAK,CAC3B,IAAII,EAAQJ,EAAS,KAAI,EACzB,KAAOI,IAAU,MACfH,EAAO,KAAKG,CAAK,EACjBA,EAAQJ,EAAS,KAAI,CAEzB,CAAC,EACDA,EAAS,GAAG,MAAO,IAAK,CACtB,GAAIC,EAAO,OAAS,EAAG,CACrB,IAAMI,EAAU,OAAO,OAAOJ,CAAM,EACpCC,EAAQG,CAAO,CACjB,MACEF,EAAO,MAAM,0BAA0B,CAAC,CAE5C,CAAC,CACH,CAAC,CACH,CAAC,EAWD,SAAgB3C,GACd8C,EAA8B,CAE9B,IAAMC,EAAmE,CAAA,EACzE,QAAWhB,KAAUe,EAAa,CAChC,GAAM,CAAE,OAAAd,EAAQ,WAAAC,EAAY,UAAAG,EAAW,gBAAAD,EAAiB,QAAAa,EAAS,MAAAC,CAAK,EAAKlB,EAC3E,GAAIiB,EAAS,CACX,IAAME,EAAgB,MAAMjB,CAAU,MAAMG,CAAS,MAAMD,CAAe,MAAM,KAAK,UAAUH,CAAM,CAAC,GAEtG,GAAK,OAAO,UAAU,eAAe,KAAKe,EAAYG,CAAa,EAqBjEH,EAAWG,CAAa,EAAE,MAAM,KAAK,CACnC,GAAIF,EACJ,MAAAC,EACD,MAxBmE,CAOpE,GANAF,EAAWG,CAAa,EAAI,CAC1B,MAAO,CAAC,CAAE,GAAIF,EAAS,MAAAC,CAAK,CAAE,EAC9B,WAAAhB,EACA,OAAAD,EACA,gBAAAG,GAEEC,GAAaH,EAAY,CAC3B,IAAMkB,EAA+D,CACnE,WAAAlB,EACA,UAAAG,GAEFW,EAAWG,CAAa,EAAC,OAAA,OAAA,OAAA,OAAA,CAAA,EACpBH,EAAWG,CAAa,CAAC,EACzBC,CAA6B,CAEpC,CACI,UAAWpB,IACbgB,EAAWG,CAAa,EAAE,MAAQnB,EAAO,MAE7C,CAMF,KACE,OAAM,IAAI,MAAMxB,GAAuB,CAAE,CAE7C,CACA,OAAOwC,CACT,CASA,SAAgB9C,GAA4BmD,EAAgB9B,EAAc,CAExE,IAAM+B,EADgB,CAAC,cAAc,EACA,SAASD,CAAM,EAChDA,IAAW,gBAAgB9B,EAAO,KAAKV,GAAyBwC,CAAM,CAAC,EACvEC,GAAgB/B,EAAO,KAAKT,GAA8B,CAAE,CAClE,CAOA,SAAgBX,GAAemB,EAAgDC,EAAc,CACvFD,EAAQ,UAAUC,EAAO,KAAKP,GAAoB,CAAE,CAC1D,CASA,SAAgBZ,GAAmBkB,EAA8C,CAE/E,IADiBA,EAAQ,SAAWA,EAAQ,SAAS,MAAM,GAAG,EAAI,CAAA,GACrD,OAAS,EACpB,QAAMD,EAAA,eAAc,IAAI,MAAMJ,GAA6B,CAAE,EAAGI,EAAA,UAAU,+BAA+B,CAE7G,CAMA,SAAgBhB,GAAgCiB,EAA8C,CAC5F,IAAMiC,EAAU,SAAUjC,EACpBkC,EAAa,YAAalC,EAEhC,GAAI,EAAEiC,GAAWC,IAAgBD,GAAWC,EAC1C,QAAMnC,EAAA,eACJ,IAAI,MAAM,0FAA0F,EACpGA,EAAA,UAAU,+BAA+B,EAG7C,GAAI,SAAUC,EAAS,CACrB,GAAM,CAAE,KAAAiB,CAAI,EAAKjB,EACjB,GAAIiB,GAAQ,EAAE,OAAOA,GAAS,UAAY,OAAO,SAASA,CAAI,GAAKA,aAAgBnB,GAAA,UACjF,QAAMC,EAAA,eACJ,IAAI,MAAM,sDAAsD,EAChEA,EAAA,UAAU,+BAA+B,CAG/C,CACA,GAAI,YAAaC,GAAWA,EAAQ,SAAW,OAAOA,EAAQ,SAAY,SACxE,QAAMD,EAAA,eAAc,IAAI,MAAM,0BAA0B,EAAGA,EAAA,UAAU,+BAA+B,CAExG,CAOA,SAAgBf,GACdgB,EACAC,EAAc,OAGd,IAAMkC,EAAmB,SAAQ7B,EAAAN,EAAQ,YAAQ,MAAAM,IAAA,OAAAA,EAAI,KAAgB,GAC/D,CAAE,SAAA8B,CAAQ,EAAKpC,EACrB,OAAKoC,GAKDA,EAAS,MAAM,GAAG,EAAE,OAAS,GAE/BnC,EAAO,KAAKX,GAA6B8C,CAAQ,CAAC,EAE7CA,IAPLnC,EAAO,KAAKZ,GAA2B,CAAE,EAClC8C,EAOX,CAOA,SAAgBlD,GAAqBe,EAAgDC,EAAc,CAC7FD,EAAQ,UACVC,EAAO,KAAKb,GAA0B,CAAE,CAE5C,CAIA,SAAgBF,IAAuB,CACrC,MAAO,qDACT,CAEA,SAAgBC,IAAqB,CACnC,MAAO,sDACT,CAEA,SAAgBC,IAA0B,CACxC,MACE;gKAIJ,CAEA,SAAgBC,IAA2B,CACzC,MACE;4NAIJ,CAEA,SAAgBC,GAA6B8C,EAAgB,CAC3D,MAAO,sBAAsBA,CAAQ,6GACvC,CAEA,SAAgB7C,GAAyBwC,EAAc,CACrD,MAAO,GAAGA,CAAM,kEAClB,CAEA,SAAgBvC,IAA8B,CAC5C,MACE,2HAGJ,CAEA,SAAgBC,IAA8B,CAC5C,MAAO,mDACT,CAEA,SAAgBC,IAAoB,CAClC,MACE,wMAGJ,CAEA,SAAgBC,IAA6B,CAC3C,MAAO,oHACT,CAEA,SAAgBC,IAAiC,CAC/C,MACE,4LAGJ,iFC7aAyC,GAAA,QAAAC,GAAA,SAAwBA,GAAMC,EAAU,CACtC,OAAO,IAAI,QAASC,GAAW,CAC7B,WAAWA,EAASD,CAAE,CACxB,CAAC,CACH,ICTA,IAAAE,GAAAC,EAAA,CAAAC,GAAAC,KAAA,cAEA,IAAIC,GAAM,OAAO,UAAU,eACvBC,GAAS,IASb,SAASC,IAAS,CAAC,CASf,OAAO,SACTA,GAAO,UAAY,OAAO,OAAO,IAAI,EAMhC,IAAIA,GAAO,EAAE,YAAWD,GAAS,KAYxC,SAASE,GAAGC,EAAIC,EAASC,EAAM,CAC7B,KAAK,GAAKF,EACV,KAAK,QAAUC,EACf,KAAK,KAAOC,GAAQ,EACtB,CAaA,SAASC,GAAYC,EAASC,EAAOL,EAAIC,EAASC,EAAM,CACtD,GAAI,OAAOF,GAAO,WAChB,MAAM,IAAI,UAAU,iCAAiC,EAGvD,IAAIM,EAAW,IAAIP,GAAGC,EAAIC,GAAWG,EAASF,CAAI,EAC9CK,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,OAAKD,EAAQ,QAAQG,CAAG,EACdH,EAAQ,QAAQG,CAAG,EAAE,GAC1BH,EAAQ,QAAQG,CAAG,EAAI,CAACH,EAAQ,QAAQG,CAAG,EAAGD,CAAQ,EADxBF,EAAQ,QAAQG,CAAG,EAAE,KAAKD,CAAQ,GAD1CF,EAAQ,QAAQG,CAAG,EAAID,EAAUF,EAAQ,gBAI7DA,CACT,CASA,SAASI,GAAWJ,EAASG,EAAK,CAC5B,EAAEH,EAAQ,eAAiB,EAAGA,EAAQ,QAAU,IAAIN,GACnD,OAAOM,EAAQ,QAAQG,CAAG,CACjC,CASA,SAASE,IAAe,CACtB,KAAK,QAAU,IAAIX,GACnB,KAAK,aAAe,CACtB,CASAW,GAAa,UAAU,WAAa,UAAsB,CACxD,IAAIC,EAAQ,CAAC,EACTC,EACAC,EAEJ,GAAI,KAAK,eAAiB,EAAG,OAAOF,EAEpC,IAAKE,KAASD,EAAS,KAAK,QACtBf,GAAI,KAAKe,EAAQC,CAAI,GAAGF,EAAM,KAAKb,GAASe,EAAK,MAAM,CAAC,EAAIA,CAAI,EAGtE,OAAI,OAAO,sBACFF,EAAM,OAAO,OAAO,sBAAsBC,CAAM,CAAC,EAGnDD,CACT,EASAD,GAAa,UAAU,UAAY,SAAmBJ,EAAO,CAC3D,IAAIE,EAAMV,GAASA,GAASQ,EAAQA,EAChCQ,EAAW,KAAK,QAAQN,CAAG,EAE/B,GAAI,CAACM,EAAU,MAAO,CAAC,EACvB,GAAIA,EAAS,GAAI,MAAO,CAACA,EAAS,EAAE,EAEpC,QAASC,EAAI,EAAGC,EAAIF,EAAS,OAAQG,EAAK,IAAI,MAAMD,CAAC,EAAGD,EAAIC,EAAGD,IAC7DE,EAAGF,CAAC,EAAID,EAASC,CAAC,EAAE,GAGtB,OAAOE,CACT,EASAP,GAAa,UAAU,cAAgB,SAAuBJ,EAAO,CACnE,IAAIE,EAAMV,GAASA,GAASQ,EAAQA,EAChCY,EAAY,KAAK,QAAQV,CAAG,EAEhC,OAAKU,EACDA,EAAU,GAAW,EAClBA,EAAU,OAFM,CAGzB,EASAR,GAAa,UAAU,KAAO,SAAcJ,EAAOa,EAAIC,EAAIC,EAAIC,EAAIC,EAAI,CACrE,IAAIf,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,GAAI,CAAC,KAAK,QAAQE,CAAG,EAAG,MAAO,GAE/B,IAAIU,EAAY,KAAK,QAAQV,CAAG,EAC5BgB,EAAM,UAAU,OAChBC,EACAV,EAEJ,GAAIG,EAAU,GAAI,CAGhB,OAFIA,EAAU,MAAM,KAAK,eAAeZ,EAAOY,EAAU,GAAI,OAAW,EAAI,EAEpEM,EAAK,CACX,IAAK,GAAG,OAAON,EAAU,GAAG,KAAKA,EAAU,OAAO,EAAG,GACrD,IAAK,GAAG,OAAOA,EAAU,GAAG,KAAKA,EAAU,QAASC,CAAE,EAAG,GACzD,IAAK,GAAG,OAAOD,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,CAAE,EAAG,GAC7D,IAAK,GAAG,OAAOF,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,CAAE,EAAG,GACjE,IAAK,GAAG,OAAOH,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,GACrE,IAAK,GAAG,OAAOJ,EAAU,GAAG,KAAKA,EAAU,QAASC,EAAIC,EAAIC,EAAIC,EAAIC,CAAE,EAAG,EAC3E,CAEA,IAAKR,EAAI,EAAGU,EAAO,IAAI,MAAMD,EAAK,CAAC,EAAGT,EAAIS,EAAKT,IAC7CU,EAAKV,EAAI,CAAC,EAAI,UAAUA,CAAC,EAG3BG,EAAU,GAAG,MAAMA,EAAU,QAASO,CAAI,CAC5C,KAAO,CACL,IAAIC,EAASR,EAAU,OACnBS,EAEJ,IAAKZ,EAAI,EAAGA,EAAIW,EAAQX,IAGtB,OAFIG,EAAUH,CAAC,EAAE,MAAM,KAAK,eAAeT,EAAOY,EAAUH,CAAC,EAAE,GAAI,OAAW,EAAI,EAE1ES,EAAK,CACX,IAAK,GAAGN,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,OAAO,EAAG,MACpD,IAAK,GAAGG,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,CAAE,EAAG,MACxD,IAAK,GAAGD,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,EAAIC,CAAE,EAAG,MAC5D,IAAK,GAAGF,EAAUH,CAAC,EAAE,GAAG,KAAKG,EAAUH,CAAC,EAAE,QAASI,EAAIC,EAAIC,CAAE,EAAG,MAChE,QACE,GAAI,CAACI,EAAM,IAAKE,EAAI,EAAGF,EAAO,IAAI,MAAMD,EAAK,CAAC,EAAGG,EAAIH,EAAKG,IACxDF,EAAKE,EAAI,CAAC,EAAI,UAAUA,CAAC,EAG3BT,EAAUH,CAAC,EAAE,GAAG,MAAMG,EAAUH,CAAC,EAAE,QAASU,CAAI,CACpD,CAEJ,CAEA,MAAO,EACT,EAWAf,GAAa,UAAU,GAAK,SAAYJ,EAAOL,EAAIC,EAAS,CAC1D,OAAOE,GAAY,KAAME,EAAOL,EAAIC,EAAS,EAAK,CACpD,EAWAQ,GAAa,UAAU,KAAO,SAAcJ,EAAOL,EAAIC,EAAS,CAC9D,OAAOE,GAAY,KAAME,EAAOL,EAAIC,EAAS,EAAI,CACnD,EAYAQ,GAAa,UAAU,eAAiB,SAAwBJ,EAAOL,EAAIC,EAASC,EAAM,CACxF,IAAIK,EAAMV,GAASA,GAASQ,EAAQA,EAEpC,GAAI,CAAC,KAAK,QAAQE,CAAG,EAAG,OAAO,KAC/B,GAAI,CAACP,EACH,OAAAQ,GAAW,KAAMD,CAAG,EACb,KAGT,IAAIU,EAAY,KAAK,QAAQV,CAAG,EAEhC,GAAIU,EAAU,GAEVA,EAAU,KAAOjB,IAChB,CAACE,GAAQe,EAAU,QACnB,CAAChB,GAAWgB,EAAU,UAAYhB,IAEnCO,GAAW,KAAMD,CAAG,MAEjB,CACL,QAASO,EAAI,EAAGH,EAAS,CAAC,EAAGc,EAASR,EAAU,OAAQH,EAAIW,EAAQX,KAEhEG,EAAUH,CAAC,EAAE,KAAOd,GACnBE,GAAQ,CAACe,EAAUH,CAAC,EAAE,MACtBb,GAAWgB,EAAUH,CAAC,EAAE,UAAYb,IAErCU,EAAO,KAAKM,EAAUH,CAAC,CAAC,EAOxBH,EAAO,OAAQ,KAAK,QAAQJ,CAAG,EAAII,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,EACpEH,GAAW,KAAMD,CAAG,CAC3B,CAEA,OAAO,IACT,EASAE,GAAa,UAAU,mBAAqB,SAA4BJ,EAAO,CAC7E,IAAIE,EAEJ,OAAIF,GACFE,EAAMV,GAASA,GAASQ,EAAQA,EAC5B,KAAK,QAAQE,CAAG,GAAGC,GAAW,KAAMD,CAAG,IAE3C,KAAK,QAAU,IAAIT,GACnB,KAAK,aAAe,GAGf,IACT,EAKAW,GAAa,UAAU,IAAMA,GAAa,UAAU,eACpDA,GAAa,UAAU,YAAcA,GAAa,UAAU,GAK5DA,GAAa,SAAWZ,GAKxBY,GAAa,aAAeA,GAKR,OAAOd,GAAvB,MACFA,GAAO,QAAUc,M,+EC9UnB,IAAAkB,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,I,+ECD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,I,+ECD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,I,+ECD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ICD5D,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ggBCwF5DC,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,EACAD,EAAA,KAAAC,CAAA,IClHA,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,yHC0E5D,IAAYC,IAAZ,SAAYA,EAAU,CACpBA,EAAA,KAAA,uBACAA,EAAA,KAAA,uBACAA,EAAA,KAAA,uBACAA,EAAA,SAAA,2BACAA,EAAA,YAAA,8BACF,GANYA,KAAUC,GAAA,WAAVD,GAAU,CAAA,EAAA,EAsNtB,IAAYE,IAAZ,SAAYA,EAAe,CACzBA,EAAA,QAAA,UACAA,EAAA,OAAA,SACAA,EAAA,MAAA,QACAA,EAAA,KAAA,oBACAA,EAAA,UAAA,yBACAA,EAAA,MAAA,qBACAA,EAAA,UAAA,0BACAA,EAAA,KAAA,oBACAA,EAAA,UAAA,0BACAA,EAAA,QAAA,UACAA,EAAA,KAAA,oBACAA,EAAA,MAAA,oBACF,GAbYA,KAAeD,GAAA,gBAAfC,GAAe,CAAA,EAAA,ICjS3B,IAAAC,GAAAC,EAAAC,IAAA,cACA,OAAO,eAAeA,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,ugBCD5DC,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,EACAD,GAAA,KAAAC,EAAA,yhBCTA,IAAAC,GAAA,KAsiBAC,GAAA,KAiBA,SAASC,EACPC,EACAC,EAAc,CAGd,OADkBD,EAAK,QAAQ,KAAKA,EAAMC,CAAM,CAElD,CAKA,SAASC,EACPF,EACAC,EAAc,CAGd,OADkBD,EAAK,QAAQ,KAAKA,EAAMC,CAAM,CAElD,CAEA,SAASE,GACPH,EAAa,CAEb,OAAOA,EAAK,cAAc,KAAKA,CAAI,CACrC,CAMA,IAAsBI,GAAtB,cAAsCP,GAAA,YAA4B,CAChE,aAAA,CAIE,GAHA,MAAK,EAWS,KAAA,MAAQ,CACtB,UAAW,CAKT,QAASE,EACP,KACA,yBAAyB,GAG7B,KAAM,CACJ,WAAY,CAKV,KAAMG,EACJ,KACA,4BAA4B,GAOhC,QAASH,EAAiE,KAAM,oBAAoB,EACpG,SAAU,CAKR,KAAMA,EACJ,KACA,0BAA0B,GAO9B,gBAAiBA,EACf,KACA,4BAA4B,EAE9B,OAAQ,CAKN,OAAQA,EACN,KACA,0BAA0B,EAM5B,IAAKA,EAAqE,KAAM,uBAAuB,GAEzG,SAAU,CAKR,OAAQA,EACN,KACA,4BAA4B,EAM9B,KAAMA,EACJ,KACA,0BAA0B,GAO9B,SAAUA,EAAmE,KAAM,qBAAqB,EACxG,WAAY,CAKV,KAAMA,EACJ,KACA,4BAA4B,GAOhC,UAAWA,EAAqE,KAAM,sBAAsB,GAE9G,KAAM,CACJ,OAAQ,CAKN,eAAgBA,EACd,KACA,kCAAkC,EAMpC,YAAaA,EACX,KACA,+BAA+B,EAMjC,eAAgBA,EACd,KACA,kCAAkC,IAIxC,SAAU,CAKR,OAAQA,EAAuE,KAAM,uBAAuB,EAK5G,OAAQA,EAAuE,KAAM,uBAAuB,EAK5G,KAAMG,EACJ,KACA,qBAAqB,EAMvB,OAAQH,EAAuE,KAAM,uBAAuB,GAE9G,cAAe,CAKb,QAASA,EACP,KACA,6BAA6B,EAM/B,YAAaA,EACX,KACA,iCAAiC,EAMnC,WAAYA,EACV,KACA,gCAAgC,EAMlC,SAAUA,EACR,KACA,8BAA8B,EAMhC,iBAAkBA,EAGhB,KAAM,sCAAsC,EAK9C,gBAAiBA,EAGf,KAAM,qCAAqC,EAK7C,OAAQA,EACN,KACA,4BAA4B,EAM9B,OAAQA,EACN,KACA,4BAA4B,EAM9B,iBAAkBA,EAGhB,KAAM,sCAAsC,EAC9C,IAAK,CAMH,iCAAkCG,EAGhC,KAAM,0DAA0D,GAMpE,qBAAsBH,EAGpB,KAAM,0CAA0C,EAKlD,mBAAoBA,EAGlB,KAAM,wCAAwC,EAMhD,SAAUA,EACR,KACA,8BAA8B,EAMhC,OAAQA,EACN,KACA,4BAA4B,EAM9B,OAAQA,EACN,KACA,4BAA4B,EAM9B,sBAAuBA,EAGrB,KAAM,2CAA2C,EAKnD,OAAQA,EACN,KACA,4BAA4B,EAE9B,eAAgB,CAKd,SAAUA,EAGR,KAAM,6CAA6C,EAKrD,WAAYA,EAGV,KAAM,+CAA+C,EAKvD,YAAaA,EAGX,KAAM,gDAAgD,GAM1D,OAAQG,EACN,KACA,4BAA4B,EAM9B,qBAAsBH,EAGpB,KAAM,0CAA0C,EAKlD,mBAAoBA,EAGlB,KAAM,wCAAwC,EAKhD,SAAUA,EACR,KACA,8BAA8B,EAMhC,UAAWA,EACT,KACA,+BAA+B,GAGnC,MAAO,CAKL,IAAKA,EAA2D,KAAM,iBAAiB,EAKvF,SAAUA,EAAqE,KAAM,sBAAsB,EAK3G,KAAMG,EAAiF,KAAM,kBAAkB,EAK/G,OAAQH,EAAiE,KAAM,oBAAoB,EAKnG,OAAQA,EAAiE,KAAM,oBAAoB,GAErG,UAAW,CAKT,KAAMA,EAAqE,KAAM,sBAAsB,EACvG,YAAa,CAMX,OAAQA,EACN,KACA,oCAAoC,EAOtC,IAAKA,EACH,KACA,iCAAiC,IAIvC,eAAgB,CAKd,QAASA,EACP,KACA,8BAA8B,EAEhC,SAAU,CAKR,KAAMA,EACJ,KACA,oCAAoC,GAGxC,OAAQ,CAKN,KAAMA,EACJ,KACA,kCAAkC,GAOtC,KAAMA,EACJ,KACA,2BAA2B,EAM7B,KAAMA,EACJ,KACA,2BAA2B,GAG/B,MAAO,CAKL,eAAgBA,EACd,KACA,4BAA4B,EAO9B,gBAAiBG,EAGf,KAAM,6BAA6B,EAKrC,kBAAmBH,EACjB,KACA,+BAA+B,GAGnC,MAAO,CACL,OAAQ,CAKN,KAAMA,EAAyE,KAAM,yBAAyB,GAMhH,OAAQA,EAAiE,KAAM,oBAAoB,EAKnG,KAAMG,EAAiF,KAAM,kBAAkB,EAC/G,OAAQ,CAKN,KAAMH,EAAyE,KAAM,yBAAyB,GAEhH,SAAU,CAKR,KAAMA,EACJ,KACA,2BAA2B,EAM7B,mBAAoBA,EAGlB,KAAM,yCAAyC,EAKjD,eAAgBA,EAGd,KAAM,qCAAqC,EAK7C,mBAAoBA,EAGlB,KAAM,yCAAyC,EAKjD,QAASA,EACP,KACA,8BAA8B,EAMhC,QAASA,EACP,KACA,8BAA8B,IAIpC,WAAY,CAKV,YAAaA,EACX,KACA,8BAA8B,EAMhC,SAAUA,EACR,KACA,2BAA2B,EAM7B,aAAcA,EACZ,KACA,+BAA+B,EAMjC,eAAgBA,EACd,KACA,iCAAiC,GAGrC,MAAO,CAKL,OAAQA,EAAiE,KAAM,oBAAoB,EAKnG,OAAQA,EAAiE,KAAM,oBAAoB,EAKnG,KAAMG,EAAiF,KAAM,kBAAkB,EAK/G,OAAQH,EAAiE,KAAM,oBAAoB,EACnG,QAAS,CAMP,cAAeA,EACb,KACA,mCAAmC,EAOrC,YAAaA,EACX,KACA,iCAAiC,EAMnC,WAAYA,EACV,KACA,gCAAgC,EAMlC,KAAMG,EACJ,KACA,0BAA0B,EAM5B,MAAOH,EACL,KACA,2BAA2B,EAM7B,UAAWA,EACT,KACA,+BAA+B,EAOjC,YAAaA,EACX,KACA,iCAAiC,GAOrC,SAAUA,EAAqE,KAAM,sBAAsB,EAK3G,cAAeA,EACb,KACA,2BAA2B,EAM7B,SAAUA,EAAqE,KAAM,sBAAsB,EAK3G,WAAYA,EACV,KACA,wBAAwB,EAE1B,oBAAqB,CAMnB,OAAQA,EACN,KACA,wCAAwC,IAI9C,UAAW,CACT,cAAe,CAKb,IAAKA,EACH,KACA,mCAAmC,EAMrC,OAAQA,EACN,KACA,sCAAsC,GAG1C,YAAa,CAKX,OAAQA,EACN,KACA,oCAAoC,GAOxC,OAAQG,EACN,KACA,wBAAwB,EAM1B,UAAWH,EACT,KACA,2BAA2B,IAKjB,KAAA,IAAM,CAKpB,KAAMG,EAAmE,KAAM,UAAU,GAG3E,KAAA,UAAY,CAC1B,QAAS,CAKP,UAAWH,EACT,KACA,6BAA6B,EAM/B,oBAAqBA,EAGnB,KAAM,uCAAuC,EAK/C,SAAUA,EACR,KACA,4BAA4B,IAKlB,KAAA,KAAO,CACrB,YAAa,CAMX,KAAMG,EACJ,KACA,uBAAuB,GAG3B,MAAO,CACL,eAAgB,CAMd,KAAMH,EACJ,KACA,gCAAgC,IAItC,SAAU,CAKR,OAAQA,EAAqE,KAAM,sBAAsB,EAKzG,OAAQA,EAAqE,KAAM,sBAAsB,EAKzG,OAAQA,EAAqE,KAAM,sBAAsB,EAKzG,OAAQA,EAAqE,KAAM,sBAAsB,EAKzG,SAAUA,EACR,KACA,wBAAwB,GAO5B,UAAWA,EAA2D,KAAM,gBAAgB,GAG9E,KAAA,KAAO,CAKrB,OAAQG,EAAyE,KAAM,aAAa,EACpG,MAAO,CAKL,KAAMA,EAA+E,KAAM,iBAAiB,GAE9G,KAAMA,EAAqE,KAAM,WAAW,GAG9E,KAAA,UAAY,CAK1B,IAAKH,EAAyD,KAAM,eAAe,EAKnF,KAAMA,EAA2D,KAAM,gBAAgB,EAKvF,KAAMA,EAA2D,KAAM,gBAAgB,EAKvF,OAAQA,EAA+D,KAAM,kBAAkB,GAGjF,KAAA,KAAO,CAKrB,KAAMG,EAAqE,KAAM,WAAW,GAG9E,KAAA,MAAQ,CAKtB,IAAKH,EAAiD,KAAM,WAAW,EAKvE,IAAKA,EAAiD,KAAM,WAAW,EAKvE,KAAMA,EAAmD,KAAM,YAAY,EAK3E,OAAQA,EAAuD,KAAM,cAAc,EACnF,aAAc,CAKZ,IAAKA,EAAyE,KAAM,wBAAwB,EAC5G,OAAQA,EACN,KACA,2BAA2B,IAKjB,KAAA,SAAW,CACzB,OAAQ,CAKN,OAAQA,EAAyE,KAAM,wBAAwB,EAK/G,IAAKA,EAAmE,KAAM,qBAAqB,GAMrG,OAAQG,EAAiF,KAAM,iBAAiB,EAKhH,OAAQH,EAA6D,KAAM,iBAAiB,EAK5F,KAAMA,EAAyD,KAAM,eAAe,EACpF,SAAU,CAKR,OAAQA,EACN,KACA,0BAA0B,IAKhB,KAAA,KAAO,CAKrB,aAAcA,EAAiE,KAAM,mBAAmB,EAKxG,OAAQA,EAAqD,KAAM,aAAa,EAKhF,uBAAwBA,EACtB,KACA,6BAA6B,EAM/B,aAAcA,EAAiE,KAAM,mBAAmB,EAKxG,UAAWA,EAA2D,KAAM,gBAAgB,EAK5F,cAAeA,EAAmE,KAAM,oBAAoB,EAK5G,YAAaA,EAA+D,KAAM,kBAAkB,EAKpG,gBAAiBA,EACf,KACA,sBAAsB,EAExB,kBAAmB,CAKjB,KAAMG,EACJ,KACA,6BAA6B,GAOjC,YAAaH,EAA+D,KAAM,kBAAkB,EAKpG,WAAYA,EAA6D,KAAM,iBAAiB,EAKhG,OAAQA,EAAqD,KAAM,aAAa,EAKhF,OAAQA,EAAqD,KAAM,aAAa,GAGlE,KAAA,cAAgB,CAK9B,mBAAoBA,EAClB,KACA,kCAAkC,EAMpC,oBAAqBA,EAGnB,KAAM,mCAAmC,EAK3C,QAASA,EAAyE,KAAM,uBAAuB,EAC/G,SAAU,CAKR,OAAQA,EACN,KACA,+BAA+B,GAOnC,MAAOA,EAAqE,KAAM,qBAAqB,EAKvG,OAAQA,EAAuE,KAAM,sBAAsB,EAK3G,oBAAqBA,EAGnB,KAAM,mCAAmC,EAC3C,0BAA2B,CAMzB,IAAKA,EAGH,KAAM,6CAA6C,GAMvD,QAASA,EAAyE,KAAM,uBAAuB,EAK/G,KAAMA,EAAmE,KAAM,oBAAoB,EAKnG,OAAQA,EAAuE,KAAM,sBAAsB,EAK3G,aAAcA,EACZ,KACA,4BAA4B,EAM9B,KAAMA,EAAmE,KAAM,oBAAoB,EAKnG,KAAMA,EAAmE,KAAM,oBAAoB,EAKnG,MAAOA,EAAqE,KAAM,qBAAqB,EAKvG,KAAMG,EACJ,KACA,oBAAoB,EAOtB,mBAAoBA,EAGlB,KAAM,kCAAkC,EAK1C,KAAMH,EAAmE,KAAM,oBAAoB,EAKnG,QAASA,EAAyE,KAAM,uBAAuB,EAK/G,KAAMA,EAAmE,KAAM,oBAAoB,EAKnG,OAAQA,EAAuE,KAAM,sBAAsB,EAK3G,QAASA,EAAyE,KAAM,uBAAuB,EAC/G,oBAAqB,CAKnB,QAASA,EAGP,KAAM,2CAA2C,EAKnD,KAAMA,EACJ,KACA,wCAAwC,EAM1C,KAAMG,EAGJ,KAAM,wCAAwC,GAMlD,WAAYH,EACV,KACA,0BAA0B,EAM5B,SAAUA,EACR,KACA,wBAAwB,EAM1B,UAAWA,EACT,KACA,yBAAyB,GAIb,KAAA,OAAS,CAKvB,KAAMA,EAAqD,KAAM,aAAa,GAGhE,KAAA,IAAM,CAKpB,OAAQG,EAAuE,KAAM,YAAY,EAKjG,UAAWA,EAA6E,KAAM,eAAe,EAK7G,KAAMA,EAAmE,KAAM,UAAU,EAKzF,UAAWH,EAAyD,KAAM,eAAe,EAKzF,SAAUA,EAAuD,KAAM,cAAc,GAGvE,KAAA,MAAQ,CAKtB,KAAMG,EAAuE,KAAM,YAAY,GAGjF,KAAA,OAAS,CAKvB,eAAgBH,EACd,KACA,uBAAuB,GAIX,KAAA,MAAQ,CAKtB,uBAAwBA,EACtB,KACA,8BAA8B,EAMhC,OAAQA,EAAuD,KAAM,cAAc,EAKnF,qBAAsBA,EACpB,KACA,4BAA4B,EAM9B,KAAMA,EAAmD,KAAM,YAAY,EAK3E,KAAMA,EAAmD,KAAM,YAAY,EAK3E,gBAAiBA,EACf,KACA,uBAAuB,EAMzB,gBAAiBA,EACf,KACA,uBAAuB,EAOzB,OAAQA,EAAuD,KAAM,cAAc,EAcnF,SAAUI,GAA4D,IAAI,EAC1E,SAAU,CAKR,OAAQJ,EAAuE,KAAM,uBAAuB,GAE9G,OAAQ,CAKN,IAAKA,EAA6D,KAAM,kBAAkB,EAK1F,KAAMA,EAA+D,KAAM,mBAAmB,EAK9F,KAAMA,EAA+D,KAAM,mBAAmB,EAK9F,OAAQA,EAAmE,KAAM,qBAAqB,EAKtG,MAAOA,EAAiE,KAAM,oBAAoB,EAKlG,OAAQA,EAAmE,KAAM,qBAAqB,IAI1F,KAAA,UAAY,CAK1B,cAAeA,EACb,KACA,yBAAyB,EAM3B,gBAAiBA,EACf,KACA,2BAA2B,GAIf,KAAA,UAAY,CAK1B,SAAUA,EAAmE,KAAM,oBAAoB,GAGzF,KAAA,MAAQ,CAMtB,OAAQA,EAAuD,KAAM,cAAc,EACnF,GAAI,CAKF,OAAQA,EAA2D,KAAM,iBAAiB,EAK1F,SAAUA,EAA+D,KAAM,mBAAmB,IAItF,KAAA,OAAS,CACvB,QAAS,CAKP,MAAOA,EAAqE,KAAM,sBAAsB,EAKxG,SAAUG,EACR,KACA,yBAAyB,IAKf,KAAA,KAAO,CAKrB,IAAKH,EAA+C,KAAM,UAAU,EAKpE,KAAMA,EAAiD,KAAM,WAAW,EAKxE,OAAQA,EAAqD,KAAM,aAAa,GAGlE,KAAA,UAAY,CAK1B,IAAKA,EAAyD,KAAM,eAAe,EAKnF,IAAKA,EAAyD,KAAM,eAAe,EAKnF,KAAMG,EAA+E,KAAM,gBAAgB,EAK3G,OAAQH,EAA+D,KAAM,kBAAkB,GAKjF,KAAA,UAAY,CAK1B,IAAKA,EAAyD,KAAM,eAAe,EAKnF,SAAUA,EAAmE,KAAM,oBAAoB,EAKvG,OAAQA,EAA+D,KAAM,kBAAkB,EAK/F,KAAMA,EAA2D,KAAM,gBAAgB,EAKvF,KAAMG,EAA+E,KAAM,gBAAgB,GAG7F,KAAA,IAAM,CAKpB,QAASA,EAAyE,KAAM,aAAa,EAMrG,MAAOA,EAAqE,KAAM,WAAW,GAG/E,KAAA,OAAS,CAKvB,IAAKH,EAAmD,KAAM,YAAY,EAK1E,MAAOA,EAAuD,KAAM,cAAc,EAKlF,SAAUA,EAA6D,KAAM,iBAAiB,GAGhF,KAAA,WAAa,CAC3B,OAAQ,CAKN,OAAQA,EACN,KACA,0BAA0B,EAM5B,IAAKA,EAAuE,KAAM,uBAAuB,GAM3G,OAAQA,EAAiE,KAAM,mBAAmB,EAClG,SAAU,CAKR,IAAKA,EAA2E,KAAM,yBAAyB,EAK/G,MAAOA,EACL,KACA,2BAA2B,GAG/B,MAAO,CAKL,OAAQA,EACN,KACA,yBAAyB,EAM3B,OAAQA,EACN,KACA,yBAAyB,EAM3B,eAAgBA,EACd,KACA,iCAAiC,EAMnC,KAAMA,EAAuE,KAAM,uBAAuB,EAK1G,KAAMA,EAAuE,KAAM,uBAAuB,EAK1G,OAAQA,EACN,KACA,yBAAyB,GAO7B,OAAQA,EAAiE,KAAM,mBAAmB,GAGpF,KAAA,KAAO,CAKrB,WAAYG,EACV,KACA,iBAAiB,EAMnB,aAAcA,EACZ,KACA,mBAAmB,EAErB,QAAS,CAKP,KAAMH,EAA+D,KAAM,mBAAmB,GAEhG,cAAe,CAKb,WAAYA,EACV,KACA,+BAA+B,EAMjC,KAAMA,EAA2E,KAAM,yBAAyB,GAMlH,KAAMG,EAAqE,KAAM,WAAW,EAK5F,gBAAiBA,EACf,KACA,sBAAsB,EAExB,YAAa,CAKX,KAAMA,EACJ,KACA,uBAAuB,GAG3B,QAAS,CAKP,IAAKA,EAAiF,KAAM,kBAAkB,IAIlG,KAAA,QAAU,CACxB,OAAQ,CAKN,OAAQH,EAAuE,KAAM,uBAAuB,IAIhG,KAAA,WAAa,CAK3B,OAAQA,EAAiE,KAAM,mBAAmB,EAKlG,QAASA,EAAmE,KAAM,oBAAoB,EAKtG,OAAQA,EAAiE,KAAM,mBAAmB,EAKlG,KAAMG,EAAiF,KAAM,iBAAiB,EAK9G,OAAQH,EAAiE,KAAM,mBAAmB,EAClG,MAAO,CAKL,KAAMA,EAAuE,KAAM,uBAAuB,EAK1G,OAAQA,EACN,KACA,yBAAyB,IAKf,KAAA,MAAQ,CAKtB,cAAeA,EAAqE,KAAM,qBAAqB,EAK/G,YAAaA,EAAiE,KAAM,mBAAmB,EACvG,qBAAsB,CAKpB,OAAQA,EACN,KACA,mCAAmC,GAOvC,YAAaA,EAAiE,KAAM,mBAAmB,EAKvG,SAAUA,EAA2D,KAAM,gBAAgB,EAK3F,KAAMA,EAAmD,KAAM,YAAY,EAK3E,KAAMA,EAAmD,KAAM,YAAY,EAK3E,cAAeA,EAAqE,KAAM,qBAAqB,EAK/G,SAAUA,EAA2D,KAAM,gBAAgB,EAK3F,YAAaA,EAAiE,KAAM,mBAAmB,EACvG,QAAS,CAKP,IAAKA,EAA+D,KAAM,mBAAmB,EAK7F,IAAKA,EAA+D,KAAM,mBAAmB,IAIjF,KAAA,MAAQ,CAKtB,KAAMA,EAAmD,KAAM,YAAY,EAK3E,QAASA,EAAyD,KAAM,eAAe,EAKvF,KAAMA,EAAmD,KAAM,YAAY,EAK3E,OAAQA,EAAuD,KAAM,cAAc,GAUrE,KAAA,MAAQ,CAOtB,IAAKA,EAAuD,KAAM,WAAW,EAO7E,KAAMA,EAAmD,KAAM,YAAY,EAO3E,OAAQA,EAA0D,KAAM,cAAc,GAGxE,KAAA,UAAY,CAC1B,SAAU,CAKR,IAAKA,EAAyE,KAAM,wBAAwB,EAK5G,KAAMA,EAA2E,KAAM,yBAAyB,EAKhH,OAAQA,EACN,KACA,2BAA2B,EAM7B,IAAKA,EAAyE,KAAM,wBAAwB,GAS9G,cAAeA,EACb,KACA,yBAAyB,EAS3B,WAAYA,EAAuE,KAAM,sBAAsB,EAQ/G,WAAYA,EAAuE,KAAM,sBAAsB,GAj8D3G,aAAeD,GAAA,WAAa,EAAE,WAAW,qBAAqBA,GAAA,WAChE,MAAM,IAAI,MAAM,6EAA6E,CAEjG,GARFO,GAAA,QAAAD,GA08DAE,GAAA,KAAAD,EAAA,m+FCp/CAE,EAAA,4BAAAC,GAziCA,IAAAC,GAAA,QAAA,MAAA,EACAC,GAAA,QAAA,aAAA,EAEAC,GAAA,QAAA,MAAA,EACAC,GAAAC,GAAA,QAAA,MAAA,CAAA,EAEAC,GAAAD,GAAA,IAAA,EAOAE,GAAAF,GAAA,IAAA,EACAG,GAAAH,GAAA,IAAA,EACAI,GAAAJ,GAAA,IAAA,EACAK,GAAAL,GAAA,IAAA,EACAM,GAAAC,GAAA,IAAA,EACAC,GAAA,KACAC,GAAA,KAMAC,GAAA,KAMAC,GAAAX,GAAA,IAAA,EACAY,GAAA,KACAC,GAAA,KACAC,GAAA,KACAC,GAAA,KAqBMC,GAA2B,CAC/B,SACA,SACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,SACA,WAEIC,GAAkB,WAClBC,GAAkB,IAClBC,GAA+B,IAAG,GA0D5BC,IAAZ,SAAYA,EAAc,CAExBA,EAAA,aAAA,cACF,GAHYA,KAAc1B,EAAA,eAAd0B,GAAc,CAAA,EAAA,EA4D1B,IAAaC,GAAb,MAAaC,UAAkBR,GAAA,OAAO,CA0EpC,YACES,EACA,CACE,YAAAC,EAAc,yBACd,OAAAC,EAAS,OACT,SAAAC,EAAW,OACX,sBAAAC,EAAwB,IACxB,YAAAC,EAAcb,GAAA,+BACd,MAAAc,EAAQ,OACR,IAAAC,EAAM,OACN,QAAAC,EAAU,EACV,uBAAAC,EAAyB,GACzB,QAAAC,EAAU,CAAA,EACV,OAAAC,EAAS,OACT,kBAAAC,EAAoB,GACpB,mCAAAC,EAAqC,GACrC,mBAAAC,EAAqB,OACrB,QAAAC,EAAU,MAAS,EACC,CAAA,EAAE,CAExB,MAAK,EAEL,KAAK,MAAQf,EACb,KAAK,YAAcC,EACd,KAAK,YAAY,SAAS,GAAG,IAChC,KAAK,aAAe,KAGtB,KAAK,YAAcI,EACnB,KAAK,aAAe,IAAIvB,GAAA,QAAO,CAAE,YAAasB,CAAqB,CAAE,EAErE,KAAK,UAAYG,IAAQ,OAAYA,EAAM,CAAA,EAC3C,KAAK,uBAAyBE,EAC9B,KAAK,OAASE,EACd,KAAK,kBAAoBC,EACzB,KAAK,mCAAqCC,EAGtC,OAAOX,EAAW,KACpB,KAAK,OAASA,EACV,OAAOC,EAAa,KACtB,KAAK,OAAO,MAAM,qEAAqE,GAGzF,KAAK,UAASb,GAAA,WAAUS,EAAU,WAAYI,GAAYb,GAAA,SAAS,KAAMY,CAAM,EAG7E,KAAK,OAAS,CAACQ,EAAQ,gBAAeA,EAAQ,cAAgB,UAAU,KAAK,KAAK,IAEtF,KAAK,MAAQhC,GAAA,QAAM,OAAO,CACxB,QAASqC,EAAWC,GAAuCD,EAAO,OAAA,OAAA,OAAA,OAAA,CAAA,EAAMC,CAAM,EAAA,CAAE,QAAS,MAAS,CAAA,CAAA,EAAM,OACxG,QAAAR,EACA,QAAS,KAAK,YACd,WAAS5B,GAAA,SAAU,EAAK8B,EAAS,OAAA,OAAA,CAAG,gBAAcrB,GAAA,cAAY,CAAE,EAAKqB,CAAO,EAC5E,UAAWJ,EACX,WAAYA,EACZ,eAAgB,IAAM,GACtB,aAAc,EAKd,MAAO,GACR,EAED,KAAK,MAAM,SAAS,QAAQ,KAAK,cAAc,EAAI,OAI/CQ,GACF,KAAK,MAAM,aAAa,QAAQ,IAAIA,EAAoB,IAAI,EAE9D,KAAK,MAAM,aAAa,QAAQ,IAAI,KAAK,qBAAqB,KAAK,IAAI,EAAG,IAAI,EAE9E,KAAK,OAAO,MAAM,aAAa,CACjC,CAOa,QAAOG,EAAA,2CAACC,EAAgBC,EAAmC,CAAA,EAAE,CAOxE,GANA,KAAK,OAAO,MAAM,YAAYD,CAAM,UAAU,EAE9CE,GAAiBF,EAAQ,KAAK,MAAM,EACpCG,GAAwBH,EAAQ,KAAK,OAAQC,CAAO,EACpDG,GAA0BJ,EAAQ,KAAK,OAAQC,CAAO,EAElD,OAAOA,GAAY,UAAY,OAAOA,GAAY,UAAY,OAAOA,GAAY,UACnF,MAAM,IAAI,UAAU,uDAAuD,OAAOA,CAAO,EAAE,EAK7F,MAFAhC,GAAA,6BAA4B+B,EAAQ,KAAK,MAAM,EAE3CA,IAAW,iBAAkB,OAAO,KAAK,cAAcC,CAAiC,EAE5F,IAAMT,EAAkC,CAAA,EACpCS,EAAQ,QAAOT,EAAQ,cAAgB,UAAUS,EAAQ,KAAK,IAElE,IAAMI,EAAM,KAAK,iBAAiBL,CAAM,EAClCM,EAAW,MAAM,KAAK,YAC1BD,EAAG,OAAA,OAAA,CAED,QAAS,KAAK,MAAM,EACjBJ,CAAO,EAEZT,CAAO,EAEHe,EAAS,MAAM,KAAK,YAAYD,CAAQ,EAU9C,GATA,KAAK,OAAO,MAAM,wBAAwB,KAAK,UAAUC,CAAM,CAAC,EAAE,EAG9DA,EAAO,oBAAsB,QAAaA,EAAO,kBAAkB,WAAa,QAClFA,EAAO,kBAAkB,SAAS,QAAQ,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,EAK1EA,EAAO,oBAAsB,QAAaA,EAAO,kBAAkB,WAAa,OAClF,QAAWC,KAAOD,EAAO,kBAAkB,SAAU,CACnD,IAAME,EAAiB,gBACjBC,EAAkB,eACxB,GAAID,EAAO,KAAKD,CAAG,EAAG,CACpB,IAAMG,EAAWH,EAAI,MAAMC,CAAM,EAC7BE,GAAY,MACd,KAAK,OAAO,MAAMA,EAAS,CAAC,EAAE,KAAI,CAAE,CAExC,SAAWD,EAAQ,KAAKF,CAAG,EAAG,CAC5B,IAAMI,EAAYJ,EAAI,MAAME,CAAO,EAC/BE,GAAa,MACf,KAAK,OAAO,KAAKA,EAAU,CAAC,EAAE,KAAI,CAAE,CAExC,CACF,CASF,GAHI,CAACL,EAAO,IAAMD,EAAS,QAAQ,cAAc,IAAM,oBAGnD,OAAQC,GAAUA,EAAO,KAAO,GAClC,QAAMvC,GAAA,yBAAwBuC,CAA8C,EAE9E,YAAK,OAAO,MAAM,YAAYP,CAAM,QAAQ,EACrCO,CACT,CAAC,EA6BM,SACLP,EACAC,EACAY,EACAC,EAAuB,CAEvB,IAAMC,GAAY,IAAK,CACrB,GAAId,IAAY,QAAa,OAAOA,EAAQ,OAAU,SAAU,CAC9D,GAAM,CAAE,MAAAe,CAAK,EAAKf,EAClB,OAAAA,EAAQ,MAAQ,OACTe,CACT,CACA,OAAOvC,EACT,GAAE,EAEF,SAAgBwC,GAAa,sCAE3B,IAAIV,EAEAW,EAAyD,CAC3D,MAAOH,GAQT,IANId,IAAY,QAAaA,EAAQ,SAAW,SAC9CiB,EAAkB,OAASjB,EAAQ,QAK9BM,IAAW,QAAaW,IAAsB,QACnDX,EAAS,MAAAY,GAAM,KAAK,QAAQnB,EAAQ,OAAO,OAAOC,IAAY,OAAYA,EAAU,CAAA,EAAIiB,CAAiB,CAAC,CAAC,EAC3G,MAAA,MAAAC,GAAMZ,CAAM,EACZW,EAAoBE,GAA6Bb,EAAQQ,CAAQ,CAErE,CAAC,EAED,GAAIF,IAAe,OACjB,OAAOI,EAAc,KAAK,IAAI,EAGhC,IAAMI,EAA8BP,IAAW,OAAYA,EAASpC,GAChE4C,EAAQ,EAEZ,OAAmBC,GAAA,KAAA,OAAA,OAAA,WAAA,aAMjB,IAAMC,EAAwDP,EAAc,KAAK,IAAI,EAI/EQ,GAHsB,MAAMD,EAAa,KAAK,MAAS,GAGvB,MAClCE,EAAiBL,EAAY,OAAWI,EAAWH,CAAK,EAE5D,GADAA,GAAS,EACLT,EAAWY,CAAS,EACtB,OAAOC,MAIT,QAAyBC,EAAA,GAAAC,EAAAC,GAAAL,CAAY,EAAAM,EAAAA,EAAA,MAAAF,EAAA,KAAA,EAAAG,EAAAD,EAAA,KAAA,CAAAC,EAAAJ,EAAA,GAAE,CAAdK,EAAAF,EAAA,MAAAH,EAAA,GAAd,IAAMM,EAAID,EAEnB,GADAN,EAAcL,EAAYK,EAAaO,EAAMX,CAAK,EAC9CT,EAAWoB,CAAI,EACjB,OAAOP,EAETJ,GAAS,CACX,uGACA,OAAOI,CACT,CAAC,CACH,CA4BO,WAAWQ,EAA6E,CAC7F,GAAM,CAAE,YAAAC,CAAW,EAAcD,EAATE,EAAIC,GAAKH,EAA3B,CAAA,aAAA,CAAwB,EACxBjC,EAA+B,CACnC,YAAAkC,GAEF,OAAO,IAAIpE,GAAA,aAAa,KAAM,KAAK,OAAQqE,EAAMnC,CAAO,CAC1D,CAea,cACXA,EAA+B,0CAE/B,KAAK,OAAO,MAAM,wBAAwB,EAE1C,IAAMqC,EAAc,MAAM,KAAK,kBAAkBrC,CAAO,EAGxD,OAF0B,MAAM,KAAK,0BAA0BqC,CAAW,GAExD,QAAQ,CAACC,EAAKC,IAAO,CACrCF,EAAYE,CAAG,EAAE,WAAaD,EAAI,WAClCD,EAAYE,CAAG,EAAE,QAAUD,EAAI,OACjC,CAAC,EAGD,MAAM,KAAK,6BAA6BD,EAAarC,CAAO,EAKrD,CAAE,GAAI,GAAM,MAFA,MAAM,KAAK,oBAAoBqC,CAAW,CAEzB,CACtC,CAAC,EAQa,0BACZA,EAA8B,0CAE9B,OAAO,QAAQ,IACbA,EAAY,IAAKG,GAA2B,CAC1C,IAAMxC,EAAU,CACd,SAAUwC,EAAO,SACjB,OAAQA,EAAO,OACf,SAAUA,EAAO,SACjB,aAAcA,EAAO,cAEvB,MAAI,UAAWA,IACbxC,EAAQ,MAAQwC,EAAO,OAGlB,KAAK,MAAM,qBAAqBxC,CAAO,CAChD,CAAC,CAAC,CAEN,CAAC,EAOa,oBAAoBqC,EAA8B,0CAC9D,IAAMI,EAAqD,OAAO,UAAOzE,GAAA,6BAA4BqE,CAAW,CAAC,EACjH,OAAO,QAAQ,IAAII,EAAW,IAAKC,GAAQ,KAAK,MAAM,uBAAuBA,CAAG,CAAC,CAAC,CACpF,CAAC,EAOa,6BACZL,EACArC,EAA+B,0CAE/B,OAAO,QAAQ,IACbqC,EAAY,IAAWG,GAA2BlB,GAAA,KAAA,OAAA,OAAA,WAAA,CAChD,GAAM,CAAE,WAAAqB,EAAY,QAAAC,EAAS,SAAAC,EAAU,KAAAC,CAAI,EAAKN,EAE1CO,EAAOD,EAGb,GAAIH,EAAY,CACd,IAAMpD,EAAkC,CAAA,EACpCS,EAAQ,QAAOT,EAAQ,cAAgB,UAAUS,EAAQ,KAAK,IAElE,IAAMgD,EAAY,MAAM,KAAK,YAC3BL,EACA,CACE,KAAAI,GAEFxD,CAAO,EAET,GAAIyD,EAAU,SAAW,IACvB,OAAO,QAAQ,OAAO,MAAM,6BAA6BJ,CAAO,eAAeC,CAAQ,GAAG,CAAC,EAE7F,IAAMI,EAAa,CAAE,GAAI,GAAM,KAAMD,EAAU,IAAI,EACnD,OAAO,QAAQ,QAAQC,CAAU,CACnC,CACA,OAAO,QAAQ,OAAO,MAAM,qCAAqCL,CAAO,eAAeC,CAAQ,EAAE,CAAC,CACpG,CAAC,CAAA,CAAC,CAEN,CAAC,EAMa,kBAAkB7C,EAA+B,0CAC7D,IAAIqC,EAAiC,CAAA,EAGrC,OAAI,SAAUrC,GAAW,YAAaA,IACpCqC,EAAY,KAAK,QAAMrE,GAAA,kBAAiBgC,EAAS,KAAK,MAAM,CAAC,EAI3D,iBAAkBA,IACpBqC,EAAcA,EAAY,OAAO,QAAMrE,GAAA,2BAA0BgC,EAAS,KAAK,MAAM,CAAC,GAEjFqC,CACT,CAAC,EAKa,YAAWa,EAAAC,EAAA,2CACvB/C,EACA2C,EACAxD,EAAkC,CAAA,EAAE,CAGpC,IAAM6D,EAAO,IACX,KAAK,aAAa,IAAI,IAAW9B,GAAA,KAAA,OAAA,OAAA,WAAA,CAC/B,GAAI,CAEF,IAAMzB,EAAM,OAAA,OAAA,CACV,QAAAN,CAAO,EACJ,KAAK,SAAS,EAIfa,EAAI,SAAS,yBAAyB,IACxCP,EAAO,aAAe,eAIpBO,EAAI,SAAS,gCAAgC,IAC/C2C,EAAK,MAAQ,QAEf,KAAK,OAAO,MAAM,qBAAqB3C,CAAG,EAAE,EAC5C,KAAK,OAAO,MAAM,sBAAsB,KAAK,UAAUiD,GAAON,CAAI,CAAC,CAAC,EAAE,EAEtE,IAAIO,EAA2D,OAAO,KACpE,KAAK,MAAM,SAAS,OAAO,EAC3B,OACA,CAACC,EAAKC,KACClF,GAAyB,SAASkF,CAAG,IACxCD,EAAIC,CAAG,EAAI,KAAK,MAAM,SAAS,QAAQA,CAAG,GAErCD,GAET,CAAA,CAAkD,EAGpDD,EAAU,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,CAAA,EACL,KAAK,MAAM,SAAS,QAAQ,MAAM,EAClCA,CAAU,EACV/D,CAAO,EAEZ,KAAK,OAAO,MAAM,yBAAyB,KAAK,UAAU8D,GAAOC,CAAU,CAAC,CAAC,EAAE,EAC/E,IAAMjD,EAAW,MAAM,KAAK,MAAM,KAAKD,EAAK2C,EAAMlD,CAAM,EAGxD,GAFA,KAAK,OAAO,MAAM,wBAAwB,EAEtCQ,EAAS,SAAW,IAAK,CAC3B,IAAMoD,EAAWC,GAAkBrD,CAAQ,EAC3C,MAAIoD,IAAa,QACf,KAAK,KAAK/E,GAAe,aAAc+E,EAAU,CAAE,IAAArD,EAAK,KAAA2C,CAAI,CAAE,EAC1D,KAAK,uBACD,IAAInF,GAAA,cAAWG,GAAA,2BAA0B0F,CAAQ,CAAC,GAE1D,KAAK,OAAO,KAAK,uDAAuDA,CAAQ,WAAW,EAE3F,KAAK,aAAa,MAAK,EAOvB,QAAMxF,GAAA,SAAMwF,EAAW,GAAI,EAE3B,KAAK,aAAa,MAAK,EAEjB,IAAI,MAAM,mCAAmCrD,CAAG,kBAAkBqD,CAAQ,GAAG,IAG/E,IAAI7F,GAAA,WACR,IAAI,MACF,sDAAsDwC,CAAG,yBAAyBC,EAAS,QAAQ,aAAa,CAAC,GAAG,CACrH,CAEL,CAGA,GAAIA,EAAS,SAAW,IACtB,QAAMtC,GAAA,uBAAsBsC,CAAQ,EAGtC,OAAOA,CACT,OAASsD,EAAO,CAGd,IAAMC,EAAID,EAEV,MADA,KAAK,OAAO,KAAK,sBAAuBC,EAAE,OAAO,EAC7CA,EAAE,WACE7F,GAAA,0BAAyB6F,EAAG,KAAK,kCAAkC,EAErED,CACR,CACF,CAAC,CAAA,EAEH,SAAO/F,GAAA,SAAOwF,EAAM,KAAK,WAAW,CACtC,CAAC,EAMO,iBAAiBhD,EAAW,CAElC,OADsBA,EAAI,WAAW,UAAU,GAAKA,EAAI,WAAW,SAAS,IACvD,KAAK,kBACjBA,EAEF,GAAG,KAAK,MAAM,OAAM,EAAKA,CAAG,EACrC,CASQ,qBAAqBP,EAAkC,CAC7D,GAAM,CAAE,KAAAiD,EAAM,QAAAvD,CAAO,EAAKM,EAItBgE,EAAqB,GAEnBC,EAAY,OAAO,QAAQhB,CAAI,EAAE,IAAwB,CAAC,CAACiB,EAAKC,CAAK,IAAK,CAC9E,GAA2BA,GAAU,KACnC,MAAO,CAAA,EAGT,IAAIC,EAAkBD,EAEtB,OAAI,OAAO,SAASA,CAAK,MAAKtG,GAAA,SAASsG,CAAK,EAC1CH,EAAqB,GACZ,OAAOG,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,YAGpFC,EAAkB,KAAK,UAAUD,CAAK,GAGjC,CAACD,EAAKE,CAAe,CAC9B,CAAC,EAGD,GAAIJ,EAAoB,CACtB,KAAK,OAAO,MAAM,uCAAuC,EACzD,IAAMK,EAAOJ,EAAU,OAAO,CAACK,EAAK,CAACJ,EAAKC,CAAK,IAAK,CAClD,GAAI,OAAO,SAASA,CAAK,MAAKtG,GAAA,SAASsG,CAAK,EAAG,CAC7C,IAAMI,EAA+B,CAAA,EACrCA,EAAK,UAAY,IAAK,CAMpB,IAAMC,EAAsBL,EAC5B,OAAI,OAAOK,EAAe,MAAS,YAC1BnH,GAAA,UAASmH,EAAe,IAAI,EAEjC,OAAOA,EAAe,MAAS,YAC1BnH,GAAA,UAASmH,EAAe,IAAI,EAE9B9F,EACT,GAAE,EACF4F,EAAI,OAAOJ,EAAeC,EAAOI,CAAI,CACvC,MAAWL,IAAQ,QAAaC,IAAU,QACxCG,EAAI,OAAOJ,EAAKC,CAAK,EAEvB,OAAOG,CACT,EAAG,IAAI3G,GAAA,OAAU,EACjB,GAAI+B,EAGF,OAAW,CAAC+E,EAAQN,CAAK,IAAK,OAAO,QAAQE,EAAK,WAAU,CAAE,EAC5D3E,EAAQ+E,CAAM,EAAIN,EAGtB,OAAAnE,EAAO,KAAOqE,EACdrE,EAAO,QAAUN,EACVM,CACT,CAGIN,IAASA,EAAQ,cAAc,EAAI,qCAEvC,IAAMgF,EAAuC,CAAA,EAC7C,OAAA1E,EAAO,QAAO1C,GAAA,WACZ2G,EAAU,OAAO,CAACrC,EAAa,CAACsC,EAAKC,CAAK,KACpCD,IAAQ,QAAaC,IAAU,SACjCvC,EAAYsC,CAAG,EAAIC,GAEdvC,GACN8C,CAAY,CAAC,EAElB1E,EAAO,QAAUN,EACVM,CACT,CAOc,YAAYQ,EAAuB,0CAC/C,GAAI,CAAE,KAAAyC,CAAI,EAAKzC,EACTmE,EAAiBnE,EAAS,QAAQ,cAAc,IAAM,mBAG5D,GAAImE,EAEF,GAAI,CACF,IAAMC,EAAe,MAAM,IAAI,QAAQ,CAACC,EAASC,IAAU,CACzDtH,GAAA,QAAK,MAAMyF,EAAM,CAAC8B,EAAKC,IACjBD,EACKD,EAAOC,CAAG,EAEZF,EAAQG,EAAI,SAAQ,EAAG,MAAM;CAAI,CAAC,CAC1C,CACH,CAAC,EACE,KAAMvC,GAAQA,CAAG,EACjB,MAAOsC,GAAO,CACb,MAAMA,CACR,CAAC,EACGE,EAEF,CAAA,EACJ,GAAI,MAAM,QAAQL,CAAY,EAC5B,QAAWM,KAAWN,EAChBM,GAAWA,EAAQ,OAAS,GAC9BD,EAAS,KAAK,KAAK,MAAMC,CAAO,CAAC,EAIvCjC,EAAO,CAAE,UAAWgC,CAAQ,CAC9B,OAASF,EAAK,CACZ9B,EAAO,CAAE,GAAI,GAAO,MAAO8B,CAAG,CAChC,KACS,CAACJ,GAAkBnE,EAAS,QAAQ,OAAS,iCAGtDyC,EAAO,KAAK,MAAM,IAAI1F,GAAA,YAAW,EAAG,OAAO0F,CAAI,CAAC,GAGlD,GAAI,OAAOA,GAAS,SAElB,GAAI,CACFA,EAAO,KAAK,MAAMA,CAAI,CACxB,MAAY,CAEVA,EAAO,CAAE,GAAI,GAAO,MAAOA,CAAI,CACjC,CAGEA,EAAK,oBAAsB,SAC7BA,EAAK,kBAAoB,CAAA,GAIvBzC,EAAS,QAAQ,gBAAgB,IAAM,SACzCyC,EAAK,kBAAkB,OAAUzC,EAAS,QAAQ,gBAAgB,EAAa,KAAI,EAAG,MAAM,SAAS,GAEnGA,EAAS,QAAQ,yBAAyB,IAAM,SAClDyC,EAAK,kBAAkB,eAAkBzC,EAAS,QAAQ,yBAAyB,EAChF,KAAI,EACJ,MAAM,SAAS,GAIpB,IAAMoD,EAAWC,GAAkBrD,CAAQ,EAC3C,OAAIoD,IAAa,SACfX,EAAK,kBAAkB,WAAaW,GAG/BX,CACT,CAAC,IAzvBH9F,EAAA,UAAA2B,GAwCiBA,GAAA,WAAa,YAotB9B3B,EAAA,QAAe2B,GAOf,SAASwC,GACP6D,EACAlE,EAAgB,CAEhB,GACEkE,IAAmB,QACnBA,EAAe,oBAAsB,QACrCA,EAAe,kBAAkB,cAAgB,QACjDA,EAAe,kBAAkB,cAAgB,GAEjD,MAAO,CACL,MAAOlE,EACP,OAAQkE,EAAe,kBAAkB,YAI/C,CAMA,SAAStB,GAAkBrD,EAAuB,CAChD,GAAIA,EAAS,QAAQ,aAAa,IAAM,OAAW,CACjD,IAAM4E,EAAa,OAAO,SAAS5E,EAAS,QAAQ,aAAa,EAAa,EAAE,EAEhF,GAAI,CAAC,OAAO,MAAM4E,CAAU,EAC1B,OAAOA,CAEX,CAEF,CAOA,SAAShF,GAAiBF,EAAgBhB,EAAc,CAC5B,CAAC,0BAA2B,uBAAwB,sBAAsB,EAE7D,KAAMmG,GAChC,IAAI,OAAO,IAAIA,CAAS,EAAE,EAC3B,KAAKnF,CAAM,CACtB,GAGChB,EAAO,KACL,GAAGgB,CAAM,8FAA8F,CAG7G,CAQA,SAASG,GAAwBH,EAAgBhB,EAAgBiB,EAAiC,CAEhG,IAAMmF,EADgB,CAAC,qBAAsB,mBAAoB,sBAAsB,EAClD,SAASpF,CAAM,EAE9CqF,EAAkBjD,GAAkC,MAAM,QAAQA,EAAK,WAAW,GAAKA,EAAK,YAAY,OAExGkD,EAAqClD,GACzC,MAAM,QAAQA,EAAK,WAAW,GAC9BA,EAAK,YAAY,KAAMmD,GAAe,CAACA,EAAW,UAAYA,EAAW,SAAS,KAAI,IAAO,EAAE,EAE3FC,EAAepD,IAClBA,EAAK,OAAS,QAAaA,EAAK,OAAS,MAAQA,EAAK,OAAS,MAC/DA,EAAK,gBAAkB,QAAaA,EAAK,WAAa,MAAQA,EAAK,gBAAkB,IAElFqD,EAA0B,IAC9B,2EAA2EzF,CAAM,uPAE7E0F,EAA8B,IAClC,oGAAoG1F,CAAM,8VACxGoF,GAAkB,OAAOnF,GAAY,WACnCoF,EAAepF,CAAO,EACpBqF,EAAkCrF,CAAO,GAAKuF,EAAYvF,CAAO,IACnEjB,EAAO,KAAKyG,EAAuB,CAAE,EACrCzG,EAAO,KAAK0G,EAA2B,CAAE,GAElCF,EAAYvF,CAAO,GAC5BjB,EAAO,KAAKyG,EAAuB,CAAE,EAG3C,CAQA,SAASrF,GAA0BJ,EAAgBhB,EAAgBiB,EAAiC,CAC5E,CAAC,qBAAsB,mBAAoB,uBAAwB,cAAc,EAClE,SAASD,CAAM,GAE9BC,GAAS,YAAc,QAAa,OAAOA,GAAS,WAAc,UACtFjB,EAAO,KAAK9B,GAA4B8C,CAAM,CAAC,CAEnD,CAEA,SAAgB9C,GAA4B8C,EAAc,CACxD,MAAO,0DAA0DA,CAAM,2EACzE,CAOA,SAASsD,GAAON,EAA6B,CAE3C,IAAMe,EAAY,OAAO,QAAQf,CAAI,EAAE,IAAwB,CAAC,CAACgB,EAAKC,CAAK,IAAK,CAE9E,GAA2BA,GAAU,KACnC,MAAO,CAAA,EAGT,IAAIC,EAAkBD,EAGtB,OAAID,EAAI,MAAM,WAAW,IAAM,MAAQA,EAAI,MAAM,kBAAkB,KACjEE,EAAkB,gBAIhB,OAAO,SAASD,CAAK,MAAKtG,GAAA,SAASsG,CAAK,EAC1CC,EAAkB,2BACT,OAAOD,GAAU,UAAY,OAAOA,GAAU,UAAY,OAAOA,GAAU,YACpFC,EAAkB,KAAK,UAAUD,CAAK,GAEjC,CAACD,EAAKE,CAAe,CAC9B,CAAC,EAGKM,EAA2C,CAAA,EACjD,OAAOT,EAAU,OAAO,CAACrC,EAAa,CAACsC,EAAKC,CAAK,KAC3CD,IAAQ,QAAaC,IAAU,SACjCvC,EAAYsC,CAAG,EAAIC,GAEdvC,GACN8C,CAAY,CACjB,wqBCjlCA,IAAAmB,GAAA,KAEE,OAAA,eAAAC,EAAA,YAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAD,GAAA,SAAS,CAAA,CAAA,EAQX,IAAAE,GAAA,KAAS,OAAA,eAAAD,EAAA,iBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAC,GAAA,cAAc,CAAA,CAAA,EAEvB,IAAAC,GAAA,KAAiB,OAAA,eAAAF,EAAA,WAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAE,GAAA,QAAQ,CAAA,CAAA,EAEzB,IAAAC,GAAA,KAAS,OAAA,eAAAH,EAAA,gBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAI,GAAAD,EAAA,EAAA,OAAO,CAAA,CAAA,EAEhBE,GAAA,KAAAL,CAAA,EACAK,GAAA,KAAAL,CAAA,EAEA,IAAAM,GAAA,KAME,OAAA,eAAAN,EAAA,YAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAM,GAAA,SAAS,CAAA,CAAA,EACT,OAAA,eAAAN,EAAA,iBAAA,CAAA,WAAA,GAAA,IAAA,UAAA,CAAA,OAAAM,GAAA,cAAc,CAAA,CAAA,EAKhBD,GAAA,KAAAL,CAAA,ICjCA,IAAAO,GAAA,GAAAC,GAAAD,GAAA,yBAAAE,KAAA,eAAAC,GAAAH,ICOA,IAAAI,GAA0C,mBC+KnC,SAASC,GAAWC,EAAwB,CACjD,SAASC,EAAaC,EAA2B,CAC/C,IAAIC,EAAQ,EACZ,QAAWC,KAAQF,EACjB,GAAIE,EAAK,OAAS,OAChBD,YACSC,EAAK,OAAS,YAAcA,EAAK,SAE1C,QAAWC,KAAUD,EAAK,SACpBC,EAAO,QACTF,GAASF,EAAaI,EAAO,QAAQ,OAGhC,aAAcD,GAAQA,EAAK,WACpCD,GAASF,EAAaG,EAAK,QAAQ,GAGvC,OAAOD,CACT,CACA,OAAOF,EAAaD,EAAG,KAAK,QAAQ,CACtC,CCnMA,IAAAM,GAAqC,mBC8a9B,SAASC,GAAWC,EAAkC,CAC3D,OAAOA,EAAK,OAAS,MACvB,CAYO,SAASC,GAAeC,EAAsC,CACnE,OAAOA,EAAK,OAAS,UACvB,CAKO,SAASC,GAAWD,EAAkC,CAC3D,OAAOA,EAAK,OAAS,MACvB,CAKO,SAASE,GAAeF,EAAsC,CACnE,OAAOA,EAAK,OAAS,UACvB,CAKO,SAASG,GAAaH,EAAoC,CAC/D,OAAOA,EAAK,OAAS,QACvB,CC9cO,SAASI,GAAeC,EAAoB,CACjD,GAAIA,EAAK,IACP,MAAO,GAAG,KAAK,MAAMA,CAAE,CAAC,KAG1B,GAAIA,EAAK,IAGP,MAAO,IAFSA,EAAK,KAEH,QAAQ,CAAC,EAAE,QAAQ,OAAQ,EAAE,CAAC,IAGlD,IAAIC,EAAU,KAAK,MAAMD,EAAK,GAAK,EAC/BE,EAAU,KAAK,MAAOF,EAAK,IAAS,GAAI,EAM5C,OALIE,GAAW,KACbD,GAAW,EACXC,EAAU,GAGRA,IAAY,EACP,GAAGD,CAAO,IAGZ,GAAGA,CAAO,KAAKC,CAAO,GAC/B,CAKO,SAASC,IAAqB,CACnC,MAAO,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAG,CAAC,CAAC,EACrE,CC9BA,IAAMC,GAAM,UAGNC,GAAS,WACTC,GAAW,WACXC,GAAY,WACZC,GAAU,WACVC,GAAU,WACVC,GAAW,WAmCV,IAAMC,GAAkC,CAC7C,QAASC,GACT,QAASC,GACT,QAASC,GACT,MAAOC,GACP,QAASC,GACT,OAAQC,GACR,QAASC,GAAMF,EACjB,ECxDA,IAAAG,GAAqC,mBC8G9B,SAASC,GAAaC,EAAyB,CACpD,OAAIA,EAAO,GAAY,OACnBA,EAAO,GAAY,OACnBA,EAAO,GAAY,UACnBA,EAAO,GAAY,OACnBA,EAAO,IAAa,MACjB,UACT,CDnFA,SAASC,IAAgC,CACvC,MAAO,CAEL,kFAEA,kFAEA,kFAEA,gFAEA,wGAEA,iFAEA,wGAEA,iFAEA,uFAEA,qFACF,CACF,CAKA,SAASC,IAAuC,CAC9C,MAAO,CAEL,oFACA,oFACA,uFACA,oFACA,mFACA,uFACF,CACF,CAKA,SAASC,GAAaC,EAA0B,CAC9C,MAAO,QAAQA,CAAK,EACtB,CAYA,SAASC,IAAoC,CAC3C,MAAO,CAEL,uFACA,oFACF,CACF,CAMA,SAASC,GAAcC,EAAgD,CACrE,GAAI,CAMF,SAAO,OAAG,KAAK,UAAUA,EALR,CAACC,EAAcC,IAAwB,CACtD,GAAI,OAAOA,GAAM,SAAU,OAAOA,EAClC,IAAMC,EAAI,OAAOD,CAAC,EAClB,OAAO,OAAO,cAAcC,CAAC,EAAIA,EAAID,EAAE,SAAS,CAClD,CACwC,CAAC,CAC3C,MAAQ,CACN,SAAO,QAAI,iBAAiB,CAC9B,CACF,CAKA,SAASE,GAAeJ,EAAwB,CAC9C,IAAMK,EAASN,GAAcC,CAAK,EAClC,OAAOK,EAAO,GAAKA,EAAO,MAAQ,kBACpC,CAMA,SAASC,GACPC,EACAC,EACAC,EACoC,CACpC,IAAIC,EAGJ,GAAIH,EAAM,UAAW,CACnB,IAAMI,EAAS,iBACTC,EAAQL,EAAM,UAAU,QAAU,UAAY,eAAiB,aAC/DM,EAAON,EAAM,UAAU,QAAU,UAAY,SAAM,SACnDO,EAASL,EAAQ,aAAeF,EAAM,UAAU,aAAe,OACjE,IAAIQ,GAAeR,EAAM,UAAU,UAAU,CAAC,GAC9C,GACES,EAAUT,EAAM,UAAU,SAAS,QACrC,sBACAA,EAAM,UAAU,SAAS,SAAW,GAClC,aACA,GAENC,EAAM,KAAK,OAAOG,CAAM,MAAME,CAAI,aAAaG,CAAO,GAAGF,CAAM,SAASF,CAAK,EAAE,EAC/EF,EAAaC,CACf,CAGA,GAAIJ,EAAM,cAAe,CACvB,IAAMI,EAAS,mBACTC,EAAQL,EAAM,cAAc,QAAU,UAAY,eAAiB,aACnEM,EAAON,EAAM,cAAc,QAAU,UAAY,SAAM,SACvDO,EAASL,EAAQ,aAAeF,EAAM,cAAc,aAAe,OACrE,IAAIQ,GAAeR,EAAM,cAAc,UAAU,CAAC,GAClD,GACES,EAAUT,EAAM,cAAc,SAAS,QACzC,sBACA,GAEJC,EAAM,KAAK,OAAOG,CAAM,MAAME,CAAI,iBAAiBG,CAAO,GAAGF,CAAM,SAASF,CAAK,EAAE,EAG/EF,GACFF,EAAM,KAAK,OAAOE,CAAU,QAAQC,CAAM,EAAE,EAE9CD,EAAaC,CACf,CAEA,MAAO,CAAE,WAAAD,CAAW,CACtB,CAMA,IAAIO,GAAc,EACZC,GAAkB,IAAI,IACtBC,GAAc,IAAI,IAExB,SAASC,GAAeC,EAAiB,OAAgB,CACvD,MAAO,GAAGA,CAAM,IAAI,EAAEJ,EAAW,EACnC,CAEA,SAASK,IAAyB,CAChCL,GAAc,EACdC,GAAgB,MAAM,EACtBC,GAAY,MAAM,CACpB,CAgBA,SAASI,GAAkBC,EAAsB,CAC/C,OAAOA,EACJ,QAAQ,KAAM,QAAQ,EACtB,QAAQ,KAAM,MAAM,EACpB,QAAQ,KAAM,MAAM,EACpB,KAAK,CACV,CASA,SAASC,GAAmBD,EAAsB,CAChD,OAAOD,GAAkBC,CAAI,EAC1B,QAAQ,aAAc,EAAE,CAC7B,CASO,SAASE,IAA4B,CAC1C,MAAO,CACL,KAAM,UACN,aAAc,GAEd,OAAOC,EAAgBlB,EAAgC,CACrDa,GAAiB,EACjB,IAAMd,EAAkB,CAAC,EAGnBoB,EAAWnB,EAGjBD,EAAM,KAAK,cAAc,EAGzB,IAAIqB,EACAF,EAAG,QAELE,EADmBvB,GAAYqB,EAAG,MAAOnB,EAAOC,CAAO,EAC/B,YAI1B,IAAMqB,EAAU,QAChBtB,EAAM,KAAK,OAAOsB,CAAO,oBAAe,EAGpCD,GACFrB,EAAM,KAAK,OAAOqB,CAAU,QAAQC,CAAO,EAAE,EAI/C,IAAIC,EAAaD,EAGjB,QAAWE,KAASL,EAAG,KAAK,SAAU,CACpC,IAAMtB,EAAS4B,GAAWD,EAAOvB,EAASD,EAAOoB,EAAUD,EAAG,KAAK,EACnEnB,EAAM,KAAK,OAAOuB,CAAU,QAAQ1B,EAAO,OAAO,EAAE,EACpD0B,EAAa1B,EAAO,MACtB,CAIA,GADuB,CAAC,UAAW,QAAS,SAAS,EAClC,SAASsB,EAAG,KAAK,KAAwC,EAAG,CAC7E,IAAMO,EAAQ,SACRC,EACJR,EAAG,KAAK,QAAU,UAAY,SAC1BA,EAAG,KAAK,QAAU,QAAU,SAC1B,SACFS,EACJT,EAAG,KAAK,QAAU,UAAY,OAC1BA,EAAG,KAAK,QAAU,QAAU,SAC1B,YACFU,EAAW,MAAMF,CAAO,IAAIC,CAAQ,MACpCE,EACJX,EAAG,KAAK,QAAU,UAAY,aAC1BA,EAAG,KAAK,QAAU,QAAU,WAC1B,aACRnB,EAAM,KAAK,OAAO0B,CAAK,GAAGG,CAAQ,GAAGC,CAAQ,EAAE,EAC/C9B,EAAM,KAAK,OAAOuB,CAAU,QAAQG,CAAK,EAAE,CAC7C,CAGA,OAAA1B,EAAM,KAAK,EAAE,EACbA,EAAM,KAAK,GAAG+B,GAAoB,CAAC,EAG/BX,EAAS,aACXpB,EAAM,KAAK,GAAGgC,GAA2B,CAAC,EAIxCb,EAAG,OACLnB,EAAM,KAAK,GAAGV,GAAwB,CAAC,EAGlCU,EAAM,KAAK;AAAA,CAAI,CACxB,CACF,CACF,CAaA,SAASyB,GACPQ,EACAhC,EACAD,EACAoB,EACArB,EACc,CACd,GAAImC,GAAWD,CAAI,EACjB,OAAOE,GAAeF,EAAMhC,EAASD,EAAOoB,EAAUrB,CAAK,EACtD,GAAIqC,GAAeH,CAAI,EAC5B,OAAOI,GAAmBJ,EAAMhC,EAASD,EAAOoB,EAAUrB,CAAK,EAC1D,GAAIuC,GAAWL,CAAI,EACxB,OAAOM,GAAeN,EAAMhC,EAASD,EAAOoB,EAAUrB,CAAK,EACtD,GAAIyC,GAAeP,CAAI,EAC5B,OAAOQ,GAAmBR,EAAMhC,EAASD,EAAOoB,EAAUrB,CAAK,EAC1D,GAAI2C,GAAaT,CAAI,EAC1B,OAAOU,GAAiBV,EAAMhC,EAASD,CAAK,EAI9C,IAAM4C,EAAKhC,GAAe,SAAS,EACnC,OAAAZ,EAAM,KAAK,OAAO4C,CAAE,kBAAkB,EAC/B,CAAE,QAASA,EAAI,OAAQA,CAAG,CACnC,CAKA,SAAST,GACPF,EACAhC,EACAD,EACAoB,EACArB,EACc,CAEd,IAAM8C,EAAc5C,EACd6C,EAAiBD,EAAY,gBAAkB,GAC/CE,EAAiBF,EAAY,gBAAkB,GAC/CG,EAAmBH,EAAY,kBAAoB,GAGrDD,EAAKX,EAAK,IACV,QAAQA,EAAK,IAAI,QAAQ,gBAAiB,GAAG,CAAC,GAC9CrB,GAAe,MAAM,EAGzB,GAAID,GAAY,IAAIiC,CAAE,EAAG,CACvB,IAAIK,EAAS,EACb,KAAOtC,GAAY,IAAI,GAAGiC,CAAE,IAAIK,CAAM,EAAE,GACtCA,IAEFL,EAAK,GAAGA,CAAE,IAAIK,CAAM,EACtB,CACAtC,GAAY,IAAIiC,CAAE,EAElB,IAAMM,EAAYjB,EAAK,MAAQA,EAAK,KAAO,OACrCkB,EAAYlD,EAAQ,UAAYgC,EAAK,KAAOA,EAAK,KACnD,GAAGiB,CAAS,KAAKjB,EAAK,GAAG,IACzBiB,EACEE,EAAQrC,GAAkBoC,CAAS,EAGnC7C,EACJL,EAAQ,aAAegC,EAAK,aAAe,OACvC,IAAI1B,GAAe0B,EAAK,UAAU,CAAC,GACnC,GAGFoB,EAAY,GAChB,OAAQpB,EAAK,MAAO,CAClB,IAAK,UACHoB,EAAY,UACZ,MACF,IAAK,QACHA,EAAY,UACZ,MACF,IAAK,SACHA,EAAY,aACZ,MACF,IAAK,UACHA,EAAY,UACZ,MACF,IAAK,UACHA,EAAY,UACZ,KACJ,CAIA,IAAIC,EAAS,GACb,GAAIrB,EAAK,QAAU,OAAW,CAC5B,IAAMsB,EAAW,OAAOtB,EAAK,OAAU,SACnClB,GAAkBkB,EAAK,KAAK,EAC5BlB,GAAkBnB,GAAeqC,EAAK,KAAK,EAAE,MAAM,EAAG,EAAE,CAAC,EAC7DqB,GAAU,UAAUC,CAAQ,EAC9B,CACA,GAAItB,EAAK,SAAW,QAAaA,EAAK,QAAU,UAAW,CACzD,IAAMuB,EAAY,OAAOvB,EAAK,QAAW,SACrClB,GAAkBkB,EAAK,MAAM,EAC7BlB,GAAkBnB,GAAeqC,EAAK,MAAM,EAAE,MAAM,EAAG,EAAE,CAAC,EAC9DqB,GAAU,WAAWE,CAAS,EAChC,CAGA,IAAIC,EAAW,GACTC,EAAUzB,EAAK,KAAOA,EAAK,GACjC,GAAIlC,GAAS2D,GAAW3D,EAAM,YAAY,IAAI2D,CAAO,EAAG,CACtD,IAAMC,EAAW5D,EAAM,YAAY,IAAI2D,CAAO,EACxCE,EAAWD,EAAS,QAAU,UAAY,SAAM,SAChDE,EAAa5D,EAAQ,aAAe0D,EAAS,aAAe,OAC9D,IAAIpD,GAAeoD,EAAS,UAAU,CAAC,GACvC,GACJF,EAAW,MAAMG,CAAQ,QAAQC,CAAU,EAC7C,CAGA,IAAMC,GAAgBT,EAAYD,EAAQE,EAASG,EAAWnD,GAAQ,KAAK,EAIvEyD,EACEC,EAAO5C,GAAU,aAAeA,EAAS,YAC3CA,EAAS,YAAY,KAAK,IAAIa,EAAK,KAAO,EAAE,GAC5Cb,EAAS,YAAY,KAAK,IAAIa,EAAK,MAAQ,EAAE,GAC7Cb,EAAS,YAAY,KAAK,IAAIa,EAAK,EAAE,EACrC,OAEJ,GAAI+B,IAAS,OAAW,CACtB,IAAMC,EAAQC,GAAaF,CAAI,EAC/BD,EAAYI,GAAaF,CAAK,CAChC,MACEF,EAA0B9B,EAAK,MAIjC,IAAImC,EACJ,OAAQnC,EAAK,MAAO,CAClB,IAAK,QAEHmC,EAAQ,MAAMN,CAAY,MAC1B,MACF,IAAK,SAEHM,EAAQ,MAAMN,CAAY,MAC1B,MACF,IAAK,UAEHM,EAAQ,KAAKN,CAAY,KACzB,MACF,QAEEM,EAAQ,KAAKN,CAAY,IAC7B,CAKA,GAHA9D,EAAM,KAAK,OAAO4C,CAAE,GAAGwB,CAAK,MAAML,CAAS,EAAE,EAGzCjB,GAAkBb,EAAK,aAAe,QAAaA,EAAK,WAAa,EAAG,CAC1E,IAAMoC,EAAa,UAAKpC,EAAK,UAAU,QAAQA,EAAK,aAAe,EAAI,IAAM,KAAK,GAClFjC,EAAM,KAAK,OAAO4C,CAAE,UAAUyB,CAAU,MAAMzB,CAAE,EAAE,CACpD,CAGA,GAAIG,GAAkBd,EAAK,QAAU,SAAWA,EAAK,QAAU,OAAW,CACxE,IAAMqC,EAAc,OAAO1B,CAAE,GACvB2B,EAAaxD,GAAkB,OAAOkB,EAAK,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EACpEjC,EAAM,KAAK,OAAOsE,CAAW,MAAMC,CAAU,KAAK,EAClDvE,EAAM,KAAK,OAAO4C,CAAE,eAAe0B,CAAW,EAAE,EAChDtE,EAAM,KAAK,aAAasE,CAAW,8BAA8B,CACnE,CAGA,GAAItB,GAAoBf,EAAK,SAAU,CACrC,IAAMuC,EAAgB,MAAM5B,CAAE,GACxB6B,EAAYxC,EAAK,YAAc,OAAY,GAAGA,EAAK,SAAS,KAAO,GACzEjC,EAAM,KAAK,OAAOwE,CAAa,qBAAgBC,CAAS,KAAK,EAC7DzE,EAAM,KAAK,OAAO4C,CAAE,kBAAkB4B,CAAa,EAAE,EACrDxE,EAAM,KAAK,aAAawE,CAAa,8BAA8B,CACrE,CAEA,MAAO,CAAE,QAAS5B,EAAI,OAAQA,CAAG,CACnC,CAKA,SAASP,GACPJ,EACAhC,EACAD,EACAoB,EACArB,EACc,CACd,IAAM2E,EAAa9D,GAAe,UAAU,EACtC+D,EAAS,GAAGD,CAAU,QACtBE,EAAS,GAAGF,CAAU,QACtBG,EAAO5D,GAAmBgB,EAAK,MAAQ,UAAU,EACjD6C,EAAY7C,EAAK,OAAS,aAAe,gBAAkB,GAGjE,GAAIA,EAAK,SAAS,SAAW,EAAG,CAC9B,IAAMW,EAAK8B,EACLtB,EAAQrC,GAAkB,GAAG8D,CAAI,GAAGC,CAAS,EAAE,EAC/CC,EAAO,sCACPzE,EAASL,EAAQ,aAAegC,EAAK,aAAe,OACtD,IAAI1B,GAAe0B,EAAK,UAAU,CAAC,GACnC,GAGJ,OAAAjC,EAAM,KAAK,OAAO4C,CAAE,KAAKQ,CAAK,GAAG9C,CAAM,MAAMyE,CAAI,QAAsB9C,EAAK,KAAM,EAAE,EAC7E,CAAE,QAASW,EAAI,OAAQA,CAAG,CACnC,CAGA5C,EAAM,KAAK,gBAAgB0E,CAAU,KAAKG,CAAI,GAAGC,CAAS,IAAI,EAC9D9E,EAAM,KAAK,kBAAkB,EAG7BA,EAAM,KAAK,OAAO2E,CAAM,iBAAY,EAGpC,IAAMK,EAAyB,CAAC,EAChC,QAAWxD,KAASS,EAAK,SAAU,CACjC,IAAMpC,EAAS4B,GAAWD,EAAOvB,EAASD,EAAOoB,EAAUrB,CAAK,EAChEC,EAAM,KAAK,OAAO2E,CAAM,QAAQ9E,EAAO,OAAO,EAAE,EAChDmF,EAAa,KAAKnF,EAAO,MAAM,CACjC,CAGAG,EAAM,KAAK,OAAO4E,CAAM,iBAAY,EACpC,QAAWK,KAAUD,EACnBhF,EAAM,KAAK,OAAOiF,CAAM,QAAQL,CAAM,EAAE,EAG1C5E,EAAM,KAAK,SAAS,EAGpB,IAAMkF,EAA2BjD,EAAK,MACtC,OAAAjC,EAAM,KAAK,aAAa0E,CAAU,IAAIQ,CAAU,EAAE,EAE3C,CAAE,QAASP,EAAQ,OAAQC,CAAO,CAC3C,CAKA,SAASrC,GACPN,EACAhC,EACAD,EACAoB,EACArB,EACc,CACd,IAAM2E,EAAa9D,GAAe,MAAM,EAClCU,EAAU,GAAGoD,CAAU,SACvBhD,EAAQ,GAAGgD,CAAU,OACrBG,EAAO5D,GAAmBgB,EAAK,MAAQ,MAAM,EAGnD,GAAIA,EAAK,SAAS,SAAW,EAAG,CAC9B,IAAMW,EAAK8B,EACLtB,EAAQrC,GAAkB8D,CAAI,EAC9BE,EAAO,sCACPzE,EAASL,EAAQ,aAAegC,EAAK,aAAe,OACtD,IAAI1B,GAAe0B,EAAK,UAAU,CAAC,GACnC,GAEJ,OAAAjC,EAAM,KAAK,OAAO4C,CAAE,YAAOQ,CAAK,GAAG9C,CAAM,MAAMyE,CAAI,QAAsB9C,EAAK,KAAM,EAAE,EAC/E,CAAE,QAASW,EAAI,OAAQA,CAAG,CACnC,CAGA5C,EAAM,KAAK,gBAAgB0E,CAAU,YAAOG,CAAI,IAAI,EACpD7E,EAAM,KAAK,kBAAkB,EAG7BA,EAAM,KAAK,OAAOsB,CAAO,uBAAgB,EAGzC,IAAM0D,EAA6D,CAAC,EAChEG,EAEJ,QAAW3D,KAASS,EAAK,SAAU,CACjC,IAAMpC,EAAS4B,GAAWD,EAAOvB,EAASD,EAAOoB,EAAUrB,CAAK,EAC1DqF,EAAWnD,EAAK,WAAaT,EAAM,GACzCxB,EAAM,KAAK,OAAOsB,CAAO,QAAQzB,EAAO,OAAO,EAAE,EAE7CuF,IACFD,EAAetF,EAAO,QAExBmF,EAAa,KAAK,CAAE,OAAQnF,EAAO,OAAQ,SAAAuF,CAAS,CAAC,CACvD,CAGApF,EAAM,KAAK,OAAO0B,CAAK,oBAAe,EAGtC,OAAW,CAAE,OAAAuD,EAAQ,SAAAG,CAAS,IAAKJ,EAC7BI,GAAYD,EACdnF,EAAM,KAAK,OAAOiF,CAAM,0BAAmBvD,CAAK,EAAE,EACzCO,EAAK,SAEdjC,EAAM,KAAK,OAAOiF,CAAM,qBAAqBvD,CAAK,EAAE,EAGpD1B,EAAM,KAAK,OAAOiF,CAAM,QAAQvD,CAAK,EAAE,EAI3C1B,EAAM,KAAK,SAAS,EAEpB,IAAMkF,EAA2BjD,EAAK,MACtC,OAAAjC,EAAM,KAAK,aAAa0E,CAAU,IAAIQ,CAAU,EAAE,EAE3C,CAAE,QAAS5D,EAAS,OAAQI,CAAM,CAC3C,CAKA,SAASe,GACPR,EACAhC,EACAD,EACAoB,EACArB,EACc,CAEd,IAAIsF,EAAapD,EAAK,IAClB,YAAYA,EAAK,IAAI,QAAQ,gBAAiB,GAAG,CAAC,GAClDrB,GAAe,UAAU,EAG7B,GAAIF,GAAgB,IAAI2E,CAAU,EAAG,CACnC,IAAIpC,EAAS,EACb,KAAOvC,GAAgB,IAAI,GAAG2E,CAAU,IAAIpC,CAAM,EAAE,GAClDA,IAEFoC,EAAa,GAAGA,CAAU,IAAIpC,CAAM,EACtC,CACAvC,GAAgB,IAAI2E,CAAU,EAG9B,IAAMC,EAAYvE,GAAkBkB,EAAK,WAAa,WAAW,EAC3DsD,EAAgBtD,EAAK,gBAAkB,OACzC,MAAMlB,GAAkB,OAAOkB,EAAK,aAAa,CAAC,EAAE,MAAM,EAAG,EAAE,CAAC,GAChE,GAGEuD,EAAgB,GAAGF,CAAS,GAAGC,CAAa,GAAG,KAAK,EAC1DvF,EAAM,KAAK,OAAOqF,CAAU,KAAKG,CAAa,IAAI,EAGlD,IAAMC,EAA0B,CAAC,EAC7BC,EACEC,EAAgB,IAAI,IAE1B,QAAWC,KAAU3D,EAAK,SAAU,CAElC,IAAI4D,EAAW,GAAGR,CAAU,IAAIO,EAAO,MAAM,QAAQ,gBAAiB,GAAG,CAAC,GAE1E,GAAID,EAAc,IAAIE,CAAQ,EAAG,CAC/B,IAAI5C,EAAS,EACb,KAAO0C,EAAc,IAAI,GAAGE,CAAQ,IAAI5C,CAAM,EAAE,GAC9CA,IAEF4C,EAAW,GAAGA,CAAQ,IAAI5C,CAAM,EAClC,CACA0C,EAAc,IAAIE,CAAQ,EAE1B,IAAMC,EAAkB/E,GAAkB6E,EAAO,KAAK,EAChDG,EAAcH,EAAO,MACvB,GAAGE,CAAe,UAClB,GAAGA,CAAe,WAChBE,EAAcJ,EAAO,MAAQ,aAAe,aAGlD5F,EAAM,KAAK,OAAO6F,CAAQ,KAAKE,CAAW,KAAKC,CAAW,EAAE,EAK5D,IAAMC,EAAYL,EAAO,UACrB,IAAI7E,GAAkB6E,EAAO,SAAS,EAAE,QAAQ,MAAO,EAAE,CAAC,IAC1D,GAIJ,GAHA5F,EAAM,KAAK,OAAOqF,CAAU,OAAOY,CAAS,IAAIJ,CAAQ,EAAE,EAGtDD,EAAO,SAAS,OAAS,EAAG,CAC9B,IAAIM,EAASL,EACb,QAAWrE,KAASoE,EAAO,SAAU,CACnC,IAAM/F,EAAS4B,GAAWD,EAAOvB,EAASD,EAAOoB,EAAUrB,CAAK,EAChEC,EAAM,KAAK,OAAOkG,CAAM,QAAQrG,EAAO,OAAO,EAAE,EAChDqG,EAASrG,EAAO,MAClB,CACA4F,EAAc,KAAKS,CAAM,EACrBN,EAAO,QACTF,EAAoBQ,EAExB,MACET,EAAc,KAAKI,CAAQ,EACvBD,EAAO,QACTF,EAAoBG,EAG1B,CAGA,OAAIH,EACK,CAAE,QAASL,EAAY,OAAQK,CAAkB,EAInD,CAAE,QAASL,EAAY,OAAQA,CAAW,CACnD,CAMA,SAAS1C,GACPV,EACAhC,EACAD,EACc,CACd,IAAM4C,EAAK,UAAUX,EAAK,UAAU,QAAQ,gBAAiB,GAAG,CAAC,IAAIrB,GAAe,EAAE,CAAC,GAGjFuF,EAAS,KAAKlE,EAAK,UAAU,MAAMA,EAAK,SAAS,GAGnDoB,EAAY,GAChB,OAAQpB,EAAK,YAAa,CACxB,IAAK,SACHoB,EAAY,UACZ,MACF,IAAK,SACHA,EAAY,UACZ,MACF,IAAK,QACHA,EAAY,UACZ,KACJ,CAGA,IAAM/C,EACJL,EAAQ,aAAegC,EAAK,aAAe,OACvC,IAAI1B,GAAe0B,EAAK,UAAU,CAAC,GACnC,GAGAmE,EAAenE,EAAK,qBAAuB,kBAAoB,GAG/DmB,EAAQ,GAAGC,CAAS,UAAUtC,GAAkBkB,EAAK,SAAS,CAAC,MAAMkE,CAAM,GAAGC,CAAY,GAAG9F,CAAM,GAGrGyD,EACJ,OAAI9B,EAAK,cAAgB,QACvB8B,EAAY,cACH9B,EAAK,cAAgB,SAC9B8B,EAAY,eAEZA,EAAY,SAId/D,EAAM,KAAK,OAAO4C,CAAE,MAAMQ,CAAK,SAASW,CAAS,EAAE,EAE5C,CAAE,QAASnB,EAAI,OAAQA,CAAG,CACnC,CE/xBA,IAAAyD,GAAiB,sBAGXC,GAAY,OAAO,WAAe,KAAe,WAAY,YAAc,OAAQ,WAAoC,QAAW,WAOxI,SAASC,GAAgBC,EAA2B,CAClD,IAAIC,EACJ,GAAIH,GAEFG,EADW,WAAyG,OACzG,KAAKD,CAAK,EAAE,SAAS,QAAQ,MACnC,CACL,IAAIE,EAAS,GACb,QAAS,EAAI,EAAG,EAAIF,EAAM,OAAQ,IAChCE,GAAU,OAAO,aAAaF,EAAM,CAAC,CAAC,EAExCC,EAAS,KAAKC,CAAM,CACtB,CACA,OAAOD,EACJ,QAAQ,MAAO,GAAG,EAClB,QAAQ,MAAO,GAAG,EAClB,QAAQ,MAAO,EAAE,CACtB,CAgCO,SAASE,GAAeC,EAAsB,CAGnD,IAAMC,EADc,IAAI,YAAY,EACN,OAAOD,CAAI,EAGnCE,EAAa,GAAAC,QAAK,QAAQF,CAAS,EAGzC,OAAOG,GAAgBF,CAAU,CACnC,CChDA,IAAMG,GAAoB,mBAuBnB,SAASC,GACdC,EACAC,EACAC,EACAC,EAAoD,CAAC,EAC7C,CACR,IAAMC,EAAUD,EAAQ,SAAWL,GAC7BO,EAAUC,GAAeJ,CAAI,EACnC,MAAO,GAAGE,CAAO,IAAIJ,CAAW,IAAIC,CAAM,IAAII,CAAO,EACvD,CAgBO,SAASE,GACdC,EACAP,EAAsB,MACtBE,EAA+B,CAAC,EACxB,CACR,IAAMM,EAAWC,GAAgB,EAC3BC,EAA+B,CACnC,YAAa,GACb,SAAU,GACV,cAAe,GACf,OAAQC,EACV,EAEMC,EAAcJ,EAAS,OAAOD,EAAIG,CAAa,EACrD,OAAOZ,GAAc,UAAWE,EAAQY,EAAaV,CAAO,CAC9D,CAeO,SAASW,GACdN,EACAL,EAA+B,CAAC,EACxB,CACR,OAAOI,GAAWC,EAAI,MAAOL,CAAO,CACtC,CCtBA,IAAMY,GAA0B,sBASzB,SAASC,GAAoBC,EAAsB,CAExD,MAAO,QADSC,GAAeD,CAAI,CACb,EACxB,CAMA,SAASE,GACPC,EACmB,CAEnB,GAAI,aAAcA,EAAS,CACzB,IAAMC,EAAaD,EACnB,MAAO,CACL,MAAOC,EAAW,aAClB,QAASA,EAAW,WACpB,MAAOA,EAAW,MAClB,IAAKA,EAAW,IAChB,MAAOA,EAAW,MAClB,OAAQA,EAAW,OACnB,MAAOA,EAAW,MAElB,UAAW,KACb,CACF,CAEA,OAAOD,CACT,CAKA,SAASE,GACPC,EACAH,EACQ,CACR,IAAMI,EAAmB,CAAC,EAG1B,OAAIJ,EAAQ,SACVI,EAAO,KAAK,WAAW,mBAAmBJ,EAAQ,OAAO,CAAC,EAAE,EAE1DA,EAAQ,OACVI,EAAO,KAAK,SAASJ,EAAQ,KAAK,EAAE,EAElCA,EAAQ,QAAU,QACpBI,EAAO,KAAK,SAASJ,EAAQ,KAAK,EAAE,EAElCA,EAAQ,SAAW,QACrBI,EAAO,KAAK,UAAUJ,EAAQ,MAAM,EAAE,EAEpCA,EAAQ,QAAU,SAAcA,EAAQ,QAAU,QAAaA,EAAQ,SAAW,SACpFI,EAAO,KAAK,SAASJ,EAAQ,KAAK,EAAE,EAIlCG,IAAW,OAASH,EAAQ,WAAaA,EAAQ,YAAc,QACjEI,EAAO,KAAK,QAAQJ,EAAQ,SAAS,EAAE,EAIrCG,IAAW,QACTH,EAAQ,KACVI,EAAO,KAAK,KAAK,EAEfJ,EAAQ,OAAS,CAACA,EAAQ,KAC5BI,EAAO,KAAK,SAASJ,EAAQ,KAAK,EAAE,EAElCA,EAAQ,WAAa,CAACA,EAAQ,KAChCI,EAAO,KAAK,WAAW,GAIpBA,EAAO,OAAS,EAAI,IAAIA,EAAO,KAAK,GAAG,CAAC,GAAK,EACtD,CA6BO,SAASC,GACdF,EACAN,EACAG,EAAuD,CAAC,EAChD,CACR,IAAMM,EAAaP,GAAiBC,CAAO,EACrCO,EAAUD,EAAW,SAAWX,GAChCa,EAAUZ,GAAoBC,CAAI,EAClCY,EAAcP,GAAiBC,EAAQG,CAAU,EACvD,MAAO,GAAGC,CAAO,IAAIJ,CAAM,IAAIK,CAAO,GAAGC,CAAW,EACtD,CAkBO,SAASC,GACdC,EACAR,EAA2B,MAC3BH,EAA6B,CAAC,EACtB,CACR,IAAMY,EAAWC,GAAgB,EAC3BC,EAA+B,CACnC,YAAa,GACb,SAAU,GACV,cAAe,GACf,OAAQC,EACV,EAEMC,EAAcJ,EAAS,OAAOD,EAAIG,CAAa,EACrD,OAAOT,GAAmBF,EAAQa,EAAahB,CAAO,CACxD,CAiBO,SAASiB,GACdN,EACAX,EAA6B,CAAC,EACtB,CACR,OAAOU,GAAgBC,EAAI,MAAOX,CAAO,CAC3C,CCtPO,SAASkB,GACdC,EACiB,CACjB,MAAO,CACL,cAAcC,EAAwB,CACpC,GAAID,EAAgB,WAAa,cAAe,CAC9C,GAAM,CAAE,SAAUE,EAAG,GAAGC,CAAQ,EAAIH,EACpC,OAAOI,GAAmBH,EAAIE,CAAO,CACvC,CAEA,OAAOE,GAAcJ,EAAI,CAAE,QAASD,EAAgB,OAAQ,CAAC,CAC/D,EAEA,WAAWC,EAAwB,CACjC,OAAOK,GAAWL,CAAE,CACtB,EAEA,eAAeA,EAAwB,CACrC,OAAIA,EAAG,KAAK,QAAU,QAAaA,EAAG,KAAK,UAAY,OAC9C,GAAGA,EAAG,KAAK,MAAQA,EAAG,KAAK,OAAO,KAEvCA,EAAG,KAAK,aAAe,OAClB,GAAGA,EAAG,KAAK,UAAU,KAEvB,aACT,CACF,CACF,CCxCA,IAAAM,GAAqC,mBCiCrC,SAASC,GAAkBC,EAA4B,CACrD,QAAWC,KAAQD,EAUjB,IANGC,EAAK,OAAS,YAAcA,EAAK,OAAS,QAAUA,EAAK,OAAS,aACnE,CAACA,EAAK,GAAG,WAAW,WAAW,GAK7BA,EAAK,OAAS,WAChB,MAAO,GAGX,MAAO,EACT,CAcO,SAASC,GACdF,EACAG,EAAmC,CAAC,EACxB,CAGZ,GAAIJ,GAAkBC,CAAK,EACzB,OAAOA,EAGT,GAAM,CAAE,aAAAI,EAAe,EAAG,SAAAC,EAAW,CAAE,EAAIF,EAGrCG,EAA8D,CAAC,EAC/DC,EAA4D,CAAC,EAEnE,QAASC,EAAI,EAAGA,EAAIR,EAAM,OAAQQ,IAAK,CACrC,IAAMP,EAAOD,EAAMQ,CAAC,EAChBP,EAAK,OAAS,QAAUA,EAAK,UAAY,OAC3CK,EAAgB,KAAK,CACnB,KAAAL,EACA,QAASA,EAAK,QACd,MAAOA,EAAK,OAASA,EAAK,SAAWA,EAAK,YAAc,GACxD,cAAeO,CACjB,CAAC,EAGDD,EAAa,KAAK,CAAE,KAAAN,EAAM,cAAeO,CAAE,CAAC,CAEhD,CAEA,GAAIF,EAAgB,QAAU,EAC5B,OAAON,EAITM,EAAgB,KAAK,CAACG,EAAGC,IAAMD,EAAE,QAAUC,EAAE,OAAO,EAIpD,IAAMC,EAAkC,CAAC,EACrCC,EAAsC,CAACN,EAAgB,CAAC,CAAC,EAE7D,QAASE,EAAI,EAAGA,EAAIF,EAAgB,OAAQE,IAAK,CAC/C,IAAMK,EAAOP,EAAgBE,CAAC,EACxBM,EAAa,KAAK,IAAI,GAAGF,EAAa,IAAKG,GAAMA,EAAE,OAAO,CAAC,EAC3DC,EAAW,KAAK,IAAI,GAAGJ,EAAa,IAAKG,GAAMA,EAAE,KAAK,CAAC,EAKvDE,EAAkBJ,EAAK,SAAWC,EAAaT,EAC/Ca,EAAiBL,EAAK,QAAUG,EAEtC,GAAI,CAACC,GAAmB,CAACC,EAAgB,CAEvCP,EAAO,KAAKC,CAAY,EACxBA,EAAe,CAACC,CAAI,EACpB,QACF,CAKA,IAAMM,EAAkBD,EACpB,KAAK,IAAIL,EAAK,MAAOG,CAAQ,EAAIH,EAAK,QACtC,EAIAI,GAAmBE,GAAmBf,EACxCQ,EAAa,KAAKC,CAAI,GAGtBF,EAAO,KAAKC,CAAY,EACxBA,EAAe,CAACC,CAAI,EAExB,CACAF,EAAO,KAAKC,CAAY,EAGxB,IAAMQ,EAAuD,CAAC,EAE9D,QAAWC,KAASV,EAAQ,CAE1B,IAAMW,EAAW,KAAK,IAAI,GAAGD,EAAM,IAAKN,GAAMA,EAAE,aAAa,CAAC,EAE9D,GAAIM,EAAM,SAAW,EAEnBD,EAAa,KAAK,CAAE,KAAMC,EAAM,CAAC,EAAE,KAAM,SAAAC,CAAS,CAAC,MAC9C,CAEL,IAAMC,EAAWF,EAAM,IAAKN,GAAMA,EAAE,IAAI,EAClCS,EAAU,KAAK,IAAI,GAAGH,EAAM,IAAKN,GAAMA,EAAE,OAAO,CAAC,EACjDU,EAAQ,KAAK,IAAI,GAAGJ,EAAM,IAAKN,GAAMA,EAAE,KAAK,CAAC,EAE7CW,EAA6B,CACjC,KAAM,WACN,GAAI,qBAAqBF,CAAO,GAChC,KAAM,GAAGD,EAAS,MAAM,kBACxB,MAAOI,GAAiBJ,CAAQ,EAChC,KAAM,MACN,SAAAA,EACA,QAAAC,EACA,MAAAC,EACA,WAAYA,EAAQD,CACtB,EAEAJ,EAAa,KAAK,CAAE,KAAMM,EAAc,SAAAJ,CAAS,CAAC,CACpD,CACF,CAGA,OAAW,CAAE,KAAArB,EAAM,cAAA2B,CAAc,IAAKrB,EACpCa,EAAa,KAAK,CAAE,KAAAnB,EAAM,SAAU2B,CAAc,CAAC,EAIrD,OAAAR,EAAa,KAAK,CAACX,EAAGC,IAAMD,EAAE,SAAWC,EAAE,QAAQ,EAE5CU,EAAa,IAAKS,GAAMA,EAAE,IAAI,CACvC,CAKA,SAASF,GACPJ,EACoE,CAEpE,OADiBA,EAAS,KAAMO,GAAMA,EAAE,QAAU,OAAO,EACpC,QAEFP,EAAS,KAAMO,GAAMA,EAAE,QAAU,SAAS,EACtC,UAEJP,EAAS,KAAMO,GAAMA,EAAE,QAAU,SAAS,EACtC,WAEJP,EAAS,MACzBO,GAAMA,EAAE,QAAU,WAAaA,EAAE,QAAU,QAC9C,EACuB,UAGzB,CC/FO,SAASC,GAAgBC,EAA4B,CAAC,EAAG,CAC9D,GAAM,CACJ,eAAAC,EAAiB,GACjB,kBAAAC,EACA,gBAAiBC,EAAyB,GAC1C,aAAAC,EAAe,GACjB,EAAIJ,EAGAK,EAAkBF,EAIhBG,EAAoBC,GAAW,EACjCC,EACAC,EACAC,EACAC,EAA2B,UAC3BC,EACAC,EAGEC,EAAc,IAAI,IAGlBC,EAA4B,CAAC,EAG7BC,EAAkC,CAAC,EAGnCC,EAAgB,IAAI,IAGtBC,EAA2B,CAAC,EAG5BC,EAAY,KAAK,IAAI,EACrBC,EAAgBD,EAGhBE,EAA2B,CAC7B,YAAa,IAAI,GACnB,EAEIC,EAGEC,EAA0B,CAAC,EAC7BC,EAAa,EAOjB,SAASC,EAAUC,EAAqE,CACtF,OAAOA,EAAM,QAAUA,EAAM,SAAWA,EAAM,MAAQnB,GAAW,CACnE,CAQA,SAASoB,EAAQC,EAAsB,CAGrC,GAAIb,EAAW,OAAS,EAAG,CACzBA,EAAWA,EAAW,OAAS,CAAC,EAAE,SAAS,KAAKa,CAAI,EACpDR,EAAgB,KAAK,IAAI,EACzB,MACF,CAGA,GAAIJ,EAAc,OAAS,EAAG,CAC5B,IAAMa,EAAWb,EAAcA,EAAc,OAAS,CAAC,EAEvD,QAAWc,KAAUD,EAAS,SAAS,OAAO,EAC5C,GAAIC,EAAO,MAAO,CAChBA,EAAO,SAAS,KAAKF,CAAI,EACzBR,EAAgB,KAAK,IAAI,EACzB,MACF,CAGFS,EAAS,gBAAgB,KAAKD,CAAI,EAClCR,EAAgB,KAAK,IAAI,EACzB,MACF,CAGAF,EAAa,KAAKU,CAAI,EACtBR,EAAgB,KAAK,IAAI,CAC3B,CAMA,SAASW,GAAgBL,EAAqC,CAC5D,GAAI,CAACrB,EAAiB,OAGtB,IAAM2B,EAAKC,GAAM,EAGXC,EAAkB,IAAI,IAC5B,OAAW,CAACC,EAAIC,CAAI,IAAKtB,EACvBoB,EAAgB,IAAIC,EAAI,CACtB,GAAIC,EAAK,GACT,KAAMA,EAAK,KACX,IAAKA,EAAK,IACV,QAASA,EAAK,QACd,WAAYA,EAAK,WACjB,SAAUA,EAAK,SACf,UAAWA,EAAK,SAClB,CAAC,EAGH,IAAMC,EAAuB,CAC3B,GAAI,YAAYb,CAAU,GAC1B,WAAAA,EACA,MAAO,gBAAgBE,CAAK,EAC5B,GAAI,gBAAgBM,CAAE,EACtB,UAAW,KAAK,IAAI,EACpB,YAAaE,CACf,EAEAX,EAAU,KAAKc,CAAQ,EAGnBd,EAAU,OAASnB,GACrBmB,EAAU,MAAM,EAGlBC,GACF,CAKA,SAASc,GAAYZ,EAAqC,CACxD,OAAQA,EAAM,KAAM,CAClB,IAAK,iBAAkB,CAErBR,EAAe,CAAC,EAChBR,EAAgB,OAChBG,EAAqB,OACrBD,EAAgB,OAChBE,EAAY,MAAM,EAClBC,EAAW,OAAS,EACpBC,EAAc,OAAS,EACvBC,EAAc,MAAM,EAEpBT,EAAakB,EAAM,WACnBjB,EAAkBiB,EAAM,GACxBf,EAAgB,UAChBQ,EAAY,KAAK,IAAI,EACrBC,EAAgBD,EAEZG,IAA2B,QAAaA,IAA2BI,EAAM,aAC3EL,EAAU,UAAY,OACtBA,EAAU,cAAgB,QAE5BC,EAAyBI,EAAM,WAC/BL,EAAU,YAAc,IAAI,IAC5B,KACF,CAEA,IAAK,mBACHV,EAAgB,UAChBD,EAAgBgB,EAAM,GACtBb,EAAqBa,EAAM,WAC3BN,EAAgB,KAAK,IAAI,EACzB,MAEF,IAAK,iBACHT,EAAgB,QAChBD,EAAgBgB,EAAM,GACtBd,EAAgBc,EAAM,MACtBb,EAAqBa,EAAM,WAC3BN,EAAgB,KAAK,IAAI,EACzB,MAEF,IAAK,qBACHT,EAAgB,UAChBD,EAAgBgB,EAAM,GACtBb,EAAqBa,EAAM,WAC3BN,EAAgB,KAAK,IAAI,EACzB,MAEF,IAAK,aAAc,CACjB,IAAMe,EAAKV,EAAUC,CAAK,EAC1BZ,EAAY,IAAIqB,EAAI,CAClB,GAAAA,EACA,KAAMT,EAAM,KACZ,IAAKA,EAAM,QACX,QAASA,EAAM,GACf,WAAY,EACZ,SAAU,EACZ,CAAC,EACDN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,eAAgB,CACnB,IAAMe,EAAKV,EAAUC,CAAK,EACpBa,EAASzB,EAAY,IAAIqB,CAAE,EACjC,GAAII,EAAQ,CACV,IAAMX,EAAiB,CACrB,KAAM,OACN,GAAIW,EAAO,GACX,KAAMA,EAAO,KACb,IAAKA,EAAO,IACZ,MAAO,UACP,QAASA,EAAO,QAChB,MAAOb,EAAM,GACb,WAAYA,EAAM,WAClB,GAAIa,EAAO,WAAa,GAAK,CAAE,WAAYA,EAAO,UAAW,EAC7D,GAAIA,EAAO,UAAY,CAAE,SAAU,GAAM,UAAWA,EAAO,SAAU,CACvE,EACAZ,EAAQC,CAAI,EACZd,EAAY,OAAOqB,CAAE,CACvB,CACA,KACF,CAEA,IAAK,aAAc,CACjB,IAAMA,EAAKV,EAAUC,CAAK,EACpBa,EAASzB,EAAY,IAAIqB,CAAE,EACjC,GAAII,EAAQ,CACV,IAAMX,EAAiB,CACrB,KAAM,OACN,GAAIW,EAAO,GACX,KAAMA,EAAO,KACb,IAAKA,EAAO,IACZ,MAAO,QACP,QAASA,EAAO,QAChB,MAAOb,EAAM,GACb,WAAYA,EAAM,WAClB,MAAOA,EAAM,MACb,GAAIa,EAAO,WAAa,GAAK,CAAE,WAAYA,EAAO,UAAW,EAC7D,GAAIA,EAAO,UAAY,CAAE,SAAU,GAAM,UAAWA,EAAO,SAAU,CACvE,EACAZ,EAAQC,CAAI,EACZd,EAAY,OAAOqB,CAAE,CACvB,CACA,KACF,CAEA,IAAK,eAAgB,CACnB,IAAMA,EAAKV,EAAUC,CAAK,EACpBa,EAASzB,EAAY,IAAIqB,CAAE,EACjC,GAAII,EAAQ,CACV,IAAMX,EAAiB,CACrB,KAAM,OACN,GAAIW,EAAO,GACX,KAAMA,EAAO,KACb,IAAKA,EAAO,IACZ,MAAO,UACP,QAASA,EAAO,QAChB,MAAOb,EAAM,GACb,WAAYA,EAAM,WAClB,GAAIa,EAAO,WAAa,GAAK,CAAE,WAAYA,EAAO,UAAW,EAC7D,GAAIA,EAAO,UAAY,CAAE,SAAU,GAAM,UAAWA,EAAO,SAAU,CACvE,EACAZ,EAAQC,CAAI,EACZd,EAAY,OAAOqB,CAAE,CACvB,CACA,KACF,CAEA,IAAK,iBAAkB,CAErB,IAAMP,EAAiB,CACrB,KAAM,OACN,GAHSH,EAAUC,CAAK,EAIxB,KAAMA,EAAM,KACZ,IAAKA,EAAM,QACX,MAAO,SACP,QAASA,EAAM,GACf,MAAOA,EAAM,GACb,WAAY,CACd,EACAC,EAAQC,CAAI,EACZ,KACF,CAEA,IAAK,kBAGH,MAEF,IAAK,gBAGH,MAEF,IAAK,eAAgB,CAGnB,IAAMO,EAAKV,EAAUC,CAAK,EACpBa,EAASzB,EAAY,IAAIqB,CAAE,EAC7BI,IACFA,EAAO,SAAW,GAClBA,EAAO,UAAYb,EAAM,WAE3BN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,aAAc,CAEjB,IAAMe,EAAKV,EAAUC,CAAK,EACpBa,EAASzB,EAAY,IAAIqB,CAAE,EAC7BI,IACFA,EAAO,YAAcb,EAAM,SAAW,GAAK,GAE7CN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,yBAGHA,EAAgB,KAAK,IAAI,EACzB,MAEF,IAAK,eAAgB,CAEnB,IAAMQ,EAAiB,CACrB,KAAM,OACN,GAHSH,EAAUC,CAAK,EAIxB,KAAMA,EAAM,KACZ,IAAKA,EAAM,QACX,MAAO,UACP,QAASA,EAAM,GACf,MAAOA,EAAM,GACb,WAAY,CACd,EACAC,EAAQC,CAAI,EACZ,KACF,CAGA,IAAK,kBAAmB,CACtB,IAAMY,EAA0B,CAC9B,KAAM,YACN,MAAO,UACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,QAAS,CACP,OAAQA,EAAM,OACd,QAASA,EAAM,OACjB,CACF,EACAL,EAAU,UAAYmB,EACtBlB,EAAyBI,EAAM,WAC/BN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,wBAAyB,CAC5B,IAAMoB,EAA0B,CAC9B,KAAM,YACN,MAAO,QACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,MAAOA,EAAM,KACf,EACAL,EAAU,UAAYmB,EACtBlB,EAAyBI,EAAM,WAC/BN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,oBAAqB,CACxB,IAAMoB,EAA0B,CAC9B,KAAM,gBACN,MAAO,UACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,QAAS,CACP,OAAQA,EAAM,OACd,QAASA,EAAM,OACjB,CACF,EACAL,EAAU,cAAgBmB,EAC1BlB,EAAyBI,EAAM,WAC/BN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,0BAA2B,CAC9B,IAAMoB,EAA0B,CAC9B,KAAM,gBACN,MAAO,QACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,MAAOA,EAAM,KACf,EACAL,EAAU,cAAgBmB,EAC1BlB,EAAyBI,EAAM,WAC/BN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,kBAAmB,CACtB,IAAMoB,EAA0B,CAC9B,KAAM,cACN,MAAO,UACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,QAAS,CACP,QAASA,EAAM,OACjB,CACF,EACAL,EAAU,YAAY,IAAIK,EAAM,QAASc,CAAQ,EACjDpB,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,wBAAyB,CAC5B,IAAMoB,EAA0B,CAC9B,KAAM,cACN,MAAO,QACP,GAAId,EAAM,GACV,WAAYA,EAAM,WAClB,MAAOA,EAAM,MACb,QAAS,CACP,QAASA,EAAM,OACjB,CACF,EACAL,EAAU,YAAY,IAAIK,EAAM,QAASc,CAAQ,EACjDpB,EAAgB,KAAK,IAAI,EACzB,KACF,CAGA,IAAK,iBAAkB,CACrB,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GACxDT,EAAc,IAAIwB,EAAW,CAC3B,GAAIlC,GAAW,EACf,UAAWmB,EAAM,UACjB,QAASA,EAAM,GACf,WAAY,EACZ,UAAW,EACX,YAAa,SACb,qBAAsB,GACtB,cAAe,CACjB,CAAC,EACDN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,eAAgB,CACnB,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GAClDgB,EAASzB,EAAc,IAAIwB,CAAS,EACtCC,IACFA,EAAO,aACPA,EAAO,cAAgB,KAAK,IAAIA,EAAO,cAAehB,EAAM,QAAQ,GAEtEN,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,cAAe,CAClB,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GAClDgB,EAASzB,EAAc,IAAIwB,CAAS,EACtCC,GACFA,EAAO,YAETtB,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,eAAgB,CACnB,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GAClDgB,EAASzB,EAAc,IAAIwB,CAAS,EAC1C,GAAIC,EAAQ,CACVA,EAAO,YAAc,SACrBA,EAAO,cAAgBhB,EAAM,cAE7B,IAAME,EAAmB,CACvB,KAAM,SACN,GAAIc,EAAO,GACX,UAAWA,EAAO,UAClB,MAAO,UACP,QAASA,EAAO,QAChB,MAAOhB,EAAM,GACb,WAAYA,EAAM,GAAKgB,EAAO,QAC9B,WAAYA,EAAO,WACnB,UAAWA,EAAO,UAClB,cAAehB,EAAM,cACrB,YAAa,SACb,qBAAsBgB,EAAO,oBAC/B,EACAf,EAAQC,CAAI,EACZX,EAAc,OAAOwB,CAAS,CAChC,CACArB,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,eAAgB,CACnB,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GAClDgB,EAASzB,EAAc,IAAIwB,CAAS,EAC1C,GAAIC,EAAQ,CACVA,EAAO,YAAc,QAErB,IAAMd,EAAmB,CACvB,KAAM,SACN,GAAIc,EAAO,GACX,UAAWA,EAAO,UAClB,MAAO,QACP,MAAOhB,EAAM,MACb,QAASgB,EAAO,QAChB,MAAOhB,EAAM,GACb,WAAYA,EAAM,GAAKgB,EAAO,QAC9B,WAAYA,EAAO,WACnB,UAAWA,EAAO,UAClB,cAAehB,EAAM,SACrB,YAAa,QACb,qBAAsBgB,EAAO,oBAC/B,EACAf,EAAQC,CAAI,EACZX,EAAc,OAAOwB,CAAS,CAChC,CACArB,EAAgB,KAAK,IAAI,EACzB,KACF,CAEA,IAAK,sBAAuB,CAC1B,IAAMqB,EAAY,GAAGf,EAAM,UAAU,IAAIA,EAAM,SAAS,GAClDgB,EAASzB,EAAc,IAAIwB,CAAS,EACtCC,IACFA,EAAO,qBAAuB,IAEhCtB,EAAgB,KAAK,IAAI,EACzB,KACF,CACF,CAGAW,GAAgBL,CAAK,CACvB,CAKA,SAASiB,GAAiBjB,EAA8C,CACtE,GAAIA,EAAM,OAAS,cACjBX,EAAW,KAAK,CACd,GAAIW,EAAM,QACV,KAAMA,EAAM,KACZ,KAAMA,EAAM,UACZ,QAASA,EAAM,GACf,SAAU,CAAC,CACb,CAAC,EACDN,EAAgB,KAAK,IAAI,UAChBM,EAAM,OAAS,YAAa,CAErC,IAAMkB,EAAa7B,EAAW,UAAW8B,GAAMA,EAAE,KAAOnB,EAAM,OAAO,EACrE,GAAIkB,IAAe,GAEjB,OAKF,KAAO7B,EAAW,OAAS6B,EAAa,GAAG,CACzC,IAAME,EAAc/B,EAAW,IAAI,EAC7BgC,EACJD,EAAY,OAAS,OACjB,CACE,KAAM,OACN,GAAIA,EAAY,GAChB,KAAMA,EAAY,KAClB,MAAOE,GAAYF,EAAY,QAAQ,EACvC,QAASA,EAAY,QACrB,MAAOpB,EAAM,GACb,SAAUoB,EAAY,QACxB,EACA,CACE,KAAM,WACN,GAAIA,EAAY,GAChB,KAAMA,EAAY,KAClB,MAAOE,GAAYF,EAAY,QAAQ,EACvC,QAASA,EAAY,QACrB,MAAOpB,EAAM,GACb,SAAUoB,EAAY,SACtB,KAAMA,EAAY,OAAS,aAAe,aAAe,KAC3D,EAEN/B,EAAWA,EAAW,OAAS,CAAC,EAAE,SAAS,KAAKgC,CAAU,CAC5D,CAGA,GAAM,CAACE,CAAK,EAAIlC,EAAW,OAAO6B,EAAY,CAAC,EAEzChB,EACJqB,EAAM,OAAS,OACX,CACE,KAAM,OACN,GAAIA,EAAM,GACV,KAAMA,EAAM,KACZ,MAAOD,GAAYC,EAAM,QAAQ,EACjC,QAASA,EAAM,QACf,MAAOvB,EAAM,GACb,WAAYA,EAAM,WAClB,SAAUuB,EAAM,SAChB,SAAUvB,EAAM,QAClB,EACA,CACE,KAAM,WACN,GAAIuB,EAAM,GACV,KAAMA,EAAM,KACZ,MAAOD,GAAYC,EAAM,QAAQ,EACjC,QAASA,EAAM,QACf,MAAOvB,EAAM,GACb,WAAYA,EAAM,WAClB,SAAUuB,EAAM,SAChB,KAAMA,EAAM,OAAS,aAAe,aAAe,KACrD,EACNtB,EAAQC,CAAI,CACd,CACF,CAKA,SAASsB,GACPxB,EACM,CACN,GAAIA,EAAM,OAAS,iBACjBV,EAAc,KAAK,CACjB,GAAIU,EAAM,WACV,KAAMA,EAAM,KACZ,UAAWA,EAAM,UACjB,cAAeA,EAAM,cACrB,QAASA,EAAM,GACf,SAAU,IAAI,IACd,gBAAiB,CAAC,CACpB,CAAC,EACDN,EAAgB,KAAK,IAAI,UAChBM,EAAM,OAAS,kBAAmB,CAE3C,IAAMG,EAAWb,EAAc,KAAMmC,GAAMA,EAAE,KAAOzB,EAAM,UAAU,EACpE,GAAIG,EAAU,CAEZ,IAAMuB,EAAY1B,EAAM,YAClB2B,EAAWxB,EAAS,SAAS,IAAIuB,CAAS,EAChD,GAAIC,EAEFA,EAAS,MAAQ3B,EAAM,MAEnBA,EAAM,OAASG,EAAS,gBAAgB,OAAS,IACnDwB,EAAS,SAAS,QAAQ,GAAGxB,EAAS,eAAe,EACrDA,EAAS,gBAAkB,CAAC,OAEzB,CAEL,IAAMyB,EAAW5B,EAAM,MAAQ,CAAC,GAAGG,EAAS,eAAe,EAAI,CAAC,EAC5DH,EAAM,QACRG,EAAS,gBAAkB,CAAC,GAE9BA,EAAS,SAAS,IAAIuB,EAAW,CAC/B,MAAO1B,EAAM,YACb,UAAWA,EAAM,UACjB,MAAOA,EAAM,MACb,SAAA4B,CACF,CAAC,CACH,CACAlC,EAAgB,KAAK,IAAI,CAC3B,CACF,SAAWM,EAAM,OAAS,eAAgB,CAExC,IAAM6B,EAAQvC,EAAc,UAAWmC,GAAMA,EAAE,KAAOzB,EAAM,UAAU,EACtE,GAAI6B,IAAU,GAAI,CAChB,GAAM,CAAC1B,CAAQ,EAAIb,EAAc,OAAOuC,EAAO,CAAC,EAE1CC,EAAYxC,EAAc,OAAOuC,CAAK,EAGxCE,EAA6B,MAAM,KAAK5B,EAAS,SAAS,OAAO,CAAC,EAClE4B,EAAS,SAAW,GAAK5B,EAAS,gBAAgB,OAAS,IAC7D4B,EAAW,CACT,CACE,MAAO,UACP,MAAO,GACP,SAAU,CAAC,GAAG5B,EAAS,eAAe,CACxC,CACF,GAIF,IAAM6B,EAAsBD,EAAS,KAAME,IAAMA,GAAE,KAAK,GAAG,MAErD/B,GAAqB,CACzB,KAAM,WACN,GAAIC,EAAS,GACb,KAAMA,EAAS,KACf,MAAOmB,GACLS,EAAS,QAASE,IAAOA,GAAE,MAAQA,GAAE,SAAW,CAAC,CAAE,CACrD,EACA,QAAS9B,EAAS,QAClB,MAAOH,EAAM,GACb,WAAYA,EAAM,WAClB,UAAWG,EAAS,UACpB,cAAeA,EAAS,cACxB,YAAaH,EAAM,aAAegC,EAClC,SAAAD,CACF,EACA9B,EAAQC,EAAI,EACZZ,EAAc,KAAK,GAAGwC,CAAS,EAC/BpC,EAAgB,KAAK,IAAI,CAC3B,CACF,CACF,CAKA,SAAS4B,GAAYM,EAAiC,CACpD,OAAIA,EAAS,SAAW,EAAU,UAEjBA,EAAS,KAAMM,GAAMA,EAAE,QAAU,OAAO,EACpC,QAEFN,EAAS,MACzBM,GAAMA,EAAE,QAAU,WAAaA,EAAE,QAAU,QAC9C,EACuB,UAEJN,EAAS,KAAMM,GAAMA,EAAE,QAAU,SAAS,EACtC,UAEhB,SACT,CAKA,SAASC,IAA8B,CACrC,IAAMC,EAAQ,CAAC,GAAG5C,CAAY,EAG9B,OAAW,CAAC,CAAEqB,CAAM,IAAKzB,EACvBgD,EAAM,KAAK,CACT,KAAM,OACN,GAAIvB,EAAO,GACX,KAAMA,EAAO,KACb,IAAKA,EAAO,IACZ,MAAO,UACP,QAASA,EAAO,QAChB,GAAIA,EAAO,WAAa,GAAK,CAAE,WAAYA,EAAO,UAAW,EAC7D,GAAIA,EAAO,UAAY,CAAE,SAAU,GAAM,UAAWA,EAAO,SAAU,CACvE,CAAC,EAIH,OAAW,CAAC,CAAEG,CAAM,IAAKzB,EACvB6C,EAAM,KAAK,CACT,KAAM,SACN,GAAIpB,EAAO,GACX,UAAWA,EAAO,UAClB,MAAO,UACP,QAASA,EAAO,QAChB,WAAYA,EAAO,WACnB,UAAWA,EAAO,UAClB,cAAeA,EAAO,cACtB,YAAaA,EAAO,YACpB,qBAAsBA,EAAO,oBAC/B,CAAsB,EAGxB,OAAOoB,CACT,CAKA,SAAS7B,IAAoB,CAC3B,IAAIqB,EAAWO,GAAgB,EAG3B5D,IACFqD,EAAWS,GAAqBT,EAAUpD,CAAiB,GAG7D,IAAM8D,EAAqB,CACzB,KAAM,WACN,GAAIxD,GAAcF,EAClB,WAAYE,GAAcF,EAC1B,MAAOK,EACP,QAASF,EACT,MAAOC,EACP,WAAYG,EACZ,SAAAyC,EACA,MAAO1C,CACT,EAGMqD,EACJ5C,EAAU,YAAc,QACxBA,EAAU,gBAAkB,QAC5BA,EAAU,YAAY,KAAO,EAE/B,MAAO,CACL,KAAA2C,EACA,SAAU,CACR,UAAA7C,EACA,cAAAC,CACF,EACA,GAAI6C,GAAY,CAAE,MAAO5C,CAAU,CACrC,CACF,CAKA,SAAS6C,GAAc,CACrB1D,EAAa,OACbC,EAAkB,OAClBC,EAAgB,OAChBC,EAAgB,UAChBC,EAAgB,OAChBC,EAAqB,OACrBC,EAAY,MAAM,EAClBC,EAAW,OAAS,EACpBC,EAAc,OAAS,EACvBC,EAAc,MAAM,EACpBC,EAAe,CAAC,EAChBC,EAAY,KAAK,IAAI,EACrBC,EAAgBD,EAEhBE,EAAY,CACV,YAAa,IAAI,GACnB,EACAC,EAAyB,OAEzBC,EAAU,OAAS,EACnBC,EAAa,CACf,CAKA,SAAS2C,IAA6B,CACpC,MAAO,CAAC,GAAG5C,CAAS,CACtB,CAKA,SAAS6C,GAAcb,EAAuC,CAC5D,OAAOhC,EAAUgC,CAAK,CACxB,CAKA,SAASc,EAAQd,EAAuC,CACtD,OAAOhC,EAAUgC,CAAK,GAAG,EAC3B,CAKA,SAASe,GAAuB,CAC9B/C,EAAU,OAAS,EACnBC,EAAa,CACf,CAEA,MAAO,CACL,YAAAc,GACA,iBAAAK,GACA,oBAAAO,GACA,MAAAjB,GACA,MAAAiC,EAEA,aAAAC,GACA,cAAAC,GACA,QAAAC,EACA,eAAAC,EAEA,IAAI,gBAAiB,CACnB,OAAOxD,EAAY,KAAO,CAC5B,EAEA,IAAI,OAAQ,CACV,OAAOH,CACT,EAEA,IAAI,eAAgB,CAClB,OAAOY,EAAU,MACnB,EAEA,IAAI,kBAAmB,CACrB,OAAOlB,CACT,EAEA,oBAAoBkE,EAAwB,CAC1ClE,EAAkBkE,CACpB,CACF,CACF,CF39BA,IAAMC,GAAsB,IAKtBC,GAAsB,IAmCrB,SAASC,GACdC,EACAC,EACa,CACb,GAAM,CACJ,MAAAC,EACA,WAAAC,EAAaN,GACb,UAAAO,EAAYN,EACd,EAAIE,EAGAK,EACAC,EAAS,GACTC,EAEAC,EACAC,EACAC,EACAC,EACAC,EAEAC,KAA4C,OAAG,MAAS,EAGtDC,EAAYC,GAAgB,CAAE,eAAgB,EAAK,CAAC,EAE1D,SAASC,GAAoB,CACvBP,IACF,aAAaA,CAAa,EAC1BA,EAAgB,QAEdC,IACF,aAAaA,CAAY,EACzBA,EAAe,OAEnB,CAEA,eAAeO,GAA2C,CACxD,GAAI,CAACV,GAAa,CAACD,EAAQ,SAAO,OAAG,MAAS,EAE9C,IAAMY,EAAWX,EACjBC,EAASU,EACTX,EAAY,OACZS,EAAY,EAEZ,GAAI,CACF,OAAKX,EAKH,MAAMJ,EAAU,eAAeI,EAAWa,EAAUhB,CAAK,EAHzDG,EAAY,MAAMJ,EAAU,QAAQiB,EAAUhB,CAAK,EAKrDS,EAAe,KAAK,IAAI,EACxBE,KAAkB,OAAG,MAAS,EACvBA,CACT,MAAQ,CAEN,OAAAA,KAAkB,QAAI,gBAAgB,EAC/BA,CACT,CACF,CAEA,SAASM,GAAsB,CAEzBV,GACF,aAAaA,CAAa,EAI5BA,EAAgB,WAAW,IAAM,CAC1BQ,EAAM,CACb,EAAGd,CAAU,EAIb,IAAMiB,EAAgBT,GAAgBC,EACtC,GAAI,CAACF,GAAgBU,IAAkB,OAAW,CAChD,IAAMC,EAAqB,KAAK,IAAI,EAAID,EAClCE,EAAmB,KAAK,IAAI,EAAGlB,EAAYiB,CAAkB,EAEnEX,EAAe,WAAW,IAAM,CAC9BA,EAAe,OACVO,EAAM,CACb,EAAGK,CAAgB,CACrB,CACF,CAEA,SAASC,EAAOC,EAA6C,CAC3D,GAAKlB,EAQL,IALIM,IAAoB,SACtBA,EAAkB,KAAK,IAAI,GAIzB,SAAUY,EAEZjB,EAAYiB,EACZhB,EAASgB,MACJ,CAEL,IAAMC,EAAQD,EACVC,EAAM,OAAS,eAAiBA,EAAM,OAAS,YACjDX,EAAU,iBAAiBW,CAAwC,EAEnEA,EAAM,OAAS,kBACfA,EAAM,OAAS,mBACfA,EAAM,OAAS,eAEfX,EAAU,oBAAoBW,CAAoE,EAElGX,EAAU,YAAYW,CAA+B,EAEvDlB,EAAYO,EAAU,MAAM,EAC5BN,EAASD,CACX,CAEAY,EAAc,EAChB,CAEA,eAAeO,EAASC,EAAyB,YAA4B,CAC3E,GAAI,CAACrB,EAAQ,OAEbA,EAAS,GACTU,EAAY,EAGZ,IAAMY,EAAUrB,GAAaC,GAAUM,EAAU,MAAM,EAEvD,MAAMb,EAAU,SAASI,EAAWuB,EAAS1B,EAAOyB,CAAM,CAC5D,CAEA,SAASE,GAAe,CACjBvB,IAELA,EAAS,GACTU,EAAY,EAERX,GAAaJ,EAAU,QACpBA,EAAU,OAAOI,CAAS,EAEnC,CAEA,SAASyB,GAAmC,CAC1C,OAAOzB,CACT,CAEA,SAAS0B,GAAoB,CAC3B,OAAOzB,CACT,CAEA,MAAO,CACL,OAAAiB,EACA,SAAAG,EACA,OAAAG,EACA,aAAAC,EACA,SAAAC,CACF,CACF,CZxNA,SAASC,GAAcC,EAA4C,CACjE,OAAQA,EAAG,KAAK,MAAO,CACrB,IAAK,UACH,MAAO,YACT,IAAK,QACH,MAAO,SACT,IAAK,UACH,MAAO,YACT,QACE,MAAO,SACX,CACF,CAkBO,SAASC,GACdC,EACAC,EACU,CACV,GAAM,CAAE,gBAAAC,EAAiB,WAAAC,EAAa,IAAK,UAAAC,EAAY,GAAK,EAAIJ,EAGhE,GAAI,CAACE,EACH,MAAM,IAAI,MACR,GAAGD,EAAQ,IAAI,mGAEjB,EAIF,IAAMI,EAAMC,GAAsBJ,CAAe,EAEjD,eAAeK,EACbT,EACAU,EAA+B,CAAC,EACc,CAC9C,IAAMC,EAAQD,EAAc,OAAS,WAC/BE,EAASb,GAAcC,CAAE,EAE/B,GAAI,CACF,IAAMa,EAAUV,EAAQ,aAAa,CAAE,GAAAH,EAAI,MAAAW,EAAO,OAAAC,CAAO,EAAGL,CAAG,EACzDO,EAAY,MAAMX,EAAQ,QAAQU,CAAO,EAC/C,SAAO,OAAGC,GAAW,SAAS,CAAC,CACjC,MAAQ,CACN,SAAO,QAAI,aAAa,CAC1B,CACF,CAEA,SAASC,EAAWC,EAAiD,CACnE,OAAOC,GACL,CACE,GAAGD,EACH,WAAYA,EAAe,YAAcX,EACzC,UAAWW,EAAe,WAAaV,CACzC,EACA,CACE,MAAM,QAAQN,EAAIW,EAAO,CACvB,IAAME,EAAUV,EAAQ,aACtB,CAAE,GAAAH,EAAI,MAAAW,EAAO,OAAQ,SAAU,EAC/BJ,CACF,EAEA,OADkB,MAAMJ,EAAQ,QAAQU,CAAO,IAC7B,SAAS,CAC7B,EAEA,MAAM,eAAeC,EAAWd,EAAIW,EAAO,CACzC,IAAME,EAAUV,EAAQ,aACtB,CAAE,GAAAH,EAAI,MAAAW,EAAO,OAAQ,SAAU,EAC/BJ,CACF,EACA,MAAMJ,EAAQ,WAAWW,EAAyBD,CAAO,CAC3D,EAEA,MAAM,SAASC,EAAWd,EAAIW,EAAOC,EAAQ,CAC3C,IAAMC,EAAUV,EAAQ,aAAa,CAAE,GAAAH,EAAI,MAAAW,EAAO,OAAAC,CAAO,EAAGL,CAAG,EAC3DO,EACF,MAAMX,EAAQ,WAAWW,EAAyBD,CAAO,EAEzD,MAAMV,EAAQ,QAAQU,CAAO,CAEjC,EAEA,MAAM,OAAOC,EAAW,CAClBX,EAAQ,YAAcW,GACxB,MAAMX,EAAQ,WAAWW,CAAuB,CAEpD,CACF,CACF,CACF,CAEA,MAAO,CACL,OAAAL,EACA,WAAAM,EACA,QAAS,IAAMZ,EAAQ,KAAK,YAAY,CAC1C,CACF,CehIA,IAAAe,GAAuD,mBAiEjDC,GAA4D,CAChE,QAAS,4BACT,UAAW,qBACX,OAAQ,MACR,UAAW,aACb,EA+BO,SAASC,GACdC,EACAC,EACyB,CACzB,GAAM,CAAE,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,QAAAC,CAAQ,EAAIN,EAGrDO,EAAkCN,GAAM,OAE5C,eAAeO,GAAkD,CAC/D,GAAID,EAAQ,SAAO,OAAGA,CAAM,EAE5B,GAAI,CAEF,GAAM,CAAE,UAAAE,CAAU,EAAI,KAAM,wCAC5B,OAAAF,EAAS,IAAIE,EAAUP,CAAK,KACrB,OAAGK,CAAM,CAClB,MAAQ,CACN,SAAO,QAAI,oBAAoB,CACjC,CACF,CAGA,IAAIG,EAAuB,WAE3B,MAAO,CACL,KAAM,QAEN,aACE,CACE,GAAAC,EACA,MAAAC,EACA,OAAAC,CACF,EACAC,EACc,CAEdJ,EAAeE,EAGf,IAAMG,EAAuB,CAC3B,CACE,KAAM,SACN,KAAM,CAAE,KAAM,aAAc,KAAM,GAJxBjB,GAAce,CAAM,CAIY,IAAID,CAAK,EAAG,CACxD,EACA,CACE,KAAM,UACN,KAAM,CACJ,KAAM,SACN,KAAM,YAAYE,EAAI,WAAWH,CAAE,CAAC,kBAAkBG,EAAI,eAAeH,CAAE,CAAC,gBAAgBE,CAAM,EACpG,CACF,EACA,CACE,KAAM,QACN,UAAWC,EAAI,cAAcH,CAAE,EAC/B,SAAU,qBAAqBC,CAAK,EACtC,EACA,CACE,KAAM,UACN,SAAU,CACR,CACE,KAAM,SACN,KAAM,mBAAmB,KAAK,MAAM,KAAK,IAAI,EAAI,GAAI,CAAC,kCAAkC,IAAI,KAAK,EAAE,YAAY,CAAC,GAClH,CACF,CACF,CACF,EAEA,MAAO,CACL,QAAAT,EACA,KAAMS,EACN,OAAAG,EACA,SAAAX,EACA,WAAYC,EACZ,SAAUC,CACZ,CACF,EAEA,MAAM,QAAQU,EAA+C,CAC3D,IAAMC,EAAe,MAAMT,EAAU,EACrC,GAAI,CAACS,EAAa,GAChB,MAAM,IAAI,MAAM,6BAA6B,EAE/C,IAAMC,EAAcD,EAAa,MAC3BE,EAAeH,EAEfI,EAAS,MAAMF,EAAY,KAAK,YAAYC,CAAY,EAC9D,GAAI,CAACC,EAAO,GACV,MAAM,IAAI,MAAM,sBAAsBA,EAAO,KAAK,EAAE,EAEtD,OAAOA,EAAO,EAChB,EAEA,MAAM,WAAWC,EAAmBL,EAAiC,CACnE,IAAMC,EAAe,MAAMT,EAAU,EACrC,GAAI,CAACS,EAAa,GAChB,MAAM,IAAI,MAAM,6BAA6B,EAE/C,IAAMC,EAAcD,EAAa,MAC3BE,EAAeH,EAEfI,EAAS,MAAMF,EAAY,KAAK,OAAO,CAC3C,GAAGC,EACH,GAAIE,CACN,CAAC,EACD,GAAI,CAACD,EAAO,GACV,MAAM,IAAI,MAAM,wBAAwBA,EAAO,KAAK,EAAE,CAE1D,CACF,CACF,ChBnIO,SAASE,GACdC,EACAC,EACU,CACV,GAAM,CAAE,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,QAAAC,EAAS,GAAGC,CAAY,EACnEP,EAEIQ,EAAUC,GACd,CACE,MAAAP,EACA,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,QAAAC,CACF,EACAL,CACF,EAEA,OAAOS,GAAeH,EAAaC,CAAO,CAC5C","names":["exports","errorWithCode","requestErrorWithOriginal","httpErrorFromResponse","platformErrorFromResult","rateLimitedErrorWithDelay","ErrorCode","error","code","codedError","original","attachOriginal","response","nonNullHeaders","k","result","retrySec","require_package","__commonJSMin","exports","module","exports","addAppMetadata","getUserAgent","os","__importStar","node_path_1","packageJson","replaceSlashes","s","baseUserAgent","appMetadata","name","version","appIdentifier","LogLevel","exports","ConsoleLogger","_ConsoleLogger","level","name","msg","a","b","map","key","value","exports","getLogger","logger_1","logger_2","instanceCount","name","level","existingLogger","instanceId","logger","exports","policies","require_request","__commonJSMin","exports","require_response","__commonJSMin","exports","require_delayed_stream","__commonJSMin","exports","module","Stream","util","DelayedStream","source","options","delayedStream","option","realEmit","args","r","message","require_combined_stream","__commonJSMin","exports","module","util","Stream","DelayedStream","CombinedStream","options","combinedStream","option","stream","isStreamLike","newStream","dest","getStream","value","self","err","data","message","require_db","__commonJSMin","exports","module","require_mime_db","__commonJSMin","exports","module","require_mime_types","__commonJSMin","exports","db","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","contentType","extension","lookup","populateMaps","type","match","mime","str","exts","path","extensions","types","preference","i","from","to","require_defer","__commonJSMin","exports","module","defer","fn","nextTick","require_async","__commonJSMin","exports","module","defer","async","callback","isAsync","err","result","require_abort","__commonJSMin","exports","module","abort","state","clean","key","require_iterate","__commonJSMin","exports","module","async","abort","iterate","list","iterator","state","callback","key","runJob","error","output","item","aborter","require_state","__commonJSMin","exports","module","state","list","sortMethod","isNamedList","initState","a","b","require_terminator","__commonJSMin","exports","module","abort","async","terminator","callback","require_parallel","__commonJSMin","exports","module","iterate","initState","terminator","parallel","list","iterator","callback","state","error","result","require_serialOrdered","__commonJSMin","exports","module","iterate","initState","terminator","serialOrdered","ascending","descending","list","iterator","sortMethod","callback","state","iteratorHandler","error","result","a","b","require_serial","__commonJSMin","exports","module","serialOrdered","serial","list","iterator","callback","require_asynckit","__commonJSMin","exports","module","require_es_object_atoms","__commonJSMin","exports","module","require_es_errors","__commonJSMin","exports","module","require_eval","__commonJSMin","exports","module","require_range","__commonJSMin","exports","module","require_ref","__commonJSMin","exports","module","require_syntax","__commonJSMin","exports","module","require_type","__commonJSMin","exports","module","require_uri","__commonJSMin","exports","module","require_abs","__commonJSMin","exports","module","require_floor","__commonJSMin","exports","module","require_max","__commonJSMin","exports","module","require_min","__commonJSMin","exports","module","require_pow","__commonJSMin","exports","module","require_round","__commonJSMin","exports","module","require_isNaN","__commonJSMin","exports","module","a","require_sign","__commonJSMin","exports","module","$isNaN","number","require_gOPD","__commonJSMin","exports","module","require_gopd","__commonJSMin","exports","module","$gOPD","require_es_define_property","__commonJSMin","exports","module","$defineProperty","require_shams","__commonJSMin","exports","module","obj","sym","symObj","symVal","_","syms","descriptor","require_has_symbols","__commonJSMin","exports","module","origSymbol","hasSymbolSham","require_Reflect_getPrototypeOf","__commonJSMin","exports","module","require_Object_getPrototypeOf","__commonJSMin","exports","module","$Object","require_implementation","__commonJSMin","exports","module","ERROR_MESSAGE","toStr","max","funcType","concatty","a","b","arr","i","j","slicy","arrLike","offset","joiny","joiner","str","that","target","args","bound","binder","result","boundLength","boundArgs","Empty","require_function_bind","__commonJSMin","exports","module","implementation","require_functionCall","__commonJSMin","exports","module","require_functionApply","__commonJSMin","exports","module","require_reflectApply","__commonJSMin","exports","module","require_actualApply","__commonJSMin","exports","module","bind","$apply","$call","$reflectApply","require_call_bind_apply_helpers","__commonJSMin","exports","module","bind","$TypeError","$call","$actualApply","args","require_get","__commonJSMin","exports","module","callBind","gOPD","hasProtoAccessor","desc","$Object","$getPrototypeOf","value","require_get_proto","__commonJSMin","exports","module","reflectGetProto","originalGetProto","getDunderProto","O","require_hasown","__commonJSMin","exports","module","call","$hasOwn","bind","require_get_intrinsic","__commonJSMin","exports","module","undefined","$Object","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","abs","floor","max","min","pow","round","sign","$Function","getEvalledConstructor","expressionSyntax","$gOPD","$defineProperty","throwTypeError","ThrowTypeError","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","$apply","$call","needsEval","TypedArray","INTRINSICS","errorProto","doEval","name","value","fn","gen","LEGACY_ALIASES","bind","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","stringToPath","string","first","last","result","match","number","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","i","isOwn","part","desc","require_shams","__commonJSMin","exports","module","hasSymbols","require_es_set_tostringtag","__commonJSMin","exports","module","GetIntrinsic","$defineProperty","hasToStringTag","hasOwn","$TypeError","toStringTag","object","value","overrideIfSet","nonConfigurable","require_populate","__commonJSMin","exports","module","dst","src","prop","require_form_data","__commonJSMin","exports","module","CombinedStream","util","path","http","https","parseUrl","fs","Stream","crypto","mime","asynckit","setToStringTag","hasOwn","populate","FormData","options","option","field","value","append","header","footer","valueLength","callback","err","stat","fileSize","response","contentDisposition","contentType","contents","headers","prop","filename","next","lastPart","userHeaders","formHeaders","boundary","dataBuffer","i","len","knownLength","hasKnownLength","cb","values","length","params","request","defaults","onResponse","error","responce","require_proxy_from_env","__commonJSMin","exports","parseUrl","DEFAULT_PORTS","stringEndsWith","s","getProxyForUrl","url","parsedUrl","proto","hostname","port","shouldProxy","proxy","getEnv","NO_PROXY","parsedProxy","parsedProxyHostname","parsedProxyPort","key","require_ms","__commonJSMin","exports","module","s","m","h","d","w","y","val","options","type","parse","fmtLong","fmtShort","str","match","ms","msAbs","plural","name","isPlural","require_common","__commonJSMin","exports","module","setup","env","createDebug","coerce","disable","enable","enabled","destroy","key","selectColor","namespace","hash","i","prevTime","enableOverride","namespacesCache","enabledCache","debug","args","self","curr","ms","index","match","format","formatter","val","extend","v","delimiter","newDebug","namespaces","split","ns","matchesTemplate","search","template","searchIndex","templateIndex","starIndex","matchIndex","name","skip","require_browser","__commonJSMin","exports","module","formatArgs","save","load","useColors","localstorage","warned","m","args","c","index","lastC","match","namespaces","r","formatters","v","error","require_has_flag","__commonJSMin","exports","module","flag","argv","prefix","position","terminatorPosition","require_supports_color","__commonJSMin","exports","module","os","tty","hasFlag","env","forceColor","translateLevel","level","supportsColor","haveStream","streamIsTTY","min","osRelease","sign","version","getSupportLevel","stream","require_node","__commonJSMin","exports","module","tty","util","init","log","formatArgs","save","load","useColors","supportsColor","key","obj","prop","_","k","val","args","name","c","colorCode","prefix","getDate","namespaces","debug","keys","i","formatters","v","str","require_src","__commonJSMin","exports","module","require_debug","__commonJSMin","exports","module","debug","require_follow_redirects","__commonJSMin","exports","module","url","URL","http","https","Writable","assert","debug","looksLikeNode","looksLikeBrowser","looksLikeV8","isFunction","useNativeURL","error","preservedUrlFields","events","eventHandlers","event","arg1","arg2","arg3","InvalidUrlError","createErrorType","RedirectionError","TooManyRedirectsError","MaxBodyLengthExceededError","WriteAfterEndError","destroy","noop","RedirectableRequest","options","responseCallback","self","response","cause","destroyRequest","data","encoding","callback","isString","isBuffer","currentRequest","name","value","msecs","destroyOnTimeout","socket","startTimer","clearTimer","method","a","b","property","searchPos","protocol","nativeProtocol","scheme","request","i","buffers","writeNext","buffer","statusCode","location","requestHeaders","beforeRedirect","removeMatchingHeaders","currentHostHeader","currentUrlParts","parseUrl","currentHost","currentUrl","redirectUrl","resolveUrl","spreadUrlObject","isSubdomain","responseDetails","requestDetails","wrap","protocols","nativeProtocols","wrappedProtocol","input","isURL","validateUrl","get","wrappedRequest","parsed","relative","base","urlObject","target","spread","key","regex","headers","lastValue","header","code","message","baseClass","CustomError","properties","subdomain","domain","dot","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","i","extend","a","b","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","data","cb","asap","isIterable","utils$1","AxiosError","_AxiosError","error","code","config","request","response","customProps","axiosError","message","utils","AxiosError$1","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","PlatformFormData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","url","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","h","InterceptorManager$1","transitionalDefaults","URLSearchParams","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","length","randomValues","crypto","platform$1","FormData","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","e","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","CanceledError$1","settle","resolve","reject","validateStatus","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","VERSION","parseProtocol","DATA_URL_PATTERN","fromDataURI","uri","asBlob","_Blob","protocol","mime","isBase64","body","buffer","kInternals","AxiosTransformStream","stream","internals","event","chunk","encoding","callback","maxRate","readableHighWaterMark","timeWindow","divider","bytesThreshold","minChunkSize","pushChunk","_chunk","_callback","bytes","transformChunk","chunkSize","chunkRemainder","maxChunkSize","bytesLeft","passed","now","transformNextChunk","err","AxiosTransformStream$1","asyncIterator","readBlob","blob","readBlob$1","BOUNDARY_ALPHABET","textEncoder","util","CRLF","CRLF_BYTES","CRLF_BYTES_COUNT","FormDataPart","escapeName","isStringValue","formDataToStream","form","headersHandler","tag","boundary","boundaryBytes","footerBytes","contentLength","parts","part","computedHeaders","Readable","formDataToStream$1","ZlibHeaderTransformStream","ZlibHeaderTransformStream$1","callbackify","args","callbackify$1","speedometer","samplesCount","min","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","estimateDataURLDecodedBytes","comma","meta","effectiveLen","pad","idx","tailIsPct3D","j","zlibOptions","zlib","brotliOptions","isBrotliSupported","httpFollow","httpsFollow","followRedirects","isHttps","supportedProtocols","flushOnFinish","flush","Http2Sessions","authority","authoritySessions","sessionHandle","sessionOptions","session","http2","removed","removeSession","entries","originalRequestFn","sessionTimeout","streamsCount","http2Sessions","dispatchBeforeRedirect","responseDetails","setProxy","configProxy","location","proxy","proxyUrl","proxyFromEnv","base64","proxyHost","redirectOptions","isHttpAdapterSupported","wrapAsync","asyncExecutor","onDone","isDone","done","isRejected","_resolve","_reject","reason","onDoneHandler","resolveFamily","address","family","buildAddressEntry","http2Transport","http2Options","HTTP2_HEADER_SCHEME","HTTP2_HEADER_METHOD","HTTP2_HEADER_PATH","HTTP2_HEADER_STATUS","http2Headers","req","responseHeaders","httpAdapter","lookup","httpVersion","responseType","responseEncoding","isHttp2","_lookup","hostname","opt","arg0","addresses","addr","abortEmitter","EventEmitter","abort","onFinished","offListeners","fullPath","dataUrl","convertedData","onUploadProgress","onDownloadProgress","maxUploadRate","maxDownloadRate","userBoundary","formHeaders","knownLength","auth","username","password","urlUsername","urlPassword","customErr","transport","isHttpsRequest","https","http","res","streams","responseLength","transformStream","responseStream","lastRequest","responseBuffer","totalResponseBytes","responseData","socket","timeout","timeoutErrorMessage","ended","errored","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","allowedHeaders","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","msg","cancel","composeSignals","signals","controller","aborted","onabort","unsubscribe","signal","composeSignals$1","streamChunk","pos","end","readBytes","iterable","readStream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","_CancelToken","executor","resolvePromise","onfulfilled","c","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","instance","axios","promises","require_is_electron","__commonJSMin","exports","module","isElectron","require_is_stream","__commonJSMin","exports","module","isStream","stream","require_eventemitter3","__commonJSMin","exports","module","has","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","args","length","j","require_p_finally","__commonJSMin","exports","module","promise","onFinally","val","resolve","err","require_p_timeout","__commonJSMin","exports","module","pFinally","TimeoutError","message","pTimeout","promise","milliseconds","fallback","resolve","reject","timer","error","timeoutError","require_lower_bound","__commonJSMin","exports","lowerBound","array","value","comparator","first","count","step","it","require_priority_queue","__commonJSMin","exports","lower_bound_1","PriorityQueue","run","options","element","index","b","item","require_dist","__commonJSMin","exports","EventEmitter","p_timeout_1","priority_queue_1","empty","timeoutError","PQueue","options","_a","_b","_c","_d","now","delay","canInitializeInterval","job","newConcurrency","fn","resolve","reject","run","operation","error","functions","function_","existingResolve","milliseconds","require_retry_operation","__commonJSMin","exports","module","RetryOperation","timeouts","options","err","currentTime","timeout","self","fn","timeoutOps","counts","mainError","mainErrorCount","error","message","count","require_retry","__commonJSMin","exports","RetryOperation","options","timeouts","opts","key","i","b","attempt","random","timeout","obj","methods","method","original","op","args","callback","err","require_retry","__commonJSMin","exports","module","require_p_retry","__commonJSMin","exports","module","retry","networkErrorMsgs","AbortError","message","decorateErrorWithCounts","error","attemptNumber","options","retriesLeft","isNetworkError","errorMessage","pRetry","input","resolve","reject","operation","ChatStreamer","client","logger","args","options","_a","details","response","exports","exports","getFileUploadJob","getMultipleFileUploadJobs","getFileData","getFileDataLength","getFileDataAsStream","getAllFileUploadsToComplete","warnIfNotUsingFilesUploadV2","warnIfChannels","errorIfChannelsCsv","errorIfInvalidOrMissingFileData","warnIfMissingOrInvalidFileNameAndDefault","warnIfLegacyFileType","buildMissingFileIdError","buildFileSizeErrorMsg","buildLegacyFileTypeWarning","buildMissingFileNameWarning","buildMissingExtensionWarning","buildLegacyMethodWarning","buildGeneralFilesUploadWarning","buildFilesUploadMissingMessage","buildChannelsWarning","buildMultipleChannelsErrorMsg","buildInvalidFilesUploadParamError","node_fs_1","node_stream_1","errors_1","options","logger","fileName","fileData","fileDataBytesLength","fileUploadJob","_a","_b","_d","_c","upload","blocks","channel_id","channels","initial_comment","thread_ts","uploadJobArgs","file","data","readable","chunks","resolve","reject","chunk","content","fileUploads","toComplete","file_id","title","compareString","fileThreadDestinationArgument","method","isTargetMethod","hasFile","hasContent","DEFAULT_FILENAME","filename","exports","delay","ms","resolve","require_eventemitter3","__commonJSMin","exports","module","has","prefix","Events","EE","fn","context","once","addListener","emitter","event","listener","evt","clearEvent","EventEmitter","names","events","name","handlers","i","l","ee","listeners","a1","a2","a3","a4","a5","len","args","length","j","require_blocks","__commonJSMin","exports","require_extensions","__commonJSMin","exports","require_dialog","__commonJSMin","exports","require_app","__commonJSMin","exports","require_assistant","__commonJSMin","exports","require_call","__commonJSMin","exports","require_channel","__commonJSMin","exports","require_dnd","__commonJSMin","exports","require_email","__commonJSMin","exports","require_emoji","__commonJSMin","exports","require_function","__commonJSMin","exports","require_grid_migration","__commonJSMin","exports","require_group","__commonJSMin","exports","require_im","__commonJSMin","exports","require_invite","__commonJSMin","exports","require_link_shared","__commonJSMin","exports","require_member","__commonJSMin","exports","require_message","__commonJSMin","exports","require_message_metadata","__commonJSMin","exports","require_pin","__commonJSMin","exports","require_reaction","__commonJSMin","exports","require_shared_channel","__commonJSMin","exports","require_star","__commonJSMin","exports","require_steps_from_apps","__commonJSMin","exports","require_subteam","__commonJSMin","exports","require_team","__commonJSMin","exports","require_token","__commonJSMin","exports","require_user","__commonJSMin","exports","__exportStar","exports","require_message_attachments","__commonJSMin","exports","EntityType","exports","CustomFieldType","require_views","__commonJSMin","exports","__exportStar","exports","eventemitter3_1","WebClient_1","bindApiCall","self","method","bindApiCallWithOptionalArgument","bindFilesUploadV2","Methods","exports","__exportStar","exports","buildThreadTsWarningMessage","node_path_1","node_querystring_1","node_util_1","node_zlib_1","__importDefault","axios_1","form_data_1","is_electron_1","is_stream_1","p_queue_1","p_retry_1","__importStar","chat_stream_1","errors_1","file_upload_1","helpers_1","instrument_1","logger_1","methods_1","retry_policies_1","axiosHeaderPropsToIgnore","defaultFilename","defaultPageSize","noopPageReducer","WebClientEvent","WebClient","_WebClient","token","slackApiUrl","logger","logLevel","maxRequestConcurrency","retryConfig","agent","tls","timeout","rejectRateLimitedCalls","headers","teamId","allowAbsoluteUrls","attachOriginalToWebAPIRequestError","requestInterceptor","adapter","config","method_1","method","options","warnDeprecations","warnIfFallbackIsMissing","warnIfThreadTsIsNotString","url","response","result","msg","errReg","warnReg","errMatch","warnMatch","shouldStop","reduce","pageSize","limit","generatePages","paginationOptions","__await","paginationOptionsForNextPage","pageReducer","index","__awaiter","pageIterator","firstPage","accumulator","_d","pageIterator_1","__asyncValues","pageIterator_1_1","_a","_c","page","params","buffer_size","args","__rest","fileUploads","res","idx","upload","toComplete","job","upload_url","file_id","filename","data","body","uploadRes","returnData","url_1","body_1","task","redact","allHeaders","acc","cur","retrySec","parseRetryHeaders","error","e","containsBinaryData","flattened","key","value","serializedValue","form","frm","opts","streamOrBuffer","header","initialValue","isGzipResponse","unzippedData","resolve","reject","err","buf","fileData","dataset","previousResult","retryAfter","depMethod","isTargetMethod","hasAttachments","missingAttachmentFallbackDetected","attachment","isEmptyText","buildMissingTextWarning","buildMissingFallbackWarning","errors_1","exports","instrument_1","logger_1","retry_policies_1","__importDefault","__exportStar","WebClient_1","slack_exports","__export","createSlackNotifier","__toCommonJS","import_awaitly","countSteps","ir","countInNodes","nodes","count","node","branch","import_awaitly","isStepNode","node","isParallelNode","node","isRaceNode","isDecisionNode","isStreamNode","formatDuration","ms","minutes","seconds","generateId","DIM","FG_RED","FG_GREEN","FG_YELLOW","FG_BLUE","FG_GRAY","FG_WHITE","defaultColorScheme","FG_WHITE","FG_YELLOW","FG_GREEN","FG_RED","FG_GRAY","FG_BLUE","DIM","import_awaitly","getHeatLevel","heat","getStyleDefinitions","getHeatmapStyleDefinitions","getHeatClass","level","getHookStyleDefinitions","safeStringify","value","_key","v","n","getStringified","result","renderHooks","hooks","lines","options","lastHookId","hookId","state","icon","timing","formatDuration","context","nodeCounter","usedDecisionIds","usedStepIds","generateNodeId","prefix","resetNodeCounter","escapeMermaidText","text","escapeSubgraphName","mermaidRenderer","ir","enhanced","hookExitId","startId","prevNodeId","child","renderNode","endId","endIcon","endLabel","endShape","endClass","getStyleDefinitions","getHeatmapStyleDefinitions","node","isStepNode","renderStepNode","isParallelNode","renderParallelNode","isRaceNode","renderRaceNode","isDecisionNode","renderDecisionNode","isStreamNode","renderStreamNode","id","mermaidOpts","showRetryEdges","showErrorEdges","showTimeoutEdges","suffix","baseLabel","labelText","label","stateIcon","ioInfo","inputStr","outputStr","hookInfo","hookKey","hookExec","hookIcon","hookTiming","escapedLabel","nodeClass","heat","level","getHeatLevel","getHeatClass","shape","retryLabel","errorNodeId","errorLabel","timeoutNodeId","timeoutMs","subgraphId","forkId","joinId","name","modeLabel","note","childExitIds","exitId","stateClass","winnerExitId","isWinner","decisionId","condition","decisionValue","decisionLabel","branchExitIds","takenBranchExitId","usedBranchIds","branch","branchId","branchLabelText","branchLabel","branchClass","edgeLabel","prevId","counts","backpressure","import_pako","hasBuffer","base64UrlEncode","bytes","base64","binary","encodeForKroki","text","textBytes","compressed","pako","base64UrlEncode","DEFAULT_KROKI_URL","buildKrokiUrl","diagramType","format","text","options","baseUrl","encoded","encodeForKroki","toKrokiUrl","ir","renderer","mermaidRenderer","renderOptions","defaultColorScheme","mermaidText","toKrokiSvgUrl","DEFAULT_MERMAID_INK_URL","encodeForMermaidInk","text","encodeForKroki","normalizeOptions","options","exportOpts","buildQueryString","format","params","buildMermaidInkUrl","normalized","baseUrl","encoded","queryString","toMermaidInkUrl","ir","renderer","mermaidRenderer","renderOptions","defaultColorScheme","mermaidText","toMermaidInkSvgUrl","createNotifierContext","diagramProvider","ir","_","options","toMermaidInkSvgUrl","toKrokiSvgUrl","countSteps","import_awaitly","hasRealScopeNodes","nodes","node","detectParallelGroups","options","minOverlapMs","maxGapMs","stepsWithTiming","nonStepNodes","i","a","b","groups","currentGroup","step","groupStart","s","groupEnd","startedTogether","hasTrueOverlap","overlapDuration","groupedNodes","group","position","children","startTs","endTs","parallelNode","deriveGroupState","originalIndex","g","c","createIRBuilder","options","detectParallel","parallelDetection","initialEnableSnapshots","maxSnapshots","enableSnapshots","defaultWorkflowId","generateId","workflowId","workflowStartTs","workflowEndTs","workflowState","workflowError","workflowDurationMs","activeSteps","scopeStack","decisionStack","activeStreams","currentNodes","createdAt","lastUpdatedAt","hookState","preStartHookWorkflowId","snapshots","eventIndex","getStepId","event","addNode","node","decision","branch","captureSnapshot","ir","getIR","activeStepsCopy","id","step","snapshot","handleEvent","active","hookExec","streamKey","stream","handleScopeEvent","scopeIndex","s","nestedScope","nestedNode","deriveState","scope","handleDecisionEvent","d","branchKey","existing","children","index","toRestore","branches","inferredBranchTaken","b","c","getCurrentNodes","nodes","detectParallelGroups","root","hasHooks","reset","getSnapshots","getSnapshotAt","getIRAt","clearSnapshots","enabled","DEFAULT_DEBOUNCE_MS","DEFAULT_MAX_WAIT_MS","createLiveSession","options","callbacks","title","debounceMs","maxWaitMs","messageId","active","pendingIR","lastIR","debounceTimer","maxWaitTimer","lastPostTime","firstUpdateTime","lastFlushResult","irBuilder","createIRBuilder","clearTimers","flush","irToPost","scheduleFlush","referenceTime","timeSinceReference","remainingMaxWait","update","eventOrIr","event","finalize","status","finalIR","cancel","getSessionId","isActive","resolveStatus","ir","createNotifier","options","adapter","diagramProvider","debounceMs","maxWaitMs","ctx","createNotifierContext","notify","notifyOptions","title","status","message","messageId","createLive","sessionOptions","createLiveSession","import_awaitly","STATUS_EMOJIS","createSlackAdapter","options","deps","token","channel","username","iconEmoji","iconUrl","client","getClient","WebClient","currentTitle","ir","title","status","ctx","blocks","message","clientResult","slackClient","slackMessage","result","messageId","createSlackNotifier","options","deps","token","channel","username","iconEmoji","iconUrl","baseOptions","adapter","createSlackAdapter","createNotifier"]}